rune-langium / core/src / RuneDslLinker
Class: RuneDslLinker
Defined in: packages/core/src/services/rune-dsl-linker.ts:36
Langium linker that lazily materializes corpus documents stored in a DeferredModelProvider the first time a cross-reference to them is resolved.
Without a deferredProvider this behaves identically to DefaultLinker.
Extends
DefaultLinker
Constructors
Constructor
new RuneDslLinker(services, deferredProvider?): RuneDslLinker;Defined in: packages/core/src/services/rune-dsl-linker.ts:41
Parameters
| Parameter | Type |
|---|---|
services | LangiumCoreServices |
deferredProvider? | DeferredModelProvider |
Returns
RuneDslLinker
Overrides
DefaultLinker.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
astNodeLocator | protected readonly | AstNodeLocator | DefaultLinker.astNodeLocator | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:84 |
langiumDocuments | protected readonly | () => LangiumDocuments | DefaultLinker.langiumDocuments | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:85 |
languageId | protected readonly | string | DefaultLinker.languageId | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:87 |
profiler | protected readonly | LangiumProfiler | undefined | DefaultLinker.profiler | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:86 |
referenceResolver | protected readonly | ReferenceResolver | DefaultLinker.referenceResolver | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:88 |
reflection | protected readonly | AstReflection | DefaultLinker.reflection | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:82 |
scopeProvider | protected readonly | ScopeProvider | DefaultLinker.scopeProvider | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:83 |
Methods
buildMultiReference()
buildMultiReference(
node,
property,
refNode,
refText
): MultiReference;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:96
Parameters
| Parameter | Type |
|---|---|
node | AstNode |
property | string |
refNode | CstNode | undefined |
refText | string |
Returns
MultiReference
Inherited from
DefaultLinker.buildMultiReference
buildReference()
buildReference(
node,
property,
refNode,
refText
): Reference;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:95
Creates a cross reference node being aware of its containing AstNode, the corresponding CstNode, the cross reference text denoting the target AstNode being already extracted of the document text, as well as the unique cross reference identifier.
Default behavior:
- The returned Reference's 'ref' property pointing to the target AstNode is populated lazily on its first visit.
- If the target AstNode cannot be resolved on the first visit, an error indicator will be installed and further resolution attempts will not be performed.
Parameters
| Parameter | Type | Description |
|---|---|---|
node | AstNode | The containing AST node |
property | string | The AST node property being referenced |
refNode | CstNode | undefined | The corresponding CST node |
refText | string | The cross reference text denoting the target AstNode |
Returns
Reference
the desired Reference node, whose behavior wrt. resolving the cross reference is implementation specific.
Inherited from
DefaultLinker.buildReference
createLinkingError()
protected createLinkingError(refInfo, targetDescription?): LinkingError;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:106
Parameters
| Parameter | Type |
|---|---|
refInfo | ReferenceInfo |
targetDescription? | AstNodeDescription |
Returns
LinkingError
Inherited from
DefaultLinker.createLinkingError
doLink()
protected doLink(refInfo, document): void;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:91
Parameters
| Parameter | Type |
|---|---|
refInfo | ReferenceInfo |
document | LangiumDocument |
Returns
void
Inherited from
DefaultLinker.doLink
getCandidate()
getCandidate(refInfo): AstNodeDescription | LinkingError;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:93
Determines a candidate AST node description for linking the given reference.
Parameters
| Parameter | Type | Description |
|---|---|---|
refInfo | ReferenceInfo | Information about the reference. |
Returns
AstNodeDescription | LinkingError
Inherited from
DefaultLinker.getCandidate
getCandidates()
getCandidates(refInfo): LinkingError | AstNodeDescription[];Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:94
Determines a candidate AST node description for linking the given reference.
Parameters
| Parameter | Type |
|---|---|
refInfo | ReferenceInfo |
Returns
LinkingError | AstNodeDescription[]
Inherited from
DefaultLinker.getCandidates
getLinkedNode()
protected getLinkedNode(refInfo): {
descr?: AstNodeDescription;
error?: LinkingError;
node?: AstNode;
};Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:100
Parameters
| Parameter | Type |
|---|---|
refInfo | ReferenceInfo |
Returns
{
descr?: AstNodeDescription;
error?: LinkingError;
node?: AstNode;
}| Name | Type | Defined in |
|---|---|---|
descr? | AstNodeDescription | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:102 |
error? | LinkingError | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:103 |
node? | AstNode | node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:101 |
Inherited from
DefaultLinker.getLinkedNode
link()
link(document, cancelToken?): Promise<void>;Defined in: packages/core/src/services/rune-dsl-linker.ts:48
Parameters
| Parameter | Type |
|---|---|
document | LangiumDocument<AstNode> |
cancelToken? | CancellationToken |
Returns
Promise<void>
Overrides
DefaultLinker.link
loadAstNode()
loadAstNode(nodeDescription): AstNode | undefined;Defined in: packages/core/src/services/rune-dsl-linker.ts:57
Resolve a description through the same deferred-document path used by linking.
Parameters
| Parameter | Type |
|---|---|
nodeDescription | AstNodeDescription |
Returns
AstNode | undefined
Overrides
DefaultLinker.loadAstNode
resolveMultiReference()
protected resolveMultiReference(
reference,
node,
property
): MultiReferenceItem<AstNode>[];Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:98
Parameters
| Parameter | Type |
|---|---|
reference | DefaultMultiReference |
node | AstNode |
property | string |
Returns
MultiReferenceItem<AstNode>[]
Inherited from
DefaultLinker.resolveMultiReference
resolveReference()
protected resolveReference(
reference,
node,
property
): AstNode | undefined;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:97
Parameters
| Parameter | Type |
|---|---|
reference | DefaultReference |
node | AstNode |
property | string |
Returns
AstNode | undefined
Inherited from
DefaultLinker.resolveReference
throwCyclicReferenceError()
protected throwCyclicReferenceError(
node,
property,
refText
): never;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:99
Parameters
| Parameter | Type |
|---|---|
node | AstNode |
property | string |
refText | string |
Returns
never
Inherited from
DefaultLinker.throwCyclicReferenceError
unlink()
unlink(document): void;Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:92
Unlinks all references within the specified document and removes them from the list of references.
Parameters
| Parameter | Type | Description |
|---|---|---|
document | LangiumDocument | A LangiumDocument that shall be unlinked. |
Returns
void
Inherited from
DefaultLinker.unlink