Skip to content

rune-langium / core/src / RuneDslScopeProvider

Class: RuneDslScopeProvider

Defined in: packages/core/src/services/rune-dsl-scope-provider.ts:147

Custom scope provider for the Rune DSL.

Handles the 21 cross-reference patterns from the original Xtext implementation:

  • Cases 1-3: Feature calls (-> and ->>)
  • Cases 4-8: Operation assign root, segments, constructor keys
  • Case 9-11: Switch case guards, enum values
  • Case 12: Symbol references (most complex — context-dependent)
  • Cases 13-21: Annotation paths, external refs, etc.

Extends

  • DefaultScopeProvider

Constructors

Constructor

ts
new RuneDslScopeProvider(services): RuneDslScopeProvider;

Defined in: packages/core/src/services/rune-dsl-scope-provider.ts:148

Parameters

ParameterType
servicesLangiumCoreServices

Returns

RuneDslScopeProvider

Overrides

ts
DefaultScopeProvider.constructor

Properties

PropertyModifierTypeInherited fromDefined in
descriptionsreadonlyAstNodeDescriptionProviderDefaultScopeProvider.descriptionsnode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:28
globalScopeCachereadonlyWorkspaceCache<string, Scope>DefaultScopeProvider.globalScopeCachenode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:30
indexManagerreadonlyIndexManagerDefaultScopeProvider.indexManagernode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:29
nameProviderreadonlyNameProviderDefaultScopeProvider.nameProvidernode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:27
reflectionreadonlyAstReflectionDefaultScopeProvider.reflectionnode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:26

Methods

createScope()

ts
protected createScope(
   elements, 
   outerScope?, 
   options?): Scope;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:36

Create a scope for the given collection of AST node descriptions.

Parameters

ParameterType
elementsIterable<AstNodeDescription>
outerScope?Scope
options?ScopeOptions

Returns

Scope

Inherited from

ts
DefaultScopeProvider.createScope

createScopeForNodes()

ts
protected createScopeForNodes(
   elements, 
   outerScope?, 
   options?): Scope;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:41

Create a scope for the given collection of AST nodes, which need to be transformed into respective descriptions first. This is done using the NameProvider and AstNodeDescriptionProvider services.

Parameters

ParameterType
elementsIterable<AstNode>
outerScope?Scope
options?ScopeOptions

Returns

Scope

Inherited from

ts
DefaultScopeProvider.createScopeForNodes

getGlobalScope()

ts
protected getGlobalScope(referenceType, context): Scope;

Defined in: packages/core/src/services/rune-dsl-scope-provider.ts:1355

Override global scope lookup to support import ... as <alias> resolution.

When a file contains import fpml.consolidated.shared.* as fpml, references written as fpml.Leg should resolve to fpml.consolidated.shared.Leg in the global index. We do this by building a thin alias-expansion layer on top of the regular global scope: for every qualified reference name we try to replace a known alias prefix with the full namespace prefix and retry the lookup.

Parameters

ParameterType
referenceTypestring
contextReferenceInfo

Returns

Scope

Overrides

ts
DefaultScopeProvider.getGlobalScope

getScope()

ts
getScope(context): Scope;

Defined in: packages/core/src/services/rune-dsl-scope-provider.ts:152

Parameters

ParameterType
contextReferenceInfo

Returns

Scope

Overrides

ts
DefaultScopeProvider.getScope

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