Skip to content

Commit 3036a12

Browse files
wdscheiwdschei
authored andcommitted
Added Scalastyle support to the entire project in a way to be informative, but not fail the build.
1 parent fdbfdb7 commit 3036a12

2 files changed

Lines changed: 281 additions & 0 deletions

File tree

pom.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,32 @@
221221
</plugin>
222222
</plugins>
223223
</pluginManagement>
224+
<plugins>
225+
<plugin>
226+
<groupId>org.scalastyle</groupId>
227+
<artifactId>scalastyle-maven-plugin</artifactId>
228+
<version>0.8.0</version>
229+
<configuration>
230+
<configLocation>project/scalastyle_config.xml</configLocation>
231+
<!-- When this is ready to go live, set these two failOn's to TRUE. -->
232+
<failOnViolation>false</failOnViolation>
233+
<failOnWarning>false</failOnWarning>
234+
<includeTestSourceDirectory>true</includeTestSourceDirectory>
235+
<sourceDirectory>${project.basedir}/src/main/scala</sourceDirectory>
236+
<testSourceDirectory>${project.basedir}/src/test/scala</testSourceDirectory>
237+
<outputFile>${project.build.directory}/scalastyle_output.xml</outputFile>
238+
<outputEncoding>UTF-8</outputEncoding>
239+
</configuration>
240+
<executions>
241+
<execution>
242+
<phase>verify</phase>
243+
<goals>
244+
<goal>check</goal>
245+
</goals>
246+
</execution>
247+
</executions>
248+
</plugin>
249+
</plugins>
224250
</build>
225251
<profiles>
226252
<profile>

project/scalastyle_config.xml

Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
<scalastyle>
2+
<name>
3+
Scalastyle standard configuration v0.8.0
4+
with some additions for IntelliJ IDEA default source formatter,
5+
some disabled, and some slightly modified for this codebase.
6+
</name>
7+
<check level="warning" class="org.scalastyle.file.FileTabChecker" enabled="true"/>
8+
<check level="warning" class="org.scalastyle.file.FileLengthChecker" enabled="true">
9+
<parameters>
10+
<parameter name="maxFileLength"><![CDATA[800]]></parameter>
11+
</parameters>
12+
</check>
13+
<check level="warning" class="org.scalastyle.file.HeaderMatchesChecker" enabled="true">
14+
<parameters>
15+
<parameter name="header"><![CDATA[/**
16+
* Copyright 2016 Rackspace US, Inc.
17+
*
18+
* Licensed under the Apache License, Version 2.0 (the "License");
19+
* you may not use this file except in compliance with the License.
20+
* You may obtain a copy of the License at
21+
*
22+
* http://www.apache.org/licenses/LICENSE-2.0
23+
*
24+
* Unless required by applicable law or agreed to in writing, software
25+
* distributed under the License is distributed on an "AS IS" BASIS,
26+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
27+
* See the License for the specific language governing permissions and
28+
* limitations under the License.
29+
*/]]></parameter>
30+
</parameters>
31+
</check>
32+
<check level="warning" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="true"/>
33+
<check level="warning" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true">
34+
<parameters>
35+
<parameter name="ignoreWhitespaceLines"><![CDATA[false]]></parameter>
36+
</parameters>
37+
</check>
38+
<check level="warning" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"/>
39+
<check level="warning" class="org.scalastyle.file.FileLineLengthChecker" enabled="true">
40+
<parameters>
41+
<parameter name="maxLineLength"><![CDATA[160]]></parameter>
42+
<parameter name="tabSize"><![CDATA[4]]></parameter>
43+
</parameters>
44+
</check>
45+
<check level="warning" class="org.scalastyle.scalariform.ClassNamesChecker" enabled="true">
46+
<parameters>
47+
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
48+
</parameters>
49+
</check>
50+
<check level="warning" class="org.scalastyle.scalariform.ObjectNamesChecker" enabled="true">
51+
<parameters>
52+
<parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
53+
</parameters>
54+
</check>
55+
<check level="warning" class="org.scalastyle.scalariform.PackageNamesChecker" enabled="true">
56+
<parameters>
57+
<parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter>
58+
</parameters>
59+
</check>
60+
<check level="warning" class="org.scalastyle.scalariform.PackageObjectNamesChecker" enabled="true">
61+
<parameters>
62+
<parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter>
63+
</parameters>
64+
</check>
65+
<check level="warning" class="org.scalastyle.scalariform.EqualsHashCodeChecker" enabled="true"/>
66+
<check level="warning" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true">
67+
<parameters>
68+
<parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter>
69+
</parameters>
70+
</check>
71+
<check level="warning" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="true">
72+
<parameters>
73+
<parameter name="maxParameters"><![CDATA[8]]></parameter>
74+
</parameters>
75+
</check>
76+
<check level="warning" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="true">
77+
<parameters>
78+
<parameter name="ignore"><![CDATA[-1,0,1,2,3]]></parameter>
79+
</parameters>
80+
</check>
81+
<check level="warning" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker" enabled="true"/>
82+
<check level="warning" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker" enabled="true"/>
83+
<check level="warning" class="org.scalastyle.scalariform.ReturnChecker" enabled="true"/>
84+
<!-- Disabled to allow easier interaction with Java API's. -->
85+
<check level="warning" class="org.scalastyle.scalariform.NullChecker" enabled="false"/>
86+
<check level="warning" class="org.scalastyle.scalariform.NoCloneChecker" enabled="true"/>
87+
<check level="warning" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"/>
88+
<check level="warning" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"/>
89+
<check level="warning" class="org.scalastyle.scalariform.StructuralTypeChecker" enabled="true"/>
90+
<!-- Disabled to allow easier end user notifications. -->
91+
<check level="warning" class="org.scalastyle.file.RegexChecker" enabled="false">
92+
<parameters>
93+
<parameter name="regex"><![CDATA[println]]></parameter>
94+
<parameter name="line"><![CDATA[false]]></parameter>
95+
</parameters>
96+
</check>
97+
<check level="warning" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="true">
98+
<parameters>
99+
<parameter name="maxTypes"><![CDATA[30]]></parameter>
100+
</parameters>
101+
</check>
102+
<check level="warning" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="true">
103+
<parameters>
104+
<parameter name="maximum"><![CDATA[10]]></parameter>
105+
</parameters>
106+
</check>
107+
<check level="warning" class="org.scalastyle.scalariform.UppercaseLChecker" enabled="true"/>
108+
<check level="warning" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="true"/>
109+
<check level="warning" class="org.scalastyle.scalariform.IfBraceChecker" enabled="true">
110+
<parameters>
111+
<parameter name="singleLineAllowed"><![CDATA[true]]></parameter>
112+
<parameter name="doubleLineAllowed"><![CDATA[false]]></parameter>
113+
</parameters>
114+
</check>
115+
<!-- Increased to account for internally defined methods. -->
116+
<check level="warning" class="org.scalastyle.scalariform.MethodLengthChecker" enabled="true">
117+
<parameters>
118+
<parameter name="maxLength"><![CDATA[100]]></parameter>
119+
</parameters>
120+
</check>
121+
<check level="warning" class="org.scalastyle.scalariform.MethodNamesChecker" enabled="false">
122+
<parameters>
123+
<!--parameter name="regex"><![CDATA[^[a-z][A-Za-z0-9]*(_=)?$]]></parameter-->
124+
<parameter name="regex"><![CDATA[^([a-z][A-Za-z0-9]*)|([A-Z][A-Z0-9_]*)(_=)?$]]></parameter>
125+
</parameters>
126+
</check>
127+
<check level="warning" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="true">
128+
<parameters>
129+
<parameter name="maxMethods"><![CDATA[30]]></parameter>
130+
</parameters>
131+
</check>
132+
<check level="warning" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="true"/>
133+
<check level="warning" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"/>
134+
<check level="warning" class="org.scalastyle.scalariform.NotImplementedErrorUsage" enabled="true"/>
135+
<check level="warning" class="org.scalastyle.scalariform.BlockImportChecker" enabled="false"/>
136+
<check level="warning" class="org.scalastyle.scalariform.ProcedureDefinitionChecker" enabled="true"/>
137+
<check level="warning" class="org.scalastyle.scalariform.ForBraceChecker" enabled="true"/>
138+
<check level="warning" class="org.scalastyle.scalariform.SpaceAfterCommentStartChecker" enabled="true"/>
139+
<!-- Updated to allow numbers in field names. -->
140+
<check level="warning" class="org.scalastyle.scalariform.FieldNamesChecker" enabled="true">
141+
<parameters>
142+
<parameter name="regex"><![CDATA[^([a-z][A-Za-z0-9]*)|([A-Z][A-Z0-9_]*)$]]></parameter>
143+
</parameters>
144+
</check>
145+
<check level="warning" class="org.scalastyle.scalariform.TodoCommentChecker" enabled="true">
146+
<parameters>
147+
<parameter name="words"><![CDATA[TODO|FIXME]]></parameter>
148+
</parameters>
149+
</check>
150+
151+
<!-- These are the additions based on the default IntelliJ Code Formatter. -->
152+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
153+
<parameters>
154+
<parameter name="regex">for\(|if\(|while\(</parameter>
155+
</parameters>
156+
<customMessage>No space before paren after for, if, or while</customMessage>
157+
</check>
158+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
159+
<parameters>
160+
<parameter name="regex">for\s\s+\(|if\s\s+\(|while\s\s+\(</parameter>
161+
</parameters>
162+
<customMessage>Too many spaces before paren after for, if, or while</customMessage>
163+
</check>
164+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
165+
<parameters>
166+
<parameter name="regex">if.*\(.*\)\{|while.*\(.*\)\{</parameter>
167+
</parameters>
168+
<customMessage>No space before if or while left brace</customMessage>
169+
</check>
170+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
171+
<parameters>
172+
<parameter name="regex">if.*\(.*\)\s\s+\{|while.*\(.*\)\s\s+\{</parameter>
173+
</parameters>
174+
<customMessage>Too many spaces before if or while left brace</customMessage>
175+
</check>
176+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
177+
<parameters>
178+
<parameter name="regex">else\{|else.*\)\{</parameter>
179+
</parameters>
180+
<customMessage>No space before else left brace</customMessage>
181+
</check>
182+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
183+
<parameters>
184+
<parameter name="regex">else\s\s+\{|else.*\)\s\s+\{</parameter>
185+
</parameters>
186+
<customMessage>Too many spaces before else left brace</customMessage>
187+
</check>
188+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
189+
<parameters>
190+
<parameter name="regex">for.*\(.*\)\{|do\{</parameter>
191+
</parameters>
192+
<customMessage>No space before for or do left brace</customMessage>
193+
</check>
194+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
195+
<parameters>
196+
<parameter name="regex">for.*\(.*\)\s\s+\{|do\s\s+\{</parameter>
197+
</parameters>
198+
<customMessage>Too many spaces before for or do left brace</customMessage>
199+
</check>
200+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
201+
<parameters>
202+
<parameter name="regex">class .*[^\s-]\{|def.*[^\s-]\{</parameter>
203+
</parameters>
204+
<customMessage>No space before class or method left brace</customMessage>
205+
</check>
206+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
207+
<parameters>
208+
<parameter name="regex">class .*\s\s+\{|def.*\s\s+\{</parameter>
209+
</parameters>
210+
<customMessage>Too many spaces before class or method left brace</customMessage>
211+
</check>
212+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
213+
<parameters>
214+
<parameter name="regex">try\{|catch\{|finally\{</parameter>
215+
</parameters>
216+
<customMessage>No space before try, catch, or finally left brace</customMessage>
217+
</check>
218+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
219+
<parameters>
220+
<parameter name="regex">try\s\s+\{|catch\s\s+\{|finally\s\s+\{</parameter>
221+
</parameters>
222+
<customMessage>Too many spaces before try, catch, or finally left brace</customMessage>
223+
</check>
224+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
225+
<parameters>
226+
<parameter name="regex">^[^"]*:[^\s-]|^[^"]*;[^\s-]|^[^"]*,[^\s-]</parameter>
227+
</parameters>
228+
<customMessage>Require space after comma, semicolon, and colon not in string</customMessage>
229+
</check>
230+
<!-- this causes too many false positives -->
231+
<check enabled="false" class="org.scalastyle.file.RegexChecker" level="warning">
232+
<parameters>
233+
<parameter name="regex">\n\s*\{</parameter>
234+
</parameters>
235+
<customMessage>Brace on a newline</customMessage>
236+
</check>
237+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
238+
<parameters>
239+
<parameter name="regex">package.*\n[^\s-]</parameter>
240+
</parameters>
241+
<customMessage>Blank line after package please!</customMessage>
242+
</check>
243+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
244+
<parameters>
245+
<parameter name="regex">^import .*\n(?!import )[^\n]*[^\s-]</parameter>
246+
</parameters>
247+
<customMessage>missing blank line after import</customMessage>
248+
</check>
249+
<check enabled="true" class="org.scalastyle.file.RegexChecker" level="warning">
250+
<parameters>
251+
<parameter name="regex">\n\n\n\n</parameter>
252+
</parameters>
253+
<customMessage>max 2 blank lines in the code</customMessage>
254+
</check>
255+
</scalastyle>

0 commit comments

Comments
 (0)