|
1 | 1 | <?xml version="1.0"?> |
2 | 2 | <!DOCTYPE module PUBLIC |
3 | | - "-//Puppy Crawl//DTD Check Configuration 1.3//EN" |
4 | | - "http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd"> |
| 3 | + "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" |
| 4 | + "https://checkstyle.org/dtds/configuration_1_3.dtd"> |
5 | 5 |
|
6 | 6 | <!-- |
7 | 7 | The following content was obtained from: |
|
12 | 12 | - <module name="Header"> added |
13 | 13 |
|
14 | 14 | Checkstyle configuration that checks the Google coding conventions from Google Java Style |
15 | | - that can be found at https://google.github.io/styleguide/javaguide.html. |
| 15 | + that can be found at https://google.github.io/styleguide/javaguide.html |
16 | 16 |
|
17 | 17 | Checkstyle is very configurable. Be sure to read the documentation at |
18 | 18 | http://checkstyle.sf.net (or in your downloaded distribution). |
|
42 | 42 | <property name="severity" value="warning"/> |
43 | 43 |
|
44 | 44 | <property name="fileExtensions" value="java, properties, xml"/> |
| 45 | + <!-- Excludes all 'module-info.java' files --> |
| 46 | + <!-- See https://checkstyle.org/config_filefilters.html --> |
| 47 | + <module name="BeforeExecutionExclusionFileFilter"> |
| 48 | + <property name="fileNamePattern" value="module\-info\.java$"/> |
| 49 | + </module> |
45 | 50 | <!-- Checks for whitespace --> |
46 | 51 | <!-- See http://checkstyle.sf.net/config_whitespace.html --> |
47 | | - <module name="FileTabCharacter"> |
48 | | - <property name="eachLine" value="true"/> |
49 | | - </module> |
| 52 | + <module name="FileTabCharacter"> |
| 53 | + <property name="eachLine" value="true"/> |
| 54 | + </module> |
| 55 | + |
| 56 | + <module name="LineLength"> |
| 57 | + <property name="fileExtensions" value="java"/> |
| 58 | + <property name="max" value="100"/> |
| 59 | + <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> |
| 60 | + </module> |
50 | 61 |
|
51 | 62 | <module name="TreeWalker"> |
52 | 63 | <module name="OuterTypeFilename"/> |
53 | 64 | <module name="IllegalTokenText"> |
54 | 65 | <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/> |
55 | | - <property name="format" value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/> |
56 | | - <property name="message" value="Consider using special escape sequence instead of octal value or Unicode escaped value."/> |
| 66 | + <property name="format" |
| 67 | + value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/> |
| 68 | + <property name="message" |
| 69 | + value="Consider using special escape sequence instead of octal value or Unicode escaped value."/> |
57 | 70 | </module> |
58 | 71 | <module name="AvoidEscapedUnicodeCharacters"> |
59 | 72 | <property name="allowEscapesForControlCharacters" value="true"/> |
60 | 73 | <property name="allowByTailComment" value="true"/> |
61 | 74 | <property name="allowNonPrintableEscapes" value="true"/> |
62 | 75 | </module> |
63 | | - <module name="LineLength"> |
64 | | - <property name="max" value="100"/> |
65 | | - <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> |
66 | | - </module> |
67 | 76 | <module name="AvoidStarImport"/> |
68 | 77 | <module name="OneTopLevelClass"/> |
69 | 78 | <module name="NoLineWrap"/> |
70 | 79 | <module name="EmptyBlock"> |
71 | 80 | <property name="option" value="TEXT"/> |
72 | | - <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> |
| 81 | + <property name="tokens" |
| 82 | + value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> |
73 | 83 | </module> |
74 | 84 | <module name="NeedBraces"/> |
75 | 85 | <module name="LeftCurly"/> |
76 | 86 | <module name="RightCurly"> |
77 | 87 | <property name="id" value="RightCurlySame"/> |
78 | | - <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_DO"/> |
| 88 | + <property name="tokens" |
| 89 | + value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, |
| 90 | + LITERAL_DO"/> |
79 | 91 | </module> |
80 | 92 | <module name="RightCurly"> |
81 | 93 | <property name="id" value="RightCurlyAlone"/> |
82 | 94 | <property name="option" value="alone"/> |
83 | | - <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/> |
| 95 | + <property name="tokens" |
| 96 | + value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, |
| 97 | + INSTANCE_INIT"/> |
84 | 98 | </module> |
85 | 99 | <module name="WhitespaceAround"> |
86 | 100 | <property name="allowEmptyConstructors" value="true"/> |
| 101 | + <property name="allowEmptyLambdas" value="true"/> |
87 | 102 | <property name="allowEmptyMethods" value="true"/> |
88 | 103 | <property name="allowEmptyTypes" value="true"/> |
89 | 104 | <property name="allowEmptyLoops" value="true"/> |
90 | 105 | <message key="ws.notFollowed" |
91 | | - value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> |
92 | | - <message key="ws.notPreceded" |
93 | | - value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> |
| 106 | + value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> |
| 107 | + <message key="ws.notPreceded" |
| 108 | + value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> |
94 | 109 | </module> |
95 | 110 | <module name="OneStatementPerLine"/> |
96 | 111 | <module name="MultipleVariableDeclarations"/> |
|
132 | 147 | <module name="PackageName"> |
133 | 148 | <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> |
134 | 149 | <message key="name.invalidPattern" |
135 | | - value="Package name ''{0}'' must match pattern ''{1}''."/> |
| 150 | + value="Package name ''{0}'' must match pattern ''{1}''."/> |
136 | 151 | </module> |
137 | 152 | <module name="TypeName"> |
138 | 153 | <message key="name.invalidPattern" |
139 | | - value="Type name ''{0}'' must match pattern ''{1}''."/> |
| 154 | + value="Type name ''{0}'' must match pattern ''{1}''."/> |
140 | 155 | </module> |
141 | 156 | <module name="MemberName"> |
142 | 157 | <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/> |
143 | 158 | <message key="name.invalidPattern" |
144 | | - value="Member name ''{0}'' must match pattern ''{1}''."/> |
| 159 | + value="Member name ''{0}'' must match pattern ''{1}''."/> |
145 | 160 | </module> |
146 | 161 | <module name="ParameterName"> |
147 | 162 | <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> |
148 | 163 | <message key="name.invalidPattern" |
149 | | - value="Parameter name ''{0}'' must match pattern ''{1}''."/> |
| 164 | + value="Parameter name ''{0}'' must match pattern ''{1}''."/> |
| 165 | + </module> |
| 166 | + <module name="LambdaParameterName"> |
| 167 | + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> |
| 168 | + <message key="name.invalidPattern" |
| 169 | + value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/> |
150 | 170 | </module> |
151 | 171 | <module name="CatchParameterName"> |
152 | 172 | <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> |
153 | 173 | <message key="name.invalidPattern" |
154 | | - value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> |
| 174 | + value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> |
155 | 175 | </module> |
156 | 176 | <module name="LocalVariableName"> |
157 | 177 | <property name="tokens" value="VARIABLE_DEF"/> |
158 | 178 | <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> |
159 | 179 | <message key="name.invalidPattern" |
160 | | - value="Local variable name ''{0}'' must match pattern ''{1}''."/> |
| 180 | + value="Local variable name ''{0}'' must match pattern ''{1}''."/> |
161 | 181 | </module> |
162 | 182 | <module name="ClassTypeParameterName"> |
163 | 183 | <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> |
164 | 184 | <message key="name.invalidPattern" |
165 | | - value="Class type name ''{0}'' must match pattern ''{1}''."/> |
| 185 | + value="Class type name ''{0}'' must match pattern ''{1}''."/> |
166 | 186 | </module> |
167 | 187 | <module name="MethodTypeParameterName"> |
168 | 188 | <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> |
169 | 189 | <message key="name.invalidPattern" |
170 | | - value="Method type name ''{0}'' must match pattern ''{1}''."/> |
| 190 | + value="Method type name ''{0}'' must match pattern ''{1}''."/> |
171 | 191 | </module> |
172 | 192 | <module name="InterfaceTypeParameterName"> |
173 | 193 | <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> |
174 | 194 | <message key="name.invalidPattern" |
175 | | - value="Interface type name ''{0}'' must match pattern ''{1}''."/> |
| 195 | + value="Interface type name ''{0}'' must match pattern ''{1}''."/> |
176 | 196 | </module> |
177 | 197 | <module name="NoFinalizer"/> |
178 | 198 | <module name="GenericWhitespace"> |
179 | 199 | <message key="ws.followed" |
180 | | - value="GenericWhitespace ''{0}'' is followed by whitespace."/> |
181 | | - <message key="ws.preceded" |
182 | | - value="GenericWhitespace ''{0}'' is preceded with whitespace."/> |
183 | | - <message key="ws.illegalFollow" |
184 | | - value="GenericWhitespace ''{0}'' should followed by whitespace."/> |
185 | | - <message key="ws.notPreceded" |
186 | | - value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> |
| 200 | + value="GenericWhitespace ''{0}'' is followed by whitespace."/> |
| 201 | + <message key="ws.preceded" |
| 202 | + value="GenericWhitespace ''{0}'' is preceded with whitespace."/> |
| 203 | + <message key="ws.illegalFollow" |
| 204 | + value="GenericWhitespace ''{0}'' should followed by whitespace."/> |
| 205 | + <message key="ws.notPreceded" |
| 206 | + value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> |
187 | 207 | </module> |
188 | 208 | <module name="Indentation"> |
189 | 209 | <property name="basicOffset" value="2"/> |
|
205 | 225 | <property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/> |
206 | 226 | </module> |
207 | 227 | <module name="MethodParamPad"/> |
| 228 | + <module name="NoWhitespaceBefore"> |
| 229 | + <property name="tokens" |
| 230 | + value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/> |
| 231 | + <property name="allowLineBreaks" value="true"/> |
| 232 | + </module> |
208 | 233 | <module name="ParenPad"/> |
209 | 234 | <module name="OperatorWrap"> |
210 | 235 | <property name="option" value="NL"/> |
211 | | - <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/> |
| 236 | + <property name="tokens" |
| 237 | + value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, |
| 238 | + LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/> |
212 | 239 | </module> |
213 | 240 | <module name="AnnotationLocation"> |
214 | 241 | <property name="id" value="AnnotationLocationMostCases"/> |
215 | | - <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> |
| 242 | + <property name="tokens" |
| 243 | + value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> |
216 | 244 | </module> |
217 | 245 | <module name="AnnotationLocation"> |
218 | 246 | <property name="id" value="AnnotationLocationVariables"/> |
219 | 247 | <property name="tokens" value="VARIABLE_DEF"/> |
220 | 248 | <property name="allowSamelineMultipleAnnotations" value="true"/> |
221 | 249 | </module> |
222 | 250 | <module name="NonEmptyAtclauseDescription"/> |
| 251 | + <module name="InvalidJavadocPosition"/> |
223 | 252 | <module name="JavadocTagContinuationIndentation"/> |
224 | 253 | <module name="SummaryJavadoc"> |
225 | | - <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> |
| 254 | + <property name="forbiddenSummaryFragments" |
| 255 | + value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> |
226 | 256 | </module> |
227 | 257 | <module name="JavadocParagraph"/> |
228 | 258 | <module name="AtclauseOrder"> |
229 | 259 | <property name="tagOrder" value="@param, @return, @throws, @deprecated"/> |
230 | | - <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/> |
| 260 | + <property name="target" |
| 261 | + value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/> |
231 | 262 | </module> |
232 | 263 | <module name="JavadocMethod"> |
233 | 264 | <property name="scope" value="public"/> |
234 | 265 | <property name="allowMissingParamTags" value="true"/> |
235 | 266 | <property name="allowMissingThrowsTags" value="true"/> |
236 | 267 | <property name="allowMissingReturnTag" value="true"/> |
237 | | - <property name="minLineCount" value="2"/> |
238 | 268 | <property name="allowedAnnotations" value="Override, Test"/> |
239 | 269 | <property name="allowThrowsTagsForSubclasses" value="true"/> |
240 | 270 | </module> |
| 271 | + <module name="MissingJavadocMethod"> |
| 272 | + <property name="scope" value="public"/> |
| 273 | + <property name="minLineCount" value="2"/> |
| 274 | + <property name="allowedAnnotations" value="Override, Test"/> |
| 275 | + </module> |
241 | 276 | <module name="MethodName"> |
242 | 277 | <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/> |
243 | 278 | <message key="name.invalidPattern" |
244 | | - value="Method name ''{0}'' must match pattern ''{1}''."/> |
| 279 | + value="Method name ''{0}'' must match pattern ''{1}''."/> |
245 | 280 | </module> |
246 | 281 | <module name="SingleLineJavadoc"> |
247 | 282 | <property name="ignoreInlineTags" value="false"/> |
|
0 commit comments