Skip to content

retronym/boxer

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages