aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-08-17 20:01:24 -0700
committervlad <vlad@drivergrp.com>2016-08-17 20:01:24 -0700
commit4579307bd5a5e7eee0f4c9b675ea25f5c091d9bb (patch)
tree4a1f2713cfc775099e5ef157ae74902728f50556
parentdcb8a3a73982e5229ce7034eddf88da00862cd15 (diff)
downloadsbt-settings-4579307bd5a5e7eee0f4c9b675ea25f5c091d9bb.tar.gz
sbt-settings-4579307bd5a5e7eee0f4c9b675ea25f5c091d9bb.tar.bz2
sbt-settings-4579307bd5a5e7eee0f4c9b675ea25f5c091d9bb.zip
Optional format and linting settings
-rw-r--r--.scalafmt22
-rw-r--r--scalastyle-config.xml113
-rw-r--r--src/main/scala/com.drivergrp.sbt/SbtSettings.scala40
-rw-r--r--version.sbt2
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"