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
new RuneDslScopeProvider(services): RuneDslScopeProvider;Defined in: packages/core/src/services/rune-dsl-scope-provider.ts:148
Parameters
| Parameter | Type |
|---|---|
services | LangiumCoreServices |
Returns
RuneDslScopeProvider
Overrides
DefaultScopeProvider.constructorProperties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
descriptions | readonly | AstNodeDescriptionProvider | DefaultScopeProvider.descriptions | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:28 |
globalScopeCache | readonly | WorkspaceCache<string, Scope> | DefaultScopeProvider.globalScopeCache | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:30 |
indexManager | readonly | IndexManager | DefaultScopeProvider.indexManager | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:29 |
nameProvider | readonly | NameProvider | DefaultScopeProvider.nameProvider | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:27 |
reflection | readonly | AstReflection | DefaultScopeProvider.reflection | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/scope-provider.d.ts:26 |
Methods
createScope()
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
| Parameter | Type |
|---|---|
elements | Iterable<AstNodeDescription> |
outerScope? | Scope |
options? | ScopeOptions |
Returns
Scope
Inherited from
DefaultScopeProvider.createScopecreateScopeForNodes()
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
| Parameter | Type |
|---|---|
elements | Iterable<AstNode> |
outerScope? | Scope |
options? | ScopeOptions |
Returns
Scope
Inherited from
DefaultScopeProvider.createScopeForNodesgetGlobalScope()
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
| Parameter | Type |
|---|---|
referenceType | string |
context | ReferenceInfo |
Returns
Scope
Overrides
DefaultScopeProvider.getGlobalScopegetScope()
getScope(context): Scope;Defined in: packages/core/src/services/rune-dsl-scope-provider.ts:152
Parameters
| Parameter | Type |
|---|---|
context | ReferenceInfo |
Returns
Scope
Overrides
DefaultScopeProvider.getScope