No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Boxer: a demo scalac plugin, embedded in your SBT project.

Ever wish you could inject some extra analysis into the compiler pipeline for your project? You could write a compiler plugin, package, distribute it, and depend on it, but the activation energy for that is pretty high.

Boxer shows you how to embed a custom compiler plugin directly into a sub-project of your SBT project. With this in place, you can edit the plugin, run compile, and immediately see the results in the context of your project.

What's inside

The Scala version used is 2.12.x, but the same code also works in 2.11.x.

Sample Output

[info] Compiling 1 Scala source to /Users/jason/code/boxer/plugin/target/scala-2.12/classes...
[info] Packaging /Users/jason/code/boxer/plugin/target/scala-2.12/boxer_2.12-0.1-SNAPSHOT.jar ...
[info] Done packaging.
[info] Compiling 1 Scala source to /Users/jason/code/boxer/main/target/scala-2.12/classes...
[warn] /Users/jason/code/boxer/main/src/main/scala/demo/Demo.scala:8: Value class `Meter` instantiated!
[warn]   println(m2)
[warn]           ^
[warn] one warning found