sbt/project/Formatting.scala

41 lines
1.5 KiB
Scala
Raw Normal View History

import sbt._, Keys._
import com.typesafe.sbt.SbtScalariform._, autoImport._
2014-05-01 18:50:07 +02:00
object Formatting {
val BuildConfig = config("build") extend Compile
val BuildSbtConfig = config("buildsbt") extend Compile
2014-05-01 18:50:07 +02:00
val scalariformCheck = taskKey[Unit]("Checks that the existing code is formatted, via git diff")
private val prefs: Seq[Setting[_]] = {
2014-05-01 18:50:07 +02:00
import scalariform.formatter.preferences._
Seq(
2016-11-24 15:12:23 +01:00
scalariformPreferences ~= (_
.setPreference(AlignSingleLineCaseStatements, true)
.setPreference(AlignSingleLineCaseStatements.MaxArrowIndent, 100)
.setPreference(DanglingCloseParenthesis, Force)
)
2014-05-01 18:50:07 +02:00
)
}
2016-11-24 15:12:23 +01:00
val settings: Seq[Setting[_]] = Seq() ++ prefs
val sbtFilesSettings: Seq[Setting[_]] = Seq() ++ prefs ++
2014-05-01 18:50:07 +02:00
inConfig(BuildConfig)(configScalariformSettings) ++
inConfig(BuildSbtConfig)(configScalariformSettings) ++
Seq(
scalaSource in BuildConfig := baseDirectory.value / "project",
scalaSource in BuildSbtConfig := baseDirectory.value / "project",
includeFilter in (BuildConfig, scalariformFormat) := ("*.scala": FileFilter),
includeFilter in (BuildSbtConfig, scalariformFormat) := ("*.sbt": FileFilter),
scalariformFormat in Compile := {
val x = (scalariformFormat in BuildSbtConfig).value
val y = (scalariformFormat in BuildConfig).value
(scalariformFormat in Compile).value
},
scalariformCheck := {
val diff = "git diff".!!
if (diff.nonEmpty) sys.error("Working directory is dirty!\n" + diff)
2014-05-01 18:50:07 +02:00
}
)
}