@depup/vscode-languageserver-protocol 3.18.3-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/License.txt +11 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/eslint.config.js +13 -0
  5. package/lib/browser/main.d.ts +4 -0
  6. package/lib/browser/main.js +27 -0
  7. package/lib/common/api.d.ts +58 -0
  8. package/lib/common/api.js +77 -0
  9. package/lib/common/connection.d.ts +187 -0
  10. package/lib/common/connection.js +14 -0
  11. package/lib/common/messages.d.ts +58 -0
  12. package/lib/common/messages.js +81 -0
  13. package/lib/common/protocol.$.d.ts +1 -0
  14. package/lib/common/protocol.$.js +43 -0
  15. package/lib/common/protocol.callHierarchy.d.ts +89 -0
  16. package/lib/common/protocol.callHierarchy.js +45 -0
  17. package/lib/common/protocol.colorProvider.d.ts +68 -0
  18. package/lib/common/protocol.colorProvider.js +34 -0
  19. package/lib/common/protocol.configuration.d.ts +36 -0
  20. package/lib/common/protocol.configuration.js +25 -0
  21. package/lib/common/protocol.d.ts +3626 -0
  22. package/lib/common/protocol.declaration.d.ts +38 -0
  23. package/lib/common/protocol.declaration.js +23 -0
  24. package/lib/common/protocol.diagnostic.d.ts +369 -0
  25. package/lib/common/protocol.diagnostic.js +111 -0
  26. package/lib/common/protocol.fileOperations.d.ts +312 -0
  27. package/lib/common/protocol.fileOperations.js +107 -0
  28. package/lib/common/protocol.foldingRange.d.ts +118 -0
  29. package/lib/common/protocol.foldingRange.js +33 -0
  30. package/lib/common/protocol.implementation.d.ts +39 -0
  31. package/lib/common/protocol.implementation.js +22 -0
  32. package/lib/common/protocol.inlayHint.d.ts +117 -0
  33. package/lib/common/protocol.inlayHint.js +46 -0
  34. package/lib/common/protocol.inlineCompletion.d.ts +53 -0
  35. package/lib/common/protocol.inlineCompletion.js +22 -0
  36. package/lib/common/protocol.inlineValue.d.ts +88 -0
  37. package/lib/common/protocol.inlineValue.js +32 -0
  38. package/lib/common/protocol.js +1031 -0
  39. package/lib/common/protocol.linkedEditingRange.d.ts +53 -0
  40. package/lib/common/protocol.linkedEditingRange.js +20 -0
  41. package/lib/common/protocol.moniker.d.ts +107 -0
  42. package/lib/common/protocol.moniker.js +69 -0
  43. package/lib/common/protocol.notebook.d.ts +428 -0
  44. package/lib/common/protocol.notebook.js +247 -0
  45. package/lib/common/protocol.progress.d.ts +108 -0
  46. package/lib/common/protocol.progress.js +38 -0
  47. package/lib/common/protocol.selectionRange.d.ts +42 -0
  48. package/lib/common/protocol.selectionRange.js +21 -0
  49. package/lib/common/protocol.semanticTokens.d.ts +241 -0
  50. package/lib/common/protocol.semanticTokens.js +61 -0
  51. package/lib/common/protocol.showDocument.d.ts +73 -0
  52. package/lib/common/protocol.showDocument.js +23 -0
  53. package/lib/common/protocol.textDocumentContent.d.ts +93 -0
  54. package/lib/common/protocol.textDocumentContent.js +33 -0
  55. package/lib/common/protocol.typeDefinition.d.ts +39 -0
  56. package/lib/common/protocol.typeDefinition.js +22 -0
  57. package/lib/common/protocol.typeHierarchy.d.ts +84 -0
  58. package/lib/common/protocol.typeHierarchy.js +43 -0
  59. package/lib/common/protocol.workspaceFolder.d.ts +76 -0
  60. package/lib/common/protocol.workspaceFolder.js +29 -0
  61. package/lib/common/utils/is.d.ts +9 -0
  62. package/lib/common/utils/is.js +45 -0
  63. package/lib/node/main.d.ts +5 -0
  64. package/lib/node/main.js +27 -0
  65. package/metaModel.schema.json +864 -0
  66. package/package.json +68 -0
  67. package/thirdpartynotices.txt +31 -0
@@ -0,0 +1,3626 @@
1
+ import { ProgressToken, RequestHandler, TraceValue } from 'vscode-jsonrpc';
2
+ import { MessageDirection, ProtocolRequestType, ProtocolRequestType0, ProtocolNotificationType, ProtocolNotificationType0, CM } from './messages';
3
+ import { Position, Range, Location, LocationLink, Diagnostic, Command, TextEdit, WorkspaceEdit, WorkspaceEditMetadata, DocumentUri, TextDocumentIdentifier, VersionedTextDocumentIdentifier, TextDocumentItem, CompletionItem, CompletionList, Hover, SignatureHelp, Definition, ReferenceContext, DocumentHighlight, SymbolInformation, CodeLens, CodeActionContext, FormattingOptions, DocumentLink, MarkupKind, SymbolKind, CompletionItemKind, CodeAction, CodeActionKind, DocumentSymbol, CompletionItemTag, DiagnosticTag, SymbolTag, uinteger, integer, InsertTextMode, LSPAny, WorkspaceSymbol, URI, WorkspaceFolder, CodeActionTag } from 'vscode-languageserver-types';
4
+ import { ImplementationRequest, ImplementationClientCapabilities, ImplementationOptions, ImplementationRegistrationOptions, ImplementationParams } from './protocol.implementation';
5
+ import { TypeDefinitionRequest, TypeDefinitionClientCapabilities, TypeDefinitionOptions, TypeDefinitionRegistrationOptions, TypeDefinitionParams } from './protocol.typeDefinition';
6
+ import { WorkspaceFoldersRequest, DidChangeWorkspaceFoldersNotification, DidChangeWorkspaceFoldersParams, WorkspaceFoldersChangeEvent, WorkspaceFoldersInitializeParams, WorkspaceFoldersServerCapabilities } from './protocol.workspaceFolder';
7
+ import { ConfigurationRequest, ConfigurationParams, ConfigurationItem } from './protocol.configuration';
8
+ import { DocumentColorRequest, ColorPresentationRequest, DocumentColorOptions, DocumentColorParams, ColorPresentationParams, DocumentColorClientCapabilities, DocumentColorRegistrationOptions } from './protocol.colorProvider';
9
+ import { FoldingRangeClientCapabilities, FoldingRangeOptions, FoldingRangeRequest, FoldingRangeParams, FoldingRangeRegistrationOptions, FoldingRangeRefreshRequest, FoldingRangeWorkspaceClientCapabilities } from './protocol.foldingRange';
10
+ import { DeclarationClientCapabilities, DeclarationRequest, DeclarationOptions, DeclarationRegistrationOptions, DeclarationParams } from './protocol.declaration';
11
+ import { SelectionRangeClientCapabilities, SelectionRangeOptions, SelectionRangeRequest, SelectionRangeParams, SelectionRangeRegistrationOptions } from './protocol.selectionRange';
12
+ import { WorkDoneProgressBegin, WorkDoneProgressReport, WorkDoneProgressEnd, WorkDoneProgress, WorkDoneProgressCreateParams, WorkDoneProgressCreateRequest, WorkDoneProgressCancelParams, WorkDoneProgressCancelNotification } from './protocol.progress';
13
+ import { CallHierarchyClientCapabilities, CallHierarchyOptions, CallHierarchyRegistrationOptions, CallHierarchyIncomingCallsParams, CallHierarchyIncomingCallsRequest, CallHierarchyOutgoingCallsParams, CallHierarchyOutgoingCallsRequest, CallHierarchyPrepareParams, CallHierarchyPrepareRequest } from './protocol.callHierarchy';
14
+ import { SemanticTokensPartialResult, SemanticTokensDeltaPartialResult, TokenFormat, SemanticTokensClientCapabilities, SemanticTokensOptions, SemanticTokensRegistrationOptions, SemanticTokensParams, SemanticTokensRequest, SemanticTokensDeltaParams, SemanticTokensDeltaRequest, SemanticTokensRangeParams, SemanticTokensRangeRequest, SemanticTokensRefreshRequest, SemanticTokensWorkspaceClientCapabilities, SemanticTokensRegistrationType } from './protocol.semanticTokens';
15
+ import { ShowDocumentParams, ShowDocumentResult, ShowDocumentRequest, ShowDocumentClientCapabilities } from './protocol.showDocument';
16
+ import { LinkedEditingRangeClientCapabilities, LinkedEditingRanges, LinkedEditingRangeOptions, LinkedEditingRangeParams, LinkedEditingRangeRegistrationOptions, LinkedEditingRangeRequest } from './protocol.linkedEditingRange';
17
+ import { FileOperationOptions, FileOperationClientCapabilities, FileOperationRegistrationOptions, FileOperationPatternOptions, FileOperationPatternKind, DidCreateFilesNotification, CreateFilesParams, FileCreate, WillCreateFilesRequest, DidRenameFilesNotification, RenameFilesParams, FileRename, WillRenameFilesRequest, DidDeleteFilesNotification, DeleteFilesParams, FileDelete, WillDeleteFilesRequest } from './protocol.fileOperations';
18
+ import { UniquenessLevel, MonikerKind, Moniker, MonikerClientCapabilities, MonikerOptions, MonikerRegistrationOptions, MonikerParams, MonikerRequest } from './protocol.moniker';
19
+ import { TypeHierarchyClientCapabilities, TypeHierarchyOptions, TypeHierarchyRegistrationOptions, TypeHierarchyPrepareParams, TypeHierarchyPrepareRequest, TypeHierarchySubtypesParams, TypeHierarchySubtypesRequest, TypeHierarchySupertypesParams, TypeHierarchySupertypesRequest } from './protocol.typeHierarchy';
20
+ import { InlineValueClientCapabilities, InlineValueOptions, InlineValueRegistrationOptions, InlineValueWorkspaceClientCapabilities, InlineValueParams, InlineValueRequest, InlineValueRefreshRequest } from './protocol.inlineValue';
21
+ import { InlayHintClientCapabilities, InlayHintOptions, InlayHintRegistrationOptions, InlayHintWorkspaceClientCapabilities, InlayHintParams, InlayHintRequest, InlayHintResolveRequest, InlayHintRefreshRequest } from './protocol.inlayHint';
22
+ import { DiagnosticClientCapabilities, DiagnosticOptions, DiagnosticRegistrationOptions, DiagnosticServerCancellationData, DocumentDiagnosticParams, DocumentDiagnosticReportKind, FullDocumentDiagnosticReport, RelatedFullDocumentDiagnosticReport, UnchangedDocumentDiagnosticReport, RelatedUnchangedDocumentDiagnosticReport, DocumentDiagnosticReport, DocumentDiagnosticReportPartialResult, DocumentDiagnosticRequest, PreviousResultId, WorkspaceDiagnosticParams, WorkspaceFullDocumentDiagnosticReport, WorkspaceUnchangedDocumentDiagnosticReport, WorkspaceDocumentDiagnosticReport, WorkspaceDiagnosticReport, WorkspaceDiagnosticReportPartialResult, WorkspaceDiagnosticRequest, DiagnosticRefreshRequest, DiagnosticWorkspaceClientCapabilities } from './protocol.diagnostic';
23
+ import { NotebookDocumentSyncClientCapabilities, NotebookCellKind, ExecutionSummary, NotebookCell, NotebookDocument, NotebookDocumentIdentifier, VersionedNotebookDocumentIdentifier, NotebookDocumentSyncOptions, NotebookDocumentSyncRegistrationOptions, NotebookDocumentSyncRegistrationType, DidOpenNotebookDocumentParams, DidOpenNotebookDocumentNotification, NotebookCellArrayChange, NotebookDocumentChangeEvent, DidChangeNotebookDocumentParams, DidChangeNotebookDocumentNotification, DidSaveNotebookDocumentParams, DidSaveNotebookDocumentNotification, DidCloseNotebookDocumentParams, DidCloseNotebookDocumentNotification, NotebookDocumentFilterWithCells, NotebookDocumentFilterWithNotebook } from './protocol.notebook';
24
+ import { InlineCompletionClientCapabilities, InlineCompletionOptions, InlineCompletionParams, InlineCompletionRegistrationOptions, InlineCompletionRequest } from './protocol.inlineCompletion';
25
+ import { TextDocumentContentClientCapabilities, TextDocumentContentOptions, TextDocumentContentRegistrationOptions, TextDocumentContentParams, TextDocumentContentResult, TextDocumentContentRequest, TextDocumentContentRefreshParams, TextDocumentContentRefreshRequest } from './protocol.textDocumentContent';
26
+ /**
27
+ * A document filter where `language` is required field.
28
+ *
29
+ * @since 3.18.0
30
+ */
31
+ export type TextDocumentFilterLanguage = {
32
+ /**
33
+ * A language id, like `typescript`.
34
+ */
35
+ language: string;
36
+ /**
37
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
38
+ */
39
+ scheme?: string;
40
+ /**
41
+ * A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.
42
+ *
43
+ * @since 3.18.0 - support for relative patterns. Whether clients support
44
+ * relative patterns depends on the client capability
45
+ * `textDocuments.filters.relativePatternSupport`.
46
+ */
47
+ pattern?: GlobPattern;
48
+ };
49
+ /**
50
+ * A document filter where `scheme` is required field.
51
+ *
52
+ * @since 3.18.0
53
+ */
54
+ export type TextDocumentFilterScheme = {
55
+ /**
56
+ * A language id, like `typescript`.
57
+ */
58
+ language?: string;
59
+ /**
60
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
61
+ */
62
+ scheme: string;
63
+ /**
64
+ * A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.
65
+ *
66
+ * @since 3.18.0 - support for relative patterns. Whether clients support
67
+ * relative patterns depends on the client capability
68
+ * `textDocuments.filters.relativePatternSupport`.
69
+ */
70
+ pattern?: GlobPattern;
71
+ };
72
+ /**
73
+ * A document filter where `pattern` is required field.
74
+ *
75
+ * @since 3.18.0
76
+ */
77
+ export type TextDocumentFilterPattern = {
78
+ /**
79
+ * A language id, like `typescript`.
80
+ */
81
+ language?: string;
82
+ /**
83
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
84
+ */
85
+ scheme?: string;
86
+ /**
87
+ * A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.
88
+ *
89
+ * @since 3.18.0 - support for relative patterns. Whether clients support
90
+ * relative patterns depends on the client capability
91
+ * `textDocuments.filters.relativePatternSupport`.
92
+ */
93
+ pattern: GlobPattern;
94
+ };
95
+ /**
96
+ * A document filter denotes a document by different properties like
97
+ * the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
98
+ * its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
99
+ *
100
+ * Glob patterns can have the following syntax:
101
+ * - `*` to match zero or more characters in a path segment
102
+ * - `?` to match on one character in a path segment
103
+ * - `**` to match any number of path segments, including none
104
+ * - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
105
+ * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
106
+ * - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
107
+ *
108
+ * @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
109
+ * @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
110
+ *
111
+ * @since 3.17.0
112
+ */
113
+ export type TextDocumentFilter = TextDocumentFilterLanguage | TextDocumentFilterScheme | TextDocumentFilterPattern;
114
+ /**
115
+ * The TextDocumentFilter namespace provides helper functions to work with
116
+ * {@link TextDocumentFilter} literals.
117
+ *
118
+ * @since 3.17.0
119
+ */
120
+ export declare namespace TextDocumentFilter {
121
+ function is(value: any): value is TextDocumentFilter;
122
+ }
123
+ /**
124
+ * A notebook document filter where `notebookType` is required field.
125
+ *
126
+ * @since 3.18.0
127
+ */
128
+ export type NotebookDocumentFilterNotebookType = {
129
+ /**
130
+ * The type of the enclosing notebook.
131
+ */
132
+ notebookType: string;
133
+ /**
134
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
135
+ */
136
+ scheme?: string;
137
+ /**
138
+ * A glob pattern.
139
+ */
140
+ pattern?: GlobPattern;
141
+ };
142
+ /**
143
+ * A notebook document filter where `scheme` is required field.
144
+ *
145
+ * @since 3.18.0
146
+ */
147
+ export type NotebookDocumentFilterScheme = {
148
+ /**
149
+ * The type of the enclosing notebook.
150
+ */
151
+ notebookType?: string;
152
+ /**
153
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
154
+ */
155
+ scheme: string;
156
+ /**
157
+ * A glob pattern.
158
+ */
159
+ pattern?: GlobPattern;
160
+ };
161
+ /**
162
+ * A notebook document filter where `pattern` is required field.
163
+ *
164
+ * @since 3.18.0
165
+ */
166
+ export type NotebookDocumentFilterPattern = {
167
+ /**
168
+ * The type of the enclosing notebook.
169
+ */
170
+ notebookType?: string;
171
+ /**
172
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
173
+ */
174
+ scheme?: string;
175
+ /**
176
+ * A glob pattern.
177
+ */
178
+ pattern: GlobPattern;
179
+ };
180
+ /**
181
+ * A notebook document filter denotes a notebook document by
182
+ * different properties. The properties will be match
183
+ * against the notebook's URI (same as with documents)
184
+ *
185
+ * @since 3.17.0
186
+ */
187
+ export type NotebookDocumentFilter = NotebookDocumentFilterNotebookType | NotebookDocumentFilterScheme | NotebookDocumentFilterPattern;
188
+ /**
189
+ * The NotebookDocumentFilter namespace provides helper functions to work with
190
+ * {@link NotebookDocumentFilter} literals.
191
+ *
192
+ * @since 3.17.0
193
+ */
194
+ export declare namespace NotebookDocumentFilter {
195
+ function is(value: any): value is NotebookDocumentFilter;
196
+ }
197
+ /**
198
+ * A notebook cell text document filter denotes a cell text
199
+ * document by different properties.
200
+ *
201
+ * @since 3.17.0
202
+ */
203
+ export type NotebookCellTextDocumentFilter = {
204
+ /**
205
+ * A filter that matches against the notebook
206
+ * containing the notebook cell. If a string
207
+ * value is provided it matches against the
208
+ * notebook type. '*' matches every notebook.
209
+ */
210
+ notebook: string | NotebookDocumentFilter;
211
+ /**
212
+ * A language id like `python`.
213
+ *
214
+ * Will be matched against the language id of the
215
+ * notebook cell document. '*' matches every language.
216
+ */
217
+ language?: string;
218
+ };
219
+ /**
220
+ * The NotebookCellTextDocumentFilter namespace provides helper functions to work with
221
+ * {@link NotebookCellTextDocumentFilter} literals.
222
+ *
223
+ * @since 3.17.0
224
+ */
225
+ export declare namespace NotebookCellTextDocumentFilter {
226
+ function is(value: any): value is NotebookCellTextDocumentFilter;
227
+ }
228
+ /**
229
+ * A document filter describes a top level text document or
230
+ * a notebook cell document.
231
+ *
232
+ * @since 3.17.0 - support for NotebookCellTextDocumentFilter.
233
+ */
234
+ export type DocumentFilter = TextDocumentFilter | NotebookCellTextDocumentFilter;
235
+ /**
236
+ * A document selector is the combination of one or many document filters.
237
+ *
238
+ * @sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`;
239
+ *
240
+ * The use of a string as a document filter is deprecated @since 3.16.0.
241
+ */
242
+ export type DocumentSelector = (string | DocumentFilter)[];
243
+ /**
244
+ * The DocumentSelector namespace provides helper functions to work with
245
+ * {@link DocumentSelector}s.
246
+ */
247
+ export declare namespace DocumentSelector {
248
+ function is(value: any[] | undefined | null): value is DocumentSelector;
249
+ }
250
+ /**
251
+ * General parameters to register for a notification or to register a provider.
252
+ */
253
+ export interface Registration {
254
+ /**
255
+ * The id used to register the request. The id can be used to deregister
256
+ * the request again.
257
+ */
258
+ id: string;
259
+ /**
260
+ * The method / capability to register for.
261
+ */
262
+ method: string;
263
+ /**
264
+ * Options necessary for the registration.
265
+ */
266
+ registerOptions?: LSPAny;
267
+ }
268
+ export interface RegistrationParams {
269
+ registrations: Registration[];
270
+ }
271
+ /**
272
+ * The `client/registerCapability` request is sent from the server to the client to register a new capability
273
+ * handler on the client side.
274
+ */
275
+ export declare namespace RegistrationRequest {
276
+ const method: 'client/registerCapability';
277
+ const messageDirection: MessageDirection;
278
+ const type: ProtocolRequestType<RegistrationParams, void, never, void, void>;
279
+ type HandlerSignature = RequestHandler<RegistrationParams, void, void>;
280
+ }
281
+ /**
282
+ * General parameters to unregister a request or notification.
283
+ */
284
+ export interface Unregistration {
285
+ /**
286
+ * The id used to unregister the request or notification. Usually an id
287
+ * provided during the register request.
288
+ */
289
+ id: string;
290
+ /**
291
+ * The method to unregister for.
292
+ */
293
+ method: string;
294
+ }
295
+ export interface UnregistrationParams {
296
+ unregisterations: Unregistration[];
297
+ }
298
+ /**
299
+ * The `client/unregisterCapability` request is sent from the server to the client to unregister a previously registered capability
300
+ * handler on the client side.
301
+ */
302
+ export declare namespace UnregistrationRequest {
303
+ const method: 'client/unregisterCapability';
304
+ const messageDirection: MessageDirection;
305
+ const type: ProtocolRequestType<UnregistrationParams, void, never, void, void>;
306
+ type HandlerSignature = RequestHandler<UnregistrationParams, void, void>;
307
+ }
308
+ export interface WorkDoneProgressParams {
309
+ /**
310
+ * An optional token that a server can use to report work done progress.
311
+ */
312
+ workDoneToken?: ProgressToken;
313
+ }
314
+ export interface PartialResultParams {
315
+ /**
316
+ * An optional token that a server can use to report partial results (e.g. streaming) to
317
+ * the client.
318
+ */
319
+ partialResultToken?: ProgressToken;
320
+ }
321
+ /**
322
+ * A parameter literal used in requests to pass a text document and a position inside that
323
+ * document.
324
+ */
325
+ export interface TextDocumentPositionParams {
326
+ /**
327
+ * The text document.
328
+ */
329
+ textDocument: TextDocumentIdentifier;
330
+ /**
331
+ * The position inside the text document.
332
+ */
333
+ position: Position;
334
+ }
335
+ /**
336
+ * The kind of resource operations supported by the client.
337
+ */
338
+ export type ResourceOperationKind = 'create' | 'rename' | 'delete';
339
+ export declare namespace ResourceOperationKind {
340
+ /**
341
+ * Supports creating new files and folders.
342
+ */
343
+ const Create: ResourceOperationKind;
344
+ /**
345
+ * Supports renaming existing files and folders.
346
+ */
347
+ const Rename: ResourceOperationKind;
348
+ /**
349
+ * Supports deleting existing files and folders.
350
+ */
351
+ const Delete: ResourceOperationKind;
352
+ }
353
+ export type FailureHandlingKind = 'abort' | 'transactional' | 'undo' | 'textOnlyTransactional';
354
+ export declare namespace FailureHandlingKind {
355
+ /**
356
+ * Applying the workspace change is simply aborted if one of the changes provided
357
+ * fails. All operations executed before the failing operation stay executed.
358
+ */
359
+ const Abort: FailureHandlingKind;
360
+ /**
361
+ * All operations are executed transactional. That means they either all
362
+ * succeed or no changes at all are applied to the workspace.
363
+ */
364
+ const Transactional: FailureHandlingKind;
365
+ /**
366
+ * If the workspace edit contains only textual file changes they are executed transactional.
367
+ * If resource changes (create, rename or delete file) are part of the change the failure
368
+ * handling strategy is abort.
369
+ */
370
+ const TextOnlyTransactional: FailureHandlingKind;
371
+ /**
372
+ * The client tries to undo the operations already executed. But there is no
373
+ * guarantee that this is succeeding.
374
+ */
375
+ const Undo: FailureHandlingKind;
376
+ }
377
+ /**
378
+ * Workspace specific client capabilities.
379
+ */
380
+ export interface WorkspaceClientCapabilities {
381
+ /**
382
+ * The client supports applying batch edits
383
+ * to the workspace by supporting the request
384
+ * 'workspace/applyEdit'
385
+ */
386
+ applyEdit?: boolean;
387
+ /**
388
+ * Capabilities specific to `WorkspaceEdit`s.
389
+ */
390
+ workspaceEdit?: WorkspaceEditClientCapabilities;
391
+ /**
392
+ * Capabilities specific to the `workspace/didChangeConfiguration` notification.
393
+ */
394
+ didChangeConfiguration?: DidChangeConfigurationClientCapabilities;
395
+ /**
396
+ * Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
397
+ */
398
+ didChangeWatchedFiles?: DidChangeWatchedFilesClientCapabilities;
399
+ /**
400
+ * Capabilities specific to the `workspace/symbol` request.
401
+ */
402
+ symbol?: WorkspaceSymbolClientCapabilities;
403
+ /**
404
+ * Capabilities specific to the `workspace/executeCommand` request.
405
+ */
406
+ executeCommand?: ExecuteCommandClientCapabilities;
407
+ /**
408
+ * The client has support for workspace folders.
409
+ *
410
+ * @since 3.6.0
411
+ */
412
+ workspaceFolders?: boolean;
413
+ /**
414
+ * The client supports `workspace/configuration` requests.
415
+ *
416
+ * @since 3.6.0
417
+ */
418
+ configuration?: boolean;
419
+ /**
420
+ * Capabilities specific to the semantic token requests scoped to the
421
+ * workspace.
422
+ *
423
+ * @since 3.16.0.
424
+ */
425
+ semanticTokens?: SemanticTokensWorkspaceClientCapabilities;
426
+ /**
427
+ * Capabilities specific to the code lens requests scoped to the
428
+ * workspace.
429
+ *
430
+ * @since 3.16.0.
431
+ */
432
+ codeLens?: CodeLensWorkspaceClientCapabilities;
433
+ /**
434
+ * The client has support for file notifications/requests for user operations on files.
435
+ *
436
+ * Since 3.16.0
437
+ */
438
+ fileOperations?: FileOperationClientCapabilities;
439
+ /**
440
+ * Capabilities specific to the inline values requests scoped to the
441
+ * workspace.
442
+ *
443
+ * @since 3.17.0.
444
+ */
445
+ inlineValue?: InlineValueWorkspaceClientCapabilities;
446
+ /**
447
+ * Capabilities specific to the inlay hint requests scoped to the
448
+ * workspace.
449
+ *
450
+ * @since 3.17.0.
451
+ */
452
+ inlayHint?: InlayHintWorkspaceClientCapabilities;
453
+ /**
454
+ * Capabilities specific to the diagnostic requests scoped to the
455
+ * workspace.
456
+ *
457
+ * @since 3.17.0.
458
+ */
459
+ diagnostics?: DiagnosticWorkspaceClientCapabilities;
460
+ /**
461
+ * Capabilities specific to the folding range requests scoped to the workspace.
462
+ *
463
+ * @since 3.18.0
464
+ */
465
+ foldingRange?: FoldingRangeWorkspaceClientCapabilities;
466
+ /**
467
+ * Capabilities specific to the `workspace/textDocumentContent` request.
468
+ *
469
+ * @since 3.18.0
470
+ */
471
+ textDocumentContent?: TextDocumentContentClientCapabilities;
472
+ }
473
+ /**
474
+ * Text document specific client capabilities.
475
+ */
476
+ export interface TextDocumentClientCapabilities {
477
+ /**
478
+ * Defines which synchronization capabilities the client supports.
479
+ */
480
+ synchronization?: TextDocumentSyncClientCapabilities;
481
+ /**
482
+ * Defines which filters the client supports.
483
+ *
484
+ * @since 3.18.0
485
+ */
486
+ filters?: TextDocumentFilterClientCapabilities;
487
+ /**
488
+ * Capabilities specific to the `textDocument/completion` request.
489
+ */
490
+ completion?: CompletionClientCapabilities;
491
+ /**
492
+ * Capabilities specific to the `textDocument/hover` request.
493
+ */
494
+ hover?: HoverClientCapabilities;
495
+ /**
496
+ * Capabilities specific to the `textDocument/signatureHelp` request.
497
+ */
498
+ signatureHelp?: SignatureHelpClientCapabilities;
499
+ /**
500
+ * Capabilities specific to the `textDocument/declaration` request.
501
+ *
502
+ * @since 3.14.0
503
+ */
504
+ declaration?: DeclarationClientCapabilities;
505
+ /**
506
+ * Capabilities specific to the `textDocument/definition` request.
507
+ */
508
+ definition?: DefinitionClientCapabilities;
509
+ /**
510
+ * Capabilities specific to the `textDocument/typeDefinition` request.
511
+ *
512
+ * @since 3.6.0
513
+ */
514
+ typeDefinition?: TypeDefinitionClientCapabilities;
515
+ /**
516
+ * Capabilities specific to the `textDocument/implementation` request.
517
+ *
518
+ * @since 3.6.0
519
+ */
520
+ implementation?: ImplementationClientCapabilities;
521
+ /**
522
+ * Capabilities specific to the `textDocument/references` request.
523
+ */
524
+ references?: ReferenceClientCapabilities;
525
+ /**
526
+ * Capabilities specific to the `textDocument/documentHighlight` request.
527
+ */
528
+ documentHighlight?: DocumentHighlightClientCapabilities;
529
+ /**
530
+ * Capabilities specific to the `textDocument/documentSymbol` request.
531
+ */
532
+ documentSymbol?: DocumentSymbolClientCapabilities;
533
+ /**
534
+ * Capabilities specific to the `textDocument/codeAction` request.
535
+ */
536
+ codeAction?: CodeActionClientCapabilities;
537
+ /**
538
+ * Capabilities specific to the `textDocument/codeLens` request.
539
+ */
540
+ codeLens?: CodeLensClientCapabilities;
541
+ /**
542
+ * Capabilities specific to the `textDocument/documentLink` request.
543
+ */
544
+ documentLink?: DocumentLinkClientCapabilities;
545
+ /**
546
+ * Capabilities specific to the `textDocument/documentColor` and the
547
+ * `textDocument/colorPresentation` request.
548
+ *
549
+ * @since 3.6.0
550
+ */
551
+ colorProvider?: DocumentColorClientCapabilities;
552
+ /**
553
+ * Capabilities specific to the `textDocument/formatting` request.
554
+ */
555
+ formatting?: DocumentFormattingClientCapabilities;
556
+ /**
557
+ * Capabilities specific to the `textDocument/rangeFormatting` request.
558
+ */
559
+ rangeFormatting?: DocumentRangeFormattingClientCapabilities;
560
+ /**
561
+ * Capabilities specific to the `textDocument/onTypeFormatting` request.
562
+ */
563
+ onTypeFormatting?: DocumentOnTypeFormattingClientCapabilities;
564
+ /**
565
+ * Capabilities specific to the `textDocument/rename` request.
566
+ */
567
+ rename?: RenameClientCapabilities;
568
+ /**
569
+ * Capabilities specific to the `textDocument/foldingRange` request.
570
+ *
571
+ * @since 3.10.0
572
+ */
573
+ foldingRange?: FoldingRangeClientCapabilities;
574
+ /**
575
+ * Capabilities specific to the `textDocument/selectionRange` request.
576
+ *
577
+ * @since 3.15.0
578
+ */
579
+ selectionRange?: SelectionRangeClientCapabilities;
580
+ /**
581
+ * Capabilities specific to the `textDocument/publishDiagnostics` notification.
582
+ */
583
+ publishDiagnostics?: PublishDiagnosticsClientCapabilities;
584
+ /**
585
+ * Capabilities specific to the various call hierarchy requests.
586
+ *
587
+ * @since 3.16.0
588
+ */
589
+ callHierarchy?: CallHierarchyClientCapabilities;
590
+ /**
591
+ * Capabilities specific to the various semantic token request.
592
+ *
593
+ * @since 3.16.0
594
+ */
595
+ semanticTokens?: SemanticTokensClientCapabilities;
596
+ /**
597
+ * Capabilities specific to the `textDocument/linkedEditingRange` request.
598
+ *
599
+ * @since 3.16.0
600
+ */
601
+ linkedEditingRange?: LinkedEditingRangeClientCapabilities;
602
+ /**
603
+ * Client capabilities specific to the `textDocument/moniker` request.
604
+ *
605
+ * @since 3.16.0
606
+ */
607
+ moniker?: MonikerClientCapabilities;
608
+ /**
609
+ * Capabilities specific to the various type hierarchy requests.
610
+ *
611
+ * @since 3.17.0
612
+ */
613
+ typeHierarchy?: TypeHierarchyClientCapabilities;
614
+ /**
615
+ * Capabilities specific to the `textDocument/inlineValue` request.
616
+ *
617
+ * @since 3.17.0
618
+ */
619
+ inlineValue?: InlineValueClientCapabilities;
620
+ /**
621
+ * Capabilities specific to the `textDocument/inlayHint` request.
622
+ *
623
+ * @since 3.17.0
624
+ */
625
+ inlayHint?: InlayHintClientCapabilities;
626
+ /**
627
+ * Capabilities specific to the diagnostic pull model.
628
+ *
629
+ * @since 3.17.0
630
+ */
631
+ diagnostic?: DiagnosticClientCapabilities;
632
+ /**
633
+ * Client capabilities specific to inline completions.
634
+ *
635
+ * @since 3.18.0
636
+ */
637
+ inlineCompletion?: InlineCompletionClientCapabilities;
638
+ }
639
+ export interface WindowClientCapabilities {
640
+ /**
641
+ * It indicates whether the client supports server initiated
642
+ * progress using the `window/workDoneProgress/create` request.
643
+ *
644
+ * The capability also controls Whether client supports handling
645
+ * of progress notifications. If set servers are allowed to report a
646
+ * `workDoneProgress` property in the request specific server
647
+ * capabilities.
648
+ *
649
+ * @since 3.15.0
650
+ */
651
+ workDoneProgress?: boolean;
652
+ /**
653
+ * Capabilities specific to the showMessage request.
654
+ *
655
+ * @since 3.16.0
656
+ */
657
+ showMessage?: ShowMessageRequestClientCapabilities;
658
+ /**
659
+ * Capabilities specific to the showDocument request.
660
+ *
661
+ * @since 3.16.0
662
+ */
663
+ showDocument?: ShowDocumentClientCapabilities;
664
+ }
665
+ /**
666
+ * Regular Expression Engines
667
+ *
668
+ * @since 3.18.0
669
+ */
670
+ export declare namespace RegularExpressionEngineKind {
671
+ const ES2020: "ES2020";
672
+ }
673
+ export type RegularExpressionEngineKind = string;
674
+ /**
675
+ * Client capabilities specific to regular expressions.
676
+ *
677
+ * @since 3.16.0
678
+ */
679
+ export interface RegularExpressionsClientCapabilities {
680
+ /**
681
+ * The engine's name.
682
+ */
683
+ engine: RegularExpressionEngineKind;
684
+ /**
685
+ * The engine's version.
686
+ */
687
+ version?: string;
688
+ }
689
+ /**
690
+ * Client capabilities specific to the used markdown parser.
691
+ *
692
+ * @since 3.16.0
693
+ */
694
+ export interface MarkdownClientCapabilities {
695
+ /**
696
+ * The name of the parser.
697
+ */
698
+ parser: string;
699
+ /**
700
+ * The version of the parser.
701
+ */
702
+ version?: string;
703
+ /**
704
+ * A list of HTML tags that the client allows / supports in
705
+ * Markdown.
706
+ *
707
+ * @since 3.17.0
708
+ */
709
+ allowedTags?: string[];
710
+ }
711
+ /**
712
+ * A set of predefined position encoding kinds.
713
+ *
714
+ * @since 3.17.0
715
+ */
716
+ export declare namespace PositionEncodingKind {
717
+ /**
718
+ * Character offsets count UTF-8 code units (e.g. bytes).
719
+ */
720
+ const UTF8: PositionEncodingKind;
721
+ /**
722
+ * Character offsets count UTF-16 code units.
723
+ *
724
+ * This is the default and must always be supported
725
+ * by servers
726
+ */
727
+ const UTF16: PositionEncodingKind;
728
+ /**
729
+ * Character offsets count UTF-32 code units.
730
+ *
731
+ * Implementation note: these are the same as Unicode codepoints,
732
+ * so this `PositionEncodingKind` may also be used for an
733
+ * encoding-agnostic representation of character offsets.
734
+ */
735
+ const UTF32: PositionEncodingKind;
736
+ }
737
+ /**
738
+ * A type indicating how positions are encoded,
739
+ * specifically what column offsets mean.
740
+ *
741
+ * @since 3.17.0
742
+ */
743
+ export type PositionEncodingKind = string;
744
+ /**
745
+ * @since 3.18.0
746
+ */
747
+ export type StaleRequestSupportOptions = {
748
+ /**
749
+ * The client will actively cancel the request.
750
+ */
751
+ cancel: boolean;
752
+ /**
753
+ * The list of requests for which the client
754
+ * will retry the request if it receives a
755
+ * response with error code `ContentModified`
756
+ */
757
+ retryOnContentModified: string[];
758
+ };
759
+ /**
760
+ * General client capabilities.
761
+ *
762
+ * @since 3.16.0
763
+ */
764
+ export interface GeneralClientCapabilities {
765
+ /**
766
+ * Client capability that signals how the client
767
+ * handles stale requests (e.g. a request
768
+ * for which the client will not process the response
769
+ * anymore since the information is outdated).
770
+ *
771
+ * @since 3.17.0
772
+ */
773
+ staleRequestSupport?: StaleRequestSupportOptions;
774
+ /**
775
+ * Client capabilities specific to regular expressions.
776
+ *
777
+ * @since 3.16.0
778
+ */
779
+ regularExpressions?: RegularExpressionsClientCapabilities;
780
+ /**
781
+ * Client capabilities specific to the client's markdown parser.
782
+ *
783
+ * @since 3.16.0
784
+ */
785
+ markdown?: MarkdownClientCapabilities;
786
+ /**
787
+ * The position encodings supported by the client. Client and server
788
+ * have to agree on the same position encoding to ensure that offsets
789
+ * (e.g. character position in a line) are interpreted the same on both
790
+ * sides.
791
+ *
792
+ * To keep the protocol backwards compatible the following applies: if
793
+ * the value 'utf-16' is missing from the array of position encodings
794
+ * servers can assume that the client supports UTF-16. UTF-16 is
795
+ * therefore a mandatory encoding.
796
+ *
797
+ * If omitted it defaults to ['utf-16'].
798
+ *
799
+ * Implementation considerations: since the conversion from one encoding
800
+ * into another requires the content of the file / line the conversion
801
+ * is best done where the file is read which is usually on the server
802
+ * side.
803
+ *
804
+ * @since 3.17.0
805
+ */
806
+ positionEncodings?: PositionEncodingKind[];
807
+ }
808
+ /**
809
+ * Capabilities specific to the notebook document support.
810
+ *
811
+ * @since 3.17.0
812
+ */
813
+ export interface NotebookDocumentClientCapabilities {
814
+ /**
815
+ * Capabilities specific to notebook document synchronization
816
+ *
817
+ * @since 3.17.0
818
+ */
819
+ synchronization: NotebookDocumentSyncClientCapabilities;
820
+ }
821
+ /**
822
+ * Defines the capabilities provided by the client.
823
+ */
824
+ export interface ClientCapabilities {
825
+ /**
826
+ * Workspace specific client capabilities.
827
+ */
828
+ workspace?: WorkspaceClientCapabilities;
829
+ /**
830
+ * Text document specific client capabilities.
831
+ */
832
+ textDocument?: TextDocumentClientCapabilities;
833
+ /**
834
+ * Capabilities specific to the notebook document support.
835
+ *
836
+ * @since 3.17.0
837
+ */
838
+ notebookDocument?: NotebookDocumentClientCapabilities;
839
+ /**
840
+ * Window specific client capabilities.
841
+ */
842
+ window?: WindowClientCapabilities;
843
+ /**
844
+ * General client capabilities.
845
+ *
846
+ * @since 3.16.0
847
+ */
848
+ general?: GeneralClientCapabilities;
849
+ /**
850
+ * Experimental client capabilities.
851
+ */
852
+ experimental?: LSPAny;
853
+ }
854
+ /**
855
+ * Static registration options to be returned in the initialize
856
+ * request.
857
+ */
858
+ export interface StaticRegistrationOptions {
859
+ /**
860
+ * The id used to register the request. The id can be used to deregister
861
+ * the request again. See also Registration#id.
862
+ */
863
+ id?: string;
864
+ }
865
+ /**
866
+ * The StaticRegistrationOptions namespace provides helper functions to work with
867
+ * {@link StaticRegistrationOptions} literals.
868
+ */
869
+ export declare namespace StaticRegistrationOptions {
870
+ function hasId(value: object): value is {
871
+ id: string;
872
+ };
873
+ }
874
+ /**
875
+ * General text document registration options.
876
+ */
877
+ export interface TextDocumentRegistrationOptions {
878
+ /**
879
+ * A document selector to identify the scope of the registration. If set to null
880
+ * the document selector provided on the client side will be used.
881
+ */
882
+ documentSelector: DocumentSelector | null;
883
+ }
884
+ /**
885
+ * The TextDocumentRegistrationOptions namespace provides helper functions to work with
886
+ * {@link TextDocumentRegistrationOptions} literals.
887
+ */
888
+ export declare namespace TextDocumentRegistrationOptions {
889
+ function is(value: any): value is TextDocumentRegistrationOptions;
890
+ }
891
+ /**
892
+ * Save options.
893
+ */
894
+ export interface SaveOptions {
895
+ /**
896
+ * The client is supposed to include the content on save.
897
+ */
898
+ includeText?: boolean;
899
+ }
900
+ export interface WorkDoneProgressOptions {
901
+ workDoneProgress?: boolean;
902
+ }
903
+ /**
904
+ * The WorkDoneProgressOptions namespace provides helper functions to work with
905
+ * {@link WorkDoneProgressOptions} literals.
906
+ */
907
+ export declare namespace WorkDoneProgressOptions {
908
+ function is(value: any): value is WorkDoneProgressOptions;
909
+ function hasWorkDoneProgress(value: any): value is {
910
+ workDoneProgress: boolean;
911
+ };
912
+ }
913
+ /**
914
+ * Defines workspace specific capabilities of the server.
915
+ *
916
+ * @since 3.18.0
917
+ */
918
+ export type WorkspaceOptions = {
919
+ /**
920
+ * The server supports workspace folder.
921
+ *
922
+ * @since 3.6.0
923
+ */
924
+ workspaceFolders?: WorkspaceFoldersServerCapabilities;
925
+ /**
926
+ * The server is interested in notifications/requests for operations on files.
927
+ *
928
+ * @since 3.16.0
929
+ */
930
+ fileOperations?: FileOperationOptions;
931
+ /**
932
+ * The server supports the `workspace/textDocumentContent` request.
933
+ *
934
+ * @since 3.18.0
935
+ */
936
+ textDocumentContent?: TextDocumentContentOptions | TextDocumentContentRegistrationOptions;
937
+ };
938
+ /**
939
+ * Defines the capabilities provided by a language
940
+ * server.
941
+ */
942
+ export interface ServerCapabilities<T = LSPAny> {
943
+ /**
944
+ * The position encoding the server picked from the encodings offered
945
+ * by the client via the client capability `general.positionEncodings`.
946
+ *
947
+ * If the client didn't provide any position encodings the only valid
948
+ * value that a server can return is 'utf-16'.
949
+ *
950
+ * If omitted it defaults to 'utf-16'.
951
+ *
952
+ * @since 3.17.0
953
+ */
954
+ positionEncoding?: PositionEncodingKind;
955
+ /**
956
+ * Defines how text documents are synced. Is either a detailed structure
957
+ * defining each notification or for backwards compatibility the
958
+ * TextDocumentSyncKind number.
959
+ */
960
+ textDocumentSync?: TextDocumentSyncOptions | TextDocumentSyncKind;
961
+ /**
962
+ * Defines how notebook documents are synced.
963
+ *
964
+ * @since 3.17.0
965
+ */
966
+ notebookDocumentSync?: NotebookDocumentSyncOptions | NotebookDocumentSyncRegistrationOptions;
967
+ /**
968
+ * The server provides completion support.
969
+ */
970
+ completionProvider?: CompletionOptions;
971
+ /**
972
+ * The server provides hover support.
973
+ */
974
+ hoverProvider?: boolean | HoverOptions;
975
+ /**
976
+ * The server provides signature help support.
977
+ */
978
+ signatureHelpProvider?: SignatureHelpOptions;
979
+ /**
980
+ * The server provides Goto Declaration support.
981
+ */
982
+ declarationProvider?: boolean | DeclarationOptions | DeclarationRegistrationOptions;
983
+ /**
984
+ * The server provides goto definition support.
985
+ */
986
+ definitionProvider?: boolean | DefinitionOptions;
987
+ /**
988
+ * The server provides Goto Type Definition support.
989
+ */
990
+ typeDefinitionProvider?: boolean | TypeDefinitionOptions | TypeDefinitionRegistrationOptions;
991
+ /**
992
+ * The server provides Goto Implementation support.
993
+ */
994
+ implementationProvider?: boolean | ImplementationOptions | ImplementationRegistrationOptions;
995
+ /**
996
+ * The server provides find references support.
997
+ */
998
+ referencesProvider?: boolean | ReferenceOptions;
999
+ /**
1000
+ * The server provides document highlight support.
1001
+ */
1002
+ documentHighlightProvider?: boolean | DocumentHighlightOptions;
1003
+ /**
1004
+ * The server provides document symbol support.
1005
+ */
1006
+ documentSymbolProvider?: boolean | DocumentSymbolOptions;
1007
+ /**
1008
+ * The server provides code actions. CodeActionOptions may only be
1009
+ * specified if the client states that it supports
1010
+ * `codeActionLiteralSupport` in its initial `initialize` request.
1011
+ */
1012
+ codeActionProvider?: boolean | CodeActionOptions;
1013
+ /**
1014
+ * The server provides code lens.
1015
+ */
1016
+ codeLensProvider?: CodeLensOptions;
1017
+ /**
1018
+ * The server provides document link support.
1019
+ */
1020
+ documentLinkProvider?: DocumentLinkOptions;
1021
+ /**
1022
+ * The server provides color provider support.
1023
+ */
1024
+ colorProvider?: boolean | DocumentColorOptions | DocumentColorRegistrationOptions;
1025
+ /**
1026
+ * The server provides workspace symbol support.
1027
+ */
1028
+ workspaceSymbolProvider?: boolean | WorkspaceSymbolOptions;
1029
+ /**
1030
+ * The server provides document formatting.
1031
+ */
1032
+ documentFormattingProvider?: boolean | DocumentFormattingOptions;
1033
+ /**
1034
+ * The server provides document range formatting.
1035
+ */
1036
+ documentRangeFormattingProvider?: boolean | DocumentRangeFormattingOptions;
1037
+ /**
1038
+ * The server provides document formatting on typing.
1039
+ */
1040
+ documentOnTypeFormattingProvider?: DocumentOnTypeFormattingOptions;
1041
+ /**
1042
+ * The server provides rename support. RenameOptions may only be
1043
+ * specified if the client states that it supports
1044
+ * `prepareSupport` in its initial `initialize` request.
1045
+ */
1046
+ renameProvider?: boolean | RenameOptions;
1047
+ /**
1048
+ * The server provides folding provider support.
1049
+ */
1050
+ foldingRangeProvider?: boolean | FoldingRangeOptions | FoldingRangeRegistrationOptions;
1051
+ /**
1052
+ * The server provides selection range support.
1053
+ */
1054
+ selectionRangeProvider?: boolean | SelectionRangeOptions | SelectionRangeRegistrationOptions;
1055
+ /**
1056
+ * The server provides execute command support.
1057
+ */
1058
+ executeCommandProvider?: ExecuteCommandOptions;
1059
+ /**
1060
+ * The server provides call hierarchy support.
1061
+ *
1062
+ * @since 3.16.0
1063
+ */
1064
+ callHierarchyProvider?: boolean | CallHierarchyOptions | CallHierarchyRegistrationOptions;
1065
+ /**
1066
+ * The server provides linked editing range support.
1067
+ *
1068
+ * @since 3.16.0
1069
+ */
1070
+ linkedEditingRangeProvider?: boolean | LinkedEditingRangeOptions | LinkedEditingRangeRegistrationOptions;
1071
+ /**
1072
+ * The server provides semantic tokens support.
1073
+ *
1074
+ * @since 3.16.0
1075
+ */
1076
+ semanticTokensProvider?: SemanticTokensOptions | SemanticTokensRegistrationOptions;
1077
+ /**
1078
+ * The server provides moniker support.
1079
+ *
1080
+ * @since 3.16.0
1081
+ */
1082
+ monikerProvider?: boolean | MonikerOptions | MonikerRegistrationOptions;
1083
+ /**
1084
+ * The server provides type hierarchy support.
1085
+ *
1086
+ * @since 3.17.0
1087
+ */
1088
+ typeHierarchyProvider?: boolean | TypeHierarchyOptions | TypeHierarchyRegistrationOptions;
1089
+ /**
1090
+ * The server provides inline values.
1091
+ *
1092
+ * @since 3.17.0
1093
+ */
1094
+ inlineValueProvider?: boolean | InlineValueOptions | InlineValueRegistrationOptions;
1095
+ /**
1096
+ * The server provides inlay hints.
1097
+ *
1098
+ * @since 3.17.0
1099
+ */
1100
+ inlayHintProvider?: boolean | InlayHintOptions | InlayHintRegistrationOptions;
1101
+ /**
1102
+ * The server has support for pull model diagnostics.
1103
+ *
1104
+ * @since 3.17.0
1105
+ */
1106
+ diagnosticProvider?: DiagnosticOptions | DiagnosticRegistrationOptions;
1107
+ /**
1108
+ * Inline completion options used during static registration.
1109
+ *
1110
+ * @since 3.18.0
1111
+ */
1112
+ inlineCompletionProvider?: boolean | InlineCompletionOptions;
1113
+ /**
1114
+ * Workspace specific server capabilities.
1115
+ */
1116
+ workspace?: WorkspaceOptions;
1117
+ /**
1118
+ * Experimental server capabilities.
1119
+ */
1120
+ experimental?: T;
1121
+ }
1122
+ /**
1123
+ * Information about the server
1124
+ *
1125
+ * @since 3.15.0
1126
+ * @since 3.18.0 ServerInfo type name added.
1127
+ */
1128
+ export type ServerInfo = {
1129
+ /**
1130
+ * The name of the server as defined by the server.
1131
+ */
1132
+ name: string;
1133
+ /**
1134
+ * The server's version as defined by the server.
1135
+ */
1136
+ version?: string;
1137
+ };
1138
+ /**
1139
+ * Information about the client
1140
+ *
1141
+ * @since 3.15.0
1142
+ * @since 3.18.0 ClientInfo type name added.
1143
+ */
1144
+ export type ClientInfo = {
1145
+ /**
1146
+ * The name of the client as defined by the client.
1147
+ */
1148
+ name: string;
1149
+ /**
1150
+ * The client's version as defined by the client.
1151
+ */
1152
+ version?: string;
1153
+ };
1154
+ /**
1155
+ * The initialize request is sent from the client to the server.
1156
+ * It is sent once as the request after starting up the server.
1157
+ * The requests parameter is of type {@link InitializeParams}
1158
+ * the response if of type {@link InitializeResult} of a Thenable that
1159
+ * resolves to such.
1160
+ */
1161
+ export declare namespace InitializeRequest {
1162
+ const method: 'initialize';
1163
+ const messageDirection: MessageDirection;
1164
+ const type: ProtocolRequestType<InitializeParams, InitializeResult<any>, never, InitializeError, void>;
1165
+ }
1166
+ /**
1167
+ * The initialize parameters
1168
+ */
1169
+ export interface _InitializeParams extends WorkDoneProgressParams {
1170
+ /**
1171
+ * The process Id of the parent process that started
1172
+ * the server.
1173
+ *
1174
+ * Is `null` if the process has not been started by another process.
1175
+ * If the parent process is not alive then the server should exit.
1176
+ */
1177
+ processId: integer | null;
1178
+ /**
1179
+ * Information about the client
1180
+ *
1181
+ * @since 3.15.0
1182
+ */
1183
+ clientInfo?: ClientInfo;
1184
+ /**
1185
+ * The locale the client is currently showing the user interface
1186
+ * in. This must not necessarily be the locale of the operating
1187
+ * system.
1188
+ *
1189
+ * Uses IETF language tags as the value's syntax
1190
+ * (See https://en.wikipedia.org/wiki/IETF_language_tag)
1191
+ *
1192
+ * @since 3.16.0
1193
+ */
1194
+ locale?: string;
1195
+ /**
1196
+ * The rootPath of the workspace. Is null
1197
+ * if no folder is open.
1198
+ *
1199
+ * @deprecated in favour of rootUri.
1200
+ */
1201
+ rootPath?: string | null;
1202
+ /**
1203
+ * The rootUri of the workspace. Is null if no
1204
+ * folder is open. If both `rootPath` and `rootUri` are set
1205
+ * `rootUri` wins.
1206
+ *
1207
+ * @deprecated in favour of workspaceFolders.
1208
+ */
1209
+ rootUri: DocumentUri | null;
1210
+ /**
1211
+ * The capabilities provided by the client (editor or tool)
1212
+ */
1213
+ capabilities: ClientCapabilities;
1214
+ /**
1215
+ * User provided initialization options.
1216
+ */
1217
+ initializationOptions?: LSPAny;
1218
+ /**
1219
+ * The initial trace setting. If omitted trace is disabled ('off').
1220
+ */
1221
+ trace?: TraceValue;
1222
+ }
1223
+ export type InitializeParams = _InitializeParams & WorkspaceFoldersInitializeParams;
1224
+ /**
1225
+ * The result returned from an initialize request.
1226
+ */
1227
+ export interface InitializeResult<T = any> {
1228
+ /**
1229
+ * The capabilities the language server provides.
1230
+ */
1231
+ capabilities: ServerCapabilities<T>;
1232
+ /**
1233
+ * Information about the server.
1234
+ *
1235
+ * @since 3.15.0
1236
+ */
1237
+ serverInfo?: ServerInfo;
1238
+ /**
1239
+ * Custom initialization results.
1240
+ */
1241
+ [custom: string]: LSPAny | ServerCapabilities<T> | undefined; /** undefined is needed since serverInfo is optional */
1242
+ }
1243
+ /**
1244
+ * Known error codes for an `InitializeErrorCodes`;
1245
+ */
1246
+ export declare namespace InitializeErrorCodes {
1247
+ /**
1248
+ * If the protocol version provided by the client can't be handled by the server.
1249
+ *
1250
+ * @deprecated This initialize error got replaced by client capabilities. There is
1251
+ * no version handshake in version 3.0x
1252
+ */
1253
+ const unknownProtocolVersion: 1;
1254
+ }
1255
+ export type InitializeErrorCodes = 1;
1256
+ /**
1257
+ * The data type of the ResponseError if the
1258
+ * initialize request fails.
1259
+ */
1260
+ export interface InitializeError {
1261
+ /**
1262
+ * Indicates whether the client execute the following retry logic:
1263
+ * (1) show the message provided by the ResponseError to the user
1264
+ * (2) user selects retry or cancel
1265
+ * (3) if user selected retry the initialize method is sent again.
1266
+ */
1267
+ retry: boolean;
1268
+ }
1269
+ export interface InitializedParams {
1270
+ }
1271
+ /**
1272
+ * The initialized notification is sent from the client to the
1273
+ * server after the client is fully initialized and the server
1274
+ * is allowed to send requests from the server to the client.
1275
+ */
1276
+ export declare namespace InitializedNotification {
1277
+ const method: 'initialized';
1278
+ const messageDirection: MessageDirection;
1279
+ const type: ProtocolNotificationType<InitializedParams, void>;
1280
+ }
1281
+ /**
1282
+ * A shutdown request is sent from the client to the server.
1283
+ * It is sent once when the client decides to shutdown the
1284
+ * server. The only notification that is sent after a shutdown request
1285
+ * is the exit event.
1286
+ */
1287
+ export declare namespace ShutdownRequest {
1288
+ const method: 'shutdown';
1289
+ const messageDirection: MessageDirection;
1290
+ const type: ProtocolRequestType0<void, never, void, void>;
1291
+ }
1292
+ /**
1293
+ * The exit event is sent from the client to the server to
1294
+ * ask the server to exit its process.
1295
+ */
1296
+ export declare namespace ExitNotification {
1297
+ const method: 'exit';
1298
+ const messageDirection: MessageDirection;
1299
+ const type: ProtocolNotificationType0<void>;
1300
+ }
1301
+ export interface DidChangeConfigurationClientCapabilities {
1302
+ /**
1303
+ * Did change configuration notification supports dynamic registration.
1304
+ */
1305
+ dynamicRegistration?: boolean;
1306
+ }
1307
+ /**
1308
+ * The configuration change notification is sent from the client to the server
1309
+ * when the client's configuration has changed. The notification contains
1310
+ * the changed configuration as defined by the language client.
1311
+ */
1312
+ export declare namespace DidChangeConfigurationNotification {
1313
+ const method: 'workspace/didChangeConfiguration';
1314
+ const messageDirection: MessageDirection;
1315
+ const type: ProtocolNotificationType<DidChangeConfigurationParams, DidChangeConfigurationRegistrationOptions>;
1316
+ const capabilities: CM<"workspace.didChangeConfiguration", undefined>;
1317
+ }
1318
+ export interface DidChangeConfigurationRegistrationOptions {
1319
+ section?: string | string[];
1320
+ }
1321
+ /**
1322
+ * The parameters of a change configuration notification.
1323
+ */
1324
+ export interface DidChangeConfigurationParams {
1325
+ /**
1326
+ * The actual changed settings
1327
+ */
1328
+ settings: LSPAny;
1329
+ }
1330
+ /**
1331
+ * The message type
1332
+ */
1333
+ export declare namespace MessageType {
1334
+ /**
1335
+ * An error message.
1336
+ */
1337
+ const Error = 1;
1338
+ /**
1339
+ * A warning message.
1340
+ */
1341
+ const Warning = 2;
1342
+ /**
1343
+ * An information message.
1344
+ */
1345
+ const Info = 3;
1346
+ /**
1347
+ * A log message.
1348
+ */
1349
+ const Log = 4;
1350
+ /**
1351
+ * A debug message.
1352
+ *
1353
+ * @since 3.18.0
1354
+ */
1355
+ const Debug = 5;
1356
+ }
1357
+ export type MessageType = 1 | 2 | 3 | 4 | 5;
1358
+ /**
1359
+ * The parameters of a notification message.
1360
+ */
1361
+ export interface ShowMessageParams {
1362
+ /**
1363
+ * The message type. See {@link MessageType}
1364
+ */
1365
+ type: MessageType;
1366
+ /**
1367
+ * The actual message.
1368
+ */
1369
+ message: string;
1370
+ }
1371
+ /**
1372
+ * The show message notification is sent from a server to a client to ask
1373
+ * the client to display a particular message in the user interface.
1374
+ */
1375
+ export declare namespace ShowMessageNotification {
1376
+ const method: 'window/showMessage';
1377
+ const messageDirection: MessageDirection;
1378
+ const type: ProtocolNotificationType<ShowMessageParams, void>;
1379
+ const capabilities: CM<"window.showMessage", undefined>;
1380
+ }
1381
+ /**
1382
+ * @since 3.18.0
1383
+ */
1384
+ export type ClientShowMessageActionItemOptions = {
1385
+ /**
1386
+ * Whether the client supports additional attributes which
1387
+ * are preserved and send back to the server in the
1388
+ * request's response.
1389
+ */
1390
+ additionalPropertiesSupport?: boolean;
1391
+ };
1392
+ /**
1393
+ * Show message request client capabilities
1394
+ */
1395
+ export interface ShowMessageRequestClientCapabilities {
1396
+ /**
1397
+ * Capabilities specific to the `MessageActionItem` type.
1398
+ */
1399
+ messageActionItem?: ClientShowMessageActionItemOptions;
1400
+ }
1401
+ export interface MessageActionItem {
1402
+ /**
1403
+ * A short title like 'Retry', 'Open Log' etc.
1404
+ */
1405
+ title: string;
1406
+ /**
1407
+ * Additional attributes that the client preserves and
1408
+ * sends back to the server. This depends on the client
1409
+ * capability window.messageActionItem.additionalPropertiesSupport
1410
+ */
1411
+ [key: string]: string | boolean | integer | object;
1412
+ }
1413
+ export interface ShowMessageRequestParams {
1414
+ /**
1415
+ * The message type. See {@link MessageType}
1416
+ */
1417
+ type: MessageType;
1418
+ /**
1419
+ * The actual message.
1420
+ */
1421
+ message: string;
1422
+ /**
1423
+ * The message action items to present.
1424
+ */
1425
+ actions?: MessageActionItem[];
1426
+ }
1427
+ /**
1428
+ * The show message request is sent from the server to the client to show a message
1429
+ * and a set of options actions to the user.
1430
+ */
1431
+ export declare namespace ShowMessageRequest {
1432
+ const method: 'window/showMessageRequest';
1433
+ const messageDirection: MessageDirection;
1434
+ const type: ProtocolRequestType<ShowMessageRequestParams, MessageActionItem | null, never, void, void>;
1435
+ const capabilities: CM<"window.showMessage", undefined>;
1436
+ }
1437
+ /**
1438
+ * The log message notification is sent from the server to the client to ask
1439
+ * the client to log a particular message.
1440
+ */
1441
+ export declare namespace LogMessageNotification {
1442
+ const method: 'window/logMessage';
1443
+ const messageDirection: MessageDirection;
1444
+ const type: ProtocolNotificationType<LogMessageParams, void>;
1445
+ }
1446
+ /**
1447
+ * The log message parameters.
1448
+ */
1449
+ export interface LogMessageParams {
1450
+ /**
1451
+ * The message type. See {@link MessageType}
1452
+ */
1453
+ type: MessageType;
1454
+ /**
1455
+ * The actual message.
1456
+ */
1457
+ message: string;
1458
+ }
1459
+ /**
1460
+ * The telemetry event notification is sent from the server to the client to ask
1461
+ * the client to log telemetry data.
1462
+ */
1463
+ export declare namespace TelemetryEventNotification {
1464
+ const method: 'telemetry/event';
1465
+ const messageDirection: MessageDirection;
1466
+ const type: ProtocolNotificationType<any, void>;
1467
+ }
1468
+ export interface TextDocumentFilterClientCapabilities {
1469
+ /**
1470
+ * The client supports Relative Patterns.
1471
+ *
1472
+ * @since 3.18.0
1473
+ */
1474
+ relativePatternSupport?: boolean;
1475
+ }
1476
+ export interface TextDocumentSyncClientCapabilities {
1477
+ /**
1478
+ * Whether text document synchronization supports dynamic registration.
1479
+ */
1480
+ dynamicRegistration?: boolean;
1481
+ /**
1482
+ * The client supports sending will save notifications.
1483
+ */
1484
+ willSave?: boolean;
1485
+ /**
1486
+ * The client supports sending a will save request and
1487
+ * waits for a response providing text edits which will
1488
+ * be applied to the document before it is saved.
1489
+ */
1490
+ willSaveWaitUntil?: boolean;
1491
+ /**
1492
+ * The client supports did save notifications.
1493
+ */
1494
+ didSave?: boolean;
1495
+ }
1496
+ /**
1497
+ * Defines how the host (editor) should sync
1498
+ * document changes to the language server.
1499
+ */
1500
+ export declare namespace TextDocumentSyncKind {
1501
+ /**
1502
+ * Documents should not be synced at all.
1503
+ */
1504
+ const None = 0;
1505
+ /**
1506
+ * Documents are synced by always sending the full content
1507
+ * of the document.
1508
+ */
1509
+ const Full = 1;
1510
+ /**
1511
+ * Documents are synced by sending the full content on open.
1512
+ * After that only incremental updates to the document are
1513
+ * send.
1514
+ */
1515
+ const Incremental = 2;
1516
+ }
1517
+ export type TextDocumentSyncKind = 0 | 1 | 2;
1518
+ export interface TextDocumentSyncOptions {
1519
+ /**
1520
+ * Open and close notifications are sent to the server. If omitted open close notification should not
1521
+ * be sent.
1522
+ */
1523
+ openClose?: boolean;
1524
+ /**
1525
+ * Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
1526
+ * and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None.
1527
+ */
1528
+ change?: TextDocumentSyncKind;
1529
+ /**
1530
+ * If present will save notifications are sent to the server. If omitted the notification should not be
1531
+ * sent.
1532
+ */
1533
+ willSave?: boolean;
1534
+ /**
1535
+ * If present will save wait until requests are sent to the server. If omitted the request should not be
1536
+ * sent.
1537
+ */
1538
+ willSaveWaitUntil?: boolean;
1539
+ /**
1540
+ * If present save notifications are sent to the server. If omitted the notification should not be
1541
+ * sent.
1542
+ */
1543
+ save?: boolean | SaveOptions;
1544
+ }
1545
+ /**
1546
+ * The parameters sent in an open text document notification
1547
+ */
1548
+ export interface DidOpenTextDocumentParams {
1549
+ /**
1550
+ * The document that was opened.
1551
+ */
1552
+ textDocument: TextDocumentItem;
1553
+ }
1554
+ /**
1555
+ * The document open notification is sent from the client to the server to signal
1556
+ * newly opened text documents. The document's truth is now managed by the client
1557
+ * and the server must not try to read the document's truth using the document's
1558
+ * uri. Open in this sense means it is managed by the client. It doesn't necessarily
1559
+ * mean that its content is presented in an editor. An open notification must not
1560
+ * be sent more than once without a corresponding close notification send before.
1561
+ * This means open and close notification must be balanced and the max open count
1562
+ * is one.
1563
+ */
1564
+ export declare namespace DidOpenTextDocumentNotification {
1565
+ const method: 'textDocument/didOpen';
1566
+ const messageDirection: MessageDirection;
1567
+ const type: ProtocolNotificationType<DidOpenTextDocumentParams, TextDocumentRegistrationOptions>;
1568
+ const capabilities: CM<"textDocument.synchronization", "textDocumentSync.openClose">;
1569
+ }
1570
+ /**
1571
+ * @since 3.18.0
1572
+ */
1573
+ export type TextDocumentContentChangeWholeDocument = {
1574
+ /**
1575
+ * The new text of the whole document.
1576
+ */
1577
+ text: string;
1578
+ };
1579
+ /**
1580
+ * @since 3.18.0
1581
+ */
1582
+ export type TextDocumentContentChangePartial = {
1583
+ /**
1584
+ * The range of the document that changed.
1585
+ */
1586
+ range: Range;
1587
+ /**
1588
+ * The optional length of the range that got replaced.
1589
+ *
1590
+ * @deprecated use range instead.
1591
+ */
1592
+ rangeLength?: uinteger;
1593
+ /**
1594
+ * The new text for the provided range.
1595
+ */
1596
+ text: string;
1597
+ };
1598
+ /**
1599
+ * An event describing a change to a text document. If only a text is provided
1600
+ * it is considered to be the full content of the document.
1601
+ */
1602
+ export type TextDocumentContentChangeEvent = TextDocumentContentChangePartial | TextDocumentContentChangeWholeDocument;
1603
+ export declare namespace TextDocumentContentChangeEvent {
1604
+ /**
1605
+ * Checks whether the information describes a delta event.
1606
+ */
1607
+ function isIncremental(event: TextDocumentContentChangeEvent): event is {
1608
+ range: Range;
1609
+ rangeLength?: uinteger;
1610
+ text: string;
1611
+ };
1612
+ /**
1613
+ * Checks whether the information describes a full replacement event.
1614
+ */
1615
+ function isFull(event: TextDocumentContentChangeEvent): event is {
1616
+ text: string;
1617
+ };
1618
+ }
1619
+ /**
1620
+ * The change text document notification's parameters.
1621
+ */
1622
+ export interface DidChangeTextDocumentParams {
1623
+ /**
1624
+ * The document that did change. The version number points
1625
+ * to the version after all provided content changes have
1626
+ * been applied.
1627
+ */
1628
+ textDocument: VersionedTextDocumentIdentifier;
1629
+ /**
1630
+ * The actual content changes. The content changes describe single state changes
1631
+ * to the document. So if there are two content changes c1 (at array index 0) and
1632
+ * c2 (at array index 1) for a document in state S then c1 moves the document from
1633
+ * S to S' and c2 from S' to S''. So c1 is computed on the state S and c2 is computed
1634
+ * on the state S'.
1635
+ *
1636
+ * To mirror the content of a document using change events use the following approach:
1637
+ * - start with the same initial content
1638
+ * - apply the 'textDocument/didChange' notifications in the order you receive them.
1639
+ * - apply the `TextDocumentContentChangeEvent`s in a single notification in the order
1640
+ * you receive them.
1641
+ */
1642
+ contentChanges: TextDocumentContentChangeEvent[];
1643
+ }
1644
+ /**
1645
+ * Describe options to be used when registered for text document change events.
1646
+ */
1647
+ export interface TextDocumentChangeRegistrationOptions extends TextDocumentRegistrationOptions {
1648
+ /**
1649
+ * How documents are synced to the server.
1650
+ */
1651
+ syncKind: TextDocumentSyncKind;
1652
+ }
1653
+ /**
1654
+ * The document change notification is sent from the client to the server to signal
1655
+ * changes to a text document.
1656
+ */
1657
+ export declare namespace DidChangeTextDocumentNotification {
1658
+ const method: 'textDocument/didChange';
1659
+ const messageDirection: MessageDirection;
1660
+ const type: ProtocolNotificationType<DidChangeTextDocumentParams, TextDocumentChangeRegistrationOptions>;
1661
+ const capabilities: CM<"textDocument.synchronization", "textDocumentSync">;
1662
+ }
1663
+ /**
1664
+ * The parameters sent in a close text document notification
1665
+ */
1666
+ export interface DidCloseTextDocumentParams {
1667
+ /**
1668
+ * The document that was closed.
1669
+ */
1670
+ textDocument: TextDocumentIdentifier;
1671
+ }
1672
+ /**
1673
+ * The document close notification is sent from the client to the server when
1674
+ * the document got closed in the client. The document's truth now exists where
1675
+ * the document's uri points to (e.g. if the document's uri is a file uri the
1676
+ * truth now exists on disk). As with the open notification the close notification
1677
+ * is about managing the document's content. Receiving a close notification
1678
+ * doesn't mean that the document was open in an editor before. A close
1679
+ * notification requires a previous open notification to be sent.
1680
+ */
1681
+ export declare namespace DidCloseTextDocumentNotification {
1682
+ const method: 'textDocument/didClose';
1683
+ const messageDirection: MessageDirection;
1684
+ const type: ProtocolNotificationType<DidCloseTextDocumentParams, TextDocumentRegistrationOptions>;
1685
+ const capabilities: CM<"textDocument.synchronization", "textDocumentSync.openClose">;
1686
+ }
1687
+ /**
1688
+ * The parameters sent in a save text document notification
1689
+ */
1690
+ export interface DidSaveTextDocumentParams {
1691
+ /**
1692
+ * The document that was saved.
1693
+ */
1694
+ textDocument: TextDocumentIdentifier;
1695
+ /**
1696
+ * Optional the content when saved. Depends on the includeText value
1697
+ * when the save notification was requested.
1698
+ */
1699
+ text?: string;
1700
+ }
1701
+ /**
1702
+ * Save registration options.
1703
+ */
1704
+ export interface TextDocumentSaveRegistrationOptions extends TextDocumentRegistrationOptions, SaveOptions {
1705
+ }
1706
+ /**
1707
+ * The document save notification is sent from the client to the server when
1708
+ * the document got saved in the client.
1709
+ */
1710
+ export declare namespace DidSaveTextDocumentNotification {
1711
+ const method: 'textDocument/didSave';
1712
+ const messageDirection: MessageDirection;
1713
+ const type: ProtocolNotificationType<DidSaveTextDocumentParams, TextDocumentSaveRegistrationOptions>;
1714
+ const capabilities: CM<"textDocument.synchronization.didSave", "textDocumentSync.save">;
1715
+ }
1716
+ /**
1717
+ * Represents reasons why a text document is saved.
1718
+ */
1719
+ export declare namespace TextDocumentSaveReason {
1720
+ /**
1721
+ * Manually triggered, e.g. by the user pressing save, by starting debugging,
1722
+ * or by an API call.
1723
+ */
1724
+ const Manual: 1;
1725
+ /**
1726
+ * Automatic after a delay.
1727
+ */
1728
+ const AfterDelay: 2;
1729
+ /**
1730
+ * When the editor lost focus.
1731
+ */
1732
+ const FocusOut: 3;
1733
+ }
1734
+ export type TextDocumentSaveReason = 1 | 2 | 3;
1735
+ /**
1736
+ * The parameters sent in a will save text document notification.
1737
+ */
1738
+ export interface WillSaveTextDocumentParams {
1739
+ /**
1740
+ * The document that will be saved.
1741
+ */
1742
+ textDocument: TextDocumentIdentifier;
1743
+ /**
1744
+ * The 'TextDocumentSaveReason'.
1745
+ */
1746
+ reason: TextDocumentSaveReason;
1747
+ }
1748
+ /**
1749
+ * A document will save notification is sent from the client to the server before
1750
+ * the document is actually saved.
1751
+ */
1752
+ export declare namespace WillSaveTextDocumentNotification {
1753
+ const method: 'textDocument/willSave';
1754
+ const messageDirection: MessageDirection;
1755
+ const type: ProtocolNotificationType<WillSaveTextDocumentParams, TextDocumentRegistrationOptions>;
1756
+ const capabilities: CM<"textDocument.synchronization.willSave", "textDocumentSync.willSave">;
1757
+ }
1758
+ /**
1759
+ * A document will save request is sent from the client to the server before
1760
+ * the document is actually saved. The request can return an array of TextEdits
1761
+ * which will be applied to the text document before it is saved. Please note that
1762
+ * clients might drop results if computing the text edits took too long or if a
1763
+ * server constantly fails on this request. This is done to keep the save fast and
1764
+ * reliable.
1765
+ */
1766
+ export declare namespace WillSaveTextDocumentWaitUntilRequest {
1767
+ const method: 'textDocument/willSaveWaitUntil';
1768
+ const messageDirection: MessageDirection;
1769
+ const type: ProtocolRequestType<WillSaveTextDocumentParams, TextEdit[] | null, never, void, TextDocumentRegistrationOptions>;
1770
+ const capabilities: CM<"textDocument.synchronization.willSaveWaitUntil", "textDocumentSync.willSaveWaitUntil">;
1771
+ }
1772
+ export interface DidChangeWatchedFilesClientCapabilities {
1773
+ /**
1774
+ * Did change watched files notification supports dynamic registration. Please note
1775
+ * that the current protocol doesn't support static configuration for file changes
1776
+ * from the server side.
1777
+ */
1778
+ dynamicRegistration?: boolean;
1779
+ /**
1780
+ * Whether the client has support for {@link RelativePattern relative pattern}
1781
+ * or not.
1782
+ *
1783
+ * @since 3.17.0
1784
+ */
1785
+ relativePatternSupport?: boolean;
1786
+ }
1787
+ /**
1788
+ * The watched files notification is sent from the client to the server when
1789
+ * the client detects changes to file watched by the language client.
1790
+ */
1791
+ export declare namespace DidChangeWatchedFilesNotification {
1792
+ const method: 'workspace/didChangeWatchedFiles';
1793
+ const messageDirection: MessageDirection;
1794
+ const type: ProtocolNotificationType<DidChangeWatchedFilesParams, DidChangeWatchedFilesRegistrationOptions>;
1795
+ const capabilities: CM<"workspace.didChangeWatchedFiles", undefined>;
1796
+ }
1797
+ /**
1798
+ * The watched files change notification's parameters.
1799
+ */
1800
+ export interface DidChangeWatchedFilesParams {
1801
+ /**
1802
+ * The actual file events.
1803
+ */
1804
+ changes: FileEvent[];
1805
+ }
1806
+ /**
1807
+ * The file event type
1808
+ */
1809
+ export declare namespace FileChangeType {
1810
+ /**
1811
+ * The file got created.
1812
+ */
1813
+ const Created = 1;
1814
+ /**
1815
+ * The file got changed.
1816
+ */
1817
+ const Changed = 2;
1818
+ /**
1819
+ * The file got deleted.
1820
+ */
1821
+ const Deleted = 3;
1822
+ }
1823
+ export type FileChangeType = 1 | 2 | 3;
1824
+ /**
1825
+ * An event describing a file change.
1826
+ */
1827
+ export interface FileEvent {
1828
+ /**
1829
+ * The file's uri.
1830
+ */
1831
+ uri: DocumentUri;
1832
+ /**
1833
+ * The change type.
1834
+ */
1835
+ type: FileChangeType;
1836
+ }
1837
+ /**
1838
+ * Describe options to be used when registered for text document change events.
1839
+ */
1840
+ export interface DidChangeWatchedFilesRegistrationOptions {
1841
+ /**
1842
+ * The watchers to register.
1843
+ */
1844
+ watchers: FileSystemWatcher[];
1845
+ }
1846
+ /**
1847
+ * The glob pattern to watch relative to the base path. Glob patterns can have the following syntax:
1848
+ * - `*` to match zero or more characters in a path segment
1849
+ * - `?` to match on one character in a path segment
1850
+ * - `**` to match any number of path segments, including none
1851
+ * - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
1852
+ * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
1853
+ * - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
1854
+ *
1855
+ * @since 3.17.0
1856
+ */
1857
+ export type Pattern = string;
1858
+ /**
1859
+ * A relative pattern is a helper to construct glob patterns that are matched
1860
+ * relatively to a base URI. The common value for a `baseUri` is a workspace
1861
+ * folder root, but it can be another absolute URI as well.
1862
+ *
1863
+ * @since 3.17.0
1864
+ */
1865
+ export interface RelativePattern {
1866
+ /**
1867
+ * A workspace folder or a base URI to which this pattern will be matched
1868
+ * against relatively.
1869
+ */
1870
+ baseUri: WorkspaceFolder | URI;
1871
+ /**
1872
+ * The actual glob pattern;
1873
+ */
1874
+ pattern: Pattern;
1875
+ }
1876
+ export declare namespace RelativePattern {
1877
+ function is(value: any): value is RelativePattern;
1878
+ }
1879
+ /**
1880
+ * The glob pattern. Either a string pattern or a relative pattern.
1881
+ *
1882
+ * @since 3.17.0
1883
+ */
1884
+ export type GlobPattern = Pattern | RelativePattern;
1885
+ export declare namespace GlobPattern {
1886
+ function is(value: any): value is GlobPattern;
1887
+ }
1888
+ export interface FileSystemWatcher {
1889
+ /**
1890
+ * The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
1891
+ *
1892
+ * @since 3.17.0 support for relative patterns.
1893
+ */
1894
+ globPattern: GlobPattern;
1895
+ /**
1896
+ * The kind of events of interest. If omitted it defaults
1897
+ * to WatchKind.Create | WatchKind.Change | WatchKind.Delete
1898
+ * which is 7.
1899
+ */
1900
+ kind?: WatchKind;
1901
+ }
1902
+ export declare namespace WatchKind {
1903
+ /**
1904
+ * Interested in create events.
1905
+ */
1906
+ const Create: 1;
1907
+ /**
1908
+ * Interested in change events
1909
+ */
1910
+ const Change: 2;
1911
+ /**
1912
+ * Interested in delete events
1913
+ */
1914
+ const Delete: 4;
1915
+ }
1916
+ export type WatchKind = uinteger;
1917
+ /**
1918
+ * @since 3.18.0
1919
+ */
1920
+ export type ClientDiagnosticsTagOptions = {
1921
+ /**
1922
+ * The tags supported by the client.
1923
+ */
1924
+ valueSet: DiagnosticTag[];
1925
+ };
1926
+ /**
1927
+ * General diagnostics capabilities for pull and push model.
1928
+ */
1929
+ export interface DiagnosticsCapabilities {
1930
+ /**
1931
+ * Whether the clients accepts diagnostics with related information.
1932
+ */
1933
+ relatedInformation?: boolean;
1934
+ /**
1935
+ * Client supports the tag property to provide meta data about a diagnostic.
1936
+ * Clients supporting tags have to handle unknown tags gracefully.
1937
+ *
1938
+ * @since 3.15.0
1939
+ */
1940
+ tagSupport?: ClientDiagnosticsTagOptions;
1941
+ /**
1942
+ * Client supports a codeDescription property
1943
+ *
1944
+ * @since 3.16.0
1945
+ */
1946
+ codeDescriptionSupport?: boolean;
1947
+ /**
1948
+ * Whether code action supports the `data` property which is
1949
+ * preserved between a `textDocument/publishDiagnostics` and
1950
+ * `textDocument/codeAction` request.
1951
+ *
1952
+ * @since 3.16.0
1953
+ */
1954
+ dataSupport?: boolean;
1955
+ }
1956
+ /**
1957
+ * The publish diagnostic client capabilities.
1958
+ */
1959
+ export interface PublishDiagnosticsClientCapabilities extends DiagnosticsCapabilities {
1960
+ /**
1961
+ * Whether the client interprets the version property of the
1962
+ * `textDocument/publishDiagnostics` notification's parameter.
1963
+ *
1964
+ * @since 3.15.0
1965
+ */
1966
+ versionSupport?: boolean;
1967
+ }
1968
+ /**
1969
+ * The publish diagnostic notification's parameters.
1970
+ */
1971
+ export interface PublishDiagnosticsParams {
1972
+ /**
1973
+ * The URI for which diagnostic information is reported.
1974
+ */
1975
+ uri: DocumentUri;
1976
+ /**
1977
+ * Optional the version number of the document the diagnostics are published for.
1978
+ *
1979
+ * @since 3.15.0
1980
+ */
1981
+ version?: integer;
1982
+ /**
1983
+ * An array of diagnostic information items.
1984
+ */
1985
+ diagnostics: Diagnostic[];
1986
+ }
1987
+ /**
1988
+ * Diagnostics notification are sent from the server to the client to signal
1989
+ * results of validation runs.
1990
+ */
1991
+ export declare namespace PublishDiagnosticsNotification {
1992
+ const method: 'textDocument/publishDiagnostics';
1993
+ const messageDirection: MessageDirection;
1994
+ const type: ProtocolNotificationType<PublishDiagnosticsParams, void>;
1995
+ const capabilities: CM<"textDocument.publishDiagnostics", undefined>;
1996
+ }
1997
+ /**
1998
+ * The client supports the following `CompletionList` specific
1999
+ * capabilities.
2000
+ *
2001
+ * @since 3.17.0
2002
+ */
2003
+ export interface CompletionListCapabilities {
2004
+ /**
2005
+ * The client supports the following itemDefaults on
2006
+ * a completion list.
2007
+ *
2008
+ * The value lists the supported property names of the
2009
+ * `CompletionList.itemDefaults` object. If omitted
2010
+ * no properties are supported.
2011
+ *
2012
+ * @since 3.17.0
2013
+ */
2014
+ itemDefaults?: string[];
2015
+ /**
2016
+ * Specifies whether the client supports `CompletionList.applyKind` to
2017
+ * indicate how supported values from `completionList.itemDefaults`
2018
+ * and `completion` will be combined.
2019
+ *
2020
+ * If a client supports `applyKind` it must support it for all fields
2021
+ * that it supports that are listed in `CompletionList.applyKind`. This
2022
+ * means when clients add support for new/future fields in completion
2023
+ * items the MUST also support merge for them if those fields are
2024
+ * defined in `CompletionList.applyKind`.
2025
+ *
2026
+ * @since 3.18.0
2027
+ */
2028
+ applyKindSupport?: boolean;
2029
+ }
2030
+ /**
2031
+ * @since 3.18.0
2032
+ */
2033
+ export type CompletionItemTagOptions = {
2034
+ /**
2035
+ * The tags supported by the client.
2036
+ */
2037
+ valueSet: CompletionItemTag[];
2038
+ };
2039
+ /**
2040
+ * @since 3.18.0
2041
+ */
2042
+ export type ClientCompletionItemResolveOptions = {
2043
+ /**
2044
+ * The properties that a client can resolve lazily.
2045
+ */
2046
+ properties: string[];
2047
+ };
2048
+ /**
2049
+ * @since 3.18.0
2050
+ */
2051
+ export type ClientCompletionItemInsertTextModeOptions = {
2052
+ valueSet: InsertTextMode[];
2053
+ };
2054
+ /**
2055
+ * @since 3.18.0
2056
+ */
2057
+ export type ClientCompletionItemOptions = {
2058
+ /**
2059
+ * Client supports snippets as insert text.
2060
+ *
2061
+ * A snippet can define tab stops and placeholders with `$1`, `$2`
2062
+ * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
2063
+ * the end of the snippet. Placeholders with equal identifiers are linked,
2064
+ * that is typing in one will update others too.
2065
+ */
2066
+ snippetSupport?: boolean;
2067
+ /**
2068
+ * Client supports commit characters on a completion item.
2069
+ */
2070
+ commitCharactersSupport?: boolean;
2071
+ /**
2072
+ * Client supports the following content formats for the documentation
2073
+ * property. The order describes the preferred format of the client.
2074
+ */
2075
+ documentationFormat?: MarkupKind[];
2076
+ /**
2077
+ * Client supports the deprecated property on a completion item.
2078
+ */
2079
+ deprecatedSupport?: boolean;
2080
+ /**
2081
+ * Client supports the preselect property on a completion item.
2082
+ */
2083
+ preselectSupport?: boolean;
2084
+ /**
2085
+ * Client supports the tag property on a completion item. Clients supporting
2086
+ * tags have to handle unknown tags gracefully. Clients especially need to
2087
+ * preserve unknown tags when sending a completion item back to the server in
2088
+ * a resolve call.
2089
+ *
2090
+ * @since 3.15.0
2091
+ */
2092
+ tagSupport?: CompletionItemTagOptions;
2093
+ /**
2094
+ * Client support insert replace edit to control different behavior if a
2095
+ * completion item is inserted in the text or should replace text.
2096
+ *
2097
+ * @since 3.16.0
2098
+ */
2099
+ insertReplaceSupport?: boolean;
2100
+ /**
2101
+ * Indicates which properties a client can resolve lazily on a completion
2102
+ * item. Before version 3.16.0 only the predefined properties `documentation`
2103
+ * and `details` could be resolved lazily.
2104
+ *
2105
+ * @since 3.16.0
2106
+ */
2107
+ resolveSupport?: ClientCompletionItemResolveOptions;
2108
+ /**
2109
+ * The client supports the `insertTextMode` property on
2110
+ * a completion item to override the whitespace handling mode
2111
+ * as defined by the client (see `insertTextMode`).
2112
+ *
2113
+ * @since 3.16.0
2114
+ */
2115
+ insertTextModeSupport?: ClientCompletionItemInsertTextModeOptions;
2116
+ /**
2117
+ * The client has support for completion item label
2118
+ * details (see also `CompletionItemLabelDetails`).
2119
+ *
2120
+ * @since 3.17.0
2121
+ */
2122
+ labelDetailsSupport?: boolean;
2123
+ };
2124
+ /**
2125
+ * @since 3.18.0
2126
+ */
2127
+ export type ClientCompletionItemOptionsKind = {
2128
+ /**
2129
+ * The completion item kind values the client supports. When this
2130
+ * property exists the client also guarantees that it will
2131
+ * handle values outside its set gracefully and falls back
2132
+ * to a default value when unknown.
2133
+ *
2134
+ * If this property is not present the client only supports
2135
+ * the completion items kinds from `Text` to `Reference` as defined in
2136
+ * the initial version of the protocol.
2137
+ */
2138
+ valueSet?: CompletionItemKind[];
2139
+ };
2140
+ /**
2141
+ * Completion client capabilities
2142
+ */
2143
+ export interface CompletionClientCapabilities {
2144
+ /**
2145
+ * Whether completion supports dynamic registration.
2146
+ */
2147
+ dynamicRegistration?: boolean;
2148
+ /**
2149
+ * The client supports the following `CompletionItem` specific
2150
+ * capabilities.
2151
+ */
2152
+ completionItem?: ClientCompletionItemOptions;
2153
+ /**
2154
+ * The client supports the following completion item kinds.
2155
+ */
2156
+ completionItemKind?: ClientCompletionItemOptionsKind;
2157
+ /**
2158
+ * Defines how the client handles whitespace and indentation
2159
+ * when accepting a completion item that uses multi line
2160
+ * text in either `insertText` or `textEdit`.
2161
+ *
2162
+ * @since 3.17.0
2163
+ */
2164
+ insertTextMode?: InsertTextMode;
2165
+ /**
2166
+ * The client supports to send additional context information for a
2167
+ * `textDocument/completion` request.
2168
+ */
2169
+ contextSupport?: boolean;
2170
+ /**
2171
+ * The client supports the following `CompletionList` specific
2172
+ * capabilities.
2173
+ *
2174
+ * @since 3.17.0
2175
+ */
2176
+ completionList?: CompletionListCapabilities;
2177
+ }
2178
+ /**
2179
+ * How a completion was triggered
2180
+ */
2181
+ export declare namespace CompletionTriggerKind {
2182
+ /**
2183
+ * Completion was triggered by typing an identifier (24x7 code
2184
+ * complete), manual invocation (e.g Ctrl+Space) or via API.
2185
+ */
2186
+ const Invoked: 1;
2187
+ /**
2188
+ * Completion was triggered by a trigger character specified by
2189
+ * the `triggerCharacters` properties of the `CompletionRegistrationOptions`.
2190
+ */
2191
+ const TriggerCharacter: 2;
2192
+ /**
2193
+ * Completion was re-triggered as current completion list is incomplete
2194
+ */
2195
+ const TriggerForIncompleteCompletions: 3;
2196
+ }
2197
+ export type CompletionTriggerKind = 1 | 2 | 3;
2198
+ /**
2199
+ * Contains additional information about the context in which a completion request is triggered.
2200
+ */
2201
+ export interface CompletionContext {
2202
+ /**
2203
+ * How the completion was triggered.
2204
+ */
2205
+ triggerKind: CompletionTriggerKind;
2206
+ /**
2207
+ * The trigger character (a single character) that has trigger code complete.
2208
+ * Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
2209
+ */
2210
+ triggerCharacter?: string;
2211
+ }
2212
+ /**
2213
+ * Completion parameters
2214
+ */
2215
+ export interface CompletionParams extends TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams {
2216
+ /**
2217
+ * The completion context. This is only available it the client specifies
2218
+ * to send this using the client capability `textDocument.completion.contextSupport === true`
2219
+ */
2220
+ context?: CompletionContext;
2221
+ }
2222
+ /**
2223
+ * @since 3.18.0
2224
+ */
2225
+ export type ServerCompletionItemOptions = {
2226
+ /**
2227
+ * The server has support for completion item label
2228
+ * details (see also `CompletionItemLabelDetails`) when
2229
+ * receiving a completion item in a resolve call.
2230
+ *
2231
+ * @since 3.17.0
2232
+ */
2233
+ labelDetailsSupport?: boolean;
2234
+ };
2235
+ /**
2236
+ * Completion options.
2237
+ */
2238
+ export interface CompletionOptions extends WorkDoneProgressOptions {
2239
+ /**
2240
+ * Most tools trigger completion request automatically without explicitly requesting
2241
+ * it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
2242
+ * starts to type an identifier. For example if the user types `c` in a JavaScript file
2243
+ * code complete will automatically pop up present `console` besides others as a
2244
+ * completion item. Characters that make up identifiers don't need to be listed here.
2245
+ *
2246
+ * If code complete should automatically be trigger on characters not being valid inside
2247
+ * an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
2248
+ */
2249
+ triggerCharacters?: string[];
2250
+ /**
2251
+ * The list of all possible characters that commit a completion. This field can be used
2252
+ * if clients don't support individual commit characters per completion item. See
2253
+ * `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
2254
+ *
2255
+ * If a server provides both `allCommitCharacters` and commit characters on an individual
2256
+ * completion item the ones on the completion item win.
2257
+ *
2258
+ * @since 3.2.0
2259
+ */
2260
+ allCommitCharacters?: string[];
2261
+ /**
2262
+ * The server provides support to resolve additional
2263
+ * information for a completion item.
2264
+ */
2265
+ resolveProvider?: boolean;
2266
+ /**
2267
+ * The server supports the following `CompletionItem` specific
2268
+ * capabilities.
2269
+ *
2270
+ * @since 3.17.0
2271
+ */
2272
+ completionItem?: ServerCompletionItemOptions;
2273
+ }
2274
+ /**
2275
+ * Registration options for a {@link CompletionRequest}.
2276
+ */
2277
+ export interface CompletionRegistrationOptions extends TextDocumentRegistrationOptions, CompletionOptions {
2278
+ }
2279
+ /**
2280
+ * Request to request completion at a given text document position. The request's
2281
+ * parameter is of type {@link TextDocumentPosition} the response
2282
+ * is of type {@link CompletionItem CompletionItem[]} or {@link CompletionList}
2283
+ * or a Thenable that resolves to such.
2284
+ *
2285
+ * The request can delay the computation of the {@link CompletionItem.detail `detail`}
2286
+ * and {@link CompletionItem.documentation `documentation`} properties to the `completionItem/resolve`
2287
+ * request. However, properties that are needed for the initial sorting and filtering, like `sortText`,
2288
+ * `filterText`, `insertText`, and `textEdit`, must not be changed during resolve.
2289
+ */
2290
+ export declare namespace CompletionRequest {
2291
+ const method: 'textDocument/completion';
2292
+ const messageDirection: MessageDirection;
2293
+ const type: ProtocolRequestType<CompletionParams, CompletionList | CompletionItem[] | null, CompletionItem[], void, CompletionRegistrationOptions>;
2294
+ const capabilities: CM<"textDocument.completion", "completionProvider">;
2295
+ }
2296
+ /**
2297
+ * Request to resolve additional information for a given completion item.The request's
2298
+ * parameter is of type {@link CompletionItem} the response
2299
+ * is of type {@link CompletionItem} or a Thenable that resolves to such.
2300
+ */
2301
+ export declare namespace CompletionResolveRequest {
2302
+ const method: 'completionItem/resolve';
2303
+ const messageDirection: MessageDirection;
2304
+ const type: ProtocolRequestType<CompletionItem, CompletionItem, never, void, void>;
2305
+ const capabilities: CM<"textDocument.completion.completionItem.resolveSupport", "completionProvider.resolveProvider">;
2306
+ }
2307
+ export interface HoverClientCapabilities {
2308
+ /**
2309
+ * Whether hover supports dynamic registration.
2310
+ */
2311
+ dynamicRegistration?: boolean;
2312
+ /**
2313
+ * Client supports the following content formats for the content
2314
+ * property. The order describes the preferred format of the client.
2315
+ */
2316
+ contentFormat?: MarkupKind[];
2317
+ }
2318
+ /**
2319
+ * Hover options.
2320
+ */
2321
+ export interface HoverOptions extends WorkDoneProgressOptions {
2322
+ }
2323
+ /**
2324
+ * Parameters for a {@link HoverRequest}.
2325
+ */
2326
+ export interface HoverParams extends TextDocumentPositionParams, WorkDoneProgressParams {
2327
+ }
2328
+ /**
2329
+ * Registration options for a {@link HoverRequest}.
2330
+ */
2331
+ export interface HoverRegistrationOptions extends TextDocumentRegistrationOptions, HoverOptions {
2332
+ }
2333
+ /**
2334
+ * Request to request hover information at a given text document position. The request's
2335
+ * parameter is of type {@link TextDocumentPosition} the response is of
2336
+ * type {@link Hover} or a Thenable that resolves to such.
2337
+ */
2338
+ export declare namespace HoverRequest {
2339
+ const method: 'textDocument/hover';
2340
+ const messageDirection: MessageDirection;
2341
+ const type: ProtocolRequestType<HoverParams, Hover | null, never, void, HoverRegistrationOptions>;
2342
+ const capabilities: CM<"textDocument.hover", "hoverProvider">;
2343
+ }
2344
+ /**
2345
+ * @since 3.18.0
2346
+ */
2347
+ export type ClientSignatureParameterInformationOptions = {
2348
+ /**
2349
+ * The client supports processing label offsets instead of a
2350
+ * simple label string.
2351
+ *
2352
+ * @since 3.14.0
2353
+ */
2354
+ labelOffsetSupport?: boolean;
2355
+ };
2356
+ /**
2357
+ * @since 3.18.0
2358
+ */
2359
+ export type ClientSignatureInformationOptions = {
2360
+ /**
2361
+ * Client supports the following content formats for the documentation
2362
+ * property. The order describes the preferred format of the client.
2363
+ */
2364
+ documentationFormat?: MarkupKind[];
2365
+ /**
2366
+ * Client capabilities specific to parameter information.
2367
+ */
2368
+ parameterInformation?: ClientSignatureParameterInformationOptions;
2369
+ /**
2370
+ * The client supports the `activeParameter` property on `SignatureInformation`
2371
+ * literal.
2372
+ *
2373
+ * @since 3.16.0
2374
+ */
2375
+ activeParameterSupport?: boolean;
2376
+ /**
2377
+ * The client supports the `activeParameter` property on
2378
+ * `SignatureHelp`/`SignatureInformation` being set to `null` to
2379
+ * indicate that no parameter should be active.
2380
+ *
2381
+ * @since 3.18.0
2382
+ */
2383
+ noActiveParameterSupport?: boolean;
2384
+ };
2385
+ /**
2386
+ * Client Capabilities for a {@link SignatureHelpRequest}.
2387
+ */
2388
+ export interface SignatureHelpClientCapabilities {
2389
+ /**
2390
+ * Whether signature help supports dynamic registration.
2391
+ */
2392
+ dynamicRegistration?: boolean;
2393
+ /**
2394
+ * The client supports the following `SignatureInformation`
2395
+ * specific properties.
2396
+ */
2397
+ signatureInformation?: ClientSignatureInformationOptions;
2398
+ /**
2399
+ * The client supports to send additional context information for a
2400
+ * `textDocument/signatureHelp` request. A client that opts into
2401
+ * contextSupport will also support the `retriggerCharacters` on
2402
+ * `SignatureHelpOptions`.
2403
+ *
2404
+ * @since 3.15.0
2405
+ */
2406
+ contextSupport?: boolean;
2407
+ }
2408
+ /**
2409
+ * Server Capabilities for a {@link SignatureHelpRequest}.
2410
+ */
2411
+ export interface SignatureHelpOptions extends WorkDoneProgressOptions {
2412
+ /**
2413
+ * List of characters that trigger signature help automatically.
2414
+ */
2415
+ triggerCharacters?: string[];
2416
+ /**
2417
+ * List of characters that re-trigger signature help.
2418
+ *
2419
+ * These trigger characters are only active when signature help is already showing. All trigger characters
2420
+ * are also counted as re-trigger characters.
2421
+ *
2422
+ * @since 3.15.0
2423
+ */
2424
+ retriggerCharacters?: string[];
2425
+ }
2426
+ /**
2427
+ * How a signature help was triggered.
2428
+ *
2429
+ * @since 3.15.0
2430
+ */
2431
+ export declare namespace SignatureHelpTriggerKind {
2432
+ /**
2433
+ * Signature help was invoked manually by the user or by a command.
2434
+ */
2435
+ const Invoked: 1;
2436
+ /**
2437
+ * Signature help was triggered by a trigger character.
2438
+ */
2439
+ const TriggerCharacter: 2;
2440
+ /**
2441
+ * Signature help was triggered by the cursor moving or by the document content changing.
2442
+ */
2443
+ const ContentChange: 3;
2444
+ }
2445
+ export type SignatureHelpTriggerKind = 1 | 2 | 3;
2446
+ /**
2447
+ * Additional information about the context in which a signature help request was triggered.
2448
+ *
2449
+ * @since 3.15.0
2450
+ */
2451
+ export interface SignatureHelpContext {
2452
+ /**
2453
+ * Action that caused signature help to be triggered.
2454
+ */
2455
+ triggerKind: SignatureHelpTriggerKind;
2456
+ /**
2457
+ * Character that caused signature help to be triggered.
2458
+ *
2459
+ * This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
2460
+ */
2461
+ triggerCharacter?: string;
2462
+ /**
2463
+ * `true` if signature help was already showing when it was triggered.
2464
+ *
2465
+ * Retriggers occurs when the signature help is already active and can be caused by actions such as
2466
+ * typing a trigger character, a cursor move, or document content changes.
2467
+ */
2468
+ isRetrigger: boolean;
2469
+ /**
2470
+ * The currently active `SignatureHelp`.
2471
+ *
2472
+ * The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
2473
+ * the user navigating through available signatures.
2474
+ */
2475
+ activeSignatureHelp?: SignatureHelp;
2476
+ }
2477
+ /**
2478
+ * Parameters for a {@link SignatureHelpRequest}.
2479
+ */
2480
+ export interface SignatureHelpParams extends TextDocumentPositionParams, WorkDoneProgressParams {
2481
+ /**
2482
+ * The signature help context. This is only available if the client specifies
2483
+ * to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
2484
+ *
2485
+ * @since 3.15.0
2486
+ */
2487
+ context?: SignatureHelpContext;
2488
+ }
2489
+ /**
2490
+ * Registration options for a {@link SignatureHelpRequest}.
2491
+ */
2492
+ export interface SignatureHelpRegistrationOptions extends TextDocumentRegistrationOptions, SignatureHelpOptions {
2493
+ }
2494
+ export declare namespace SignatureHelpRequest {
2495
+ const method: 'textDocument/signatureHelp';
2496
+ const messageDirection: MessageDirection;
2497
+ const type: ProtocolRequestType<SignatureHelpParams, SignatureHelp | null, never, void, SignatureHelpRegistrationOptions>;
2498
+ const capabilities: CM<"textDocument.signatureHelp", "signatureHelpProvider">;
2499
+ }
2500
+ /**
2501
+ * Client Capabilities for a {@link DefinitionRequest}.
2502
+ */
2503
+ export interface DefinitionClientCapabilities {
2504
+ /**
2505
+ * Whether definition supports dynamic registration.
2506
+ */
2507
+ dynamicRegistration?: boolean;
2508
+ /**
2509
+ * The client supports additional metadata in the form of definition links.
2510
+ *
2511
+ * @since 3.14.0
2512
+ */
2513
+ linkSupport?: boolean;
2514
+ }
2515
+ /**
2516
+ * Server Capabilities for a {@link DefinitionRequest}.
2517
+ */
2518
+ export interface DefinitionOptions extends WorkDoneProgressOptions {
2519
+ }
2520
+ /**
2521
+ * Parameters for a {@link DefinitionRequest}.
2522
+ */
2523
+ export interface DefinitionParams extends TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams {
2524
+ }
2525
+ /**
2526
+ * Registration options for a {@link DefinitionRequest}.
2527
+ */
2528
+ export interface DefinitionRegistrationOptions extends TextDocumentRegistrationOptions, DefinitionOptions {
2529
+ }
2530
+ /**
2531
+ * A request to resolve the definition location of a symbol at a given text
2532
+ * document position. The request's parameter is of type {@link TextDocumentPosition}
2533
+ * the response is of either type {@link Definition} or a typed array of
2534
+ * {@link DefinitionLink} or a Thenable that resolves to such.
2535
+ */
2536
+ export declare namespace DefinitionRequest {
2537
+ const method: 'textDocument/definition';
2538
+ const messageDirection: MessageDirection;
2539
+ const type: ProtocolRequestType<DefinitionParams, Definition | LocationLink[] | null, Location[] | LocationLink[], void, DefinitionRegistrationOptions>;
2540
+ const capabilities: CM<"textDocument.definition", "definitionProvider">;
2541
+ }
2542
+ /**
2543
+ * Client Capabilities for a {@link ReferencesRequest}.
2544
+ */
2545
+ export interface ReferenceClientCapabilities {
2546
+ /**
2547
+ * Whether references supports dynamic registration.
2548
+ */
2549
+ dynamicRegistration?: boolean;
2550
+ }
2551
+ /**
2552
+ * Parameters for a {@link ReferencesRequest}.
2553
+ */
2554
+ export interface ReferenceParams extends TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams {
2555
+ context: ReferenceContext;
2556
+ }
2557
+ /**
2558
+ * Reference options.
2559
+ */
2560
+ export interface ReferenceOptions extends WorkDoneProgressOptions {
2561
+ }
2562
+ /**
2563
+ * Registration options for a {@link ReferencesRequest}.
2564
+ */
2565
+ export interface ReferenceRegistrationOptions extends TextDocumentRegistrationOptions, ReferenceOptions {
2566
+ }
2567
+ /**
2568
+ * A request to resolve project-wide references for the symbol denoted
2569
+ * by the given text document position. The request's parameter is of
2570
+ * type {@link ReferenceParams} the response is of type
2571
+ * {@link Location Location[]} or a Thenable that resolves to such.
2572
+ */
2573
+ export declare namespace ReferencesRequest {
2574
+ const method: 'textDocument/references';
2575
+ const messageDirection: MessageDirection;
2576
+ const type: ProtocolRequestType<ReferenceParams, Location[] | null, Location[], void, ReferenceRegistrationOptions>;
2577
+ const capabilities: CM<"textDocument.references", "referencesProvider">;
2578
+ }
2579
+ /**
2580
+ * Client Capabilities for a {@link DocumentHighlightRequest}.
2581
+ */
2582
+ export interface DocumentHighlightClientCapabilities {
2583
+ /**
2584
+ * Whether document highlight supports dynamic registration.
2585
+ */
2586
+ dynamicRegistration?: boolean;
2587
+ }
2588
+ /**
2589
+ * Parameters for a {@link DocumentHighlightRequest}.
2590
+ */
2591
+ export interface DocumentHighlightParams extends TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams {
2592
+ }
2593
+ /**
2594
+ * Provider options for a {@link DocumentHighlightRequest}.
2595
+ */
2596
+ export interface DocumentHighlightOptions extends WorkDoneProgressOptions {
2597
+ }
2598
+ /**
2599
+ * Registration options for a {@link DocumentHighlightRequest}.
2600
+ */
2601
+ export interface DocumentHighlightRegistrationOptions extends TextDocumentRegistrationOptions, DocumentHighlightOptions {
2602
+ }
2603
+ /**
2604
+ * Request to resolve a {@link DocumentHighlight} for a given
2605
+ * text document position. The request's parameter is of type {@link TextDocumentPosition}
2606
+ * the request response is an array of type {@link DocumentHighlight}
2607
+ * or a Thenable that resolves to such.
2608
+ */
2609
+ export declare namespace DocumentHighlightRequest {
2610
+ const method: 'textDocument/documentHighlight';
2611
+ const messageDirection: MessageDirection;
2612
+ const type: ProtocolRequestType<DocumentHighlightParams, DocumentHighlight[] | null, DocumentHighlight[], void, DocumentHighlightRegistrationOptions>;
2613
+ const capabilities: CM<"textDocument.documentHighlight", "documentHighlightProvider">;
2614
+ }
2615
+ /**
2616
+ * Client Capabilities for a {@link DocumentSymbolRequest}.
2617
+ */
2618
+ export interface DocumentSymbolClientCapabilities {
2619
+ /**
2620
+ * Whether document symbol supports dynamic registration.
2621
+ */
2622
+ dynamicRegistration?: boolean;
2623
+ /**
2624
+ * Specific capabilities for the `SymbolKind` in the
2625
+ * `textDocument/documentSymbol` request.
2626
+ */
2627
+ symbolKind?: ClientSymbolKindOptions;
2628
+ /**
2629
+ * The client supports hierarchical document symbols.
2630
+ */
2631
+ hierarchicalDocumentSymbolSupport?: boolean;
2632
+ /**
2633
+ * The client supports tags on `SymbolInformation`. Tags are supported on
2634
+ * `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
2635
+ * Clients supporting tags have to handle unknown tags gracefully.
2636
+ *
2637
+ * @since 3.16.0
2638
+ */
2639
+ tagSupport?: ClientSymbolTagOptions;
2640
+ /**
2641
+ * The client supports an additional label presented in the UI when
2642
+ * registering a document symbol provider.
2643
+ *
2644
+ * @since 3.16.0
2645
+ */
2646
+ labelSupport?: boolean;
2647
+ }
2648
+ /**
2649
+ * Parameters for a {@link DocumentSymbolRequest}.
2650
+ */
2651
+ export interface DocumentSymbolParams extends WorkDoneProgressParams, PartialResultParams {
2652
+ /**
2653
+ * The text document.
2654
+ */
2655
+ textDocument: TextDocumentIdentifier;
2656
+ }
2657
+ /**
2658
+ * Provider options for a {@link DocumentSymbolRequest}.
2659
+ */
2660
+ export interface DocumentSymbolOptions extends WorkDoneProgressOptions {
2661
+ /**
2662
+ * A human-readable string that is shown when multiple outlines trees
2663
+ * are shown for the same document.
2664
+ *
2665
+ * @since 3.16.0
2666
+ */
2667
+ label?: string;
2668
+ }
2669
+ /**
2670
+ * Registration options for a {@link DocumentSymbolRequest}.
2671
+ */
2672
+ export interface DocumentSymbolRegistrationOptions extends TextDocumentRegistrationOptions, DocumentSymbolOptions {
2673
+ }
2674
+ /**
2675
+ * A request to list all symbols found in a given text document. The request's
2676
+ * parameter is of type {@link TextDocumentIdentifier} the
2677
+ * response is of type {@link SymbolInformation SymbolInformation[]} or a Thenable
2678
+ * that resolves to such.
2679
+ */
2680
+ export declare namespace DocumentSymbolRequest {
2681
+ const method: 'textDocument/documentSymbol';
2682
+ const messageDirection: MessageDirection;
2683
+ const type: ProtocolRequestType<DocumentSymbolParams, DocumentSymbol[] | SymbolInformation[] | null, DocumentSymbol[] | SymbolInformation[], void, DocumentSymbolRegistrationOptions>;
2684
+ const capabilities: CM<"textDocument.documentSymbol", "documentSymbolProvider">;
2685
+ }
2686
+ /**
2687
+ * @since 3.18.0
2688
+ */
2689
+ export type ClientCodeActionKindOptions = {
2690
+ /**
2691
+ * The code action kind values the client supports. When this
2692
+ * property exists the client also guarantees that it will
2693
+ * handle values outside its set gracefully and falls back
2694
+ * to a default value when unknown.
2695
+ */
2696
+ valueSet: CodeActionKind[];
2697
+ };
2698
+ /**
2699
+ * @since 3.18.0
2700
+ */
2701
+ export type ClientCodeActionLiteralOptions = {
2702
+ /**
2703
+ * The code action kind is support with the following value
2704
+ * set.
2705
+ */
2706
+ codeActionKind: ClientCodeActionKindOptions;
2707
+ };
2708
+ /**
2709
+ * @since 3.18.0
2710
+ */
2711
+ export type ClientCodeActionResolveOptions = {
2712
+ /**
2713
+ * The properties that a client can resolve lazily.
2714
+ */
2715
+ properties: string[];
2716
+ };
2717
+ /**
2718
+ * The Client Capabilities of a {@link CodeActionRequest}.
2719
+ */
2720
+ export interface CodeActionClientCapabilities {
2721
+ /**
2722
+ * Whether code action supports dynamic registration.
2723
+ */
2724
+ dynamicRegistration?: boolean;
2725
+ /**
2726
+ * The client support code action literals of type `CodeAction` as a valid
2727
+ * response of the `textDocument/codeAction` request. If the property is not
2728
+ * set the request can only return `Command` literals.
2729
+ *
2730
+ * @since 3.8.0
2731
+ */
2732
+ codeActionLiteralSupport?: ClientCodeActionLiteralOptions;
2733
+ /**
2734
+ * Whether code action supports the `isPreferred` property.
2735
+ *
2736
+ * @since 3.15.0
2737
+ */
2738
+ isPreferredSupport?: boolean;
2739
+ /**
2740
+ * Whether code action supports the `disabled` property.
2741
+ *
2742
+ * @since 3.16.0
2743
+ */
2744
+ disabledSupport?: boolean;
2745
+ /**
2746
+ * Whether code action supports the `data` property which is
2747
+ * preserved between a `textDocument/codeAction` and a
2748
+ * `codeAction/resolve` request.
2749
+ *
2750
+ * @since 3.16.0
2751
+ */
2752
+ dataSupport?: boolean;
2753
+ /**
2754
+ * Whether the client supports resolving additional code action
2755
+ * properties via a separate `codeAction/resolve` request.
2756
+ *
2757
+ * @since 3.16.0
2758
+ */
2759
+ resolveSupport?: ClientCodeActionResolveOptions;
2760
+ /**
2761
+ * Whether the client honors the change annotations in
2762
+ * text edits and resource operations returned via the
2763
+ * `CodeAction#edit` property by for example presenting
2764
+ * the workspace edit in the user interface and asking
2765
+ * for confirmation.
2766
+ *
2767
+ * @since 3.16.0
2768
+ */
2769
+ honorsChangeAnnotations?: boolean;
2770
+ /**
2771
+ * Whether the client supports documentation for a class of
2772
+ * code actions.
2773
+ *
2774
+ * @since 3.18.0
2775
+ */
2776
+ documentationSupport?: boolean;
2777
+ /**
2778
+ * Client supports the tag property on a code action. Clients
2779
+ * supporting tags have to handle unknown tags gracefully.
2780
+ *
2781
+ * @since 3.18.0
2782
+ */
2783
+ tagSupport?: CodeActionTagOptions;
2784
+ }
2785
+ /**
2786
+ * @since 3.18.0
2787
+ */
2788
+ export type CodeActionTagOptions = {
2789
+ /**
2790
+ * The tags supported by the client.
2791
+ */
2792
+ valueSet: CodeActionTag[];
2793
+ };
2794
+ /**
2795
+ * The parameters of a {@link CodeActionRequest}.
2796
+ */
2797
+ export interface CodeActionParams extends WorkDoneProgressParams, PartialResultParams {
2798
+ /**
2799
+ * The document in which the command was invoked.
2800
+ */
2801
+ textDocument: TextDocumentIdentifier;
2802
+ /**
2803
+ * The range for which the command was invoked.
2804
+ */
2805
+ range: Range;
2806
+ /**
2807
+ * Context carrying additional information.
2808
+ */
2809
+ context: CodeActionContext;
2810
+ }
2811
+ /**
2812
+ * Documentation for a class of code actions.
2813
+ *
2814
+ * @since 3.18.0
2815
+ */
2816
+ export type CodeActionKindDocumentation = {
2817
+ /**
2818
+ * The kind of the code action being documented.
2819
+ *
2820
+ * If the kind is generic, such as `CodeActionKind.Refactor`, the documentation will be shown whenever any
2821
+ * refactorings are returned. If the kind if more specific, such as `CodeActionKind.RefactorExtract`, the
2822
+ * documentation will only be shown when extract refactoring code actions are returned.
2823
+ */
2824
+ kind: CodeActionKind;
2825
+ /**
2826
+ * Command that is ued to display the documentation to the user.
2827
+ *
2828
+ * The title of this documentation code action is taken from {@linkcode Command.title}
2829
+ */
2830
+ command: Command;
2831
+ };
2832
+ /**
2833
+ * Provider options for a {@link CodeActionRequest}.
2834
+ */
2835
+ export interface CodeActionOptions extends WorkDoneProgressOptions {
2836
+ /**
2837
+ * CodeActionKinds that this server may return.
2838
+ *
2839
+ * The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
2840
+ * may list out every specific kind they provide.
2841
+ */
2842
+ codeActionKinds?: CodeActionKind[];
2843
+ /**
2844
+ * Static documentation for a class of code actions.
2845
+ *
2846
+ * Documentation from the provider should be shown in the code actions menu if either:
2847
+ *
2848
+ * - Code actions of `kind` are requested by the editor. In this case, the editor will show the documentation that
2849
+ * most closely matches the requested code action kind. For example, if a provider has documentation for
2850
+ * both `Refactor` and `RefactorExtract`, when the user requests code actions for `RefactorExtract`,
2851
+ * the editor will use the documentation for `RefactorExtract` instead of the documentation for `Refactor`.
2852
+ *
2853
+ * - Any code actions of `kind` are returned by the provider.
2854
+ *
2855
+ * At most one documentation entry should be shown per provider.
2856
+ *
2857
+ * @since 3.18.0
2858
+ */
2859
+ documentation?: CodeActionKindDocumentation[];
2860
+ /**
2861
+ * The server provides support to resolve additional
2862
+ * information for a code action.
2863
+ *
2864
+ * @since 3.16.0
2865
+ */
2866
+ resolveProvider?: boolean;
2867
+ }
2868
+ /**
2869
+ * Registration options for a {@link CodeActionRequest}.
2870
+ */
2871
+ export interface CodeActionRegistrationOptions extends TextDocumentRegistrationOptions, CodeActionOptions {
2872
+ }
2873
+ /**
2874
+ * A request to provide commands for the given text document and range.
2875
+ */
2876
+ export declare namespace CodeActionRequest {
2877
+ const method: 'textDocument/codeAction';
2878
+ const messageDirection: MessageDirection;
2879
+ const type: ProtocolRequestType<CodeActionParams, (Command | CodeAction)[] | null, (Command | CodeAction)[], void, CodeActionRegistrationOptions>;
2880
+ const capabilities: CM<"textDocument.codeAction", "codeActionProvider">;
2881
+ }
2882
+ /**
2883
+ * Request to resolve additional information for a given code action.The request's
2884
+ * parameter is of type {@link CodeAction} the response
2885
+ * is of type {@link CodeAction} or a Thenable that resolves to such.
2886
+ */
2887
+ export declare namespace CodeActionResolveRequest {
2888
+ const method: 'codeAction/resolve';
2889
+ const messageDirection: MessageDirection;
2890
+ const type: ProtocolRequestType<CodeAction, CodeAction, never, void, void>;
2891
+ const capabilities: CM<"textDocument.codeAction.resolveSupport", "codeActionProvider.resolveProvider">;
2892
+ }
2893
+ /**
2894
+ * @since 3.18.0
2895
+ */
2896
+ export type ClientSymbolKindOptions = {
2897
+ /**
2898
+ * The symbol kind values the client supports. When this
2899
+ * property exists the client also guarantees that it will
2900
+ * handle values outside its set gracefully and falls back
2901
+ * to a default value when unknown.
2902
+ *
2903
+ * If this property is not present the client only supports
2904
+ * the symbol kinds from `File` to `Array` as defined in
2905
+ * the initial version of the protocol.
2906
+ */
2907
+ valueSet?: SymbolKind[];
2908
+ };
2909
+ /**
2910
+ * @since 3.18.0
2911
+ */
2912
+ export type ClientSymbolTagOptions = {
2913
+ /**
2914
+ * The tags supported by the client.
2915
+ */
2916
+ valueSet: SymbolTag[];
2917
+ };
2918
+ /**
2919
+ * @since 3.18.0
2920
+ */
2921
+ export type ClientSymbolResolveOptions = {
2922
+ /**
2923
+ * The properties that a client can resolve lazily. Usually
2924
+ * `location.range`
2925
+ */
2926
+ properties: string[];
2927
+ };
2928
+ /**
2929
+ * Client capabilities for a {@link WorkspaceSymbolRequest}.
2930
+ */
2931
+ export interface WorkspaceSymbolClientCapabilities {
2932
+ /**
2933
+ * Symbol request supports dynamic registration.
2934
+ */
2935
+ dynamicRegistration?: boolean;
2936
+ /**
2937
+ * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
2938
+ */
2939
+ symbolKind?: ClientSymbolKindOptions;
2940
+ /**
2941
+ * The client supports tags on `SymbolInformation`.
2942
+ * Clients supporting tags have to handle unknown tags gracefully.
2943
+ *
2944
+ * @since 3.16.0
2945
+ */
2946
+ tagSupport?: ClientSymbolTagOptions;
2947
+ /**
2948
+ * The client support partial workspace symbols. The client will send the
2949
+ * request `workspaceSymbol/resolve` to the server to resolve additional
2950
+ * properties.
2951
+ *
2952
+ * @since 3.17.0
2953
+ */
2954
+ resolveSupport?: ClientSymbolResolveOptions;
2955
+ }
2956
+ /**
2957
+ * The parameters of a {@link WorkspaceSymbolRequest}.
2958
+ */
2959
+ export interface WorkspaceSymbolParams extends WorkDoneProgressParams, PartialResultParams {
2960
+ /**
2961
+ * A query string to filter symbols by. Clients may send an empty
2962
+ * string here to request all symbols.
2963
+ *
2964
+ * The `query`-parameter should be interpreted in a *relaxed way* as editors
2965
+ * will apply their own highlighting and scoring on the results. A good rule
2966
+ * of thumb is to match case-insensitive and to simply check that the
2967
+ * characters of *query* appear in their order in a candidate symbol.
2968
+ * Servers shouldn't use prefix, substring, or similar strict matching.
2969
+ */
2970
+ query: string;
2971
+ }
2972
+ /**
2973
+ * Server capabilities for a {@link WorkspaceSymbolRequest}.
2974
+ */
2975
+ export interface WorkspaceSymbolOptions extends WorkDoneProgressOptions {
2976
+ /**
2977
+ * The server provides support to resolve additional
2978
+ * information for a workspace symbol.
2979
+ *
2980
+ * @since 3.17.0
2981
+ */
2982
+ resolveProvider?: boolean;
2983
+ }
2984
+ /**
2985
+ * Registration options for a {@link WorkspaceSymbolRequest}.
2986
+ */
2987
+ export interface WorkspaceSymbolRegistrationOptions extends WorkspaceSymbolOptions {
2988
+ }
2989
+ /**
2990
+ * A request to list project-wide symbols matching the query string given
2991
+ * by the {@link WorkspaceSymbolParams}. The response is
2992
+ * of type {@link SymbolInformation SymbolInformation[]} or a Thenable that
2993
+ * resolves to such.
2994
+ *
2995
+ * @since 3.17.0 - support for WorkspaceSymbol in the returned data. Clients
2996
+ * need to advertise support for WorkspaceSymbols via the client capability
2997
+ * `workspace.symbol.resolveSupport`.
2998
+ *
2999
+ */
3000
+ export declare namespace WorkspaceSymbolRequest {
3001
+ const method: 'workspace/symbol';
3002
+ const messageDirection: MessageDirection;
3003
+ const type: ProtocolRequestType<WorkspaceSymbolParams, SymbolInformation[] | WorkspaceSymbol[] | null, SymbolInformation[] | WorkspaceSymbol[], void, WorkspaceSymbolRegistrationOptions>;
3004
+ const capabilities: CM<"workspace.symbol", "workspaceSymbolProvider">;
3005
+ }
3006
+ /**
3007
+ * A request to resolve the range inside the workspace
3008
+ * symbol's location.
3009
+ *
3010
+ * @since 3.17.0
3011
+ */
3012
+ export declare namespace WorkspaceSymbolResolveRequest {
3013
+ const method: 'workspaceSymbol/resolve';
3014
+ const messageDirection: MessageDirection;
3015
+ const type: ProtocolRequestType<WorkspaceSymbol, WorkspaceSymbol, never, void, void>;
3016
+ const capabilities: CM<"workspace.symbol.resolveSupport", "workspaceSymbolProvider.resolveProvider">;
3017
+ }
3018
+ /**
3019
+ * @since 3.18.0
3020
+ */
3021
+ export type ClientCodeLensResolveOptions = {
3022
+ /**
3023
+ * The properties that a client can resolve lazily.
3024
+ */
3025
+ properties: string[];
3026
+ };
3027
+ /**
3028
+ * The client capabilities of a {@link CodeLensRequest}.
3029
+ */
3030
+ export interface CodeLensClientCapabilities {
3031
+ /**
3032
+ * Whether code lens supports dynamic registration.
3033
+ */
3034
+ dynamicRegistration?: boolean;
3035
+ /**
3036
+ * Whether the client supports resolving additional code lens
3037
+ * properties via a separate `codeLens/resolve` request.
3038
+ *
3039
+ * @since 3.18.0
3040
+ */
3041
+ resolveSupport?: ClientCodeLensResolveOptions;
3042
+ }
3043
+ /**
3044
+ * @since 3.16.0
3045
+ */
3046
+ export interface CodeLensWorkspaceClientCapabilities {
3047
+ /**
3048
+ * Whether the client implementation supports a refresh request sent from the
3049
+ * server to the client.
3050
+ *
3051
+ * Note that this event is global and will force the client to refresh all
3052
+ * code lenses currently shown. It should be used with absolute care and is
3053
+ * useful for situation where a server for example detect a project wide
3054
+ * change that requires such a calculation.
3055
+ */
3056
+ refreshSupport?: boolean;
3057
+ }
3058
+ /**
3059
+ * The parameters of a {@link CodeLensRequest}.
3060
+ */
3061
+ export interface CodeLensParams extends WorkDoneProgressParams, PartialResultParams {
3062
+ /**
3063
+ * The document to request code lens for.
3064
+ */
3065
+ textDocument: TextDocumentIdentifier;
3066
+ }
3067
+ /**
3068
+ * Code Lens provider options of a {@link CodeLensRequest}.
3069
+ */
3070
+ export interface CodeLensOptions extends WorkDoneProgressOptions {
3071
+ /**
3072
+ * Code lens has a resolve provider as well.
3073
+ */
3074
+ resolveProvider?: boolean;
3075
+ }
3076
+ /**
3077
+ * Registration options for a {@link CodeLensRequest}.
3078
+ */
3079
+ export interface CodeLensRegistrationOptions extends TextDocumentRegistrationOptions, CodeLensOptions {
3080
+ }
3081
+ /**
3082
+ * A request to provide code lens for the given text document.
3083
+ */
3084
+ export declare namespace CodeLensRequest {
3085
+ const method: 'textDocument/codeLens';
3086
+ const messageDirection: MessageDirection;
3087
+ const type: ProtocolRequestType<CodeLensParams, CodeLens[] | null, CodeLens[], void, CodeLensRegistrationOptions>;
3088
+ const capabilities: CM<"textDocument.codeLens", "codeLensProvider">;
3089
+ }
3090
+ /**
3091
+ * A request to resolve a command for a given code lens.
3092
+ */
3093
+ export declare namespace CodeLensResolveRequest {
3094
+ const method: 'codeLens/resolve';
3095
+ const messageDirection: MessageDirection;
3096
+ const type: ProtocolRequestType<CodeLens, CodeLens, never, void, void>;
3097
+ const capabilities: CM<"textDocument.codeLens.resolveSupport", "codeLensProvider.resolveProvider">;
3098
+ }
3099
+ /**
3100
+ * A request to refresh all code actions
3101
+ *
3102
+ * @since 3.16.0
3103
+ */
3104
+ export declare namespace CodeLensRefreshRequest {
3105
+ const method: `workspace/codeLens/refresh`;
3106
+ const messageDirection: MessageDirection;
3107
+ const type: ProtocolRequestType0<void, void, void, void>;
3108
+ const capabilities: CM<"workspace.codeLens", undefined>;
3109
+ }
3110
+ /**
3111
+ * The client capabilities of a {@link DocumentLinkRequest}.
3112
+ */
3113
+ export interface DocumentLinkClientCapabilities {
3114
+ /**
3115
+ * Whether document link supports dynamic registration.
3116
+ */
3117
+ dynamicRegistration?: boolean;
3118
+ /**
3119
+ * Whether the client supports the `tooltip` property on `DocumentLink`.
3120
+ *
3121
+ * @since 3.15.0
3122
+ */
3123
+ tooltipSupport?: boolean;
3124
+ }
3125
+ /**
3126
+ * The parameters of a {@link DocumentLinkRequest}.
3127
+ */
3128
+ export interface DocumentLinkParams extends WorkDoneProgressParams, PartialResultParams {
3129
+ /**
3130
+ * The document to provide document links for.
3131
+ */
3132
+ textDocument: TextDocumentIdentifier;
3133
+ }
3134
+ /**
3135
+ * Provider options for a {@link DocumentLinkRequest}.
3136
+ */
3137
+ export interface DocumentLinkOptions extends WorkDoneProgressOptions {
3138
+ /**
3139
+ * Document links have a resolve provider as well.
3140
+ */
3141
+ resolveProvider?: boolean;
3142
+ }
3143
+ /**
3144
+ * Registration options for a {@link DocumentLinkRequest}.
3145
+ */
3146
+ export interface DocumentLinkRegistrationOptions extends TextDocumentRegistrationOptions, DocumentLinkOptions {
3147
+ }
3148
+ /**
3149
+ * A request to provide document links
3150
+ */
3151
+ export declare namespace DocumentLinkRequest {
3152
+ const method: 'textDocument/documentLink';
3153
+ const messageDirection: MessageDirection;
3154
+ const type: ProtocolRequestType<DocumentLinkParams, DocumentLink[] | null, DocumentLink[], void, DocumentLinkRegistrationOptions>;
3155
+ const capabilities: CM<"textDocument.documentLink", "documentLinkProvider">;
3156
+ }
3157
+ /**
3158
+ * Request to resolve additional information for a given document link. The request's
3159
+ * parameter is of type {@link DocumentLink} the response
3160
+ * is of type {@link DocumentLink} or a Thenable that resolves to such.
3161
+ */
3162
+ export declare namespace DocumentLinkResolveRequest {
3163
+ const method: 'documentLink/resolve';
3164
+ const messageDirection: MessageDirection;
3165
+ const type: ProtocolRequestType<DocumentLink, DocumentLink, never, void, void>;
3166
+ const capabilities: CM<"textDocument.documentLink", "documentLinkProvider.resolveProvider">;
3167
+ }
3168
+ /**
3169
+ * Client capabilities of a {@link DocumentFormattingRequest}.
3170
+ */
3171
+ export interface DocumentFormattingClientCapabilities {
3172
+ /**
3173
+ * Whether formatting supports dynamic registration.
3174
+ */
3175
+ dynamicRegistration?: boolean;
3176
+ }
3177
+ /**
3178
+ * The parameters of a {@link DocumentFormattingRequest}.
3179
+ */
3180
+ export interface DocumentFormattingParams extends WorkDoneProgressParams {
3181
+ /**
3182
+ * The document to format.
3183
+ */
3184
+ textDocument: TextDocumentIdentifier;
3185
+ /**
3186
+ * The format options.
3187
+ */
3188
+ options: FormattingOptions;
3189
+ }
3190
+ /**
3191
+ * Provider options for a {@link DocumentFormattingRequest}.
3192
+ */
3193
+ export interface DocumentFormattingOptions extends WorkDoneProgressOptions {
3194
+ }
3195
+ /**
3196
+ * Registration options for a {@link DocumentFormattingRequest}.
3197
+ */
3198
+ export interface DocumentFormattingRegistrationOptions extends TextDocumentRegistrationOptions, DocumentFormattingOptions {
3199
+ }
3200
+ /**
3201
+ * A request to format a whole document.
3202
+ */
3203
+ export declare namespace DocumentFormattingRequest {
3204
+ const method: 'textDocument/formatting';
3205
+ const messageDirection: MessageDirection;
3206
+ const type: ProtocolRequestType<DocumentFormattingParams, TextEdit[] | null, never, void, DocumentFormattingRegistrationOptions>;
3207
+ const capabilities: CM<"textDocument.formatting", "documentFormattingProvider">;
3208
+ }
3209
+ /**
3210
+ * Client capabilities of a {@link DocumentRangeFormattingRequest}.
3211
+ */
3212
+ export interface DocumentRangeFormattingClientCapabilities {
3213
+ /**
3214
+ * Whether range formatting supports dynamic registration.
3215
+ */
3216
+ dynamicRegistration?: boolean;
3217
+ /**
3218
+ * Whether the client supports formatting multiple ranges at once.
3219
+ *
3220
+ * @since 3.18.0
3221
+ */
3222
+ rangesSupport?: boolean;
3223
+ }
3224
+ /**
3225
+ * The parameters of a {@link DocumentRangeFormattingRequest}.
3226
+ */
3227
+ export interface DocumentRangeFormattingParams extends WorkDoneProgressParams {
3228
+ /**
3229
+ * The document to format.
3230
+ */
3231
+ textDocument: TextDocumentIdentifier;
3232
+ /**
3233
+ * The range to format
3234
+ */
3235
+ range: Range;
3236
+ /**
3237
+ * The format options
3238
+ */
3239
+ options: FormattingOptions;
3240
+ }
3241
+ /**
3242
+ * The parameters of a {@link DocumentRangesFormattingRequest}.
3243
+ *
3244
+ * @since 3.18.0
3245
+ */
3246
+ export interface DocumentRangesFormattingParams extends WorkDoneProgressParams {
3247
+ /**
3248
+ * The document to format.
3249
+ */
3250
+ textDocument: TextDocumentIdentifier;
3251
+ /**
3252
+ * The ranges to format
3253
+ */
3254
+ ranges: Range[];
3255
+ /**
3256
+ * The format options
3257
+ */
3258
+ options: FormattingOptions;
3259
+ }
3260
+ /**
3261
+ * Provider options for a {@link DocumentRangeFormattingRequest}.
3262
+ */
3263
+ export interface DocumentRangeFormattingOptions extends WorkDoneProgressOptions {
3264
+ /**
3265
+ * Whether the server supports formatting multiple ranges at once.
3266
+ *
3267
+ * @since 3.18.0
3268
+ */
3269
+ rangesSupport?: boolean;
3270
+ }
3271
+ /**
3272
+ * Registration options for a {@link DocumentRangeFormattingRequest}.
3273
+ */
3274
+ export interface DocumentRangeFormattingRegistrationOptions extends TextDocumentRegistrationOptions, DocumentRangeFormattingOptions {
3275
+ }
3276
+ /**
3277
+ * A request to format a range in a document.
3278
+ */
3279
+ export declare namespace DocumentRangeFormattingRequest {
3280
+ const method: 'textDocument/rangeFormatting';
3281
+ const messageDirection: MessageDirection;
3282
+ const type: ProtocolRequestType<DocumentRangeFormattingParams, TextEdit[] | null, never, void, DocumentRangeFormattingRegistrationOptions>;
3283
+ const capabilities: CM<"textDocument.rangeFormatting", "documentRangeFormattingProvider">;
3284
+ }
3285
+ /**
3286
+ * A request to format ranges in a document.
3287
+ *
3288
+ * @since 3.18.0
3289
+ */
3290
+ export declare namespace DocumentRangesFormattingRequest {
3291
+ const method: 'textDocument/rangesFormatting';
3292
+ const messageDirection: MessageDirection;
3293
+ const type: ProtocolRequestType<DocumentRangesFormattingParams, TextEdit[] | null, never, void, DocumentRangeFormattingRegistrationOptions>;
3294
+ const capabilities: CM<"textDocument.rangeFormatting.rangesSupport", "documentRangeFormattingProvider.rangesSupport">;
3295
+ }
3296
+ /**
3297
+ * Client capabilities of a {@link DocumentOnTypeFormattingRequest}.
3298
+ */
3299
+ export interface DocumentOnTypeFormattingClientCapabilities {
3300
+ /**
3301
+ * Whether on type formatting supports dynamic registration.
3302
+ */
3303
+ dynamicRegistration?: boolean;
3304
+ }
3305
+ /**
3306
+ * The parameters of a {@link DocumentOnTypeFormattingRequest}.
3307
+ */
3308
+ export interface DocumentOnTypeFormattingParams {
3309
+ /**
3310
+ * The document to format.
3311
+ */
3312
+ textDocument: TextDocumentIdentifier;
3313
+ /**
3314
+ * The position around which the on type formatting should happen.
3315
+ * This is not necessarily the exact position where the character denoted
3316
+ * by the property `ch` got typed.
3317
+ */
3318
+ position: Position;
3319
+ /**
3320
+ * The character that has been typed that triggered the formatting
3321
+ * on type request. That is not necessarily the last character that
3322
+ * got inserted into the document since the client could auto insert
3323
+ * characters as well (e.g. like automatic brace completion).
3324
+ */
3325
+ ch: string;
3326
+ /**
3327
+ * The formatting options.
3328
+ */
3329
+ options: FormattingOptions;
3330
+ }
3331
+ /**
3332
+ * Provider options for a {@link DocumentOnTypeFormattingRequest}.
3333
+ */
3334
+ export interface DocumentOnTypeFormattingOptions {
3335
+ /**
3336
+ * A character on which formatting should be triggered, like `{`.
3337
+ */
3338
+ firstTriggerCharacter: string;
3339
+ /**
3340
+ * More trigger characters.
3341
+ */
3342
+ moreTriggerCharacter?: string[];
3343
+ }
3344
+ /**
3345
+ * Registration options for a {@link DocumentOnTypeFormattingRequest}.
3346
+ */
3347
+ export interface DocumentOnTypeFormattingRegistrationOptions extends TextDocumentRegistrationOptions, DocumentOnTypeFormattingOptions {
3348
+ }
3349
+ /**
3350
+ * A request to format a document on type.
3351
+ */
3352
+ export declare namespace DocumentOnTypeFormattingRequest {
3353
+ const method: 'textDocument/onTypeFormatting';
3354
+ const messageDirection: MessageDirection;
3355
+ const type: ProtocolRequestType<DocumentOnTypeFormattingParams, TextEdit[] | null, never, void, DocumentOnTypeFormattingRegistrationOptions>;
3356
+ const capabilities: CM<"textDocument.onTypeFormatting", "documentOnTypeFormattingProvider">;
3357
+ }
3358
+ export declare namespace PrepareSupportDefaultBehavior {
3359
+ /**
3360
+ * The client's default behavior is to select the identifier
3361
+ * according the to language's syntax rule.
3362
+ */
3363
+ const Identifier: 1;
3364
+ }
3365
+ export type PrepareSupportDefaultBehavior = 1;
3366
+ export interface RenameClientCapabilities {
3367
+ /**
3368
+ * Whether rename supports dynamic registration.
3369
+ */
3370
+ dynamicRegistration?: boolean;
3371
+ /**
3372
+ * Client supports testing for validity of rename operations
3373
+ * before execution.
3374
+ *
3375
+ * @since 3.12.0
3376
+ */
3377
+ prepareSupport?: boolean;
3378
+ /**
3379
+ * Client supports the default behavior result.
3380
+ *
3381
+ * The value indicates the default behavior used by the
3382
+ * client.
3383
+ *
3384
+ * @since 3.16.0
3385
+ */
3386
+ prepareSupportDefaultBehavior?: PrepareSupportDefaultBehavior;
3387
+ /**
3388
+ * Whether the client honors the change annotations in
3389
+ * text edits and resource operations returned via the
3390
+ * rename request's workspace edit by for example presenting
3391
+ * the workspace edit in the user interface and asking
3392
+ * for confirmation.
3393
+ *
3394
+ * @since 3.16.0
3395
+ */
3396
+ honorsChangeAnnotations?: boolean;
3397
+ }
3398
+ /**
3399
+ * The parameters of a {@link RenameRequest}.
3400
+ */
3401
+ export interface RenameParams extends TextDocumentPositionParams, WorkDoneProgressParams {
3402
+ /**
3403
+ * The new name of the symbol. If the given name is not valid the
3404
+ * request must return a {@link ResponseError} with an
3405
+ * appropriate message set.
3406
+ */
3407
+ newName: string;
3408
+ }
3409
+ /**
3410
+ * Provider options for a {@link RenameRequest}.
3411
+ */
3412
+ export interface RenameOptions extends WorkDoneProgressOptions {
3413
+ /**
3414
+ * Renames should be checked and tested before being executed.
3415
+ *
3416
+ * @since version 3.12.0
3417
+ */
3418
+ prepareProvider?: boolean;
3419
+ }
3420
+ /**
3421
+ * Registration options for a {@link RenameRequest}.
3422
+ */
3423
+ export interface RenameRegistrationOptions extends TextDocumentRegistrationOptions, RenameOptions {
3424
+ }
3425
+ /**
3426
+ * A request to rename a symbol.
3427
+ */
3428
+ export declare namespace RenameRequest {
3429
+ const method: 'textDocument/rename';
3430
+ const messageDirection: MessageDirection;
3431
+ const type: ProtocolRequestType<RenameParams, WorkspaceEdit | null, never, void, RenameRegistrationOptions>;
3432
+ const capabilities: CM<"textDocument.rename", "renameProvider">;
3433
+ }
3434
+ export interface PrepareRenameParams extends TextDocumentPositionParams, WorkDoneProgressParams {
3435
+ }
3436
+ /**
3437
+ * @since 3.18.0
3438
+ */
3439
+ export type PrepareRenamePlaceholder = {
3440
+ range: Range;
3441
+ placeholder: string;
3442
+ };
3443
+ /**
3444
+ * @since 3.18.0
3445
+ */
3446
+ export type PrepareRenameDefaultBehavior = {
3447
+ defaultBehavior: boolean;
3448
+ };
3449
+ export type PrepareRenameResult = Range | PrepareRenamePlaceholder | PrepareRenameDefaultBehavior;
3450
+ /**
3451
+ * A request to test and perform the setup necessary for a rename.
3452
+ *
3453
+ * @since 3.16 - support for default behavior
3454
+ */
3455
+ export declare namespace PrepareRenameRequest {
3456
+ const method: 'textDocument/prepareRename';
3457
+ const messageDirection: MessageDirection;
3458
+ const type: ProtocolRequestType<PrepareRenameParams, PrepareRenameResult | null, never, void, void>;
3459
+ const capabilities: CM<"textDocument.rename.prepareSupport", "renameProvider.prepareProvider">;
3460
+ }
3461
+ /**
3462
+ * The client capabilities of a {@link ExecuteCommandRequest}.
3463
+ */
3464
+ export interface ExecuteCommandClientCapabilities {
3465
+ /**
3466
+ * Execute command supports dynamic registration.
3467
+ */
3468
+ dynamicRegistration?: boolean;
3469
+ }
3470
+ /**
3471
+ * The parameters of a {@link ExecuteCommandRequest}.
3472
+ */
3473
+ export interface ExecuteCommandParams extends WorkDoneProgressParams {
3474
+ /**
3475
+ * The identifier of the actual command handler.
3476
+ */
3477
+ command: string;
3478
+ /**
3479
+ * Arguments that the command should be invoked with.
3480
+ */
3481
+ arguments?: LSPAny[];
3482
+ }
3483
+ /**
3484
+ * The server capabilities of a {@link ExecuteCommandRequest}.
3485
+ */
3486
+ export interface ExecuteCommandOptions extends WorkDoneProgressOptions {
3487
+ /**
3488
+ * The commands to be executed on the server
3489
+ */
3490
+ commands: string[];
3491
+ }
3492
+ /**
3493
+ * Registration options for a {@link ExecuteCommandRequest}.
3494
+ */
3495
+ export interface ExecuteCommandRegistrationOptions extends ExecuteCommandOptions {
3496
+ }
3497
+ /**
3498
+ * A request send from the client to the server to execute a command. The request might return
3499
+ * a workspace edit which the client will apply to the workspace.
3500
+ */
3501
+ export declare namespace ExecuteCommandRequest {
3502
+ const method: 'workspace/executeCommand';
3503
+ const messageDirection: MessageDirection;
3504
+ const type: ProtocolRequestType<ExecuteCommandParams, any, never, void, ExecuteCommandRegistrationOptions>;
3505
+ const capabilities: CM<"workspace.executeCommand", "executeCommandProvider">;
3506
+ }
3507
+ /**
3508
+ * @since 3.18.0
3509
+ */
3510
+ export type ChangeAnnotationsSupportOptions = {
3511
+ /**
3512
+ * Whether the client groups edits with equal labels into tree nodes,
3513
+ * for instance all edits labelled with "Changes in Strings" would
3514
+ * be a tree node.
3515
+ */
3516
+ groupsOnLabel?: boolean;
3517
+ };
3518
+ export interface WorkspaceEditClientCapabilities {
3519
+ /**
3520
+ * The client supports versioned document changes in `WorkspaceEdit`s
3521
+ */
3522
+ documentChanges?: boolean;
3523
+ /**
3524
+ * The resource operations the client supports. Clients should at least
3525
+ * support 'create', 'rename' and 'delete' files and folders.
3526
+ *
3527
+ * @since 3.13.0
3528
+ */
3529
+ resourceOperations?: ResourceOperationKind[];
3530
+ /**
3531
+ * The failure handling strategy of a client if applying the workspace edit
3532
+ * fails.
3533
+ *
3534
+ * @since 3.13.0
3535
+ */
3536
+ failureHandling?: FailureHandlingKind;
3537
+ /**
3538
+ * Whether the client normalizes line endings to the client specific
3539
+ * setting.
3540
+ * If set to `true` the client will normalize line ending characters
3541
+ * in a workspace edit to the client-specified new line
3542
+ * character.
3543
+ *
3544
+ * @since 3.16.0
3545
+ */
3546
+ normalizesLineEndings?: boolean;
3547
+ /**
3548
+ * Whether the client in general supports change annotations on text edits,
3549
+ * create file, rename file and delete file changes.
3550
+ *
3551
+ * @since 3.16.0
3552
+ */
3553
+ changeAnnotationSupport?: ChangeAnnotationsSupportOptions;
3554
+ /**
3555
+ * Whether the client supports `WorkspaceEditMetadata` in `WorkspaceEdit`s.
3556
+ *
3557
+ * @since 3.18.0
3558
+ */
3559
+ metadataSupport?: boolean;
3560
+ /**
3561
+ * Whether the client supports snippets as text edits.
3562
+ *
3563
+ * @since 3.18.0
3564
+ */
3565
+ snippetEditSupport?: boolean;
3566
+ }
3567
+ /**
3568
+ * The parameters passed via an apply workspace edit request.
3569
+ */
3570
+ export interface ApplyWorkspaceEditParams {
3571
+ /**
3572
+ * An optional label of the workspace edit. This label is
3573
+ * presented in the user interface for example on an undo
3574
+ * stack to undo the workspace edit.
3575
+ */
3576
+ label?: string;
3577
+ /**
3578
+ * The edits to apply.
3579
+ */
3580
+ edit: WorkspaceEdit;
3581
+ /**
3582
+ * Additional data about the edit.
3583
+ *
3584
+ * @since 3.18.0
3585
+ */
3586
+ metadata?: WorkspaceEditMetadata;
3587
+ }
3588
+ /**
3589
+ * The result returned from the apply workspace edit request.
3590
+ *
3591
+ * @since 3.17 renamed from ApplyWorkspaceEditResponse
3592
+ */
3593
+ export interface ApplyWorkspaceEditResult {
3594
+ /**
3595
+ * Indicates whether the edit was applied or not.
3596
+ */
3597
+ applied: boolean;
3598
+ /**
3599
+ * An optional textual description for why the edit was not applied.
3600
+ * This may be used by the server for diagnostic logging or to provide
3601
+ * a suitable error for a request that triggered the edit.
3602
+ */
3603
+ failureReason?: string;
3604
+ /**
3605
+ * Depending on the client's failure handling strategy `failedChange` might
3606
+ * contain the index of the change that failed. This property is only available
3607
+ * if the client signals a `failureHandlingStrategy` in its client capabilities.
3608
+ */
3609
+ failedChange?: uinteger;
3610
+ }
3611
+ /**
3612
+ * @deprecated Use ApplyWorkspaceEditResult instead.
3613
+ */
3614
+ export type ApplyWorkspaceEditResponse = ApplyWorkspaceEditResult;
3615
+ /**
3616
+ * A request sent from the server to the client to modified certain resources.
3617
+ */
3618
+ export declare namespace ApplyWorkspaceEditRequest {
3619
+ const method: 'workspace/applyEdit';
3620
+ const messageDirection: MessageDirection;
3621
+ const type: ProtocolRequestType<ApplyWorkspaceEditParams, ApplyWorkspaceEditResult, never, void, void>;
3622
+ type HandlerSignature = RequestHandler<ApplyWorkspaceEditParams, ApplyWorkspaceEditResult, void>;
3623
+ const capabilities: CM<"workspace.applyEdit", undefined>;
3624
+ }
3625
+ export { ImplementationRequest, ImplementationParams, ImplementationRegistrationOptions, ImplementationOptions, TypeDefinitionRequest, TypeDefinitionParams, TypeDefinitionRegistrationOptions, TypeDefinitionOptions, WorkspaceFoldersRequest, DidChangeWorkspaceFoldersNotification, DidChangeWorkspaceFoldersParams, WorkspaceFoldersChangeEvent, ConfigurationRequest, ConfigurationParams, ConfigurationItem, DocumentColorRequest, ColorPresentationRequest, DocumentColorOptions, DocumentColorParams, ColorPresentationParams, DocumentColorRegistrationOptions, FoldingRangeClientCapabilities, FoldingRangeOptions, FoldingRangeRequest, FoldingRangeParams, FoldingRangeRegistrationOptions, FoldingRangeRefreshRequest, DeclarationClientCapabilities, DeclarationRequest, DeclarationParams, DeclarationRegistrationOptions, DeclarationOptions, SelectionRangeClientCapabilities, SelectionRangeOptions, SelectionRangeParams, SelectionRangeRequest, SelectionRangeRegistrationOptions, WorkDoneProgressBegin, WorkDoneProgressReport, WorkDoneProgressEnd, WorkDoneProgress, WorkDoneProgressCreateParams, WorkDoneProgressCreateRequest, WorkDoneProgressCancelParams, WorkDoneProgressCancelNotification, CallHierarchyClientCapabilities, CallHierarchyOptions, CallHierarchyRegistrationOptions, CallHierarchyIncomingCallsParams, CallHierarchyIncomingCallsRequest, CallHierarchyOutgoingCallsParams, CallHierarchyOutgoingCallsRequest, CallHierarchyPrepareParams, CallHierarchyPrepareRequest, SemanticTokensPartialResult, SemanticTokensDeltaPartialResult, TokenFormat, SemanticTokensClientCapabilities, SemanticTokensOptions, SemanticTokensRegistrationOptions, SemanticTokensParams, SemanticTokensRequest, SemanticTokensDeltaParams, SemanticTokensDeltaRequest, SemanticTokensRangeParams, SemanticTokensRangeRequest, SemanticTokensRefreshRequest, SemanticTokensRegistrationType, ShowDocumentParams, ShowDocumentRequest, ShowDocumentResult, ShowDocumentClientCapabilities, LinkedEditingRangeClientCapabilities, LinkedEditingRanges, LinkedEditingRangeOptions, LinkedEditingRangeParams, LinkedEditingRangeRegistrationOptions, LinkedEditingRangeRequest, FileOperationOptions, FileOperationClientCapabilities, FileOperationRegistrationOptions, FileOperationPatternOptions, FileOperationPatternKind, DidCreateFilesNotification, CreateFilesParams, FileCreate, WillCreateFilesRequest, DidRenameFilesNotification, RenameFilesParams, FileRename, WillRenameFilesRequest, DidDeleteFilesNotification, DeleteFilesParams, FileDelete, WillDeleteFilesRequest, UniquenessLevel, MonikerKind, Moniker, MonikerClientCapabilities, MonikerOptions, MonikerRegistrationOptions, MonikerParams, MonikerRequest, TypeHierarchyClientCapabilities, TypeHierarchyOptions, TypeHierarchyRegistrationOptions, TypeHierarchyPrepareParams, TypeHierarchyPrepareRequest, TypeHierarchySubtypesParams, TypeHierarchySubtypesRequest, TypeHierarchySupertypesParams, TypeHierarchySupertypesRequest, InlineValueClientCapabilities, InlineValueOptions, InlineValueRegistrationOptions, InlineValueWorkspaceClientCapabilities, InlineValueParams, InlineValueRequest, InlineValueRefreshRequest, InlayHintClientCapabilities, InlayHintOptions, InlayHintRegistrationOptions, InlayHintWorkspaceClientCapabilities, InlayHintParams, InlayHintRequest, InlayHintResolveRequest, InlayHintRefreshRequest, DiagnosticClientCapabilities, DiagnosticOptions, DiagnosticRegistrationOptions, DiagnosticServerCancellationData, DocumentDiagnosticParams, DocumentDiagnosticReportKind, FullDocumentDiagnosticReport, RelatedFullDocumentDiagnosticReport, UnchangedDocumentDiagnosticReport, RelatedUnchangedDocumentDiagnosticReport, DocumentDiagnosticReport, DocumentDiagnosticReportPartialResult, DocumentDiagnosticRequest, PreviousResultId, WorkspaceDiagnosticParams, WorkspaceFullDocumentDiagnosticReport, WorkspaceUnchangedDocumentDiagnosticReport, WorkspaceDocumentDiagnosticReport, WorkspaceDiagnosticReport, WorkspaceDiagnosticReportPartialResult, WorkspaceDiagnosticRequest, DiagnosticRefreshRequest, NotebookDocumentSyncClientCapabilities, NotebookCellKind, ExecutionSummary, NotebookCell, NotebookDocument, NotebookDocumentIdentifier, VersionedNotebookDocumentIdentifier, NotebookDocumentSyncOptions, NotebookDocumentSyncRegistrationOptions, NotebookDocumentSyncRegistrationType, DidOpenNotebookDocumentParams, DidOpenNotebookDocumentNotification, NotebookCellArrayChange, NotebookDocumentChangeEvent, DidChangeNotebookDocumentParams, DidChangeNotebookDocumentNotification, DidSaveNotebookDocumentParams, DidSaveNotebookDocumentNotification, DidCloseNotebookDocumentParams, DidCloseNotebookDocumentNotification, NotebookDocumentFilterWithCells, NotebookDocumentFilterWithNotebook, InlineCompletionClientCapabilities, InlineCompletionOptions, InlineCompletionParams, InlineCompletionRegistrationOptions, InlineCompletionRequest, TextDocumentContentClientCapabilities, TextDocumentContentOptions, TextDocumentContentRegistrationOptions, TextDocumentContentParams, TextDocumentContentResult, TextDocumentContentRequest, TextDocumentContentRefreshParams, TextDocumentContentRefreshRequest };
3626
+ export { DocumentColorOptions as ColorProviderOptions, DocumentColorOptions as ColorOptions, FoldingRangeOptions as FoldingRangeProviderOptions, SelectionRangeOptions as SelectionRangeProviderOptions, DocumentColorRegistrationOptions as ColorRegistrationOptions };