Skip to content

rune-langium / core/src / RuneDslModule

Variable: RuneDslModule ​

ts
const RuneDslModule: {
  parser: {
     LangiumParser: (services) => RuneDslParser;
  };
  references: {
     Linker: (services) => RuneDslLinker;
     ScopeComputation: (services) => RuneDslScopeComputation;
     ScopeProvider: (services) => RuneDslScopeProvider;
  };
  serializer: {
     JsonSerializer: (services) => RuneJsonSerializer;
  };
};

Defined in: packages/core/src/services/rune-dsl-module.ts:79

Dependency-injection module for the Rune DSL language.

Type Declaration ​

NameTypeDefined in
parser{ LangiumParser: (services) => RuneDslParser; }packages/core/src/services/rune-dsl-module.ts:81
parser.LangiumParser()(services) => RuneDslParserpackages/core/src/services/rune-dsl-module.ts:82
references{ Linker: (services) => RuneDslLinker; ScopeComputation: (services) => RuneDslScopeComputation; ScopeProvider: (services) => RuneDslScopeProvider; }packages/core/src/services/rune-dsl-module.ts:84
references.Linker()(services) => RuneDslLinkerpackages/core/src/services/rune-dsl-module.ts:85
references.ScopeComputation()(services) => RuneDslScopeComputationpackages/core/src/services/rune-dsl-module.ts:86
references.ScopeProvider()(services) => RuneDslScopeProviderpackages/core/src/services/rune-dsl-module.ts:87
serializer{ JsonSerializer: (services) => RuneJsonSerializer; }packages/core/src/services/rune-dsl-module.ts:80
serializer.JsonSerializer()(services) => RuneJsonSerializerpackages/core/src/services/rune-dsl-module.ts:80

Config ​

Registers all Rune DSL-specific service overrides into Langium's DI container:

  • parser.LangiumParser → RuneDslParser (bracket pre-processor)
  • references.ScopeComputation → RuneDslScopeComputation
  • references.ScopeProvider → RuneDslScopeProvider

Remarks ​

Pass this module as the last argument to inject() to override Langium defaults. The module is intentionally minimal — the generated module (RuneDslGeneratedModule) handles grammar-derived service wiring; this module only registers hand-written overrides.

Use When ​

  • Constructing a custom Langium services container in tests or tooling
  • Extending Rune DSL services with additional providers (e.g., custom formatters)

Avoid When ​

  • Using createRuneDslServices() directly — it already applies this module; double-injecting it will cause service registration conflicts.

Core packages released under MIT. Studio app released under FSL-1.1-ALv2.