Created
June 10, 2016 15:32
-
-
Save tartakynov/83ffacdafaf4c50a776d7757052cbc07 to your computer and use it in GitHub Desktop.
Scalastyle Config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
If you wish to turn off checking for a section of code, you can put a comment in the source | |
before and after the section, with the following syntax: | |
// scalastyle:off | |
... // stuff that breaks the styles | |
// scalastyle:on | |
You can also disable only one rule, by specifying its rule id, as specified in: | |
http://www.scalastyle.org/rules-0.7.0.html | |
// scalastyle:off no.finalize | |
override def finalize(): Unit = ... | |
// scalastyle:on no.finalize | |
--> | |
<scalastyle> | |
<name>Scalastyle standard configuration</name> | |
<!-- ================================================================================ --> | |
<!-- mandatory rules --> | |
<!-- ================================================================================ --> | |
<check level="error" class="org.scalastyle.file.FileTabChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.file.FileLineLengthChecker" enabled="true"> | |
<parameters> | |
<parameter name="maxLineLength"><![CDATA[100]]></parameter> | |
<parameter name="tabSize"><![CDATA[2]]></parameter> | |
<parameter name="ignoreImports">true</parameter> | |
</parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.ClassNamesChecker" enabled="true"> | |
<parameters><parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter></parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.ObjectNamesChecker" enabled="true"> | |
<parameters><parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter></parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.PackageObjectNamesChecker" enabled="true"> | |
<parameters><parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter></parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="true"> | |
<parameters><parameter name="maxParameters"><![CDATA[10]]></parameter></parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.StructuralTypeChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.UppercaseLChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.IfBraceChecker" enabled="true"> | |
<parameters> | |
<parameter name="singleLineAllowed"><![CDATA[true]]></parameter> | |
<parameter name="doubleLineAllowed"><![CDATA[true]]></parameter> | |
</parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"></check> | |
<check customId="nonascii" level="error" class="org.scalastyle.scalariform.NonASCIICharacterChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.SpaceAfterCommentStartChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.EnsureSingleSpaceBeforeTokenChecker" enabled="true"> | |
<parameters> | |
<parameter name="tokens">ARROW, EQUALS, ELSE, TRY, CATCH, FINALLY, LARROW, RARROW</parameter> | |
</parameters> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.EnsureSingleSpaceAfterTokenChecker" enabled="true"> | |
<parameters> | |
<parameter name="tokens">ARROW, EQUALS, COMMA, COLON, IF, ELSE, DO, WHILE, FOR, MATCH, TRY, CATCH, FINALLY, LARROW, RARROW</parameter> | |
</parameters> | |
</check> | |
<!-- ??? usually shouldn't be checked into the code base. --> | |
<check level="error" class="org.scalastyle.scalariform.NotImplementedErrorUsage" enabled="true"></check> | |
<!-- all printlns need to be wrapped in '// scalastyle:off/on println' --> | |
<check customId="println" level="error" class="org.scalastyle.scalariform.TokenChecker" enabled="true"> | |
<parameters><parameter name="regex">^println$</parameter></parameters> | |
<customMessage><![CDATA[Are you sure you want to println? If yes, wrap the code block with | |
// scalastyle:off println | |
println(...) | |
// scalastyle:on println]]></customMessage> | |
</check> | |
<check customId="runtimeaddshutdownhook" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">Runtime\.getRuntime\.addShutdownHook</parameter></parameters> | |
<customMessage><![CDATA[ | |
Are you sure that you want to use Runtime.getRuntime.addShutdownHook? In most cases, you should use | |
ShutdownHookManager.addShutdownHook instead. | |
If you must use Runtime.getRuntime.addShutdownHook, wrap the code block with | |
// scalastyle:off runtimeaddshutdownhook | |
Runtime.getRuntime.addShutdownHook(...) | |
// scalastyle:on runtimeaddshutdownhook | |
]]></customMessage> | |
</check> | |
<check customId="mutablesynchronizedbuffer" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">mutable\.SynchronizedBuffer</parameter></parameters> | |
<customMessage><![CDATA[ | |
Are you sure that you want to use mutable.SynchronizedBuffer? In most cases, you should use | |
java.util.concurrent.ConcurrentLinkedQueue instead. | |
If you must use mutable.SynchronizedBuffer, wrap the code block with | |
// scalastyle:off mutablesynchronizedbuffer | |
mutable.SynchronizedBuffer[...] | |
// scalastyle:on mutablesynchronizedbuffer | |
]]></customMessage> | |
</check> | |
<check customId="classforname" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">Class\.forName</parameter></parameters> | |
<customMessage><![CDATA[ | |
Are you sure that you want to use Class.forName? In most cases, you should use Utils.classForName instead. | |
If you must use Class.forName, wrap the code block with | |
// scalastyle:off classforname | |
Class.forName(...) | |
// scalastyle:on classforname | |
]]></customMessage> | |
</check> | |
<check customId="awaitresult" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">Await\.result</parameter></parameters> | |
<customMessage><![CDATA[ | |
Are you sure that you want to use Await.result? In most cases, you should use ThreadUtils.awaitResult instead. | |
If you must use Await.result, wrap the code block with | |
// scalastyle:off awaitresult | |
Await.result(...) | |
// scalastyle:on awaitresult | |
]]></customMessage> | |
</check> | |
<!-- JavaConversions should be replaced with JavaConverters --> | |
<check customId="javaconversions" level="error" class="org.scalastyle.scalariform.TokenChecker" enabled="true"> | |
<parameters><parameter name="regex">JavaConversions</parameter></parameters> | |
<customMessage>Instead of importing implicits in scala.collection.JavaConversions._, import | |
scala.collection.JavaConverters._ and use .asScala / .asJava methods</customMessage> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.DisallowSpaceBeforeTokenChecker" enabled="true"> | |
<parameters> | |
<parameter name="tokens">COMMA</parameter> | |
</parameters> | |
</check> | |
<!-- Single Space between ')' and '{' --> | |
<check customId="SingleSpaceBetweenRParenAndLCurlyBrace" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">\)\{</parameter></parameters> | |
<customMessage><![CDATA[ | |
Single Space between ')' and `{`. | |
]]></customMessage> | |
</check> | |
<check customId="NoScalaDoc" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">(?m)^(\s*)/[*][*].*$(\r|)\n^\1 [*]</parameter></parameters> | |
<customMessage>Use Javadoc style indentation for multiline comments</customMessage> | |
</check> | |
<check customId="OmitBracesInCase" level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> | |
<parameters><parameter name="regex">case[^\n>]*=>\s*\{</parameter></parameters> | |
<customMessage>Omit braces in case clauses.</customMessage> | |
</check> | |
<check level="error" class="org.scalastyle.scalariform.EqualsHashCodeChecker" enabled="true"></check> | |
<check level="error" class="org.scalastyle.scalariform.MethodNamesChecker" enabled="true"> | |
<parameters> | |
<parameter name="regex"><![CDATA[^[^A-Z]+[A-Za-z0-9]*$]]></parameter> | |
</parameters> | |
</check> | |
<!-- ================================================================================ --> | |
<!-- rules desirable to enforce but not mandatory --> | |
<!-- ================================================================================ --> | |
<check level="warning" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true"> | |
<parameters><parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter></parameters> | |
</check> | |
<!-- Low level code and to interface with 3rd party code --> | |
<check level="warning" class="org.scalastyle.scalariform.NullChecker" enabled="true"></check> | |
<!-- Every project has a lot of magic numbers ... --> | |
<check level="warning" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="true"> | |
<parameters><parameter name="ignore">-1,0,1,2,3</parameter></parameters> | |
</check> | |
<!-- Ideally the following two rules should be configurable to rule out string interpolation. --> | |
<check level="warning" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker" enabled="true"></check> | |
<check level="warning" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker" enabled="true"></check> | |
<!-- ================================================================================ --> | |
<!-- disabled rules --> | |
<!-- ================================================================================ --> | |
<!-- Opposite of this: NewLineAtEofChecker --> | |
<check level="error" class="org.scalastyle.file.NoNewLineAtEofChecker" enabled="false"></check> | |
<!-- This one complains about all kinds of random things. Disable. --> | |
<check level="error" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="false"></check> | |
<!-- Return is used quite a bit for control flows and guards --> | |
<check level="error" class="org.scalastyle.scalariform.ReturnChecker" enabled="false"></check> | |
<!-- Doesn't seem super big deal here ... --> | |
<check level="error" class="org.scalastyle.scalariform.NoCloneChecker" enabled="false"></check> | |
<!-- Doesn't seem super big deal here ... --> | |
<check level="error" class="org.scalastyle.file.FileLengthChecker" enabled="false"> | |
<parameters><parameter name="maxFileLength">800></parameter></parameters> | |
</check> | |
<!-- Doesn't seem super big deal here ... --> | |
<check level="error" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="false"> | |
<parameters><parameter name="maxTypes">30</parameter></parameters> | |
</check> | |
<!-- Doesn't seem super big deal here ... --> | |
<check level="error" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="false"> | |
<parameters><parameter name="maximum">10</parameter></parameters> | |
</check> | |
<!-- Doesn't seem super big deal here ... --> | |
<check level="error" class="org.scalastyle.scalariform.MethodLengthChecker" enabled="false"> | |
<parameters><parameter name="maxLength">50</parameter></parameters> | |
</check> | |
<!-- Not exactly feasible to enforce this right now. --> | |
<!-- It is also infrequent that somebody introduces a new class with a lot of methods. --> | |
<check level="error" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="false"> | |
<parameters><parameter name="maxMethods"><![CDATA[30]]></parameter></parameters> | |
</check> | |
<!-- No reasons to enforce this right now. --> | |
<check level="error" class="org.scalastyle.file.HeaderMatchesChecker" enabled="false"> | |
<parameters> | |
<parameter name="header"></parameter> | |
</parameters> | |
</check> | |
</scalastyle> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment