Skip to content

Instantly share code, notes, and snippets.

@ashwin
Created February 19, 2015 12:11
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 ashwin/88ffe226eecdf6f42245 to your computer and use it in GitHub Desktop.
Save ashwin/88ffe226eecdf6f42245 to your computer and use it in GitHub Desktop.
CheckStyle configuration file for Algorithms book and course by Prof. Sedgewick
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
<!-- Checks that property files contain the same keys. -->
<module name="Translation"/>
<!-- Checks that no tab characters in the source code. -->
<!-- Reports only first instance. -->
<module name="FileTabCharacter">
<property name="eachLine" value="false"/>
</module>
<!-- Checks that no file is more than 1500 lines long. -->
<module name="FileLength">
<property name="max" value="1500"/>
</module>
<!-- =========================================================================== -->
<!-- =========================================================================== -->
<!-- TREEWALKER BEGINS HERE -->
<!-- =========================================================================== -->
<!-- =========================================================================== -->
<module name="TreeWalker">
<!-- =========================================================================== -->
<!-- Check for annotations -->
<!-- http://checkstyle.sourceforge.net/config_annotation.html -->
<!-- =========================================================================== -->
<module name="SuppressWarnings">
<property name="format"
value="^unchecked$|^unused$"/>
<property name="tokens"
value="
CLASS_DEF,INTERFACE_DEF,ENUM_DEF,
ANNOTATION_DEF,ANNOTATION_FIELD_DEF,
ENUM_CONSTANT_DEF,METHOD_DEF,CTOR_DEF,
PARAMETER_DEF,VARIABLE_DEF
"/>
</module>
<!-- =========================================================================== -->
<!-- Block checks -->
<!-- http://checkstyle.sourceforge.net/config_blocks.html -->
<!-- =========================================================================== -->
<module name="EmptyBlock">
<property name="option" value="text"/>
</module>
<module name="AvoidNestedBlocks"/>
<!-- =========================================================================== -->
<!-- Class design -->
<!-- http://checkstyle.sourceforge.net/config_design.html -->
<!-- =========================================================================== -->
<!-- SPECIAL HACK FOR NON-STATIC PUBIC FINAL VARIABLE -->
<module name="VisibilityModifier">
<property name="publicMemberPattern" value="^SLOPE_ORDER$"/>
</module>
<!-- <module name="FinalClass"/> -->
<module name="InterfaceIsType"/>
<module name="MutableException"/>
<!-- =========================================================================== -->
<!-- Coding violations -->
<!-- http://checkstyle.sourceforge.net/config_coding.html -->
<!-- =========================================================================== -->
<module name="AvoidInlineConditionals"/>
<module name="CovariantEquals"/>
<!-- <module name="DoubleCheckedLocking"/> NO LONGER AVAILABLE IN CHECKSTYLE 5.6 -->
<module name="EmptyStatement"/>
<!-- <module name="EqualsHashCode"/> -->
<module name="HiddenField">
<property name="ignoreConstructorParameter" value="true"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<!--
<module name="MagicNumber">
<property name="tokens" value="NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG"/>
<property name="ignoreNumbers" value="-1, 0, 0.5, 1, 2"/>
</module>
<module name="MissingSwitchDefault"/>
-->
<module name="ModifiedControlVariable"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<module name="StringLiteralEquality"/>
<module name="NestedForDepth">
<property name="max" value="4"/>
</module>
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="1"/>
</module>
<module name="NoClone"/>
<module name="NoFinalizer"/>
<module name="SuperClone"/>
<module name="SuperFinalize"/>
<!-- Avoid masking of OutOfMemoryError or NullPointerExceptionError -->
<module name="IllegalCatch"/>
<!-- Don't allow variables to be declared of wrapper types -->
<module name="IllegalType">
<property name="illegalClassNames" value="java.lang.Boolean, java.lang.Integer, java.lang.Double, java.lang.Float, java.lang.Character, java.lang.Long, java.lang.Short, java.lang.Byte, java.lang.Class"/>
</module>
<module name="DeclarationOrder"/>
<module name="ParameterAssignment"/>
<module name="DefaultComesLast"/>
<module name="FallThrough">
<property name="reliefPattern" value="continue in next case"/>
</module>
<module name="OneStatementPerLine"/>
<!-- =========================================================================== -->
<!-- Duplicate code -->
<!-- http://checkstyle.sourceforge.net/config_duplicates.html -->
<!-- =========================================================================== -->
<!-- =========================================================================== -->
<!-- Headers -->
<!-- http://checkstyle.sourceforge.net/config_header.html -->
<!-- =========================================================================== -->
<!-- =========================================================================== -->
<!-- Imports -->
<!-- http://checkstyle.sourceforge.net/config_imports.html -->
<!-- =========================================================================== -->
<module name="AvoidStarImport"/>
<module name="AvoidStaticImport"/>
<!-- Disallow java.io and other packages that COS 126 students should not use -->
<!--
<module name="IllegalImport">
<property name="illegalPkgs" value="java.io, java.sql, sun, java.net, java.security, javax, java.applet, java.beans, java.nio, java.rmi, java.text, java.lang.reflect, java.lang.instrument"/>
</module>
-->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- =========================================================================== -->
<!-- Javadoc comments -->
<!-- http://checkstyle.sourceforge.net/config_javadoc.html -->
<!-- =========================================================================== -->
<!-- =========================================================================== -->
<!-- Metrics -->
<!-- http://checkstyle.sourceforge.net/config_metrics.html -->
<!-- =========================================================================== -->
<!-- =========================================================================== -->
<!-- Miscellaneous checks -->
<!-- http://checkstyle.sourceforge.net/config_misc.html -->
<!-- =========================================================================== -->
<module name="TodoComment"/>
<module name="UpperEll"/>
<module name="ArrayTypeStyle"/>
<module name="OuterTypeFilename"/>
<!-- =========================================================================== -->
<!-- Modifiers -->
<!-- http://checkstyle.sourceforge.net/config_modifier.html -->
<!-- =========================================================================== -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<!-- =========================================================================== -->
<!-- Naming conventions -->
<!-- http://checkstyle.sourceforge.net/config_naming.html -->
<!-- =========================================================================== -->
<!-- MODIFIED TO ALLOW SINGLE LETTER UPPERCASE NAMES -->
<!-- MODIFIED TO ALLOW FINAL VARIABLES TO BE ALL UPPER-CASE -->
<!-- Disallow underscore characters -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$"/>
</module>
<module name="LocalVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$"/>
</module>
<module name="MemberName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$"/>
</module>
<module name="MethodName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$"/>
</module>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
</module>
<module name="PackageName"/>
<module name="ParameterName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$|^[A-Z]$"/>
</module>
<module name="StaticVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$"/>
</module>
<module name="TypeName"/>
<!-- =========================================================================== -->
<!-- Regexp -->
<!-- http://checkstyle.sourceforge.net/config_regexp.html -->
<!-- =========================================================================== -->
<!-- Checks for calls to System.exit(). -->
<module name="RegexpSinglelineJava">
<property name="format" value="System\.exit"/>
<property name="ignoreComments" value="true"/>
<property name="message" value="Not permitted to call System.exit()"/>
</module>
<!-- Checks for calls to Math.pow(). -->
<module name="RegexpSinglelineJava">
<property name="format" value="Math\.pow\([^,]*, 2\)"/>
<property name="ignoreComments" value="true"/>
<property name="message" value="Use x*x instead of Math.pow(x, 2)"/>
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="Math\.pow\([^,]*, 3\)"/>
<property name="ignoreComments" value="true"/>
<property name="message" value="Use x*x*x instead of Math.pow(x, 3)"/>
</module>
<!-- =========================================================================== -->
<!-- Size violations -->
<!-- http://checkstyle.sourceforge.net/config_sizes.html -->
<!-- =========================================================================== -->
<!-- Check that length of line is at most 85 characters. -->
<module name="LineLength">
<property name="max" value="85"/>
</module>
<module name="MethodLength"/>
<module name="AnonInnerLength"/>
<module name="ParameterNumber"/>
<module name="OuterTypeNumber"/>
<module name="MethodCount"/>
<!-- =========================================================================== -->
<!-- Whitespace -->
<!-- http://checkstyle.sourceforge.net/config_whitespace.html -->
<!-- =========================================================================== -->
<module name="GenericWhitespace"/>
<module name="EmptyForInitializerPad"/>
<module name="EmptyForIteratorPad"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter">
<property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/>
</module>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround">
<!-- removed PLUS, MINUS, STAR, DIV -->
<!-- removed GENERIC_START, GENERIC_END -->
<property name="tokens"
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR,
BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, 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_ASSIGN, MOD,
MOD_ASSIGN, NOT_EQUAL, PLUS_ASSIGN, QUESTION, RCURLY,
SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR_ASSIGN,
TYPE_EXTENSION_AND, WILDCARD_TYPE"/>
</module>
</module>
</module>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment