Skip to content

Instantly share code, notes, and snippets.

@Neoklosch
Last active November 13, 2015 17:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Neoklosch/bcaa3982fd71be023df1 to your computer and use it in GitHub Desktop.
Save Neoklosch/bcaa3982fd71be023df1 to your computer and use it in GitHub Desktop.
Android Checkstyle Config
<?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&lt;])|([.?!]$)"/>
<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