Interface ScopeComputation

Language-specific service for precomputing global and local scopes. The service methods are executed as the first and second phase in the DocumentBuilder.

interface ScopeComputation {
    computeExports(document: LangiumDocument<AstNode>, cancelToken?: CancellationToken): Promise<AstNodeDescription[]>;
    computeLocalScopes(document: LangiumDocument<AstNode>, cancelToken?: CancellationToken): Promise<PrecomputedScopes>;
}

Implemented by

Methods

  • Creates descriptions of all AST nodes that shall be exported into the global scope from the given document. These descriptions are gathered by the IndexManager and stored in the global index so they can be referenced from other documents.

    Note: You should not resolve any cross-references in this service method. Cross-reference resolution depends on the scope computation phase to be completed (computeScope method), which runs after the initial indexing where this method is used.

    Parameters

    Returns Promise<AstNodeDescription[]>

    OperationCanceled if a user action occurs during execution

  • Precomputes the local scopes for a document, which are necessary for the default way of resolving references to symbols in the same document. The result is a multimap assigning a set of AST node descriptions to every level of the AST. These data are used by the ScopeProvider service to determine which target nodes are visible in the context of a specific cross-reference.

    Note: You should not resolve any cross-references in this service method. Cross-reference resolution depends on the scope computation phase to be completed.

    Parameters

    Returns Promise<PrecomputedScopes>

    OperationCanceled if a user action occurs during execution