======================= Compiler Plugin Support ======================= There is some special support for using compiler plugins. You can set :key:`autoCompilerPlugins` to `true` to enable this functionality. :: autoCompilerPlugins := true To use a compiler plugin, you either put it in your unmanaged library directory (`lib/` by default) or add it as managed dependency in the `plugin` configuration. `addCompilerPlugin` is a convenience method for specifying `plugin` as the configuration for a dependency: :: addCompilerPlugin("org.scala-tools.sxr" %% "sxr" % "0.3.0") The :key:`compile` and :key:`testCompile` actions will use any compiler plugins found in the `lib` directory or in the `plugin` configuration. You are responsible for configuring the plugins as necessary. For example, Scala X-Ray requires the extra option: :: // declare the main Scala source directory as the base directory scalacOptions := scalacOptions.value :+ ("-Psxr:base-directory:" + (scalaSource in Compile).value.getAbsolutePath) You can still specify compiler plugins manually. For example: :: scalacOptions += "-Xplugin:/sxr-0.3.0.jar" Continuations Plugin Example ============================ Support for continuations in Scala 2.8 is implemented as a compiler plugin. You can use the compiler plugin support for this, as shown here. :: autoCompilerPlugins := true addCompilerPlugin("org.scala-lang.plugins" % "continuations" % "2.8.1") scalacOptions += "-P:continuations:enable" Version-specific Compiler Plugin Example ======================================== Adding a version-specific compiler plugin can be done as follows: :: autoCompilerPlugins := true libraryDependencies += compilerPlugin("org.scala-lang.plugins" % "continuations" % scalaVersion.value) scalacOptions += "-P:continuations:enable"