greybel-languageserver-core
Version:
Core functionality of language server for GreyScript
26 lines (25 loc) • 1.44 kB
TypeScript
import { CompletionItem, Document as TypeDocument, IResolveNamespaceResult, IType, SymbolInfo } from 'greybel-type-analyzer';
import { ASTBase, ASTBaseBlockWithScope } from 'miniscript-core';
import { Position } from 'vscode-languageserver-textdocument';
import { IActiveDocument, IContext } from '../types';
export type LookupOuter = ASTBase[];
export interface LookupASTResult {
closest: ASTBase;
outer: LookupOuter;
}
export declare class LookupHelper {
readonly document: IActiveDocument;
readonly context: IContext;
private mergedTypeMap;
constructor(document: IActiveDocument, context: IContext);
getTypeMap(): Promise<TypeDocument>;
findAllAssignmentsOfIdentifier(identifier: string, root: ASTBaseBlockWithScope): Promise<SymbolInfo[]>;
findAllAssignmentsOfItem(item: ASTBase): Promise<IType>;
findAllAvailableIdentifierInRoot(): Promise<Map<string, CompletionItem>>;
findAllAvailableIdentifier(root: ASTBaseBlockWithScope): Promise<Map<string, CompletionItem>>;
findAllAvailableIdentifierRelatedToPosition(item: ASTBase): Promise<Map<string, CompletionItem>>;
lookupAST(position: Position): Promise<LookupASTResult | null>;
lookupBasePath(item: ASTBase): Promise<IResolveNamespaceResult | null>;
lookupTypeInfo({ closest, outer }: LookupASTResult): Promise<IResolveNamespaceResult | null>;
lookupType(position: Position): Promise<IResolveNamespaceResult | null>;
}