|
From: <caw...@us...> - 2007-08-02 17:35:22
|
Revision: 2919
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=2919&view=rev
Author: cawilliams
Date: 2007-08-02 10:35:18 -0700 (Thu, 02 Aug 2007)
Log Message:
-----------
Fix #5425 - Add code check for constant naming convention
Modified Paths:
--------------
trunk/com.aptana.rdt/plugin.xml
trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/RubyRedLint.java
Added Paths:
-----------
trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/ConstantNamingConvention.java
Modified: trunk/com.aptana.rdt/plugin.xml
===================================================================
--- trunk/com.aptana.rdt/plugin.xml 2007-08-02 15:34:45 UTC (rev 2918)
+++ trunk/com.aptana.rdt/plugin.xml 2007-08-02 17:35:18 UTC (rev 2919)
@@ -75,7 +75,11 @@
label="Maximum number of returns in a method"
prefKey="com.aptana.rdt.compiler.problem.codeComplexityReturns">
<argument prefKey="com.aptana.rdt.compiler.problem.maxReturns"/>
- </error>
+ </error>
+ <error
+ categoryId="org.rubypeople.rdt.errors.potentialProblems"
+ label="Constant name doesn't match convention"
+ prefKey="com.aptana.rdt.compiler.problem.constantNamingConvention"/>
</extension>
<!-- =================================================================================== -->
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java 2007-08-02 15:34:45 UTC (rev 2918)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/AptanaRDTPlugin.java 2007-08-02 17:35:18 UTC (rev 2919)
@@ -196,6 +196,14 @@
*/
public static final String COMPILER_PB_ASSIGNMENT_PRECEDENCE = PLUGIN_ID + ".compiler.problem.assignmentPrecedence"; //$NON-NLS-1$
+ /**
+ * Possible configurable option ID.
+ * @see #getDefaultOptions()
+ * @since 1.0.0
+ */
+ public static final String COMPILER_PB_CONSTANT_NAMING_CONVENTION = PLUGIN_ID + ".compiler.problem.constantNamingConvention"; //$NON-NLS-1$
+
+
// The shared instance
private static AptanaRDTPlugin plugin;
Added: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/ConstantNamingConvention.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/ConstantNamingConvention.java (rev 0)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/ConstantNamingConvention.java 2007-08-02 17:35:18 UTC (rev 2919)
@@ -0,0 +1,29 @@
+package com.aptana.rdt.internal.parser.warnings;
+
+import org.jruby.ast.ConstDeclNode;
+import org.jruby.evaluator.Instruction;
+import org.rubypeople.rdt.internal.core.parser.warnings.RubyLintVisitor;
+
+import com.aptana.rdt.AptanaRDTPlugin;
+
+public class ConstantNamingConvention extends RubyLintVisitor {
+
+ public ConstantNamingConvention(String contents) {
+ super(contents);
+ }
+
+ @Override
+ protected String getOptionKey() {
+ return AptanaRDTPlugin.COMPILER_PB_CONSTANT_NAMING_CONVENTION;
+ }
+
+ @Override
+ public Instruction visitConstDeclNode(ConstDeclNode iVisited) {
+ String name = iVisited.getName();
+ if (!name.toUpperCase().equals(name)) {
+ createProblem(iVisited.getPosition(), "Constant name doesn't match ALL_CAPS_WITH_UNDERSCORES convention: " + name);
+ }
+ return super.visitConstDeclNode(iVisited);
+ }
+
+}
Property changes on: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/ConstantNamingConvention.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/RubyRedLint.java
===================================================================
--- trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/RubyRedLint.java 2007-08-02 15:34:45 UTC (rev 2918)
+++ trunk/com.aptana.rdt/src/com/aptana/rdt/internal/parser/warnings/RubyRedLint.java 2007-08-02 17:35:18 UTC (rev 2919)
@@ -82,6 +82,7 @@
visitors.add(new ComparableInclusionVisitor(contents));
visitors.add(new EnumerableInclusionVisitor(contents));
visitors.add(new AndOrUsedOnRighthandAssignment(contents));
+ visitors.add(new ConstantNamingConvention(contents));
return visitors;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|