Skip to content

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 ​

ts
new RuneDslLinker(services, deferredProvider?): RuneDslLinker;

Defined in: packages/core/src/services/rune-dsl-linker.ts:41

Parameters ​

ParameterType
servicesLangiumCoreServices
deferredProvider?DeferredModelProvider

Returns ​

RuneDslLinker

Overrides ​

DefaultLinker.constructor

Properties ​

PropertyModifierTypeInherited fromDefined in
astNodeLocatorprotected readonlyAstNodeLocatorDefaultLinker.astNodeLocatornode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:84
langiumDocumentsprotected readonly() => LangiumDocumentsDefaultLinker.langiumDocumentsnode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:85
languageIdprotected readonlystringDefaultLinker.languageIdnode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:87
profilerprotected readonlyLangiumProfiler | undefinedDefaultLinker.profilernode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:86
referenceResolverprotected readonlyReferenceResolverDefaultLinker.referenceResolvernode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:88
reflectionprotected readonlyAstReflectionDefaultLinker.reflectionnode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:82
scopeProviderprotected readonlyScopeProviderDefaultLinker.scopeProvidernode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:83

Methods ​

buildMultiReference() ​

ts
buildMultiReference(
   node, 
   property, 
   refNode, 
   refText
): MultiReference;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:96

Parameters ​

ParameterType
nodeAstNode
propertystring
refNodeCstNode | undefined
refTextstring

Returns ​

MultiReference

Inherited from ​

DefaultLinker.buildMultiReference


buildReference() ​

ts
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 ​

ParameterTypeDescription
nodeAstNodeThe containing AST node
propertystringThe AST node property being referenced
refNodeCstNode | undefinedThe corresponding CST node
refTextstringThe 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() ​

ts
protected createLinkingError(refInfo, targetDescription?): LinkingError;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:106

Parameters ​

ParameterType
refInfoReferenceInfo
targetDescription?AstNodeDescription

Returns ​

LinkingError

Inherited from ​

DefaultLinker.createLinkingError


ts
protected doLink(refInfo, document): void;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:91

Parameters ​

ParameterType
refInfoReferenceInfo
documentLangiumDocument

Returns ​

void

Inherited from ​

DefaultLinker.doLink


getCandidate() ​

ts
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 ​

ParameterTypeDescription
refInfoReferenceInfoInformation about the reference.

Returns ​

AstNodeDescription | LinkingError

Inherited from ​

DefaultLinker.getCandidate


getCandidates() ​

ts
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 ​

ParameterType
refInfoReferenceInfo

Returns ​

LinkingError | AstNodeDescription[]

Inherited from ​

DefaultLinker.getCandidates


getLinkedNode() ​

ts
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 ​

ParameterType
refInfoReferenceInfo

Returns ​

ts
{
  descr?: AstNodeDescription;
  error?: LinkingError;
  node?: AstNode;
}
NameTypeDefined in
descr?AstNodeDescriptionnode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:102
error?LinkingErrornode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:103
node?AstNodenode_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:101

Inherited from ​

DefaultLinker.getLinkedNode


ts
link(document, cancelToken?): Promise<void>;

Defined in: packages/core/src/services/rune-dsl-linker.ts:48

Parameters ​

ParameterType
documentLangiumDocument<AstNode>
cancelToken?CancellationToken

Returns ​

Promise<void>

Overrides ​

DefaultLinker.link


loadAstNode() ​

ts
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 ​

ParameterType
nodeDescriptionAstNodeDescription

Returns ​

AstNode | undefined

Overrides ​

DefaultLinker.loadAstNode


resolveMultiReference() ​

ts
protected resolveMultiReference(
   reference, 
   node, 
   property
): MultiReferenceItem<AstNode>[];

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:98

Parameters ​

ParameterType
referenceDefaultMultiReference
nodeAstNode
propertystring

Returns ​

MultiReferenceItem<AstNode>[]

Inherited from ​

DefaultLinker.resolveMultiReference


resolveReference() ​

ts
protected resolveReference(
   reference, 
   node, 
   property
): AstNode | undefined;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:97

Parameters ​

ParameterType
referenceDefaultReference
nodeAstNode
propertystring

Returns ​

AstNode | undefined

Inherited from ​

DefaultLinker.resolveReference


throwCyclicReferenceError() ​

ts
protected throwCyclicReferenceError(
   node, 
   property, 
   refText
): never;

Defined in: node_modules/.pnpm/[email protected]/node_modules/langium/lib/references/linker.d.ts:99

Parameters ​

ParameterType
nodeAstNode
propertystring
refTextstring

Returns ​

never

Inherited from ​

DefaultLinker.throwCyclicReferenceError


ts
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 ​

ParameterTypeDescription
documentLangiumDocumentA LangiumDocument that shall be unlinked.

Returns ​

void

Inherited from ​

DefaultLinker.unlink

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