From 07d3b85e98b4cc86c9f685c1096469cf6eca9cbb Mon Sep 17 00:00:00 2001 From: rockjam <5min4eq.unity@gmail.com> Date: Mon, 20 Jun 2016 13:38:38 +0300 Subject: scalariform plugin naive implementation --- examples/scalariform-example/README.md | 5 ++++ examples/scalariform-example/build/build.scala | 31 ++++++++++++++++++++++ .../scalariform-example/build/build/build.scala | 5 ++++ .../scalariform-example/resources/reference.conf | 8 ++++++ examples/scalariform-example/src/Main.scala | 11 ++++++++ 5 files changed, 60 insertions(+) create mode 100644 examples/scalariform-example/README.md create mode 100644 examples/scalariform-example/build/build.scala create mode 100644 examples/scalariform-example/build/build/build.scala create mode 100644 examples/scalariform-example/resources/reference.conf create mode 100644 examples/scalariform-example/src/Main.scala (limited to 'examples') diff --git a/examples/scalariform-example/README.md b/examples/scalariform-example/README.md new file mode 100644 index 0000000..e599b5b --- /dev/null +++ b/examples/scalariform-example/README.md @@ -0,0 +1,5 @@ +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 test formatting in action you can execute: `cbt breakFormatting` to break formatting +and `cbt scalariformReformat` to get formatting back. diff --git a/examples/scalariform-example/build/build.scala b/examples/scalariform-example/build/build.scala new file mode 100644 index 0000000..b9caa59 --- /dev/null +++ b/examples/scalariform-example/build/build.scala @@ -0,0 +1,31 @@ +import cbt._ +import scalariform.formatter.preferences._ + +class Build(val context: Context) extends BuildBuild with Scalariform { + override def compile = { + scalariformFormat + super.compile + } + + override def scalariformPreferences = + FormattingPreferences() + .setPreference(SpacesAroundMultiImports, true) + .setPreference(DoubleIndentClassDeclaration, true) + .setPreference(RewriteArrowSymbols, true) + + def breakFormatting = { + import java.nio.file._ + import scala.collection.JavaConverters._ + sourceFiles foreach { file => + try { + val path = file.toPath + val fileLines = Files.readAllLines(path).asScala + val brokenLines = fileLines map (_.dropWhile(_ ==' ')) + Files.write(path, brokenLines.asJava) + } catch { + case e: Exception => System.err.print(s"Error happend when breaking formatting: ${e}") + } + } + 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") + } +} -- cgit v1.2.3