Packages

package plugins

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package load
  2. package merge

Type Members

  1. trait BootstrapPlugin extends PluginBase with BootstrapModule
  2. abstract class BootstrapPluginDef[T] extends BootstrapPlugin with BootstrapModuleDef

  3. abstract final class ForcedRecompilationToken[T] extends AnyRef

    This macro allows distage's compile-time checks to cooperate with Scala's incremental compilation: it forces recompilation of the macro that performs compile-time plan checking every time a PluginDef's body changes.

    This macro allows distage's compile-time checks to cooperate with Scala's incremental compilation: it forces recompilation of the macro that performs compile-time plan checking every time a PluginDef's body changes.

    It does that by generating a new unique type for each compiler session and assigning it to the class that inherits PluginDef. The "change of super type" of a plugin forces recompilation of all code that references it, and specifically of the code generated by izumi.distage.framework.PlanCheckMacro.

    This allows compile-time checking macro to re-run on relevant changes and provide rapid feedback during development.

    See also

    Compile-time checks

  4. trait PluginBase extends ModuleBase

    Non-abstract class or object inheritors of PluginBase will be found on the classpath by distage-extension-plugins scanning machinery.

    Non-abstract class or object inheritors of PluginBase will be found on the classpath by distage-extension-plugins scanning machinery. (izumi.distage.plugins.load.PluginLoader)

    See also

    Plugins

    izumi.distage.plugins.PluginDef

  5. final case class PluginConfig(packagesEnabled: Seq[String], packagesDisabled: Seq[String], cachePackages: Boolean, debug: Boolean, merges: Seq[PluginBase], overrides: Seq[PluginBase]) extends Product with Serializable

    See also

    Plugins

  6. abstract class PluginDef[T] extends PluginBase with ModuleDef

    Use it to define Plugins using izumi.distage.model.definition.dsl.ModuleDefDSL syntax

    Use it to define Plugins using izumi.distage.model.definition.dsl.ModuleDefDSL syntax

    object MyPlugin extends PluginDef {
      include(myModule[F])
    
      make[Xa[F]].from[Xa.Impl[F]]
    }
    Note

    Since this is an abstract class, you cannot mix it with other classes or use it as a mixin. Instead, you may inherit from PluginBase, which is a trait – but in that case compile-time checks will not re-run when the class is updated in that case. Alternatively, you may use izumi.distage.model.definition.dsl.IncludesDSL#include to compose modules as values instead of using inheritance.

    See also

    Plugins

    Compile-time checks

Value Members

  1. object BootstrapPlugin
  2. object DebugProperties extends fundamentals.platform.properties.DebugProperties

    Java properties that control the behavior of load.PluginLoader

    Java properties that control the behavior of load.PluginLoader

    See also

    DebugProperties

  3. object ForcedRecompilationToken
  4. object PluginBase
  5. object PluginConfig extends Serializable
  6. object StaticPluginLoader

    Scan the specified package *at compile-time* for classes and objects that inherit PluginBase

    Scan the specified package *at compile-time* for classes and objects that inherit PluginBase

    WARN: may interact badly with incremental compilation WARN: will _not_ find plugins defined in the current module, only those defined in dependency modules (similarly to how you cannot call Scala macros defined in the current module)

    See also

    PluginConfig.compileTime

Ungrouped