abstract class Plugin extends AnyRef
Information about a plugin loaded from a jar file.
The concrete subclass must have a one-argument constructor
that accepts an instance of global
.
(val global: Global)
- Source
- Plugin.scala
- Alphabetic
- By Inheritance
- Plugin
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Plugin()
Abstract Value Members
- abstract val components: List[PluginComponent]
The components that this phase defines
- abstract val description: String
A one-line description of the plugin
- abstract val global: Global
The compiler that this plugin uses.
The compiler that this plugin uses. This is normally equated to a constructor parameter in the concrete subclass.
- abstract val name: String
The name of this plugin
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Plugin, B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def augmentManifest(file: AbstractFile, manifest: Manifest): Unit
A callback to allow a plugin to customise the manifest of a jar.
A callback to allow a plugin to customise the manifest of a jar. This is only called if the output is a jar. In the case of a multi-output compile, it is called once for each output (if the output is a jar). Typically this extension point is to avoid the build system having an additional step to add this information, while would otherwise require the jar to be rebuilt (as the manifest is required to be the first entry in a jar). The default implementation is a NO-OP
- file
the file that will contains this manifest. Int the case of a multi-output compile, the plugin can use this to differentiate the outputs
- manifest
the manifest that will be written
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (Plugin) => Boolean, msg: => Any): Plugin
- def ensuring(cond: (Plugin) => Boolean): Plugin
- def ensuring(cond: Boolean, msg: => Any): Plugin
- def ensuring(cond: Boolean): Plugin
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def init(options: List[String], error: (String) => Unit): Boolean
Handle any plugin-specific options.
Handle any plugin-specific options. The user writes
-P:plugname:opt1,opt2
, but the plugin seesList(opt1, opt2)
. The plugin can opt out of further processing by returning false. For example, if the plugin has an "enable" flag, now would be a good time to sit on the bench.- options
plugin arguments
- error
error function
- returns
true to continue, or false to opt out
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def options: List[String]
- val optionsHelp: Option[String]
A description of this plugin's options, suitable as a response to the -help command-line option.
A description of this plugin's options, suitable as a response to the -help command-line option. Conventionally, the options should be listed with the
-P:plugname:
part included. - def processOptions(options: List[String], error: (String) => Unit): Unit
- Annotations
- @deprecatedOverriding()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def writeAdditionalOutputs(writer: OutputFileWriter): Unit
A callback to allow a plugin to add additional resources to the generated output.
A callback to allow a plugin to add additional resources to the generated output. This allows a plug to, for instance, package resources or services into a jar, or add artifacts specific to a build environment. Typically this extension point is used when writing to a jar, to avoid the build system having an additional step to add these resources, and therefore speed up the build process. The default implementation is a NO-OP
- writer
the writer associated with the targets
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Plugin toStringFormat[Plugin] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (Plugin, B)
- Implicit
- This member is added by an implicit conversion from Plugin toArrowAssoc[Plugin] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
The Scala compiler and reflection APIs.