diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/AbbreviationAsWordInNameCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java similarity index 91% rename from src/main/java/com/puppycrawl/tools/checkstyle/checks/AbbreviationAsWordInNameCheck.java rename to src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java index d72d28811..b83a284e5 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/AbbreviationAsWordInNameCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheck.java @@ -16,7 +16,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //////////////////////////////////////////////////////////////////////////////// -package com.puppycrawl.tools.checkstyle.checks; +package com.puppycrawl.tools.checkstyle.checks.naming; import java.util.Arrays; import java.util.HashSet; @@ -31,9 +31,9 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes; /** *

* The Check validate abbreviations(consecutive capital letters) length in - * identifier name. Please read more at + * identifier name, it also allows to enforce camel case naming. Please read more at * - * Google Style Guide how to avoid long abbreviations in names + * Google Style Guide to get to know how to avoid long abbreviations in names. *

*

* Option allowedAbbreviationLength indicates on the allowed amount of capital @@ -46,11 +46,11 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes; * no spaces are allowed. *

*

- * Option ignoreFinal allow to skip variables with final modifier. - * Default value is true. + * Option ignoreFinal allow to skip variables with final modifier. + * Default value is true. *

*

- * Option ignoreStatic allow to skip variables with static modifier. + * Option ignoreStatic allow to skip variables with static modifier. * Default value is true. *

*

@@ -58,20 +58,21 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes; * ignore methods tagged with @Override annotation * (that usually mean inherited name). Default value is true. *

- * Default configuration + * Default configuration *
- * <module name="AbbreviationAsWordInName">
- * </module>
- * 
*

+ * <module name="AbbreviationAsWordInName" /> + * + *

* To configure to check variables and classes identifiers, do not ignore * variables with static modifier - * and allow no abbreviations to use (camel case phrase). + * and allow no abbreviations (enforce camel case phrase) but allow XML and URL abbreviations. *

*
  * <module name="AbbreviationAsWordInName">
- *     <property name="targets" value="VARIABLE_DEF"/>
+ *     <property name="tokens" value="VARIABLE_DEF,CLASS_DEF"/>
  *     <property name="ignoreStatic" value="false"/>
- *     <property name="allowedAbbreviations" value="1"/>
+ *     <property name="allowedAbbreviationLength" value="1"/>
+ *     <property name="allowedAbbreviations" value="XML,URL"/>
  * </module>
  * 
* @@ -170,15 +171,15 @@ public class AbbreviationAsWordInNameCheck extends Check public int[] getDefaultTokens() { return new int[] { - TokenTypes.CLASS_DEF, - TokenTypes.INTERFACE_DEF, - TokenTypes.ENUM_DEF, - TokenTypes.ANNOTATION_DEF, - TokenTypes.ANNOTATION_FIELD_DEF, - TokenTypes.PARAMETER_DEF, - TokenTypes.VARIABLE_DEF, - TokenTypes.METHOD_DEF - }; + TokenTypes.CLASS_DEF, + TokenTypes.INTERFACE_DEF, + TokenTypes.ENUM_DEF, + TokenTypes.ANNOTATION_DEF, + TokenTypes.ANNOTATION_FIELD_DEF, + TokenTypes.PARAMETER_DEF, + TokenTypes.VARIABLE_DEF, + TokenTypes.METHOD_DEF, + }; } @Override diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/messages.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/messages.properties index 10649bfc7..ba80f815f 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/messages.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/messages.properties @@ -32,5 +32,3 @@ properties.duplicateproperty=Duplicated property ''{0}'' ({1} occurrence(s)). unable.open.cause=Unable to open ''{0}'': {1}. forbid.escaped.unicode.char=Unicode escape(s) usage should be avoided. - -abbreviation.as.word=Abbreviation in name must contain no more than ''{0}'' capital letters. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/naming/messages.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/naming/messages.properties index 2cd17035b..fe363cf84 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/naming/messages.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/naming/messages.properties @@ -2,3 +2,5 @@ name.invalidPattern=Name ''{0}'' must match pattern ''{1}''. illegal.abstract.class.name=Name ''{0}'' must match pattern ''{1}''. method.name.equals.class.name=Method Name ''{0}'' must not equal the enclosing class name. no.abstract.class.modifier=Class ''{0}'' must be declared as ''abstract''. + +abbreviation.as.word=Abbreviation in name must contain no more than ''{0}'' capital letters. diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/AbbreviationAsWordInNameCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java similarity index 87% rename from src/test/java/com/puppycrawl/tools/checkstyle/checks/AbbreviationAsWordInNameCheckTest.java rename to src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java index 6ea2eaae5..841d5abcd 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/AbbreviationAsWordInNameCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/naming/AbbreviationAsWordInNameCheckTest.java @@ -16,9 +16,9 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //////////////////////////////////////////////////////////////////////////////// -package com.puppycrawl.tools.checkstyle.checks; +package com.puppycrawl.tools.checkstyle.checks.naming; -import static com.puppycrawl.tools.checkstyle.checks.AbbreviationAsWordInNameCheck.MSG_KEY; +import static com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck.MSG_KEY; import static java.text.MessageFormat.format; import org.junit.Test; @@ -41,7 +41,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport warningMessage = getCheckMessage(MSG_KEY, expectedCapitalCount); checkConfig.addAttribute("allowedAbbreviationLength", String.valueOf(expectedCapitalCount)); checkConfig.addAttribute("allowedAbbreviations", "III"); - checkConfig.addAttribute("targets", "CLASS_DEF"); + checkConfig.addAttribute("tokens", "CLASS_DEF"); checkConfig.addAttribute("ignoreOverriddenMethods", "true"); final String[] expected = { @@ -51,7 +51,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "37: " + warningMessage, }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -63,14 +63,14 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport final DefaultConfiguration checkConfig = createCheckConfig(AbbreviationAsWordInNameCheck.class); checkConfig.addAttribute("allowedAbbreviationLength", String.valueOf(expectedCapitalCount)); checkConfig.addAttribute("allowedAbbreviations", "CLASS,FACTORY"); - checkConfig.addAttribute("targets", "CLASS_DEF"); + checkConfig.addAttribute("tokens", "CLASS_DEF"); checkConfig.addAttribute("ignoreOverriddenMethods", "true"); final String[] expected = { "32: " + warningMessage, }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -82,14 +82,14 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport final DefaultConfiguration checkConfig = createCheckConfig(AbbreviationAsWordInNameCheck.class); checkConfig.addAttribute("allowedAbbreviationLength", String.valueOf(expectedCapitalCount)); checkConfig.addAttribute("allowedAbbreviations", "CLASS"); - checkConfig.addAttribute("targets", "CLASS_DEF"); + checkConfig.addAttribute("tokens", "CLASS_DEF"); checkConfig.addAttribute("ignoreOverriddenMethods", "true"); final String[] expected = { "32: " + warningMessage, "37: " + warningMessage, }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -101,7 +101,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport final DefaultConfiguration checkConfig = createCheckConfig(AbbreviationAsWordInNameCheck.class); checkConfig.addAttribute("allowedAbbreviationLength", String.valueOf(expectedCapitalCount)); checkConfig.addAttribute("allowedAbbreviations", "CLASS"); - checkConfig.addAttribute("targets", "CLASS_DEF" + checkConfig.addAttribute("tokens", "CLASS_DEF" + ",VARIABLE_DEF" + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF" + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF"); @@ -116,7 +116,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "58: " + warningMessage, }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -130,7 +130,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport checkConfig.addAttribute("allowedAbbreviations", "NUMBER,MARAZMATIC,VARIABLE"); checkConfig.addAttribute("ignoreStatic", "false"); checkConfig.addAttribute("ignoreFinal", "false"); - checkConfig.addAttribute("targets", "CLASS_DEF" + checkConfig.addAttribute("tokens", "CLASS_DEF" + ",VARIABLE_DEF" + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF" + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF"); @@ -146,7 +146,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "84: " + warningMessage, }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -160,7 +160,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport checkConfig.addAttribute("allowedAbbreviations", "NUMBER,MARAZMATIC,VARIABLE"); checkConfig.addAttribute("ignoreStatic", "true"); checkConfig.addAttribute("ignoreFinal", "true"); - checkConfig.addAttribute("targets", "CLASS_DEF" + checkConfig.addAttribute("tokens", "CLASS_DEF" + ",VARIABLE_DEF" + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF" + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF"); @@ -172,7 +172,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "38: " + warningMessage, }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -186,7 +186,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport checkConfig.addAttribute("allowedAbbreviations", "MARAZMATIC,VARIABLE"); checkConfig.addAttribute("ignoreStatic", "false"); checkConfig.addAttribute("ignoreFinal", "true"); - checkConfig.addAttribute("targets", "CLASS_DEF" + checkConfig.addAttribute("tokens", "CLASS_DEF" + ",VARIABLE_DEF" + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF" + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF"); @@ -201,7 +201,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "60: " + warningMessage, // no ignore for static }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -215,7 +215,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport checkConfig.addAttribute("allowedAbbreviations", "MARAZMATIC,VARIABLE"); checkConfig.addAttribute("ignoreStatic", "true"); checkConfig.addAttribute("ignoreFinal", "false"); - checkConfig.addAttribute("targets", "CLASS_DEF" + checkConfig.addAttribute("tokens", "CLASS_DEF" + ",VARIABLE_DEF" + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF" + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF"); @@ -229,7 +229,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "59: " + warningMessage, // no ignore for final }; - verify(checkConfig, getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + verify(checkConfig, getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } @Test @@ -241,7 +241,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport warningMessage = getCheckMessage(MSG_KEY, expectedCapitalCount); checkConfig.addAttribute("allowedAbbreviationLength", String.valueOf(expectedCapitalCount)); checkConfig.addAttribute("allowedAbbreviations", ""); - checkConfig.addAttribute("targets", "CLASS_DEF, METHOD_DEF"); + checkConfig.addAttribute("tokens", "CLASS_DEF, METHOD_DEF"); checkConfig.addAttribute("ignoreOverriddenMethods", "true"); final String[] expected = { @@ -249,7 +249,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport }; verify(checkConfig, - getPath("InputAbbreviationAsWordInTypeNameCheckOverridableMethod.java"), expected); + getPath("naming/InputAbbreviationAsWordInTypeNameCheckOverridableMethod.java"), expected); } @Test @@ -265,7 +265,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport checkConfig.addAttribute("ignoreStatic", "false"); checkConfig.addAttribute("ignoreFinal", "false"); checkConfig.addAttribute("ignoreOverriddenMethods", "false"); - checkConfig.addAttribute("targets", "CLASS_DEF,INTERFACE_DEF,ENUM_DEF," + checkConfig.addAttribute("tokens", "CLASS_DEF,INTERFACE_DEF,ENUM_DEF," + "ANNOTATION_DEF,ANNOTATION_FIELD_DEF,ENUM_CONSTANT_DEF," + "PARAMETER_DEF,VARIABLE_DEF,METHOD_DEF"); final String[] expected = { @@ -296,7 +296,7 @@ public class AbbreviationAsWordInNameCheckTest extends BaseCheckTestSupport "98: " + warningMessage, }; verify(checkConfig, - getPath("InputAbbreviationAsWordInTypeNameCheck.java"), expected); + getPath("naming/InputAbbreviationAsWordInTypeNameCheck.java"), expected); } /** diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputAbbreviationAsWordInTypeNameCheck.java b/src/test/resources/com/puppycrawl/tools/checkstyle/naming/InputAbbreviationAsWordInTypeNameCheck.java similarity index 100% rename from src/test/resources/com/puppycrawl/tools/checkstyle/InputAbbreviationAsWordInTypeNameCheck.java rename to src/test/resources/com/puppycrawl/tools/checkstyle/naming/InputAbbreviationAsWordInTypeNameCheck.java diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputAbbreviationAsWordInTypeNameCheckOverridableMethod.java b/src/test/resources/com/puppycrawl/tools/checkstyle/naming/InputAbbreviationAsWordInTypeNameCheckOverridableMethod.java similarity index 100% rename from src/test/resources/com/puppycrawl/tools/checkstyle/InputAbbreviationAsWordInTypeNameCheckOverridableMethod.java rename to src/test/resources/com/puppycrawl/tools/checkstyle/naming/InputAbbreviationAsWordInTypeNameCheckOverridableMethod.java diff --git a/src/xdocs/availablechecks.xml b/src/xdocs/availablechecks.xml index 1a8514974..893c9bf5b 100644 --- a/src/xdocs/availablechecks.xml +++ b/src/xdocs/availablechecks.xml @@ -19,8 +19,9 @@

- - + + diff --git a/src/xdocs/config_misc.xml b/src/xdocs/config_misc.xml index 5966daff8..d20e28b40 100755 --- a/src/xdocs/config_misc.xml +++ b/src/xdocs/config_misc.xml @@ -1616,87 +1616,6 @@ String unitAbbrev = "\u03bc\u03bc\u03bc";

-
- -

- Check name of the targeted item to validate - abbreviations(capital letters) length in it. -

-
- - -
AbbreviationAsWordInNameCheck name of the targeted item to validate abbreviations(capital letters) length in it.AbbreviationAsWordInNameThe Check validate abbreviations(consecutive capital letters) + length in identifier name, it also allow in enforce camel case naming.
AbstractClassName
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
namedescriptiontypedefault value
targetsArray of type forbidden annotation's target.stringSetnull
allowedAbbreviationsList of abbreviations that must be skipped for checking.stringSetnull
ignoreFinalAllow to skip variables with final declarations.Booleantrue
ignoreStaticAllow to skip variables with static declarations.Booleantrue
ignoreOverriddenMethodAllows to ignore methods tagged with '@Override' annotation.Booleantrue
allowedAbbreviationLengthAallowed amount of capital letters in abbreviations.Integertrue
- - - -

- To configure to check variables definitions, forbid skipping - variables with static declarations and allow 'NUMBER' abbreviation. -

- -<module name="AbbreviationAsWordInName"> - <property name="targets" value="VARIABLE_DEF"/> - <property name="ignoreStatic" value="false"/> - <property name="allowedAbbreviations" value="NUMBER"/> -</module> - -
- - -

- com.puppycrawl.tools.checkstyle.checks -

-
- - -

- TreeWalker -

-
-
diff --git a/src/xdocs/config_naming.xml b/src/xdocs/config_naming.xml index 5c528d4ac..df1192bf3 100644 --- a/src/xdocs/config_naming.xml +++ b/src/xdocs/config_naming.xml @@ -340,5 +340,97 @@ class MyClass { </module>
+ +
+ +

+ The Check validate abbreviations(consecutive capital letters) + length in identifier name, it also allows to enforce camel case naming. Please read more at + + Google Style Guide + to get to know how to avoid long abbreviations in names. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
namedescriptiontypedefault value
allowedAbbreviationLength indicates on the allowed amount of capital letters in targeted identifiers + (abbreviations in the classes, interfaces, variables and methods names, ... ).3true
allowedAbbreviationslist of abbreviations that must be skipped for checking. + Abbreviations should be separated by comma, no spaces are allowed.stringSetnull
ignoreFinalallow to skip variables with final modifier.Booleantrue
ignoreStaticallow to skip variables with static modifier.Booleantrue
ignoreOverriddenMethodAllows to ignore methods tagged with @Override annotation + (that usually mean inherited name).Booleantrue
+
+ + +

+ Default configuration + +<module name="AbbreviationAsWordInName"/> + +

+

+ To configure to check variables and classes identifiers, + do not ignore variables with static modifier and allow + no abbreviations (enforce camel case phrase) and + allow no abbreviations to use (camel case phrase) and allow XML and URL abbreviations. +

+ +<module name="AbbreviationAsWordInName"> + <property name="tokens" value="VARIABLE_DEF,CLASS_DEF"/> + <property name="ignoreStatic" value="false"/> + <property name="allowedAbbreviationLength" value="1"/> + <property name="allowedAbbreviation" value="XML,URL"/> +</module> + +
+ + +

+ com.puppycrawl.tools.checkstyle.checks.naming +

+
+ + +

+ TreeWalker +

+
+
+