Last active
November 13, 2015 17:14
-
-
Save Neoklosch/bcaa3982fd71be023df1 to your computer and use it in GitHub Desktop.
Android Checkstyle Config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<!DOCTYPE module PUBLIC | |
"-//Puppy Crawl//DTD Check Configuration 1.3//EN" | |
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> | |
<module name="Checker"> | |
<!-- See: http://checkstyle.sourceforge.net/config_sizes.html --> | |
<module name="FileLength"> | |
<property name="max" value="500"/> | |
<property name="fileExtensions" value=""/> | |
</module> | |
<!-- Checks that there are no tabs in the source file !--> | |
<!-- http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter !--> | |
<module name="FileTabCharacter"/> | |
<!-- See: http://checkstyle.sourceforge.net/config_misc.html#NewlineAtEndOfFile --> | |
<module name="NewlineAtEndOfFile"> | |
<property name="lineSeparator" value="lf"/> | |
</module> | |
<module name="SuppressionFilter"> | |
<property name="file" value="${checkstyleSuppressionsPath}"/> | |
</module> | |
<!-- Block Checks --> | |
<!-- See: http://checkstyle.sourceforge.net/config_blocks.html --> | |
<module name="TreeWalker"> | |
<module name="AvoidNestedBlocks" /> | |
<module name="EmptyBlock" /> | |
<!--<module name="EmptyCatchBlock" />--> | |
<module name="LeftCurly"> | |
<property name="option" value="eol" /> | |
</module> | |
<module name="NeedBraces" /> | |
</module> | |
<!-- Class Design --> | |
<!-- See http://checkstyle.sf.net/config_design.html !--> | |
<module name="TreeWalker"> | |
<!-- Checks that a class which has only private constructors is declared as final. !--> | |
<module name="FinalClass"/> | |
<!-- Make sure that utility classes (classes that contain only static methods) do not have a public constructor. !--> | |
<module name="HideUtilityClassConstructor"/> | |
<!-- Check nested (internal) classes/interfaces are declared at the bottom of the class after all method and field declarations. !--> | |
<module name="InnerTypeLast"/> | |
<!-- Implements Bloch, Effective Java, Item 17 - Use Interfaces only to define types. !--> | |
<module name="InterfaceIsType"> | |
<property name="allowMarkerInterfaces" value="true"/> | |
</module> | |
<module name="OneTopLevelClass" /> | |
<!-- Restricts throws statements to a specified count. !--> | |
<module name="ThrowsCount"> | |
<property name="max" value="2"/> | |
<!--<property name="ignorePrivateMethods" value="false"/>--> | |
</module> | |
<!-- Checks visibility of class members. !--> | |
<module name="VisibilityModifier"> | |
<property name="packageAllowed" value="false"/> | |
<property name="protectedAllowed" value="true"/> | |
<property name="publicMemberPattern" value="^serialVersionUID$"/> | |
</module> | |
</module> | |
<!-- Coding --> | |
<!-- See http://checkstyle.sf.net/config_coding.html !--> | |
<module name="TreeWalker"> | |
<!-- Checks that classes that define a covariant equals() method also override method equals(java.lang.Object). !--> | |
<module name="CovariantEquals"/> | |
<!-- Checks declaration order according to Code Conventions for the Java Programming Language. !--> | |
<module name="DeclarationOrder"> | |
<property name="ignoreConstructors" value="false"/> | |
<property name="ignoreMethods" value="false"/> | |
<property name="ignoreModifiers" value="false"/> | |
</module> | |
<!-- Check that the default is after all the cases in a switch statement. !--> | |
<module name="DefaultComesLast"/> | |
<!-- Detects empty statements (standalone ;). !--> | |
<module name="EmptyStatement"/> | |
<module name="EqualsAvoidNull"/> | |
<module name="EqualsHashCode"/> | |
<module name="ExplicitInitialization"/> | |
<module name="FallThrough"/> | |
<module name="FinalLocalVariable"/> | |
<module name="HiddenField"> | |
<property name="ignoreSetter" value="true" /> | |
<property name="ignoreAbstractMethods" value="true" /> | |
</module> | |
<!-- Catching java.lang.Exception, java.lang.Error or java.lang.RuntimeException is almost never acceptable. !--> | |
<module name="IllegalCatch"> | |
<property name="illegalClassNames" | |
value="java.lang.Throwable, java.lang.RuntimeException"/> | |
</module> | |
<!-- This check can be used to ensure that types are not declared to be thrown. !--> | |
<!-- Declaring to throw java.lang.Error or java.lang.RuntimeException is almost never acceptable. !--> | |
<module name="IllegalThrows"> | |
<property name="illegalClassNames" | |
value="java.lang.Throwable, java.lang.Error, java.lang.RuntimeException"/> | |
</module> | |
<!-- Checks for assignments in subexpressions, such as in String s = Integer.toString(i = 2);. !--> | |
<module name="InnerAssignment"> | |
<property name="tokens" value="ASSIGN, BAND_ASSIGN, BOR_ASSIGN, BSR_ASSIGN, BXOR_ASSIGN, | |
DIV_ASSIGN, MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN, SL_ASSIGN, | |
SR_ASSIGN, STAR_ASSIGN"/> | |
</module> | |
<module name="MagicNumber"/> | |
<module name="MissingSwitchDefault"/> | |
<!-- Check for ensuring that for loop control variables are not modified inside the for block. !--> | |
<module name="ModifiedControlVariable"/> | |
<module name="MultipleStringLiterals"/> | |
<module name="MultipleVariableDeclarations"/> | |
<module name="NestedForDepth"> | |
<property name="max" value="2"/> | |
</module> | |
<module name="NestedIfDepth"> | |
<property name="max" value="3"/> | |
</module> | |
<module name="NestedTryDepth"> | |
<property name="max" value="1"/> | |
</module> | |
<module name="OneStatementPerLine"/> | |
<module name="OverloadMethodsDeclarationOrder" /> | |
<!-- Ensure a class has a package declaration. !--> | |
<module name="PackageDeclaration"> | |
<property name="ignoreDirectoryName" value="true"/> | |
</module> | |
<!-- Disallow assignment of parameters. !--> | |
<module name="ParameterAssignment"/> | |
<module name="ReturnCount"> | |
<property name="max" value="3"/> | |
</module> | |
<module name="SimplifyBooleanReturn"/> | |
<module name="StringLiteralEquality"/> | |
</module> | |
<!-- Imports --> | |
<!-- See: http://checkstyle.sourceforge.net/config_imports.html --> | |
<module name="TreeWalker"> | |
<module name="AvoidStarImport" /> | |
<!-- Checks for unused import statements. !--> | |
<module name="UnusedImports"/> | |
</module> | |
<!-- Javadoc Style --> | |
<!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocStyle !--> | |
<module name="TreeWalker"> | |
<!-- Validates Javadoc comments to help ensure they are well formed. !--> | |
<module name="JavadocStyle"> | |
<property name="scope" value="private"/> | |
<property name="checkFirstSentence" value="false"/> | |
<property name="endOfSentenceFormat" value="([.?!][ \t\n\r\f<])|([.?!]$)"/> | |
<property name="checkEmptyJavadoc" value="false"/> | |
<property name="checkHtml" value="true"/> | |
<property name="tokens" | |
value="INTERFACE_DEF, CLASS_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/> | |
</module> | |
<!-- Checks Javadoc comments for class and interface definitions. !--> | |
<module name="JavadocType"> | |
<property name="scope" value="package"/> | |
<property name="allowMissingParamTags" value="false"/> | |
<property name="allowUnknownTags" value="false"/> | |
<property name="tokens" value="INTERFACE_DEF, CLASS_DEF"/> | |
</module> | |
<!-- Checks to ensure that the javadoc tags exist (if required) !--> | |
<module name="JavadocMethod"> | |
<property name="scope" value="package"/> | |
<property name="allowUndeclaredRTE" value="false"/> | |
<property name="allowThrowsTagsForSubclasses" value="false"/> | |
<property name="allowMissingParamTags" value="false"/> | |
<property name="allowMissingThrowsTags" value="false"/> | |
<property name="allowMissingReturnTag" value="false"/> | |
<property name="allowMissingJavadoc" value="false"/> | |
<property name="allowMissingPropertyJavadoc" value="true"/> | |
<property name="logLoadErrors" value="true"/> | |
<property name="suppressLoadErrors" value="false"/> | |
<property name="tokens" value="METHOD_DEF, CTOR_DEF"/> | |
</module> | |
<!-- Checks that variables have Javadoc comments. !--> | |
<module name="JavadocVariable"> | |
<property name="scope" value="public"/> | |
</module> | |
</module> | |
<!-- Miscellaneous --> | |
<!-- http://checkstyle.sourceforge.net/config_misc.html --> | |
<module name="TreeWalker"> | |
<module name="ArrayTypeStyle"> | |
<property name="javaStyle" value="true"/> | |
</module> | |
<!-- Checks that the outer type name and the file name match. !--> | |
<module name="OuterTypeFilename"/> | |
<module name="UpperEll"/> | |
</module> | |
<!-- Modifiers --> | |
<!-- See http://checkstyle.sf.net/config_modifiers.html !--> | |
<module name="TreeWalker"> | |
<!-- Checks that the order of modifiers conforms to the suggestions in the Java Language specification, !--> | |
<!-- sections 8.1.1, 8.3.1 and 8.4.3. !--> | |
<module name="ModifierOrder"/> | |
</module> | |
<!-- Naming Conventions --> | |
<!-- See http://checkstyle.sourceforge.net/config_naming.html !--> | |
<module name="TreeWalker"> | |
<module name="AbbreviationAsWordInName"/> | |
<!-- Checks for class type parameter name naming conventions. !--> | |
<module name="ClassTypeParameterName"> | |
<property name="format" value="^[A-Z]$"/> | |
</module> | |
<!-- Checks for constant name naming conventions. !--> | |
<module name="ConstantName"> | |
<property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/> | |
<property name="applyToPublic" value="true"/> | |
<property name="applyToProtected" value="true"/> | |
<property name="applyToPackage" value="true"/> | |
<property name="applyToPrivate" value="true"/> | |
</module> | |
<!-- Checks for local final variable name naming conventions. !--> | |
<module name="LocalFinalVariableName"> | |
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/> | |
<property name="tokens" value="VARIABLE_DEF, PARAMETER_DEF"/> | |
</module> | |
<!-- Checks for local variable name naming conventions. !--> | |
<module name="LocalVariableName"> | |
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/> | |
<property name="tokens" value="VARIABLE_DEF, PARAMETER_DEF"/> | |
</module> | |
<!-- Checks for member variable name naming conventions. !--> | |
<module name="MemberName"> | |
<property name="format" value="^m[A-Z][a-zA-Z0-9]*$"/> | |
<property name="applyToPublic" value="true"/> | |
<property name="applyToProtected" value="true"/> | |
<property name="applyToPackage" value="true"/> | |
<property name="applyToPrivate" value="true"/> | |
</module> | |
<!-- Checks for method name naming conventions. !--> | |
<module name="MethodName"> | |
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/> | |
</module> | |
<!-- Checks for method type parameter name naming conventions. !--> | |
<module name="MethodTypeParameterName"> | |
<property name="format" value="^[A-Z]$"/> | |
</module> | |
<!-- Checks for package name naming conventions. !--> | |
<module name="PackageName"> | |
<property name="format" value="^[a-z][a-z0-9]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*$"/> | |
</module> | |
<!-- Checks for parameter name naming conventions. !--> | |
<module name="ParameterName"> | |
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/> | |
</module> | |
<!-- Checks for static variable name naming conventions. !--> | |
<module name="StaticVariableName"> | |
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/> | |
<property name="applyToPublic" value="true"/> | |
<property name="applyToProtected" value="true"/> | |
<property name="applyToPackage" value="true"/> | |
<property name="applyToPrivate" value="true"/> | |
</module> | |
<!-- Checks for type name naming conventions. !--> | |
<module name="TypeName"> | |
<property name="format" value="^[A-Z][a-zA-Z0-9]*$"/> | |
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF"/> | |
<property name="applyToPublic" value="true"/> | |
<property name="applyToProtected" value="true"/> | |
<property name="applyToPackage" value="true"/> | |
<property name="applyToPrivate" value="true"/> | |
</module> | |
</module> | |
<!-- Size Violations --> | |
<!-- http://checkstyle.sourceforge.net/config_sizes.html --> | |
<module name="TreeWalker"> | |
<property name="tabWidth" value="4" /> | |
<!-- Checks for long lines. !--> | |
<module name="LineLength"> | |
<property name="ignorePattern" value="^$"/> | |
<property name="max" value="120"/> | |
</module> | |
<!-- Checks the number of methods declared in each type. This includes the number of each scope !--> | |
<!-- (private, package, protected and public) as well as an overall total. !--> | |
<module name="MethodCount"> | |
<property name="maxTotal" value="100"/> | |
<property name="maxPrivate" value="100"/> | |
<property name="maxPackage" value="100"/> | |
<property name="maxProtected" value="100"/> | |
<property name="maxPublic" value="100"/> | |
</module> | |
<!-- Checks for long methods and constructors. !--> | |
<module name="MethodLength"> | |
<property name="max" value="80"/> | |
<property name="countEmpty" value="true"/> | |
<property name="tokens" value="METHOD_DEF, CTOR_DEF"/> | |
</module> | |
<!-- Checks for the number of types declared at the outer (or root) level in a file. !--> | |
<module name="OuterTypeNumber"> | |
<property name="max" value="1"/> | |
</module> | |
<!-- Checks the number of parameters of a method or constructor. !--> | |
<module name="ParameterNumber"> | |
<property name="max" value="7"/> | |
<property name="tokens" value="METHOD_DEF, CTOR_DEF"/> | |
</module> | |
</module> | |
<!-- Whitespaces --> | |
<!-- http://checkstyle.sourceforge.net/config_whitespace.html --> | |
<module name="TreeWalker"> | |
<!-- Checks the padding of an empty for initializer. !--> | |
<module name="EmptyForInitializerPad"> | |
<property name="option" value="nospace"/> | |
</module> | |
<!-- Checks the padding of an empty for iterator. !--> | |
<module name="EmptyForIteratorPad"> | |
<property name="option" value="nospace"/> | |
</module> | |
<module name="EmptyLineSeparator"> | |
<property name="allowNoEmptyLineBetweenFields" value="true"/> | |
</module> | |
<!-- Checks that the whitespace around the Generic tokens < and > is correct to the typical convention. !--> | |
<module name="GenericWhitespace"/> | |
<!-- Checks the padding between the identifier of a method definition, !--> | |
<!-- constructor definition, method call, or constructor invocation; and the left parenthesis of the parameter list. !--> | |
<module name="MethodParamPad"> | |
<property name="allowLineBreaks" value="false"/> | |
<property name="option" value="nospace"/> | |
<property name="tokens" | |
value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF, SUPER_CTOR_CALL "/> | |
</module> | |
<module name="NoLineWrap"/> | |
<!-- Checks that there is no whitespace after a token. !--> | |
<module name="NoWhitespaceAfter"> | |
<property name="allowLineBreaks" value="true"/> | |
<property name="tokens" | |
value="ARRAY_INIT, BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/> | |
</module> | |
<!-- Checks that there is no whitespace before a token. !--> | |
<module name="NoWhitespaceBefore"> | |
<property name="allowLineBreaks" value="false"/> | |
<property name="tokens" value="SEMI, POST_DEC, POST_INC"/> | |
</module> | |
<!-- Checks the policy on how to wrap lines on operators. !--> | |
<module name="OperatorWrap"> | |
<property name="option" value="nl"/> | |
<property name="tokens" value="ASSIGN, BAND, BOR, BSR, BXOR, COLON, DIV, | |
EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, | |
LOR, LT, MINUS, MOD, NOT_EQUAL, | |
PLUS, QUESTION, SL, SR, STAR"/> | |
</module> | |
<!-- Checks the policy on the padding of parentheses. !--> | |
<module name="ParenPad"> | |
<property name="option" value="nospace"/> | |
<property name="tokens" | |
value="CTOR_CALL, LPAREN, METHOD_CALL, RPAREN, SUPER_CTOR_CALL"/> | |
</module> | |
<module name="SeparatorWrap"> | |
<property name="tokens" value="DOT"/> | |
<property name="option" value="nl"/> | |
</module> | |
<module name="SeparatorWrap"> | |
<property name="tokens" value="COMMA"/> | |
<property name="option" value="EOL"/> | |
</module> | |
<!-- Checks the policy on the padding of parentheses for typecasts. !--> | |
<module name="TypecastParenPad"> | |
<property name="option" value="nospace"/> | |
<property name="tokens" value="TYPECAST, RPAREN"/> | |
</module> | |
<!-- Checks that a token is followed by whitespace. !--> | |
<module name="WhitespaceAfter"> | |
<property name="tokens" value="COMMA, SEMI, TYPECAST"/> | |
</module> | |
<!-- Checks that a token is surrounded by whitespace. !--> | |
<module name="WhitespaceAround"> | |
<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, | |
BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, | |
LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, | |
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, | |
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, | |
MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, | |
QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN"/> | |
<property name="allowEmptyConstructors" value="false"/> | |
<property name="allowEmptyMethods" value="false"/> | |
</module> | |
</module> | |
</module> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment