1 <?xml version="1.0"?> 2 <!DOCTYPE module PUBLIC 3 "-//Puppy Crawl//DTD Check Configuration 1.3//EN" 4 "https://checkstyle.org/dtds/configuration_1_3.dtd"> 5 6 <module name="Checker"> 7 <!-- 8 this config is a copy of 9 https://github.com/checkstyle/checkstyle/blob/master/config/checkstyle_checks.xml 10 with update to global severity=ignore to catch only exceptions. 11 12 Some other checks are commented out to speed up execution time. 13 --> 14 15 <metadata name="com.atlas-sw.eclipse" value="I like Sydney"/> 16 17 <property name="severity" value="ignore"/> 18 19 <!-- BeforeExecutionFileFilters is required for sources of java9 --> 20 <module name="BeforeExecutionExclusionFileFilter"> 21 <property name="fileNamePattern" value="module\-info\.java$" /> 22 </module> 23 24 25 <property name="fileExtensions" value="java, properties, xml, vm, g, g4, dtd"/> 26 27 <!-- BeforeExecutionFileFilters is required for sources that are based on java9 --> 28 <module name="BeforeExecutionExclusionFileFilter"> 29 <property name="fileNamePattern" value="module\-info\.java$" /> 30 </module> 31 32 <!-- Filters --> 33 <module name="SeverityMatchFilter"> 34 <!-- report all violations except ignore --> 35 <property name="severity" value="ignore"/> 36 <property name="acceptOnMatch" value="false"/> 37 </module> 38 <!-- require separate config file 39 <module name="SuppressionFilter"> 40 <property name="file" value="${checkstyle.suppressions.file}"/> 41 </module> 42 --> 43 <module name="SuppressWarningsFilter"/> 44 45 <!-- Headers --> 46 <module name="Header"> 47 <!-- require separate config file, so we use default 48 <property name="headerFile" value="${checkstyle.header.file}"/> 49 <property name="fileExtensions" value="java"/> 50 <property name="id" value="header"/> 51 --> 52 </module> 53 <module name="RegexpHeader"> 54 <!-- require separate config file, so we use default 55 <property name="headerFile" value="${checkstyle.regexp.header.file}"/> 56 <property name="fileExtensions" value="java"/> 57 --> 58 </module> 59 60 <!-- Javadoc Comments --> 61 <module name="JavadocPackage"> 62 <property name="allowLegacy" value="false"/> 63 </module> 64 65 <!-- Miscellaneous --> 66 <module name="NewlineAtEndOfFile"/> 67 <module name="Translation"> 68 <property name="requiredTranslations" value="de, fr, fi, es, pt, ja, tr, zh"/> 69 </module> 70 <module name="UniqueProperties"/> 71 <module name="OrderedProperties"/> 72 73 <!-- Regexp --> 74 <!-- we need only one instance of Check 75 <module name="RegexpMultiline"/> 76 --> 77 <module name="RegexpMultiline"> 78 <property name="format" value="\r?\n[\t ]*\r?\n[\t ]*\r?\n"/> 79 <property name="fileExtensions" value="java,xml,properties"/> 80 <property name="message" value="Unnecessary consecutive lines"/> 81 </module> 82 <!-- we need only one instance of Check 83 <module name="RegexpMultiline"> 84 <property name="format" value="/\*\*\W+\* +\p{javaLowerCase}"/> 85 <property name="fileExtensions" value="java"/> 86 <property name="message" value="First sentence in a comment should start with a capital letter"/> 87 </module> 88 --> 89 <module name="RegexpSingleline"> 90 <property name="format" value="\s+$"/> 91 <property name="minimum" value="0"/> 92 <property name="maximum" value="0"/> 93 </module> 94 <!-- we need only one instance of Check 95 <module name="RegexpSingleline"> 96 <property name="format" value="/\*\* +\p{javaLowerCase}"/> 97 <property name="fileExtensions" value="java"/> 98 <property name="message" value="First sentence in a comment should start with a capital letter"/> 99 </module> 100 <module name="RegexpSingleline"> 101 <property name="format" value="^(?!(.*http|import)).{101,}$"/> 102 <property name="fileExtensions" value="g, g4"/> 103 <property name="message" value="Line should not be longer then 100 symbols"/> 104 </module> 105 --> 106 <module name="RegexpOnFilename" /> 107 <!-- we need only one instance of Check 108 <module name="RegexpOnFilename"> 109 <property name="folderPattern" value="[\\/]src[\\/]\w+[\\/]java[\\/]"/> 110 <property name="fileNamePattern" value="\.java$"/> 111 <property name="match" value="false"/> 112 <message key="regexp.filepath.mismatch" value="Only java files should be located in the ''src/*/java'' folders."/> 113 </module> 114 <module name="RegexpOnFilename"> 115 <property name="folderPattern" value="[\\/]src[\\/]xdocs[\\/]"/> 116 <property name="fileNamePattern" value="\.(xml)|(vm)$"/> 117 <property name="match" value="false"/> 118 <message key="regexp.filepath.mismatch" value="All files in the ''src/xdocs'' folder should have the ''xml'' or ''vm'' extension."/> 119 </module> 120 <module name="RegexpOnFilename"> 121 <property name="folderPattern" value="[\\/]src[\\/]it[\\/]java[\\/]"/> 122 <property name="fileNamePattern" value="^((\w+Test)|(Base\w+))\.java$"/> 123 <property name="match" value="false"/> 124 <message key="regexp.filepath.mismatch" value="All files in the ''src/it/java'' folder should be named ''*Test.java'' or ''Base*.java''."/> 125 </module> 126 --> 127 128 <!-- Size Violations --> 129 <module name="FileLength"> 130 <property name="fileExtensions" value="java"/> 131 </module> 132 <module name="LineLength"> 133 <property name="fileExtensions" value="java"/> 134 <property name="max" value="100"/> 135 <property name="ignorePattern" value="^ *\* *[^ ]+$"/> 136 </module> 137 138 <!-- Whitespace --> 139 <module name="FileTabCharacter"> 140 <property name="eachLine" value="false"/> 141 </module> 142 143 <module name="TreeWalker"> 144 <property name="tabWidth" value="4"/> 145 146 <module name="UnusedLocalVariable"/> 147 <module name="UnusedImports"/> 148 <module name="ExecutableStatementCount"/> 149 <module name="Indentation"/> 150 151 </module> 152 153 </module>