AbstractLanguagePlugin

Abstract base class for language plugins.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
@Serializable
data class LanguagePluginManifest(val engine: String, val language: String, val bundles: List<AbstractLanguagePlugin.LanguagePluginManifest.EmbeddedResource> = emptyList(), val scripts: List<AbstractLanguagePlugin.LanguagePluginManifest.EmbeddedResource> = emptyList(), val resources: Map<String, List<String>> = emptyMap(), val root: String? = null)

Provides information about resources embedded into the runtime, used by language plugins.

Link copied to clipboard
data class PreinitScript(val name: String, val source: Source, val entry: Value? = null) : Record

Pre-initialization script built by initializePreambleScripts, which returns a suite of sources which are initialized at build time; these scripts should be passed verbatim to executePreambleScripts at runtime.

Properties

Link copied to clipboard
abstract val key: EnginePlugin.Key<I>

Identifies the plugin's instances, so they can be retrieved after being applied to the engine, avoiding the need for global references.

Link copied to clipboard
abstract val languageId: String

A unique string representing this language.

Functions

Link copied to clipboard
abstract fun install(scope: EnginePlugin.InstallationScope, configuration: C.() -> Unit): I

Install this plugin into the provided scope, using the configuration DSL block to adjust settings. This method is called from PluginRegistry.install to obtain a plugin Instance that will be added to the registry.