UNPKG

26.1 kBTypeScriptView Raw
1import { TextDocument, Event as VEvent, DocumentSelector as VDocumentSelector, Event, Disposable, CancellationToken, ProviderResult, TextEdit as VTextEdit, ReferenceProvider, DefinitionProvider, SignatureHelpProvider, HoverProvider, CompletionItemProvider, WorkspaceSymbolProvider, DocumentHighlightProvider, CodeActionProvider, DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider, OnTypeFormattingEditProvider, RenameProvider, DocumentSymbolProvider, DocumentLinkProvider, DocumentColorProvider, DeclarationProvider, ImplementationProvider, SelectionRangeProvider, TypeDefinitionProvider, CallHierarchyProvider, LinkedEditingRangeProvider, TypeHierarchyProvider, FileCreateEvent, FileRenameEvent, FileDeleteEvent, FileWillCreateEvent, FileWillRenameEvent, FileWillDeleteEvent, CancellationError, InlineCompletionItemProvider } from 'vscode';
2import { CallHierarchyPrepareRequest, ClientCapabilities, CodeActionRequest, CodeLensRequest, CompletionRequest, DeclarationRequest, DefinitionRequest, DidChangeTextDocumentNotification, DidCloseTextDocumentNotification, DidCreateFilesNotification, DidDeleteFilesNotification, DidOpenTextDocumentNotification, DidRenameFilesNotification, DidSaveTextDocumentNotification, DocumentColorRequest, DocumentDiagnosticRequest, DocumentFormattingRequest, DocumentHighlightRequest, DocumentLinkRequest, DocumentOnTypeFormattingRequest, DocumentRangeFormattingRequest, DocumentSelector, DocumentSymbolRequest, ExecuteCommandOptions, ExecuteCommandRequest, FileOperationRegistrationOptions, FoldingRangeRequest, GenericNotificationHandler, GenericRequestHandler, HoverRequest, ImplementationRequest, InitializeParams, InlayHintRequest, InlineCompletionRegistrationOptions, InlineCompletionRequest, InlineValueRequest, LinkedEditingRangeRequest, MessageSignature, NotebookDocumentSyncRegistrationOptions, NotebookDocumentSyncRegistrationType, NotificationHandler, NotificationHandler0, NotificationType, NotificationType0, ProgressType, ProtocolNotificationType, ProtocolNotificationType0, ProtocolRequestType, ProtocolRequestType0, ReferencesRequest, RegistrationType, RenameRequest, RequestHandler, RequestHandler0, RequestType, RequestType0, SelectionRangeRequest, SemanticTokensRegistrationType, ServerCapabilities, SignatureHelpRequest, StaticRegistrationOptions, TextDocumentIdentifier, TextDocumentRegistrationOptions, TypeDefinitionRequest, TypeHierarchyPrepareRequest, WillCreateFilesRequest, WillDeleteFilesRequest, WillRenameFilesRequest, WillSaveTextDocumentNotification, WillSaveTextDocumentWaitUntilRequest, WorkspaceSymbolRequest } from 'vscode-languageserver-protocol';
3import type * as c2p from './codeConverter';
4import type * as p2c from './protocolConverter';
5export declare class LSPCancellationError extends CancellationError {
6 readonly data: object | Object;
7 constructor(data: object | Object);
8}
9export declare function ensure<T, K extends keyof T>(target: T, key: K): T[K];
10export interface NextSignature<P, R> {
11 (this: void, data: P, next: (data: P) => R): R;
12}
13export interface RegistrationData<T> {
14 id: string;
15 registerOptions: T;
16}
17export type FeatureStateKind = 'document' | 'workspace' | 'static' | 'window';
18export type FeatureState = {
19 kind: 'document';
20 /**
21 * The features's id. This is usually the method names used during
22 * registration.
23 */
24 id: string;
25 /**
26 * Has active registrations.
27 */
28 registrations: boolean;
29 /**
30 * A registration matches an open document.
31 */
32 matches: boolean;
33} | {
34 kind: 'workspace';
35 /**
36 * The features's id. This is usually the method names used during
37 * registration.
38 */
39 id: string;
40 /**
41 * Has active registrations.
42 */
43 registrations: boolean;
44} | {
45 kind: 'window';
46 /**
47 * The features's id. This is usually the method names used during
48 * registration.
49 */
50 id: string;
51 /**
52 * Has active registrations.
53 */
54 registrations: boolean;
55} | {
56 kind: 'static';
57};
58/**
59 * A static feature. A static feature can't be dynamically activated via the
60 * server. It is wired during the initialize sequence.
61 */
62export interface StaticFeature {
63 /**
64 * Called to fill the initialize params.
65 *
66 * @params the initialize params.
67 */
68 fillInitializeParams?: (params: InitializeParams) => void;
69 /**
70 * Called to fill in the client capabilities this feature implements.
71 *
72 * @param capabilities The client capabilities to fill.
73 */
74 fillClientCapabilities(capabilities: ClientCapabilities): void;
75 /**
76 * A preflight where the server capabilities are shown to all features
77 * before a feature is actually initialized. This allows feature to
78 * capture some state if they are a pre-requisite for other features.
79 *
80 * @param capabilities the server capabilities
81 * @param documentSelector the document selector pass to the client's constructor.
82 * May be `undefined` if the client was created without a selector.
83 */
84 preInitialize?: (capabilities: ServerCapabilities, documentSelector: DocumentSelector | undefined) => void;
85 /**
86 * Initialize the feature. This method is called on a feature instance
87 * when the client has successfully received the initialize request from
88 * the server and before the client sends the initialized notification
89 * to the server.
90 *
91 * @param capabilities the server capabilities
92 * @param documentSelector the document selector pass to the client's constructor.
93 * May be `undefined` if the client was created without a selector.
94 */
95 initialize(capabilities: ServerCapabilities, documentSelector: DocumentSelector | undefined): void;
96 /**
97 * Returns the state the feature is in.
98 */
99 getState(): FeatureState;
100 /**
101 * Called when the client is stopped or re-started to clear this feature.
102 * Usually a feature un-registers listeners registered hooked up with the
103 * VS Code extension host.
104 */
105 clear(): void;
106}
107export declare namespace StaticFeature {
108 function is(value: any): value is StaticFeature;
109}
110/**
111 * A dynamic feature can be activated via the server.
112 */
113export interface DynamicFeature<RO> {
114 /**
115 * Called to fill the initialize params.
116 *
117 * @params the initialize params.
118 */
119 fillInitializeParams?: (params: InitializeParams) => void;
120 /**
121 * Called to fill in the client capabilities this feature implements.
122 *
123 * @param capabilities The client capabilities to fill.
124 */
125 fillClientCapabilities(capabilities: ClientCapabilities): void;
126 /**
127 * A preflight where the server capabilities are shown to all features
128 * before a feature is actually initialized. This allows feature to
129 * capture some state if they are a pre-requisite for other features.
130 *
131 * @param capabilities the server capabilities
132 * @param documentSelector the document selector pass to the client's constructor.
133 * May be `undefined` if the client was created without a selector.
134 */
135 preInitialize?: (capabilities: ServerCapabilities, documentSelector: DocumentSelector | undefined) => void;
136 /**
137 * Initialize the feature. This method is called on a feature instance
138 * when the client has successfully received the initialize request from
139 * the server and before the client sends the initialized notification
140 * to the server.
141 *
142 * @param capabilities the server capabilities.
143 * @param documentSelector the document selector pass to the client's constructor.
144 * May be `undefined` if the client was created without a selector.
145 */
146 initialize(capabilities: ServerCapabilities, documentSelector: DocumentSelector | undefined): void;
147 /**
148 * Returns the state the feature is in.
149 */
150 getState(): FeatureState;
151 /**
152 * The signature (e.g. method) for which this features support dynamic activation / registration.
153 */
154 registrationType: RegistrationType<RO>;
155 /**
156 * Is called when the server send a register request for the given message.
157 *
158 * @param data additional registration data as defined in the protocol.
159 */
160 register(data: RegistrationData<RO>): void;
161 /**
162 * Is called when the server wants to unregister a feature.
163 *
164 * @param id the id used when registering the feature.
165 */
166 unregister(id: string): void;
167 /**
168 * Called when the client is stopped or re-started to clear this feature.
169 * Usually a feature un-registers listeners registered hooked up with the
170 * VS Code extension host.
171 */
172 clear(): void;
173}
174export declare namespace DynamicFeature {
175 function is<T>(value: any): value is DynamicFeature<T>;
176}
177interface CreateParamsSignature<E, P> {
178 (data: E): P;
179}
180export interface NotificationSendEvent<P extends {
181 textDocument: TextDocumentIdentifier;
182}> {
183 textDocument: TextDocument;
184 type: ProtocolNotificationType<P, TextDocumentRegistrationOptions>;
185 params: P;
186}
187export interface NotifyingFeature<P extends {
188 textDocument: TextDocumentIdentifier;
189}> {
190 onNotificationSent: VEvent<NotificationSendEvent<P>>;
191}
192/**
193 * An abstract dynamic feature implementation that operates on documents (e.g. text
194 * documents or notebooks).
195 */
196export declare abstract class DynamicDocumentFeature<RO, MW, CO = object> implements DynamicFeature<RO> {
197 protected readonly _client: FeatureClient<MW, CO>;
198 constructor(client: FeatureClient<MW, CO>);
199 abstract fillClientCapabilities(capabilities: ClientCapabilities): void;
200 abstract initialize(capabilities: ServerCapabilities, documentSelector: DocumentSelector | undefined): void;
201 abstract registrationType: RegistrationType<RO>;
202 abstract register(data: RegistrationData<RO>): void;
203 abstract unregister(id: string): void;
204 abstract clear(): void;
205 /**
206 * Returns the state the feature is in.
207 */
208 getState(): FeatureState;
209 protected abstract getDocumentSelectors(): IterableIterator<VDocumentSelector>;
210}
211/**
212 * A mixin type that allows to send notification or requests using a registered
213 * provider.
214 */
215export interface TextDocumentSendFeature<T extends Function> {
216 /**
217 * Returns a provider for the given text document.
218 */
219 getProvider(document: TextDocument): {
220 send: T;
221 } | undefined;
222}
223/**
224 * An abstract base class to implement features that react to events
225 * emitted from text documents.
226 */
227export declare abstract class TextDocumentEventFeature<P extends {
228 textDocument: TextDocumentIdentifier;
229}, E, M> extends DynamicDocumentFeature<TextDocumentRegistrationOptions, M> implements TextDocumentSendFeature<(data: E) => Promise<void>>, NotifyingFeature<P> {
230 private readonly _event;
231 protected readonly _type: ProtocolNotificationType<P, TextDocumentRegistrationOptions>;
232 protected readonly _middleware: () => NextSignature<E, Promise<void>> | undefined;
233 protected readonly _createParams: CreateParamsSignature<E, P>;
234 protected readonly _textDocument: (data: E) => TextDocument;
235 protected readonly _selectorFilter?: (selectors: IterableIterator<VDocumentSelector>, data: E) => boolean;
236 private _listener;
237 protected readonly _selectors: Map<string, VDocumentSelector>;
238 private readonly _onNotificationSent;
239 static textDocumentFilter(selectors: IterableIterator<VDocumentSelector>, textDocument: TextDocument): boolean;
240 constructor(client: FeatureClient<M>, event: Event<E>, type: ProtocolNotificationType<P, TextDocumentRegistrationOptions>, middleware: () => NextSignature<E, Promise<void>> | undefined, createParams: CreateParamsSignature<E, P>, textDocument: (data: E) => TextDocument, selectorFilter?: (selectors: IterableIterator<VDocumentSelector>, data: E) => boolean);
241 protected getStateInfo(): [IterableIterator<VDocumentSelector>, boolean];
242 protected getDocumentSelectors(): IterableIterator<VDocumentSelector>;
243 register(data: RegistrationData<TextDocumentRegistrationOptions>): void;
244 protected callback(data: E): Promise<void>;
245 private matches;
246 get onNotificationSent(): VEvent<NotificationSendEvent<P>>;
247 protected notificationSent(textDocument: TextDocument, type: ProtocolNotificationType<P, TextDocumentRegistrationOptions>, params: P): void;
248 protected abstract getTextDocument(data: E): TextDocument;
249 unregister(id: string): void;
250 clear(): void;
251 getProvider(document: TextDocument): {
252 send: (data: E) => Promise<void>;
253 } | undefined;
254}
255/**
256 * A mixin type to access a provider that is registered for a
257 * given text document / document selector.
258 */
259export interface TextDocumentProviderFeature<T> {
260 /**
261 * Triggers the corresponding RPC method.
262 */
263 getProvider(textDocument: TextDocument): T | undefined;
264}
265export type DocumentSelectorOptions = {
266 documentSelector: DocumentSelector;
267};
268/**
269 * A abstract feature implementation that registers language providers
270 * for text documents using a given document selector.
271 */
272export declare abstract class TextDocumentLanguageFeature<PO, RO extends TextDocumentRegistrationOptions & PO, PR, MW, CO = object> extends DynamicDocumentFeature<RO, MW, CO> {
273 private readonly _registrationType;
274 private readonly _registrations;
275 constructor(client: FeatureClient<MW, CO>, registrationType: RegistrationType<RO>);
276 protected getDocumentSelectors(): IterableIterator<VDocumentSelector>;
277 get registrationType(): RegistrationType<RO>;
278 abstract fillClientCapabilities(capabilities: ClientCapabilities): void;
279 abstract initialize(capabilities: ServerCapabilities, documentSelector: DocumentSelector): void;
280 register(data: RegistrationData<RO>): void;
281 protected abstract registerLanguageProvider(options: RO, id: string): [Disposable, PR];
282 unregister(id: string): void;
283 clear(): void;
284 protected getRegistration(documentSelector: DocumentSelector | undefined, capability: undefined | PO | (RO & StaticRegistrationOptions)): [string | undefined, (RO & {
285 documentSelector: DocumentSelector;
286 }) | undefined];
287 protected getRegistrationOptions(documentSelector: DocumentSelector | undefined, capability: undefined | PO): (RO & {
288 documentSelector: DocumentSelector;
289 }) | undefined;
290 getProvider(textDocument: TextDocument): PR | undefined;
291 protected getAllProviders(): Iterable<PR>;
292}
293export interface WorkspaceProviderFeature<PR> {
294 getProviders(): PR[] | undefined;
295}
296type WorkspaceFeatureRegistration<PR> = {
297 disposable: Disposable;
298 provider: PR;
299};
300export declare abstract class WorkspaceFeature<RO, PR, M> implements DynamicFeature<RO> {
301 protected readonly _client: FeatureClient<M>;
302 private readonly _registrationType;
303 protected readonly _registrations: Map<string, WorkspaceFeatureRegistration<PR>>;
304 constructor(client: FeatureClient<M>, registrationType: RegistrationType<RO>);
305 getState(): FeatureState;
306 get registrationType(): RegistrationType<RO>;
307 abstract fillClientCapabilities(capabilities: ClientCapabilities): void;
308 abstract initialize(capabilities: ServerCapabilities, documentSelector: DocumentSelector | undefined): void;
309 register(data: RegistrationData<RO>): void;
310 protected abstract registerLanguageProvider(options: RO): [Disposable, PR];
311 unregister(id: string): void;
312 clear(): void;
313 getProviders(): PR[];
314}
315export interface DedicatedTextSynchronizationFeature {
316 handles(textDocument: TextDocument): boolean;
317}
318import type { SemanticTokensProviderShape } from './semanticTokens';
319import type { DidChangeTextDocumentFeatureShape, DidCloseTextDocumentFeatureShape, DidOpenTextDocumentFeatureShape, DidSaveTextDocumentFeatureShape } from './textSynchronization';
320import type { CodeLensProviderShape } from './codeLens';
321import type { InlineValueProviderShape } from './inlineValue';
322import type { InlayHintsProviderShape } from './inlayHint';
323import type { DiagnosticProviderShape } from './diagnostic';
324import type { NotebookDocumentProviderShape } from './notebook';
325import { FoldingRangeProviderShape } from './foldingRange';
326export interface FeatureClient<M, CO = object> {
327 protocol2CodeConverter: p2c.Converter;
328 code2ProtocolConverter: c2p.Converter;
329 clientOptions: CO;
330 middleware: M;
331 start(): Promise<void>;
332 isRunning(): boolean;
333 stop(): Promise<void>;
334 sendRequest<R, PR, E, RO>(type: ProtocolRequestType0<R, PR, E, RO>, token?: CancellationToken): Promise<R>;
335 sendRequest<P, R, PR, E, RO>(type: ProtocolRequestType<P, R, PR, E, RO>, params: P, token?: CancellationToken): Promise<R>;
336 sendRequest<R, E>(type: RequestType0<R, E>, token?: CancellationToken): Promise<R>;
337 sendRequest<P, R, E>(type: RequestType<P, R, E>, params: P, token?: CancellationToken): Promise<R>;
338 sendRequest<R>(method: string, token?: CancellationToken): Promise<R>;
339 sendRequest<R>(method: string, param: any, token?: CancellationToken): Promise<R>;
340 onRequest<R, PR, E, RO>(type: ProtocolRequestType0<R, PR, E, RO>, handler: RequestHandler0<R, E>): Disposable;
341 onRequest<P, R, PR, E, RO>(type: ProtocolRequestType<P, R, PR, E, RO>, handler: RequestHandler<P, R, E>): Disposable;
342 onRequest<R, E>(type: RequestType0<R, E>, handler: RequestHandler0<R, E>): Disposable;
343 onRequest<P, R, E>(type: RequestType<P, R, E>, handler: RequestHandler<P, R, E>): Disposable;
344 onRequest<R, E>(method: string, handler: GenericRequestHandler<R, E>): Disposable;
345 sendNotification<RO>(type: ProtocolNotificationType0<RO>): Promise<void>;
346 sendNotification<P, RO>(type: ProtocolNotificationType<P, RO>, params?: P): Promise<void>;
347 sendNotification(type: NotificationType0): Promise<void>;
348 sendNotification<P>(type: NotificationType<P>, params?: P): Promise<void>;
349 sendNotification(method: string): Promise<void>;
350 sendNotification(method: string, params: any): Promise<void>;
351 onNotification<RO>(type: ProtocolNotificationType0<RO>, handler: NotificationHandler0): Disposable;
352 onNotification<P, RO>(type: ProtocolNotificationType<P, RO>, handler: NotificationHandler<P>): Disposable;
353 onNotification(type: NotificationType0, handler: NotificationHandler0): Disposable;
354 onNotification<P>(type: NotificationType<P>, handler: NotificationHandler<P>): Disposable;
355 onNotification(method: string, handler: GenericNotificationHandler): Disposable;
356 onProgress<P>(type: ProgressType<P>, token: string | number, handler: NotificationHandler<P>): Disposable;
357 info(message: string, data?: any, showNotification?: boolean): void;
358 warn(message: string, data?: any, showNotification?: boolean): void;
359 error(message: string, data?: any, showNotification?: boolean | 'force'): void;
360 handleFailedRequest<T>(type: MessageSignature, token: CancellationToken | undefined, error: any, defaultValue: T, showNotification?: boolean): T;
361 hasDedicatedTextSynchronizationFeature(textDocument: TextDocument): boolean;
362 getFeature(request: typeof DidOpenTextDocumentNotification.method): DidOpenTextDocumentFeatureShape;
363 getFeature(request: typeof DidChangeTextDocumentNotification.method): DidChangeTextDocumentFeatureShape;
364 getFeature(request: typeof WillSaveTextDocumentNotification.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentSendFeature<(textDocument: TextDocument) => Promise<void>>;
365 getFeature(request: typeof WillSaveTextDocumentWaitUntilRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentSendFeature<(textDocument: TextDocument) => ProviderResult<VTextEdit[]>>;
366 getFeature(request: typeof DidSaveTextDocumentNotification.method): DidSaveTextDocumentFeatureShape;
367 getFeature(request: typeof DidCloseTextDocumentNotification.method): DidCloseTextDocumentFeatureShape;
368 getFeature(request: typeof DidCreateFilesNotification.method): DynamicFeature<FileOperationRegistrationOptions> & {
369 send: (event: FileCreateEvent) => Promise<void>;
370 };
371 getFeature(request: typeof DidRenameFilesNotification.method): DynamicFeature<FileOperationRegistrationOptions> & {
372 send: (event: FileRenameEvent) => Promise<void>;
373 };
374 getFeature(request: typeof DidDeleteFilesNotification.method): DynamicFeature<FileOperationRegistrationOptions> & {
375 send: (event: FileDeleteEvent) => Promise<void>;
376 };
377 getFeature(request: typeof WillCreateFilesRequest.method): DynamicFeature<FileOperationRegistrationOptions> & {
378 send: (event: FileWillCreateEvent) => Promise<void>;
379 };
380 getFeature(request: typeof WillRenameFilesRequest.method): DynamicFeature<FileOperationRegistrationOptions> & {
381 send: (event: FileWillRenameEvent) => Promise<void>;
382 };
383 getFeature(request: typeof WillDeleteFilesRequest.method): DynamicFeature<FileOperationRegistrationOptions> & {
384 send: (event: FileWillDeleteEvent) => Promise<void>;
385 };
386 getFeature(request: typeof CompletionRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<CompletionItemProvider>;
387 getFeature(request: typeof HoverRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<HoverProvider>;
388 getFeature(request: typeof SignatureHelpRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<SignatureHelpProvider>;
389 getFeature(request: typeof DefinitionRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DefinitionProvider>;
390 getFeature(request: typeof ReferencesRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<ReferenceProvider>;
391 getFeature(request: typeof DocumentHighlightRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentHighlightProvider>;
392 getFeature(request: typeof CodeActionRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<CodeActionProvider>;
393 getFeature(request: typeof CodeLensRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<CodeLensProviderShape>;
394 getFeature(request: typeof DocumentFormattingRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentFormattingEditProvider>;
395 getFeature(request: typeof DocumentRangeFormattingRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentRangeFormattingEditProvider>;
396 getFeature(request: typeof DocumentOnTypeFormattingRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<OnTypeFormattingEditProvider>;
397 getFeature(request: typeof RenameRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<RenameProvider>;
398 getFeature(request: typeof DocumentSymbolRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentSymbolProvider>;
399 getFeature(request: typeof DocumentLinkRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentLinkProvider>;
400 getFeature(request: typeof DocumentColorRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentColorProvider>;
401 getFeature(request: typeof DeclarationRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DeclarationProvider>;
402 getFeature(request: typeof FoldingRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<FoldingRangeProviderShape>;
403 getFeature(request: typeof ImplementationRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<ImplementationProvider>;
404 getFeature(request: typeof SelectionRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<SelectionRangeProvider>;
405 getFeature(request: typeof TypeDefinitionRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<TypeDefinitionProvider>;
406 getFeature(request: typeof CallHierarchyPrepareRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<CallHierarchyProvider>;
407 getFeature(request: typeof SemanticTokensRegistrationType.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<SemanticTokensProviderShape>;
408 getFeature(request: typeof LinkedEditingRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<LinkedEditingRangeProvider>;
409 getFeature(request: typeof TypeHierarchyPrepareRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<TypeHierarchyProvider>;
410 getFeature(request: typeof InlineValueRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<InlineValueProviderShape>;
411 getFeature(request: typeof InlayHintRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<InlayHintsProviderShape>;
412 getFeature(request: typeof WorkspaceSymbolRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & WorkspaceProviderFeature<WorkspaceSymbolProvider>;
413 getFeature(request: typeof DocumentDiagnosticRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DiagnosticProviderShape> | undefined;
414 getFeature(request: typeof NotebookDocumentSyncRegistrationType.method): DynamicFeature<NotebookDocumentSyncRegistrationOptions> & NotebookDocumentProviderShape | undefined;
415 getFeature(request: typeof InlineCompletionRequest.method): DynamicFeature<InlineCompletionRegistrationOptions> & TextDocumentProviderFeature<InlineCompletionItemProvider>;
416 getFeature(request: typeof ExecuteCommandRequest.method): DynamicFeature<ExecuteCommandOptions>;
417}
418export {};