import { Disposable, CancellationToken, ProviderResult, SymbolInformation as VSymbolInformation, WorkspaceSymbolProvider } from 'vscode'; import { ClientCapabilities, ServerCapabilities, WorkspaceSymbolRegistrationOptions } from 'vscode-languageserver-protocol'; import { FeatureClient, WorkspaceFeature } from './features'; export interface ProvideWorkspaceSymbolsSignature { (this: void, query: string, token: CancellationToken): ProviderResult; } export interface ResolveWorkspaceSymbolSignature { (this: void, item: VSymbolInformation, token: CancellationToken): ProviderResult; } export interface WorkspaceSymbolMiddleware { provideWorkspaceSymbols?: (this: void, query: string, token: CancellationToken, next: ProvideWorkspaceSymbolsSignature) => ProviderResult; resolveWorkspaceSymbol?: (this: void, item: VSymbolInformation, token: CancellationToken, next: ResolveWorkspaceSymbolSignature) => ProviderResult; } export declare class WorkspaceSymbolFeature extends WorkspaceFeature { constructor(client: FeatureClient); fillClientCapabilities(capabilities: ClientCapabilities): void; initialize(capabilities: ServerCapabilities): void; protected registerLanguageProvider(options: WorkspaceSymbolRegistrationOptions): [Disposable, WorkspaceSymbolProvider]; }