/** * Custom NodeKindProvider — maps DomainLang AST types to VS Code SymbolKinds. * * Langium's DefaultNodeKindProvider returns `SymbolKind.Field` for everything. * This override provides semantically meaningful icons for the Outline view, * breadcrumbs, Go to Symbol, and completion items. * * @module lsp/domain-lang-node-kind-provider */ import { DefaultNodeKindProvider } from 'langium/lsp'; import { CompletionItemKind, SymbolKind } from 'vscode-languageserver'; import type { AstNode, AstNodeDescription } from 'langium'; /** * Maps DomainLang AST types to semantically appropriate SymbolKind values. * * Used by the DocumentSymbolProvider (outline/breadcrumbs), WorkspaceSymbolProvider, * and the CompletionProvider. */ export declare class DomainLangNodeKindProvider extends DefaultNodeKindProvider { getSymbolKind(node: AstNode | AstNodeDescription): SymbolKind; getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind; /** * Resolves an AstNode from an AstNodeDescription (which may only have a reference). * Returns the node directly if it's already an AstNode. */ private resolveNode; }