greybel-languageserver-core
Version:
Core functionality of language server for GreyScript
24 lines (23 loc) • 1.3 kB
TypeScript
/// <reference types="node" />
import EventEmitter from 'events';
import type { ClientCapabilities, createConnection, InitializedParams, InitializeParams, InitializeResult, SemanticTokensBuilder } from 'vscode-languageserver';
import { IConfiguration, IContext, IContextFeatures, IFileSystem } from './types';
import { DocumentMerger } from './helper/document-merger';
import { DocumentManager } from './helper/document-manager';
export declare abstract class CoreContext extends EventEmitter implements IContext {
abstract readonly connection: ReturnType<typeof createConnection>;
abstract readonly fs: IFileSystem;
abstract readonly documentManager: DocumentManager;
abstract readonly documentMerger: DocumentMerger;
abstract createSemanticTokensBuilder(): SemanticTokensBuilder;
protected _features: IContextFeatures;
protected _configuration: IConfiguration;
constructor();
get features(): IContextFeatures;
getConfiguration(): IConfiguration;
protected syncConfiguraton(): Promise<void>;
protected configureCapabilties(capabilities: ClientCapabilities): void;
protected onInitialize(params: InitializeParams): Promise<InitializeResult<any>>;
protected onInitialized(_params: InitializedParams): Promise<void>;
listen(): Promise<void>;
}