diff options
-rw-r--r-- | .scalafmt | 22 | ||||
-rw-r--r-- | scalastyle-config.xml | 113 | ||||
-rw-r--r-- | src/main/scala/com.drivergrp.sbt/SbtSettings.scala | 40 | ||||
-rw-r--r-- | version.sbt | 2 |
4 files changed, 157 insertions, 20 deletions
diff --git a/.scalafmt b/.scalafmt new file mode 100644 index 0000000..ba1bf4f --- /dev/null +++ b/.scalafmt @@ -0,0 +1,22 @@ +# scalafmt sbt plugin config +# refer to https://olafurpg.github.io/scalafmt/#Configuration for properties + +--style defaultWithAlign # For pretty alignment. +--maxColumn 120 # For my wide 30" display. + +--reformatDocstrings true +--scalaDocs + +--continuationIndentCallSite 4 +--continuationIndentDefnSite 4 + +--rewriteTokens ⇒;=>,←;<- +--danglingParentheses false +--spaceAfterTripleEquals true +--alignByArrowEnumeratorGenerator true +--binPackParentConstructors true +--allowNewlineBeforeColonInMassiveReturnTypes true +--spacesInImportCurlyBraces false + +# --alignByOpenParenCallSite <value> +# --alignByOpenParenDefnSite <value> diff --git a/scalastyle-config.xml b/scalastyle-config.xml new file mode 100644 index 0000000..3c6d6ff --- /dev/null +++ b/scalastyle-config.xml @@ -0,0 +1,113 @@ +<scalastyle> + <name>Scalastyle standard configuration</name> + <check level="error" class="org.scalastyle.file.FileTabChecker" enabled="true"/> + <check level="error" class="org.scalastyle.file.FileLengthChecker" enabled="true"> + <parameters> + <parameter name="maxFileLength"><![CDATA[800]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.file.HeaderMatchesChecker" enabled="false"> + <parameters> + <parameter name="header">package</parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="true"/> + <check level="error" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true"/> + <check level="error" class="org.scalastyle.file.FileLineLengthChecker" enabled="true"> + <parameters> + <parameter name="maxLineLength"><![CDATA[160]]></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-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.EqualsHashCodeChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true"> + <parameters> + <parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="true"> + <parameters> + <parameter name="maxParameters"><![CDATA[8]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="false"> + <parameters> + <parameter name="ignore"><![CDATA[-1,0,1,2,3]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.ReturnChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.NullChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.NoCloneChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"/> + <check level="error" class="org.scalastyle.file.RegexChecker" enabled="true"> + <parameters> + <parameter name="regex"><![CDATA[println]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="true"> + <parameters> + <parameter name="maxTypes"><![CDATA[30]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="true"> + <parameters> + <parameter name="maximum"><![CDATA[10]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.UppercaseLChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="true"/> + <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.MethodLengthChecker" enabled="true"> + <parameters> + <parameter name="maxLength"><![CDATA[50]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.MethodNamesChecker" enabled="true"> + <parameters> + <parameter name="regex"><![CDATA[^[A-Za-z\\*][A-Za-z0-9]*$]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.ClassTypeParameterChecker" enabled="true"> + <parameters> + <parameter name="regex"><![CDATA[^[A-Za-z]*$]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="true"> + <parameters> + <parameter name="maxMethods"><![CDATA[30]]></parameter> + </parameters> + </check> + <check level="error" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="false"/> + <check level="error" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"/> + <check level="error" class="org.scalastyle.file.NoNewLineAtEofChecker" enabled="false"/> + <check level="error" class="org.scalastyle.scalariform.DeprecatedJavaChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.EmptyClassChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.RedundantIfChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.MultipleStringLiteralsChecker" enabled="false"/> + <check level="error" class="org.scalastyle.scalariform.SpaceAfterCommentStartChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.ProcedureDeclarationChecker" enabled="true"/> + <check level="error" class="org.scalastyle.scalariform.NotImplementedErrorUsage" enabled="true"/> +</scalastyle>
\ No newline at end of file diff --git a/src/main/scala/com.drivergrp.sbt/SbtSettings.scala b/src/main/scala/com.drivergrp.sbt/SbtSettings.scala index 5eeae86..6238cf7 100644 --- a/src/main/scala/com.drivergrp.sbt/SbtSettings.scala +++ b/src/main/scala/com.drivergrp.sbt/SbtSettings.scala @@ -29,6 +29,24 @@ object SbtSettings extends AutoPlugin { object autoImport { + lazy val scalaFormatSettings = Seq( + scalafmtConfig in ThisBuild := Some(file(".scalafmt")), + testExecution in (Test, test) <<= + (testExecution in (Test, test)) dependsOn (scalafmtTest in Compile, scalafmtTest in Test)) + + private lazy val compileScalastyle = taskKey[Unit]("compileScalastyle") + + lazy val scalastyleSettings = Seq( + compileScalastyle := (scalastyle in Compile).toTask("").value, + (compile in Compile) <<= ((compile in Compile) dependsOn compileScalastyle)) + + lazy val wartRemoverSettings = Seq( + wartremoverErrors in (Compile, compile) ++= Warts.allBut( + Wart.AsInstanceOf, Wart.Nothing, Wart.Overloading, Wart.DefaultArguments, Wart.Any, + Wart.Option2Iterable, Wart.ExplicitImplicitTypes, Wart.Throw, Wart.ToString, Wart.NoNeedForMonad)) + + lazy val lintingSettings = scalastyleSettings ++ wartRemoverSettings + lazy val testAll = TaskKey[Unit]("test-all", "Launches all unit and integration tests") lazy val repositoriesSettings = { @@ -164,20 +182,6 @@ object SbtSettings extends AutoPlugin { } } - // Make our own settings and commands readily available for the reset of the file - - lazy val compileScalastyle = taskKey[Unit]("compileScalastyle") - - lazy val wartRemoverSettings = Seq( - wartremoverErrors in (Compile, compile) ++= Warts.allBut( - Wart.AsInstanceOf, Wart.Nothing, Wart.Overloading, Wart.DefaultArguments, Wart.Any, - Wart.Option2Iterable, Wart.ExplicitImplicitTypes, Wart.Throw, Wart.ToString, Wart.NoNeedForMonad)) - - lazy val scalafmtSettings = Seq( - scalafmtConfig in ThisBuild := Some(file(".scalafmt")), - testExecution in (Test, test) <<= - (testExecution in (Test, test)) dependsOn (scalafmtTest in Compile, scalafmtTest in Test)) - override def trigger: PluginTrigger = allRequirements override def projectSettings: Seq[Setting[_]] = Defaults.coreDefaultSettings ++ Seq ( organization := "com.drivergrp", @@ -193,7 +197,7 @@ object SbtSettings extends AutoPlugin { "-language:higherKinds", "-language:implicitConversions", "-language:postfixOps", - "-Ywarn-infer-any", + "-Ywarn-numeric-widen", "-Ywarn-dead-code", "-Ywarn-unused", "-Ywarn-unused-import" @@ -204,8 +208,6 @@ object SbtSettings extends AutoPlugin { "com.lihaoyi" %% "acyclic" % "0.1.4" % "provided" ), - fork in run := true, - compileScalastyle := (scalastyle in Compile).toTask("").value, - (compile in Compile) <<= ((compile in Compile) dependsOn compileScalastyle) - ) ++ wartRemoverSettings ++ scalafmtSettings + fork in run := true + ) }
\ No newline at end of file diff --git a/version.sbt b/version.sbt index 0731f9c..76b640a 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "0.4.3-SNAPSHOT" +version in ThisBuild := "0.4.7-SNAPSHOT" |