Implement a cached incremental ScalaCompiler that has been instrumented with the dependency analysis plugin to do incremental compilation.
Construct the list of compiler arguments that are passed to the Scala compiler based on the current xsbti.compile.ScalaInstance and the user-defined xsbti.compile.ClasspathOptions.
Manage a number of maxInstance
of cached Scala compilers.
Manage a number of maxInstance
of cached Scala compilers.
Defines a filtered reporter to control which messages are reported or not.
Defines a filtered reporter to control which messages are reported or not.
This implementation has been adapted from the Pants repository.
Defines a reporter that forwards every reported problem to a wrapped logger.
Defines a reporter that forwards every reported problem to a wrapped logger.
This is the most common use of a reporter, where users pass in whichever logger they want. If they are depending on loggers from other libraries, they can create a logger that extends the xsbti logging interface.
Defines a filtered reporter to control which messages are reported or not.
Defines a filtered reporter to control which messages are reported or not.
This reporter is meant to be used with a ManagedLogger
, which will be set up.
See ManagedLoggedReporter for a similar case.
This implementation has been adapted from the Pants repository.
Defines a logger that uses event logging provided by a ManagedLogger.
Defines a logger that uses event logging provided by a ManagedLogger.
This functionality can be use by anyone that wants to get support for event logging and use an underlying, controlled logger under the hood.
The ManagedLoggedReporter exists for those users that do not want to set up the passed logger. Event logging requires registration of codects to serialize and deserialize Problems. This reporter makes sure to initialize the managed logger so that users do not need to take care of this cumbersome process.
Represent a string that contains the compiler output (warnings and error messages, etc) that have been reported by LoggedReporter and the logger.
Provide a basic interface to the Scala Compiler that does not analyze dependencies nor does any kind of incremental compilation.
Provide a basic interface to the Scala Compiler that does not analyze dependencies nor does any kind of incremental compilation.
This interface is called in the same virtual machine where it's instantiated. It's useful for raw compilation of sources, such as those of the compiler interface (bridge) and plugin code.
Define helpers to create CompileOutput to pass to the incremental compiler.
Define helpers to create CompileOutput to pass to the incremental compiler. Both SingleOutput and MultipleOutput are supported.
Construct the list of compiler arguments that are passed to the Scala compiler based on the current xsbti.compile.ScalaInstance and the user-defined xsbti.compile.ClasspathOptions.
This is required because Scala compiler arguments change depending on the Scala version, e.g. the jars for the Scala library and the Scala compiler have to be present in the classpath and match the Scala version of the current Scala compiler.
The Scala home property (
scala.home
) must be unset because Scala puts jars in that directory and pass it in asbootclasspath
. Therefore, the contents of this property are managed by this implementation and it's strictly forbidden that the client manages this property.