diff options
Diffstat (limited to 'examples/scalariform-example')
-rw-r--r-- | examples/scalariform-example/README.md | 16 | ||||
-rw-r--r-- | examples/scalariform-example/build/build.scala | 29 | ||||
-rw-r--r-- | examples/scalariform-example/build/build/build.scala | 5 | ||||
-rw-r--r-- | examples/scalariform-example/resources/reference.conf | 8 | ||||
-rw-r--r-- | examples/scalariform-example/src/Main.scala | 11 |
5 files changed, 69 insertions, 0 deletions
diff --git a/examples/scalariform-example/README.md b/examples/scalariform-example/README.md new file mode 100644 index 0000000..28ad226 --- /dev/null +++ b/examples/scalariform-example/README.md @@ -0,0 +1,16 @@ +This example shows integration with scalariform plugin. + +Reformat executed on every `cbt compile` call, and affects only *.scala source files. + +You can provide your custom scalariform preferences in build via `scalariformPreferences`. + +To see formatting in action: execute `cbt breakFormatting` to break formatting and then execute `cbt scalariformFormat` to get formatting back. + +To check if your code is properly formatted(for example as part of CI validation), you can execute: + +``` +cbt scalariformFormat +git diff --exit-code +``` + +Last command will return non-zero code, if your code isn't properly formatted. diff --git a/examples/scalariform-example/build/build.scala b/examples/scalariform-example/build/build.scala new file mode 100644 index 0000000..91ff67a --- /dev/null +++ b/examples/scalariform-example/build/build.scala @@ -0,0 +1,29 @@ +import cbt._ +import scalariform.formatter.preferences._ + +class Build(val context: Context) extends BaseBuild with Scalariform { + override def compile = { + scalariformFormat + super.compile + } + + override def scalariformPreferences = + FormattingPreferences() + .setPreference(SpacesAroundMultiImports, true) + .setPreference(DoubleIndentClassDeclaration, true) + .setPreference(RewriteArrowSymbols, true) + + final def breakFormatting = { + import java.nio.file._ + import java.nio.charset.Charset + import scala.collection.JavaConverters._ + val utf8 = Charset.forName("UTF-8") + sourceFiles foreach { file => + val path = file.toPath + val fileLines = Files.readAllLines(path, utf8).asScala + val brokenLines = fileLines map (_.dropWhile(_ == ' ')) + Files.write(path, brokenLines.asJava, utf8) + } + System.err.println("Done breaking formatting") + } +} diff --git a/examples/scalariform-example/build/build/build.scala b/examples/scalariform-example/build/build/build.scala new file mode 100644 index 0000000..59ab8d1 --- /dev/null +++ b/examples/scalariform-example/build/build/build.scala @@ -0,0 +1,5 @@ +import cbt._ + +class Build(val context: Context) extends BuildBuild { + override def dependencies = super.dependencies :+ plugins.scalariform +} diff --git a/examples/scalariform-example/resources/reference.conf b/examples/scalariform-example/resources/reference.conf new file mode 100644 index 0000000..f3e122d --- /dev/null +++ b/examples/scalariform-example/resources/reference.conf @@ -0,0 +1,8 @@ +// should not reformat this, cause it is not in source files +some { + inside { + foo: 22 + bar: false + baz: "hello" + } +} diff --git a/examples/scalariform-example/src/Main.scala b/examples/scalariform-example/src/Main.scala new file mode 100644 index 0000000..d299aad --- /dev/null +++ b/examples/scalariform-example/src/Main.scala @@ -0,0 +1,11 @@ +import scala.concurrent.{ Await, Future } +import scala.concurrent.duration._ + +object Main extends App { + println("fooo") + val futureRes = Await.result(Future.successful(1), 5.seconds) + List(1, 2, 4, 5, 6) match { + case h :: _ ⇒ println("not empty list") + case Nil ⇒ println("empty list") + } +} |