CompilerLifecycleManager

ammonite.compiler.CompilerLifecycleManager
class CompilerLifecycleManager(rtCacheDir: Option[Path], headFrame: => Frame, dependencyCompleteOpt: => Option[String => (Int, Seq[String])], classPathWhitelist: Set[Seq[String]], initialClassLoader: ClassLoader, val outputDir: Option[Path], initialSettings: Seq[String]) extends CompilerLifecycleManager

Wraps up the Compiler and Pressy, ensuring that they get properly initialized before use. Mostly deals with ensuring the object lifecycles are properly dealt with; Compiler and Pressy are the ones which deal with the compiler's nasty APIs

Exposes a simple API where you can just call methods like compilerClass configureCompiler any-how and not worry about ensuring the necessary compiler objects are initialized, or worry about initializing them more than necessary

Attributes

Graph
Supertypes
class CompilerLifecycleManager
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

def addToClasspath(classFiles: ClassFiles): Unit
def compileClass(processed: Output, printer: Printer, fileName: String): Option[Output]
def complete(offset: Int, previousImports: String, snippet: String): (Int, Seq[String], Seq[String])
def configureCompiler(callback: Compiler => Unit): Unit
def forceInit(): Unit
def init(): Unit
def init(force: Boolean): Unit
def preConfigureCompiler(callback: FreshContext => Unit): Unit
def preprocess(fileName: String): Preprocessor
def scalaVersion: String
def shutdownPressy(): Unit

Concrete fields

val outputDir: Option[Path]