Skip to content

Commit 7c80cd2

Browse files
committed
setup spotless and checkstyle
1 parent dbc226f commit 7c80cd2

File tree

6 files changed

+514
-0
lines changed

6 files changed

+514
-0
lines changed

build.gradle.kts

+28
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
22

33
plugins {
44
id("com.github.ben-manes.versions") version "0.39.0"
5+
id("com.diffplug.spotless") version "5.15.1"
56
}
67

78
fun isNonStable(version: String): Boolean {
@@ -16,3 +17,30 @@ tasks.withType<DependencyUpdatesTask> {
1617
isNonStable(candidate.version)
1718
}
1819
}
20+
21+
spotless {
22+
java {
23+
target("**/*.java")
24+
25+
importOrderFile("config/code-formatter/eclipse.importorder")
26+
eclipse().configFile("config/code-formatter/eclipse.xml")
27+
if (JavaVersion.current() < JavaVersion.VERSION_16) {
28+
removeUnusedImports()
29+
} else {
30+
// google-format broken on java 16 (https://github.com/diffplug/spotless/issues/834)
31+
println("Warning! Unused imports remove is disabled for Java 16+")
32+
}
33+
encoding("UTF-8")
34+
trimTrailingWhitespace()
35+
endWithNewline()
36+
}
37+
38+
format("misc") {
39+
target("**/*.gradle.kts", "**/*.md", "**/.gitignore")
40+
targetExclude(".gradle/**", ".idea/**", "*/build/**")
41+
42+
indentWithTabs()
43+
trimTrailingWhitespace()
44+
endWithNewline()
45+
}
46+
}

buildSrc/src/main/kotlin/raung.java-common.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
java
3+
checkstyle
34
}
45

56
group = "io.github.skylot.raung"

config/checkstyle/checkstyle.xml

+128
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
<?xml version="1.0" ?>
2+
3+
<!DOCTYPE module PUBLIC
4+
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
5+
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
6+
7+
<module name="Checker">
8+
<property name="fileExtensions" value="java, properties, xml"/>
9+
<property name="charset" value="UTF-8"/>
10+
11+
<module name="TreeWalker">
12+
<property name="tabWidth" value="4"/>
13+
<module name="RegexpSinglelineJava">
14+
<property name="format" value="^\t* "/>
15+
<property name="message" value="Indent must use tab characters"/>
16+
<property name="ignoreComments" value="true"/>
17+
</module>
18+
<module name="RegexpSinglelineJava">
19+
<property name="format" value="^(?!\s+\* $).*?\s+$"/>
20+
<property name="message" value="Line has trailing spaces."/>
21+
</module>
22+
<module name="AvoidEscapedUnicodeCharacters">
23+
<property name="allowEscapesForControlCharacters" value="true"/>
24+
<property name="allowByTailComment" value="true"/>
25+
<property name="allowNonPrintableEscapes" value="true"/>
26+
</module>
27+
28+
<module name="EmptyLineSeparator">
29+
<property name="allowNoEmptyLineBetweenFields" value="true"/>
30+
<property name="allowMultipleEmptyLines" value="false"/>
31+
</module>
32+
33+
<!-- whitespaces -->
34+
<module name="SingleSpaceSeparator"/>
35+
<module name="GenericWhitespace"/>
36+
<module name="MethodParamPad"/>
37+
<module name="NoWhitespaceBefore"/>
38+
<module name="OperatorWrap"/>
39+
<module name="ParenPad"/>
40+
<module name="TypecastParenPad"/>
41+
<module name="WhitespaceAfter"/>
42+
<module name="WhitespaceAround">
43+
<property name="allowEmptyMethods" value="true"/>
44+
</module>
45+
<!-- <module name="EmptyForIteratorPad"/> -->
46+
<!-- <module name="NoWhitespaceAfter"/>-->
47+
48+
<module name="NoLineWrap"/>
49+
50+
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
51+
<module name="RedundantImport"/>
52+
<module name="UnusedImports"/>
53+
<!-- <module name="AvoidStarImport"/> -->
54+
55+
<module name="NeedBraces"/>
56+
<module name="LeftCurly"/>
57+
<module name="RightCurly"/>
58+
<module name="EmptyCatchBlock">
59+
<property name="exceptionVariableName" value="expected|ignore"/>
60+
</module>
61+
62+
<!-- naming -->
63+
<module name="PackageName"/>
64+
<module name="TypeName"/>
65+
<module name="InterfaceTypeParameterName"/>
66+
<module name="ClassTypeParameterName"/>
67+
<module name="StaticVariableName"/>
68+
<module name="ConstantName"/>
69+
<module name="MemberName"/>
70+
<module name="MethodName"/>
71+
<module name="MethodTypeParameterName"/>
72+
<module name="ParameterName"/>
73+
<module name="LambdaParameterName"/>
74+
<module name="LocalVariableName"/>
75+
<module name="LocalFinalVariableName"/>
76+
<module name="CatchParameterName"/>
77+
<!-- <module name="HiddenField"/> -->
78+
79+
<!-- annotations -->
80+
<module name="AnnotationLocation"/>
81+
<module name="AnnotationUseStyle">
82+
<property name="elementStyle" value="compact"/>
83+
</module>
84+
<module name="MissingOverride"/>
85+
<!-- <module name="MissingDeprecated"/> -->
86+
87+
<module name="ModifierOrder"/>
88+
<!-- <module name="RedundantModifier"/> -->
89+
<!-- <module name="ParameterNumber"/> -->
90+
91+
<module name="EmptyStatement"/>
92+
<module name="DefaultComesLast"/>
93+
<module name="EqualsHashCode"/>
94+
<module name="FallThrough"/>
95+
<!-- <module name="IllegalCatch"/> -->
96+
<module name="IllegalThrows"/>
97+
<module name="IllegalType"/>
98+
<module name="InnerAssignment"/>
99+
<module name="MultipleVariableDeclarations"/>
100+
<module name="NoClone"/>
101+
<module name="NoFinalizer"/>
102+
<module name="OneStatementPerLine"/>
103+
<module name="PackageDeclaration"/>
104+
<module name="StringLiteralEquality"/>
105+
106+
<!-- design -->
107+
<module name="OneTopLevelClass"/>
108+
<module name="MutableException"/>
109+
<module name="InterfaceIsType"/>
110+
<module name="ThrowsCount">
111+
<property name="max" value="2"/>
112+
</module>
113+
114+
<!-- misc -->
115+
<module name="ArrayTypeStyle"/>
116+
<module name="OuterTypeFilename"/>
117+
118+
<!-- sizes -->
119+
<module name="OuterTypeNumber"/>
120+
121+
<module name="SuppressWarningsHolder"/>
122+
123+
<module name="IllegalType"/>
124+
</module>
125+
126+
<module name="NewlineAtEndOfFile"/>
127+
<module name="SuppressWarningsFilter"/>
128+
</module>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#Import Order
2+
0=java
3+
1=javax
4+
2=com
5+
3=org
6+
4=
7+
5=io.github.skylot.raung
8+
6=\#

0 commit comments

Comments
 (0)