aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorrockjam <5min4eq.unity@gmail.com>2016-06-20 13:38:38 +0300
committerrockjam <5min4eq.unity@gmail.com>2016-06-20 14:35:48 +0300
commit07d3b85e98b4cc86c9f685c1096469cf6eca9cbb (patch)
tree17b022ef5e8154869b0b33ae881a25b87be7faf7 /examples
parentf834052e2825cb283399c14eb626f05d73b73759 (diff)
downloadcbt-07d3b85e98b4cc86c9f685c1096469cf6eca9cbb.tar.gz
cbt-07d3b85e98b4cc86c9f685c1096469cf6eca9cbb.tar.bz2
cbt-07d3b85e98b4cc86c9f685c1096469cf6eca9cbb.zip
scalariform plugin naive implementation
Diffstat (limited to 'examples')
-rw-r--r--examples/scalariform-example/README.md5
-rw-r--r--examples/scalariform-example/build/build.scala31
-rw-r--r--examples/scalariform-example/build/build/build.scala5
-rw-r--r--examples/scalariform-example/resources/reference.conf8
-rw-r--r--examples/scalariform-example/src/Main.scala11
5 files changed, 60 insertions, 0 deletions
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")
+ }
+}