Skip to content

Commit 5bb718a

Browse files
committed
Added checkstyle and editorconfig
1 parent 90ddcdb commit 5bb718a

6 files changed

Lines changed: 406 additions & 16 deletions

File tree

.editorconfig

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
indent_style = space
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
9+
[*.{java,xml,gradle}]
10+
tab_width = 4
11+
indent_size = 4
12+
13+
[*.{json,yml,yaml}]
14+
tab_width = 2
15+
indent_size = 2
16+
17+
[*.md]
18+
trim_trailing_whitespace = false
19+
20+
[*.java]
21+
max_line_length = off
22+
ij_java_imports_layout = *, |, javax.**, java.**, |, $*
23+
ij_java_doc_enable_formatting = true
24+
ij_java_doc_use_throws_not_exception_tag = true
25+
26+
# Checkstyle: AnnotationLocation
27+
ij_java_class_annotation_wrap = split_into_lines
28+
ij_java_field_annotation_wrap = split_into_lines
29+
ij_java_method_annotation_wrap = split_into_lines
30+
31+
# Checkstyle: AvoidStarImport
32+
ij_java_use_single_class_imports = true
33+
ij_java_class_count_to_use_import_on_demand = 999999
34+
ij_java_names_count_to_use_import_on_demand = 3
35+
ij_java_packages_to_use_import_on_demand =
36+
37+
# Checkstyle: EmptyForInitializerPad
38+
ij_java_space_before_for_semicolon = false
39+
40+
# Checkstyle: EmptyLineSeparator
41+
ij_java_blank_lines_after_package = 1
42+
ij_java_blank_lines_after_imports = 1
43+
ij_java_blank_lines_around_class = 1
44+
ij_java_blank_lines_around_initializer = 1
45+
ij_java_blank_lines_around_method = 1
46+
ij_java_blank_lines_around_method_in_interface = 1
47+
ij_java_blank_lines_around_field = 0
48+
ij_java_blank_lines_around_field_in_interface = 0
49+
ij_java_blank_lines_around_field_with_annotations = 0
50+
ij_java_keep_blank_lines_before_right_brace = 1
51+
ij_java_keep_blank_lines_in_code = 1
52+
ij_java_keep_blank_lines_in_declarations = 1
53+
54+
# Checkstyle: FinalLocalVariable
55+
ij_java_generate_final_locals = true
56+
ij_java_generate_final_parameters = true
57+
58+
# Checkstyle: GenericWhitespace
59+
ij_java_spaces_within_angle_brackets = false
60+
ij_java_space_before_opening_angle_bracket_in_type_parameter = false
61+
ij_java_space_after_closing_angle_bracket_in_type_argument = false
62+
ij_java_spaces_around_type_bounds_in_type_parameters = true
63+
64+
# Checkstyle: JavadocMissingLeadingAsterisk
65+
ij_java_doc_enable_leading_asterisks = true
66+
67+
# Checkstyle: LeftCurly
68+
ij_java_block_brace_style = end_of_line
69+
ij_java_class_brace_style = end_of_line
70+
ij_java_method_brace_style = end_of_line
71+
ij_java_lambda_brace_style = end_of_line
72+
73+
# Checkstyle: MethodParamPad
74+
ij_java_space_before_method_call_parentheses = false
75+
ij_java_space_before_method_parentheses = false
76+
77+
# Checkstyle: NeedBraces
78+
ij_java_if_brace_force = always
79+
ij_java_for_brace_force = always
80+
ij_java_while_brace_force = always
81+
ij_java_do_while_brace_force = always
82+
83+
# Checkstyle: NoWhitespaceAfter / NoWhitespaceBefore
84+
ij_java_spaces_around_unary_operator = false
85+
86+
# Checkstyle: NoWhitespaceBefore
87+
ij_java_space_before_comma = false
88+
89+
# Checkstyle: OneStatementPerLine
90+
ij_java_keep_multiple_expressions_in_one_line = false
91+
92+
# Checkstyle: OperatorWrap
93+
ij_java_binary_operation_sign_on_next_line = true
94+
ij_java_ternary_operation_signs_on_next_line = true
95+
96+
# Checkstyle: ParenPad
97+
ij_java_spaces_within_method_call_parentheses = false
98+
ij_java_spaces_within_method_parentheses = false
99+
ij_java_spaces_within_parentheses = false
100+
ij_java_spaces_within_if_parentheses = false
101+
ij_java_spaces_within_for_parentheses = false
102+
ij_java_spaces_within_while_parentheses = false
103+
ij_java_spaces_within_switch_parentheses = false
104+
ij_java_spaces_within_catch_parentheses = false
105+
ij_java_spaces_within_synchronized_parentheses = false
106+
ij_java_spaces_within_try_parentheses = false
107+
108+
# Checkstyle: RequireEmptyLineBeforeBlockTagGroup
109+
ij_java_doc_add_blank_line_after_description = true
110+
111+
# Checkstyle: RightCurly
112+
ij_java_else_on_new_line = false
113+
ij_java_catch_on_new_line = false
114+
ij_java_finally_on_new_line = false
115+
ij_java_while_on_new_line = false
116+
117+
# Checkstyle: SeparatorWrap
118+
ij_java_method_call_chain_wrap = normal
119+
ij_java_wrap_first_method_in_call_chain = false
120+
121+
# Checkstyle: TypecastParenPad
122+
ij_java_spaces_within_cast_parentheses = false
123+
124+
# Checkstyle: WhitespaceAfter
125+
ij_java_space_after_type_cast = true
126+
ij_java_space_after_for_semicolon = true
127+
ij_java_space_after_comma = true
128+
ij_java_space_after_comma_in_type_arguments = true
129+
130+
# Checkstyle: WhitespaceAround
131+
ij_java_space_before_if_parentheses = true
132+
ij_java_space_before_for_parentheses = true
133+
ij_java_space_before_while_parentheses = true
134+
ij_java_space_before_switch_parentheses = true
135+
ij_java_space_before_catch_parentheses = true
136+
ij_java_space_before_synchronized_parentheses = true
137+
ij_java_space_before_try_parentheses = true
138+
ij_java_spaces_around_additive_operators = true
139+
ij_java_spaces_around_assignment_operators = true
140+
ij_java_spaces_around_bitwise_operators = true
141+
ij_java_spaces_around_equality_operators = true
142+
ij_java_spaces_around_lambda_arrow = true
143+
ij_java_spaces_around_logical_operators = true
144+
ij_java_spaces_around_multiplicative_operators = true
145+
ij_java_spaces_around_relational_operators = true
146+
ij_java_spaces_around_shift_operators = true
147+
ij_java_space_before_quest = true
148+
ij_java_space_after_quest = true
149+
ij_java_space_before_colon = true
150+
ij_java_space_after_colon = true
151+
ij_java_space_before_colon_in_foreach = true
152+
ij_java_space_before_class_left_brace = true
153+
ij_java_space_before_method_left_brace = true
154+
ij_java_space_before_if_left_brace = true
155+
ij_java_space_before_for_left_brace = true
156+
ij_java_space_before_while_left_brace = true
157+
ij_java_space_before_switch_left_brace = true
158+
ij_java_space_before_try_left_brace = true
159+
ij_java_space_before_catch_left_brace = true
160+
ij_java_space_before_else_left_brace = true
161+
ij_java_space_before_finally_left_brace = true
162+
ij_java_space_before_do_left_brace = true
163+
ij_java_space_before_synchronized_left_brace = true
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
plugins {
2+
id "checkstyle"
3+
}
4+
5+
checkstyle {
6+
toolVersion = "13.9.0"
7+
configProperties = [
8+
javaVersion: java.toolchain.languageVersion.get().asInt(),
9+
typeParameterNameFormat: "^[A-Z0-9_]+\$",
10+
allowedAbbreviationLength: 0,
11+
]
12+
config = resources.text.fromString(/* language=XML */ """
13+
<!DOCTYPE module PUBLIC
14+
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
15+
"https://checkstyle.org/dtds/configuration_1_3.dtd">
16+
17+
<module name="Checker">
18+
<property name="tabWidth" value="4"/>
19+
<module name="FileTabCharacter"/>
20+
<module name="NewlineAtEndOfFile"/>
21+
<module name="TreeWalker">
22+
<module name="AbbreviationAsWordInName">
23+
<property name="allowedAbbreviationLength" value="\${allowedAbbreviationLength}"/>
24+
<property name="ignoreFinal" value="false"/>
25+
</module>
26+
<module name="AnnotationLocation">
27+
<property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
28+
</module>
29+
<module name="AnnotationUseStyle"/>
30+
<module name="ArrayTypeStyle"/>
31+
<module name="AtclauseOrder"/>
32+
<module name="AvoidEscapedUnicodeCharacters"/>
33+
<module name="AvoidNoArgumentSuperConstructorCall"/>
34+
<module name="AvoidStarImport">
35+
<property name="allowStaticMemberImports" value="true"/>
36+
</module>
37+
<module name="ClassTypeParameterName">
38+
<property name="format" value="\${typeParameterNameFormat}"/>
39+
</module>
40+
<module name="CommentsIndentation"/>
41+
<module name="ConstantName"/>
42+
<module name="ConstructorsDeclarationGrouping"/>
43+
<module name="CovariantEquals"/>
44+
<module name="DeclarationOrder">
45+
<property name="ignoreConstructors" value="true"/>
46+
<property name="ignoreModifiers" value="true"/>
47+
</module>
48+
<module name="DefaultComesLast">
49+
<property name="skipIfLastAndSharedWithCase" value="true"/>
50+
</module>
51+
<module name="EmptyBlock">
52+
<property name="option" value="text"/>
53+
</module>
54+
<module name="EmptyCatchBlock">
55+
<property name="exceptionVariableName" value="^(?:_|ignored?)\$"/>
56+
</module>
57+
<module name="EmptyForInitializerPad"/>
58+
<module name="EmptyForIteratorPad">
59+
<property name="option" value="space"/>
60+
</module>
61+
<module name="EmptyLineSeparator">
62+
<property name="allowMultipleEmptyLines" value="false"/>
63+
<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
64+
<property name="allowNoEmptyLineBetweenFields" value="true"/>
65+
<property name="tokens" value="IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF, COMPACT_CTOR_DEF"/>
66+
</module>
67+
<module name="EmptyStatement"/>
68+
<module name="EqualsHashCode"/>
69+
<module name="FallThrough">
70+
<property name="checkLastCaseGroup" value="true"/>
71+
</module>
72+
<module name="FinalClass"/>
73+
<module name="FinalLocalVariable">
74+
<property name="validateUnnamedVariables" value="true"/>
75+
<property name="tokens" value="VARIABLE_DEF, PARAMETER_DEF"/>
76+
</module>
77+
<module name="GenericWhitespace"/>
78+
<module name="HexLiteralCase"/>
79+
<module name="HideUtilityClassConstructor"/>
80+
<module name="IllegalImport"/>
81+
<module name="IllegalSymbol"/>
82+
<module name="Indentation"/>
83+
<module name="InnerTypeLast"/>
84+
<module name="InterfaceIsType"/>
85+
<module name="InterfaceTypeParameterName">
86+
<property name="format" value="\${typeParameterNameFormat}"/>
87+
</module>
88+
<module name="InvalidJavadocPosition"/>
89+
<module name="JavadocBlockTagLocation"/>
90+
<module name="JavadocContentLocation"/>
91+
<module name="JavadocLeadingAsteriskAlign"/>
92+
<module name="JavadocMissingLeadingAsterisk"/>
93+
<module name="JavadocMissingWhitespaceAfterAsterisk"/>
94+
<module name="JavadocTagContinuationIndentation"/>
95+
<module name="LambdaParameterName"/>
96+
<module name="LeftCurly">
97+
<property name="ignoreEnums" value="false"/>
98+
</module>
99+
<module name="LocalFinalVariableName"/>
100+
<module name="LocalVariableName"/>
101+
<module name="MemberName">
102+
<property name="format" value="^[a-z_]\\w*\$"/>
103+
</module>
104+
<module name="MethodName">
105+
<property name="format" value="^[a-z_]\\w*\$"/>
106+
</module>
107+
<module name="MethodParamPad"/>
108+
<module name="MethodTypeParameterName">
109+
<property name="format" value="\${typeParameterNameFormat}"/>
110+
</module>
111+
<module name="MissingDeprecated"/>
112+
<module name="MissingOverride"/>
113+
<module name="MissingOverrideOnRecordAccessor"/>
114+
<module name="ModifiedControlVariable"/>
115+
<module name="ModifierOrder"/>
116+
<module name="MultilineCommentLeadingAsteriskPresence"/>
117+
<module name="MultipleVariableDeclarations"/>
118+
<module name="MutableException"/>
119+
<module name="NeedBraces"/>
120+
<module name="NoArrayTrailingComma"/>
121+
<module name="NoClone"/>
122+
<module name="NoCodeInFile"/>
123+
<module name="NoEnumTrailingComma"/>
124+
<module name="NoFinalizer"/>
125+
<module name="NoLineWrap"/>
126+
<module name="NoWhitespaceAfter"/>
127+
<module name="NoWhitespaceBefore"/>
128+
<module name="NoWhitespaceBeforeCaseDefaultColon"/>
129+
<module name="NonEmptyAtclauseDescription"/>
130+
<module name="OneStatementPerLine">
131+
<property name="treatTryResourcesAsStatement" value="true"/>
132+
</module>
133+
<module name="OneTopLevelClass"/>
134+
<module name="OperatorWrap"/>
135+
<module name="OuterTypeFilename"/>
136+
<module name="OverloadMethodsDeclarationOrder"/>
137+
<module name="PackageName">
138+
<property name="format" value="^[a-z]+(\\.[a-z][a-z0-9_]*)*\$"/>
139+
</module>
140+
<module name="ParameterName">
141+
<property name="ignoreOverridden" value="true"/>
142+
</module>
143+
<module name="ParenPad"/>
144+
<module name="PatternVariableAssignment"/>
145+
<module name="PatternVariableName"/>
146+
<module name="RecordComponentName"/>
147+
<module name="RecordTypeParameterName">
148+
<property name="format" value="\${typeParameterNameFormat}"/>
149+
</module>
150+
<module name="RedundantImport"/>
151+
<module name="RedundantModifier">
152+
<property name="jdkVersion" value="\${javaVersion}"/>
153+
<property name="tokens" value="ANNOTATION_FIELD_DEF, INTERFACE_DEF, CTOR_DEF, CLASS_DEF, ENUM_DEF, RESOURCE, ANNOTATION_DEF, RECORD_DEF, PATTERN_VARIABLE_DEF, LAMBDA"/>
154+
</module>
155+
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
156+
<module name="RequireThis">
157+
<property name="validateOnlyOverlapping" value="false"/>
158+
</module>
159+
<module name="RightCurly"/>
160+
<module name="SealedShouldHavePermitsList"/>
161+
<module name="SeparatorWrap">
162+
<property name="option" value="eol"/>
163+
<property name="tokens" value="COMMA, SEMI, ELLIPSIS, ARRAY_DECLARATOR, RBRACK"/>
164+
</module>
165+
<module name="SeparatorWrap">
166+
<property name="option" value="nl"/>
167+
<property name="tokens" value="DOT, AT, METHOD_REF"/>
168+
</module>
169+
<module name="SimplifyBooleanExpression"/>
170+
<module name="SimplifyBooleanReturn"/>
171+
<module name="SingleLineJavadoc"/>
172+
<module name="SingleSpaceSeparator"/>
173+
<module name="StaticVariableName">
174+
<property name="format" value="^\\w+\$"/>
175+
</module>
176+
<module name="StringLiteralEquality"/>
177+
<module name="TypeBodyPadding"/>
178+
<module name="TypeName">
179+
<property name="format" value="^[A-Z]\\w*\$"/>
180+
</module>
181+
<module name="TypecastParenPad"/>
182+
<module name="UnnecessaryNullCheckWithInstanceOf"/>
183+
<module name="UnnecessarySemicolonAfterOuterTypeDeclaration"/>
184+
<module name="UnnecessarySemicolonAfterTypeMemberDeclaration"/>
185+
<module name="UnnecessarySemicolonInEnumeration"/>
186+
<module name="UnnecessarySemicolonInTryWithResources"/>
187+
${configProperties.javaVersion >= 22 ? '<module name="UnusedCatchParameterShouldBeUnnamed"/>' : ''}
188+
<module name="UnusedImports"/>
189+
${configProperties.javaVersion >= 22 ? '<module name="UnusedLambdaParameterShouldBeUnnamed"/>' : ''}
190+
<module name="UnusedLocalVariable">
191+
<property name="allowUnnamedVariables" value="false"/>
192+
<property name="jdkVersion" value="\${javaVersion}"/>
193+
</module>
194+
${configProperties.javaVersion >= 22 ? '<module name="UnusedTryResourceShouldBeUnnamed"/>' : ''}
195+
<module name="UpperEll"/>
196+
${configProperties.javaVersion >= 14 ? '<module name="UseEnhancedSwitch"/>' : ''}
197+
<module name="VisibilityModifier">
198+
<property name="packageAllowed" value="true"/>
199+
<property name="protectedAllowed" value="true"/>
200+
</module>
201+
${configProperties.javaVersion >= 21 ? '<module name="WhenShouldBeUsed"/>' : ''}
202+
<module name="WhitespaceAfter"/>
203+
<module name="WhitespaceAround">
204+
<property name="ignoreEnhancedForColon" value="false"/>
205+
</module>
206+
<module name="SuppressWarningsHolder"/>
207+
<module name="SuppressWithNearbyCommentFilter"/>
208+
</module>
209+
<module name="SuppressWarningsFilter"/>
210+
</module>
211+
""")
212+
}
213+
214+
tasks.withType(Checkstyle).configureEach {
215+
javaLauncher = javaToolchains.launcherFor {
216+
languageVersion = JavaLanguageVersion.of(21)
217+
}
218+
}

buildSrc/src/main/groovy/viaproxy.plugin-conventions.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id "java-library"
33
id "base.base-conventions"
4+
id "base.checkstyle"
45
id "base.include-in-jar-configuration"
56
id "viaproxy.run-with-viaproxy-task"
67
}

0 commit comments

Comments
 (0)