-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheckstyle.xml
More file actions
122 lines (122 loc) · 5.76 KB
/
checkstyle.xml
File metadata and controls
122 lines (122 loc) · 5.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="SuppressionFilter">
<property name="file" value="checkstyle-suppressions.xml" />
</module>
<module name="SuppressWarningsFilter" />
<!-- Make messages show file/line/col -->
<module name="SeverityMatchFilter" />
<!-- Line length -->
<module name="LineLength">
<property name="max" value="100" />
<property name="ignorePattern" value="^package\s|^import\s|https?://|@|^\s*\*" />
</module>
<module name="TreeWalker">
<module name="SuppressWarningsHolder" />
<!-- =========================================
MEMBER ORDERING
========================================= -->
<module name="DeclarationOrder" />
<!-- =========================================
FORMATTING
========================================= -->
<!-- Curly brace style (same-line open, etc.) -->
<module name="LeftCurly">
<property name="option" value="eol" />
</module>
<module name="RightCurly">
<property name="option" value="same" />
</module>
<!-- Whitespace rules (method headers/calls, operators, etc.) -->
<module name="WhitespaceAround" />
<module name="WhitespaceAfter" />
<!-- One statement per line -->
<module name="OneStatementPerLine" />
<!-- Require braces on control statements -->
<module name="NeedBraces" />
<!-- Empty lines: “blank line before each method comment” cannot be done perfectly
but this enforces separation between members. -->
<module name="EmptyLineSeparator">
<property name="allowNoEmptyLineBetweenFields" value="true" />
<property name="allowMultipleEmptyLines" value="false" />
</module>
<!-- Enforces 4 spaces even though 3 is fine -->
<module name="Indentation">
<property name="basicOffset" value="4" />
<property name="braceAdjustment" value="0" />
<property name="caseIndent" value="4" />
<property name="lineWrappingIndentation" value="8" />
<property name="throwsIndent" value="8" />
<property name="arrayInitIndent" value="4" />
</module>
<!-- =========================================
NAMING
========================================= -->
<module name="TypeName" />
<module name="MethodName" />
<module name="ParameterName" />
<module name="LocalVariableName" />
<module name="MemberName" />
<!-- Constants SCREAMING_CASE -->
<module name="ConstantName" />
<!-- =========================================
FIELDS / ACCESS MODIFIERS
========================================= -->
<module name="VisibilityModifier">
<property name="allowPublicFinalFields" value="true" />
<property name="allowPublicImmutableFields" value="true" />
<property name="protectedAllowed" value="false" />
<property name="packageAllowed" value="false" />
</module>
<!-- =========================================
EXCEPTIONS / CONTROL FLOW FORBIDDEN FEATURES
========================================= -->
<!-- No lambdas / method references (Java 8) -->
<module name="IllegalToken">
<property name="tokens" value="LAMBDA,METHOD_REF" />
</module>
<module name="MatchXpath">
<property name="query" value="//OBJBLOCK/VARIABLE_DEF[./ASSIGN and not(./MODIFIERS/FINAL)]" />
<message key="matchxpath.match" value="Do not initialize fields at declaration; initialize in constructors (or a factory)." />
</module>
<!-- No 'var' keyword (Java 10 local var inference) -->
<module name="RegexpSinglelineJava">
<property name="format" value="(^|\s)\bvar\b\s+\w+" />
<property name="message" value="The 'var' keyword is not allowed." />
</module>
<!-- =========================================
JavaDocs/Header Comment
========================================= -->
<!-- Require Javadoc on all types -->
<module name="MissingJavadocType">
<property name="scope" value="private" />
</module>
<!-- Require Javadoc on all methods (ignore main) -->
<module name="MissingJavadocMethod">
<property name="scope" value="private" />
<property name="allowMissingPropertyJavadoc" value="false" />
<property name="ignoreMethodNamesRegex" value="main" />
</module>
<!-- =========================================
Beyond CSE 12X
========================================= -->
<module name="JavadocMethod">
<property name="accessModifiers" value="public,protected,package,private" />
<property name="allowMissingParamTags" value="false" />
<property name="allowMissingReturnTag" value="false" />
<property name="validateThrows" value="true" />
</module>
<!-- Require Javadoc for public constructors -->
<module name="JavadocMethod">
<property name="accessModifiers" value="public,protected,package,private" />
<property name="tokens" value="CTOR_DEF" />
<property name="allowMissingParamTags" value="false" />
<property name="validateThrows" value="true" />
</module>
<module name="EmptyStatement" />
<module name="JavadocStyle">
<property name="checkFirstSentence" value="true" />
</module>
</module>
</module>