UNPKG

greybel-languageserver-core

Version:
26 lines (25 loc) 1.44 kB
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>; }