1// Copyright 2023 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated for LSP. DO NOT EDIT.
6
7package protocol
8
9// Code generated from protocol/metaModel.json at ref release/protocol/3.17.6-next.9 (hash c94395b5da53729e6dff931293b051009ccaaaa4).
10// https://github.com/microsoft/vscode-languageserver-node/blob/release/protocol/3.17.6-next.9/protocol/metaModel.json
11// LSP metaData.version = 3.17.0.
12
13import "encoding/json"
14
15// created for And
16type And_RegOpt_textDocument_colorPresentation struct {
17 WorkDoneProgressOptions
18 TextDocumentRegistrationOptions
19}
20
21// A special text edit with an additional change annotation.
22//
23// @since 3.16.0.
24//
25// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#annotatedTextEdit
26type AnnotatedTextEdit struct {
27 // The actual identifier of the change annotation
28 AnnotationID *ChangeAnnotationIdentifier `json:"annotationId,omitempty"`
29 TextEdit
30}
31
32// The parameters passed via an apply workspace edit request.
33//
34// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#applyWorkspaceEditParams
35type ApplyWorkspaceEditParams struct {
36 // An optional label of the workspace edit. This label is
37 // presented in the user interface for example on an undo
38 // stack to undo the workspace edit.
39 Label string `json:"label,omitempty"`
40 // The edits to apply.
41 Edit WorkspaceEdit `json:"edit"`
42 // Additional data about the edit.
43 //
44 // @since 3.18.0
45 // @proposed
46 Metadata *WorkspaceEditMetadata `json:"metadata,omitempty"`
47}
48
49// The result returned from the apply workspace edit request.
50//
51// @since 3.17 renamed from ApplyWorkspaceEditResponse
52//
53// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#applyWorkspaceEditResult
54type ApplyWorkspaceEditResult struct {
55 // Indicates whether the edit was applied or not.
56 Applied bool `json:"applied"`
57 // An optional textual description for why the edit was not applied.
58 // This may be used by the server for diagnostic slog.or to provide
59 // a suitable error for a request that triggered the edit.
60 FailureReason string `json:"failureReason,omitempty"`
61 // Depending on the client's failure handling strategy `failedChange` might
62 // contain the index of the change that failed. This property is only available
63 // if the client signals a `failureHandlingStrategy` in its client capabilities.
64 FailedChange uint32 `json:"failedChange,omitempty"`
65}
66
67// A base for all symbol information.
68//
69// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#baseSymbolInformation
70type BaseSymbolInformation struct {
71 // The name of this symbol.
72 Name string `json:"name"`
73 // The kind of this symbol.
74 Kind SymbolKind `json:"kind"`
75 // Tags for this symbol.
76 //
77 // @since 3.16.0
78 Tags []SymbolTag `json:"tags,omitempty"`
79 // The name of the symbol containing this symbol. This information is for
80 // user interface purposes (e.g. to render a qualifier in the user interface
81 // if necessary). It can't be used to re-infer a hierarchy for the document
82 // symbols.
83 ContainerName string `json:"containerName,omitempty"`
84}
85
86// @since 3.16.0
87//
88// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyClientCapabilities
89type CallHierarchyClientCapabilities struct {
90 // Whether implementation supports dynamic registration. If this is set to `true`
91 // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
92 // return value for the corresponding server capability as well.
93 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
94}
95
96// Represents an incoming call, e.g. a caller of a method or constructor.
97//
98// @since 3.16.0
99//
100// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyIncomingCall
101type CallHierarchyIncomingCall struct {
102 // The item that makes the call.
103 From CallHierarchyItem `json:"from"`
104 // The ranges at which the calls appear. This is relative to the caller
105 // denoted by {@link CallHierarchyIncomingCall.from `this.from`}.
106 FromRanges []Range `json:"fromRanges"`
107}
108
109// The parameter of a `callHierarchy/incomingCalls` request.
110//
111// @since 3.16.0
112//
113// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyIncomingCallsParams
114type CallHierarchyIncomingCallsParams struct {
115 Item CallHierarchyItem `json:"item"`
116 WorkDoneProgressParams
117 PartialResultParams
118}
119
120// Represents programming constructs like functions or constructors in the context
121// of call hierarchy.
122//
123// @since 3.16.0
124//
125// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyItem
126type CallHierarchyItem struct {
127 // The name of this item.
128 Name string `json:"name"`
129 // The kind of this item.
130 Kind SymbolKind `json:"kind"`
131 // Tags for this item.
132 Tags []SymbolTag `json:"tags,omitempty"`
133 // More detail for this item, e.g. the signature of a function.
134 Detail string `json:"detail,omitempty"`
135 // The resource identifier of this item.
136 URI DocumentURI `json:"uri"`
137 // The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.
138 Range Range `json:"range"`
139 // The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function.
140 // Must be contained by the {@link CallHierarchyItem.range `range`}.
141 SelectionRange Range `json:"selectionRange"`
142 // A data entry field that is preserved between a call hierarchy prepare and
143 // incoming calls or outgoing calls requests.
144 Data interface{} `json:"data,omitempty"`
145}
146
147// Call hierarchy options used during static registration.
148//
149// @since 3.16.0
150//
151// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyOptions
152type CallHierarchyOptions struct {
153 WorkDoneProgressOptions
154}
155
156// Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc.
157//
158// @since 3.16.0
159//
160// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyOutgoingCall
161type CallHierarchyOutgoingCall struct {
162 // The item that is called.
163 To CallHierarchyItem `json:"to"`
164 // The range at which this item is called. This is the range relative to the caller, e.g the item
165 // passed to {@link CallHierarchyItemProvider.provideCallHierarchyOutgoingCalls `provideCallHierarchyOutgoingCalls`}
166 // and not {@link CallHierarchyOutgoingCall.to `this.to`}.
167 FromRanges []Range `json:"fromRanges"`
168}
169
170// The parameter of a `callHierarchy/outgoingCalls` request.
171//
172// @since 3.16.0
173//
174// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyOutgoingCallsParams
175type CallHierarchyOutgoingCallsParams struct {
176 Item CallHierarchyItem `json:"item"`
177 WorkDoneProgressParams
178 PartialResultParams
179}
180
181// The parameter of a `textDocument/prepareCallHierarchy` request.
182//
183// @since 3.16.0
184//
185// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyPrepareParams
186type CallHierarchyPrepareParams struct {
187 TextDocumentPositionParams
188 WorkDoneProgressParams
189}
190
191// Call hierarchy options used during static or dynamic registration.
192//
193// @since 3.16.0
194//
195// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#callHierarchyRegistrationOptions
196type CallHierarchyRegistrationOptions struct {
197 TextDocumentRegistrationOptions
198 CallHierarchyOptions
199 StaticRegistrationOptions
200}
201
202// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#cancelParams
203type CancelParams struct {
204 // The request id to cancel.
205 ID interface{} `json:"id"`
206}
207
208// Additional information that describes document changes.
209//
210// @since 3.16.0
211//
212// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#changeAnnotation
213type ChangeAnnotation struct {
214 // A human-readable string describing the actual change. The string
215 // is rendered prominent in the user interface.
216 Label string `json:"label"`
217 // A flag which indicates that user confirmation is needed
218 // before applying the change.
219 NeedsConfirmation bool `json:"needsConfirmation,omitempty"`
220 // A human-readable string which is rendered less prominent in
221 // the user interface.
222 Description string `json:"description,omitempty"`
223}
224
225// An identifier to refer to a change annotation stored with a workspace edit.
226//
227// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#changeAnnotationIdentifier
228type (
229 ChangeAnnotationIdentifier = string // (alias)
230 // @since 3.18.0
231 //
232 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#changeAnnotationsSupportOptions
233 ChangeAnnotationsSupportOptions struct {
234 // Whether the client groups edits with equal labels into tree nodes,
235 // for instance all edits labelled with "Changes in Strings" would
236 // be a tree node.
237 GroupsOnLabel bool `json:"groupsOnLabel,omitempty"`
238 }
239)
240
241// Defines the capabilities provided by the client.
242//
243// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCapabilities
244type ClientCapabilities struct {
245 // Workspace specific client capabilities.
246 Workspace WorkspaceClientCapabilities `json:"workspace,omitempty"`
247 // Text document specific client capabilities.
248 TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"`
249 // Capabilities specific to the notebook document support.
250 //
251 // @since 3.17.0
252 NotebookDocument *NotebookDocumentClientCapabilities `json:"notebookDocument,omitempty"`
253 // Window specific client capabilities.
254 Window WindowClientCapabilities `json:"window,omitempty"`
255 // General client capabilities.
256 //
257 // @since 3.16.0
258 General *GeneralClientCapabilities `json:"general,omitempty"`
259 // Experimental client capabilities.
260 Experimental interface{} `json:"experimental,omitempty"`
261}
262
263// @since 3.18.0
264//
265// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCodeActionKindOptions
266type ClientCodeActionKindOptions struct {
267 // The code action kind values the client supports. When this
268 // property exists the client also guarantees that it will
269 // handle values outside its set gracefully and falls back
270 // to a default value when unknown.
271 ValueSet []CodeActionKind `json:"valueSet"`
272}
273
274// @since 3.18.0
275//
276// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCodeActionLiteralOptions
277type ClientCodeActionLiteralOptions struct {
278 // The code action kind is support with the following value
279 // set.
280 CodeActionKind ClientCodeActionKindOptions `json:"codeActionKind"`
281}
282
283// @since 3.18.0
284//
285// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCodeActionResolveOptions
286type ClientCodeActionResolveOptions struct {
287 // The properties that a client can resolve lazily.
288 Properties []string `json:"properties"`
289}
290
291// @since 3.18.0
292//
293// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCodeLensResolveOptions
294type ClientCodeLensResolveOptions struct {
295 // The properties that a client can resolve lazily.
296 Properties []string `json:"properties"`
297}
298
299// @since 3.18.0
300//
301// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCompletionItemInsertTextModeOptions
302type ClientCompletionItemInsertTextModeOptions struct {
303 ValueSet []InsertTextMode `json:"valueSet"`
304}
305
306// @since 3.18.0
307//
308// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCompletionItemOptions
309type ClientCompletionItemOptions struct {
310 // Client supports snippets as insert text.
311 //
312 // A snippet can define tab stops and placeholders with `$1`, `$2`
313 // and `${3:foo}`. `$0` defines the final tab stop, it defaults to
314 // the end of the snippet. Placeholders with equal identifiers are linked,
315 // that is typing in one will update others too.
316 SnippetSupport bool `json:"snippetSupport,omitempty"`
317 // Client supports commit characters on a completion item.
318 CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"`
319 // Client supports the following content formats for the documentation
320 // property. The order describes the preferred format of the client.
321 DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"`
322 // Client supports the deprecated property on a completion item.
323 DeprecatedSupport bool `json:"deprecatedSupport,omitempty"`
324 // Client supports the preselect property on a completion item.
325 PreselectSupport bool `json:"preselectSupport,omitempty"`
326 // Client supports the tag property on a completion item. Clients supporting
327 // tags have to handle unknown tags gracefully. Clients especially need to
328 // preserve unknown tags when sending a completion item back to the server in
329 // a resolve call.
330 //
331 // @since 3.15.0
332 TagSupport *CompletionItemTagOptions `json:"tagSupport,omitempty"`
333 // Client support insert replace edit to control different behavior if a
334 // completion item is inserted in the text or should replace text.
335 //
336 // @since 3.16.0
337 InsertReplaceSupport bool `json:"insertReplaceSupport,omitempty"`
338 // Indicates which properties a client can resolve lazily on a completion
339 // item. Before version 3.16.0 only the predefined properties `documentation`
340 // and `details` could be resolved lazily.
341 //
342 // @since 3.16.0
343 ResolveSupport *ClientCompletionItemResolveOptions `json:"resolveSupport,omitempty"`
344 // The client supports the `insertTextMode` property on
345 // a completion item to override the whitespace handling mode
346 // as defined by the client (see `insertTextMode`).
347 //
348 // @since 3.16.0
349 InsertTextModeSupport *ClientCompletionItemInsertTextModeOptions `json:"insertTextModeSupport,omitempty"`
350 // The client has support for completion item label
351 // details (see also `CompletionItemLabelDetails`).
352 //
353 // @since 3.17.0
354 LabelDetailsSupport bool `json:"labelDetailsSupport,omitempty"`
355}
356
357// @since 3.18.0
358//
359// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCompletionItemOptionsKind
360type ClientCompletionItemOptionsKind struct {
361 // The completion item kind values the client supports. When this
362 // property exists the client also guarantees that it will
363 // handle values outside its set gracefully and falls back
364 // to a default value when unknown.
365 //
366 // If this property is not present the client only supports
367 // the completion items kinds from `Text` to `Reference` as defined in
368 // the initial version of the protocol.
369 ValueSet []CompletionItemKind `json:"valueSet,omitempty"`
370}
371
372// @since 3.18.0
373//
374// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientCompletionItemResolveOptions
375type ClientCompletionItemResolveOptions struct {
376 // The properties that a client can resolve lazily.
377 Properties []string `json:"properties"`
378}
379
380// @since 3.18.0
381//
382// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientDiagnosticsTagOptions
383type ClientDiagnosticsTagOptions struct {
384 // The tags supported by the client.
385 ValueSet []DiagnosticTag `json:"valueSet"`
386}
387
388// @since 3.18.0
389//
390// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientFoldingRangeKindOptions
391type ClientFoldingRangeKindOptions struct {
392 // The folding range kind values the client supports. When this
393 // property exists the client also guarantees that it will
394 // handle values outside its set gracefully and falls back
395 // to a default value when unknown.
396 ValueSet []FoldingRangeKind `json:"valueSet,omitempty"`
397}
398
399// @since 3.18.0
400//
401// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientFoldingRangeOptions
402type ClientFoldingRangeOptions struct {
403 // If set, the client signals that it supports setting collapsedText on
404 // folding ranges to display custom labels instead of the default text.
405 //
406 // @since 3.17.0
407 CollapsedText bool `json:"collapsedText,omitempty"`
408}
409
410// Information about the client
411//
412// @since 3.15.0
413// @since 3.18.0 ClientInfo type name added.
414//
415// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientInfo
416type ClientInfo struct {
417 // The name of the client as defined by the client.
418 Name string `json:"name"`
419 // The client's version as defined by the client.
420 Version string `json:"version,omitempty"`
421}
422
423// @since 3.18.0
424//
425// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientInlayHintResolveOptions
426type ClientInlayHintResolveOptions struct {
427 // The properties that a client can resolve lazily.
428 Properties []string `json:"properties"`
429}
430
431// @since 3.18.0
432//
433// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSemanticTokensRequestFullDelta
434type ClientSemanticTokensRequestFullDelta struct {
435 // The client will send the `textDocument/semanticTokens/full/delta` request if
436 // the server provides a corresponding handler.
437 Delta bool `json:"delta,omitempty"`
438}
439
440// @since 3.18.0
441//
442// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSemanticTokensRequestOptions
443type ClientSemanticTokensRequestOptions struct {
444 // The client will send the `textDocument/semanticTokens/range` request if
445 // the server provides a corresponding handler.
446 Range *Or_ClientSemanticTokensRequestOptions_range `json:"range,omitempty"`
447 // The client will send the `textDocument/semanticTokens/full` request if
448 // the server provides a corresponding handler.
449 Full *Or_ClientSemanticTokensRequestOptions_full `json:"full,omitempty"`
450}
451
452// @since 3.18.0
453//
454// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientShowMessageActionItemOptions
455type ClientShowMessageActionItemOptions struct {
456 // Whether the client supports additional attributes which
457 // are preserved and send back to the server in the
458 // request's response.
459 AdditionalPropertiesSupport bool `json:"additionalPropertiesSupport,omitempty"`
460}
461
462// @since 3.18.0
463//
464// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSignatureInformationOptions
465type ClientSignatureInformationOptions struct {
466 // Client supports the following content formats for the documentation
467 // property. The order describes the preferred format of the client.
468 DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"`
469 // Client capabilities specific to parameter information.
470 ParameterInformation *ClientSignatureParameterInformationOptions `json:"parameterInformation,omitempty"`
471 // The client supports the `activeParameter` property on `SignatureInformation`
472 // literal.
473 //
474 // @since 3.16.0
475 ActiveParameterSupport bool `json:"activeParameterSupport,omitempty"`
476 // The client supports the `activeParameter` property on
477 // `SignatureHelp`/`SignatureInformation` being set to `null` to
478 // indicate that no parameter should be active.
479 //
480 // @since 3.18.0
481 // @proposed
482 NoActiveParameterSupport bool `json:"noActiveParameterSupport,omitempty"`
483}
484
485// @since 3.18.0
486//
487// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSignatureParameterInformationOptions
488type ClientSignatureParameterInformationOptions struct {
489 // The client supports processing label offsets instead of a
490 // simple label string.
491 //
492 // @since 3.14.0
493 LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"`
494}
495
496// @since 3.18.0
497//
498// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSymbolKindOptions
499type ClientSymbolKindOptions struct {
500 // The symbol kind values the client supports. When this
501 // property exists the client also guarantees that it will
502 // handle values outside its set gracefully and falls back
503 // to a default value when unknown.
504 //
505 // If this property is not present the client only supports
506 // the symbol kinds from `File` to `Array` as defined in
507 // the initial version of the protocol.
508 ValueSet []SymbolKind `json:"valueSet,omitempty"`
509}
510
511// @since 3.18.0
512//
513// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSymbolResolveOptions
514type ClientSymbolResolveOptions struct {
515 // The properties that a client can resolve lazily. Usually
516 // `location.range`
517 Properties []string `json:"properties"`
518}
519
520// @since 3.18.0
521//
522// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#clientSymbolTagOptions
523type ClientSymbolTagOptions struct {
524 // The tags supported by the client.
525 ValueSet []SymbolTag `json:"valueSet"`
526}
527
528// A code action represents a change that can be performed in code, e.g. to fix a problem or
529// to refactor code.
530//
531// A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
532//
533// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeAction
534type CodeAction struct {
535 // A short, human-readable, title for this code action.
536 Title string `json:"title"`
537 // The kind of the code action.
538 //
539 // Used to filter code actions.
540 Kind CodeActionKind `json:"kind,omitempty"`
541 // The diagnostics that this code action resolves.
542 Diagnostics []Diagnostic `json:"diagnostics,omitempty"`
543 // Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
544 // by keybindings.
545 //
546 // A quick fix should be marked preferred if it properly addresses the underlying error.
547 // A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
548 //
549 // @since 3.15.0
550 IsPreferred bool `json:"isPreferred,omitempty"`
551 // Marks that the code action cannot currently be applied.
552 //
553 // Clients should follow the following guidelines regarding disabled code actions:
554 //
555 // - Disabled code actions are not shown in automatic [lightbulbs](https://code.visualstudio.com/docs/editor/editingevolved#_code-action)
556 // code action menus.
557 //
558 // - Disabled actions are shown as faded out in the code action menu when the user requests a more specific type
559 // of code action, such as refactorings.
560 //
561 // - If the user has a [keybinding](https://code.visualstudio.com/docs/editor/refactoring#_keybindings-for-code-actions)
562 // that auto applies a code action and only disabled code actions are returned, the client should show the user an
563 // error message with `reason` in the editor.
564 //
565 // @since 3.16.0
566 Disabled *CodeActionDisabled `json:"disabled,omitempty"`
567 // The workspace edit this code action performs.
568 Edit *WorkspaceEdit `json:"edit,omitempty"`
569 // A command this code action executes. If a code action
570 // provides an edit and a command, first the edit is
571 // executed and then the command.
572 Command *Command `json:"command,omitempty"`
573 // A data entry field that is preserved on a code action between
574 // a `textDocument/codeAction` and a `codeAction/resolve` request.
575 //
576 // @since 3.16.0
577 Data *json.RawMessage `json:"data,omitempty"`
578}
579
580// The Client Capabilities of a {@link CodeActionRequest}.
581//
582// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionClientCapabilities
583type CodeActionClientCapabilities struct {
584 // Whether code action supports dynamic registration.
585 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
586 // The client support code action literals of type `CodeAction` as a valid
587 // response of the `textDocument/codeAction` request. If the property is not
588 // set the request can only return `Command` literals.
589 //
590 // @since 3.8.0
591 CodeActionLiteralSupport ClientCodeActionLiteralOptions `json:"codeActionLiteralSupport,omitempty"`
592 // Whether code action supports the `isPreferred` property.
593 //
594 // @since 3.15.0
595 IsPreferredSupport bool `json:"isPreferredSupport,omitempty"`
596 // Whether code action supports the `disabled` property.
597 //
598 // @since 3.16.0
599 DisabledSupport bool `json:"disabledSupport,omitempty"`
600 // Whether code action supports the `data` property which is
601 // preserved between a `textDocument/codeAction` and a
602 // `codeAction/resolve` request.
603 //
604 // @since 3.16.0
605 DataSupport bool `json:"dataSupport,omitempty"`
606 // Whether the client supports resolving additional code action
607 // properties via a separate `codeAction/resolve` request.
608 //
609 // @since 3.16.0
610 ResolveSupport *ClientCodeActionResolveOptions `json:"resolveSupport,omitempty"`
611 // Whether the client honors the change annotations in
612 // text edits and resource operations returned via the
613 // `CodeAction#edit` property by for example presenting
614 // the workspace edit in the user interface and asking
615 // for confirmation.
616 //
617 // @since 3.16.0
618 HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"`
619 // Whether the client supports documentation for a class of
620 // code actions.
621 //
622 // @since 3.18.0
623 // @proposed
624 DocumentationSupport bool `json:"documentationSupport,omitempty"`
625}
626
627// Contains additional diagnostic information about the context in which
628// a {@link CodeActionProvider.provideCodeActions code action} is run.
629//
630// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionContext
631type CodeActionContext struct {
632 // An array of diagnostics known on the client side overlapping the range provided to the
633 // `textDocument/codeAction` request. They are provided so that the server knows which
634 // errors are currently presented to the user for the given range. There is no guarantee
635 // that these accurately reflect the error state of the resource. The primary parameter
636 // to compute code actions is the provided range.
637 Diagnostics []Diagnostic `json:"diagnostics"`
638 // Requested kind of actions to return.
639 //
640 // Actions not of this kind are filtered out by the client before being shown. So servers
641 // can omit computing them.
642 Only []CodeActionKind `json:"only,omitempty"`
643 // The reason why code actions were requested.
644 //
645 // @since 3.17.0
646 TriggerKind *CodeActionTriggerKind `json:"triggerKind,omitempty"`
647}
648
649// Captures why the code action is currently disabled.
650//
651// @since 3.18.0
652//
653// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionDisabled
654type CodeActionDisabled struct {
655 // Human readable description of why the code action is currently disabled.
656 //
657 // This is displayed in the code actions UI.
658 Reason string `json:"reason"`
659}
660
661// A set of predefined code action kinds
662type CodeActionKind string
663
664// Documentation for a class of code actions.
665//
666// @since 3.18.0
667// @proposed
668//
669// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionKindDocumentation
670type CodeActionKindDocumentation struct {
671 // The kind of the code action being documented.
672 //
673 // If the kind is generic, such as `CodeActionKind.Refactor`, the documentation will be shown whenever any
674 // refactorings are returned. If the kind if more specific, such as `CodeActionKind.RefactorExtract`, the
675 // documentation will only be shown when extract refactoring code actions are returned.
676 Kind CodeActionKind `json:"kind"`
677 // Command that is ued to display the documentation to the user.
678 //
679 // The title of this documentation code action is taken from {@linkcode Command.title}
680 Command Command `json:"command"`
681}
682
683// Provider options for a {@link CodeActionRequest}.
684//
685// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionOptions
686type CodeActionOptions struct {
687 // CodeActionKinds that this server may return.
688 //
689 // The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
690 // may list out every specific kind they provide.
691 CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"`
692 // Static documentation for a class of code actions.
693 //
694 // Documentation from the provider should be shown in the code actions menu if either:
695 //
696 //
697 // - Code actions of `kind` are requested by the editor. In this case, the editor will show the documentation that
698 // most closely matches the requested code action kind. For example, if a provider has documentation for
699 // both `Refactor` and `RefactorExtract`, when the user requests code actions for `RefactorExtract`,
700 // the editor will use the documentation for `RefactorExtract` instead of the documentation for `Refactor`.
701 //
702 //
703 // - Any code actions of `kind` are returned by the provider.
704 //
705 // At most one documentation entry should be shown per provider.
706 //
707 // @since 3.18.0
708 // @proposed
709 Documentation []CodeActionKindDocumentation `json:"documentation,omitempty"`
710 // The server provides support to resolve additional
711 // information for a code action.
712 //
713 // @since 3.16.0
714 ResolveProvider bool `json:"resolveProvider,omitempty"`
715 WorkDoneProgressOptions
716}
717
718// The parameters of a {@link CodeActionRequest}.
719//
720// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionParams
721type CodeActionParams struct {
722 // The document in which the command was invoked.
723 TextDocument TextDocumentIdentifier `json:"textDocument"`
724 // The range for which the command was invoked.
725 Range Range `json:"range"`
726 // Context carrying additional information.
727 Context CodeActionContext `json:"context"`
728 WorkDoneProgressParams
729 PartialResultParams
730}
731
732// Registration options for a {@link CodeActionRequest}.
733//
734// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeActionRegistrationOptions
735type CodeActionRegistrationOptions struct {
736 TextDocumentRegistrationOptions
737 CodeActionOptions
738}
739
740// The reason why code actions were requested.
741//
742// @since 3.17.0
743type CodeActionTriggerKind uint32
744
745// Structure to capture a description for an error code.
746//
747// @since 3.16.0
748//
749// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeDescription
750type CodeDescription struct {
751 // An URI to open with more information about the diagnostic error.
752 Href URI `json:"href"`
753}
754
755// A code lens represents a {@link Command command} that should be shown along with
756// source text, like the number of references, a way to run tests, etc.
757//
758// A code lens is _unresolved_ when no command is associated to it. For performance
759// reasons the creation of a code lens and resolving should be done in two stages.
760//
761// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeLens
762type CodeLens struct {
763 // The range in which this code lens is valid. Should only span a single line.
764 Range Range `json:"range"`
765 // The command this code lens represents.
766 Command *Command `json:"command,omitempty"`
767 // A data entry field that is preserved on a code lens item between
768 // a {@link CodeLensRequest} and a {@link CodeLensResolveRequest}
769 Data interface{} `json:"data,omitempty"`
770}
771
772// The client capabilities of a {@link CodeLensRequest}.
773//
774// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeLensClientCapabilities
775type CodeLensClientCapabilities struct {
776 // Whether code lens supports dynamic registration.
777 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
778 // Whether the client supports resolving additional code lens
779 // properties via a separate `codeLens/resolve` request.
780 //
781 // @since 3.18.0
782 ResolveSupport *ClientCodeLensResolveOptions `json:"resolveSupport,omitempty"`
783}
784
785// Code Lens provider options of a {@link CodeLensRequest}.
786//
787// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeLensOptions
788type CodeLensOptions struct {
789 // Code lens has a resolve provider as well.
790 ResolveProvider bool `json:"resolveProvider,omitempty"`
791 WorkDoneProgressOptions
792}
793
794// The parameters of a {@link CodeLensRequest}.
795//
796// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeLensParams
797type CodeLensParams struct {
798 // The document to request code lens for.
799 TextDocument TextDocumentIdentifier `json:"textDocument"`
800 WorkDoneProgressParams
801 PartialResultParams
802}
803
804// Registration options for a {@link CodeLensRequest}.
805//
806// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeLensRegistrationOptions
807type CodeLensRegistrationOptions struct {
808 TextDocumentRegistrationOptions
809 CodeLensOptions
810}
811
812// @since 3.16.0
813//
814// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#codeLensWorkspaceClientCapabilities
815type CodeLensWorkspaceClientCapabilities struct {
816 // Whether the client implementation supports a refresh request sent from the
817 // server to the client.
818 //
819 // Note that this event is global and will force the client to refresh all
820 // code lenses currently shown. It should be used with absolute care and is
821 // useful for situation where a server for example detect a project wide
822 // change that requires such a calculation.
823 RefreshSupport bool `json:"refreshSupport,omitempty"`
824}
825
826// Represents a color in RGBA space.
827//
828// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#color
829type Color struct {
830 // The red component of this color in the range [0-1].
831 Red float64 `json:"red"`
832 // The green component of this color in the range [0-1].
833 Green float64 `json:"green"`
834 // The blue component of this color in the range [0-1].
835 Blue float64 `json:"blue"`
836 // The alpha component of this color in the range [0-1].
837 Alpha float64 `json:"alpha"`
838}
839
840// Represents a color range from a document.
841//
842// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#colorInformation
843type ColorInformation struct {
844 // The range in the document where this color appears.
845 Range Range `json:"range"`
846 // The actual color value for this color range.
847 Color Color `json:"color"`
848}
849
850// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#colorPresentation
851type ColorPresentation struct {
852 // The label of this color presentation. It will be shown on the color
853 // picker header. By default this is also the text that is inserted when selecting
854 // this color presentation.
855 Label string `json:"label"`
856 // An {@link TextEdit edit} which is applied to a document when selecting
857 // this presentation for the color. When `falsy` the {@link ColorPresentation.label label}
858 // is used.
859 TextEdit *TextEdit `json:"textEdit,omitempty"`
860 // An optional array of additional {@link TextEdit text edits} that are applied when
861 // selecting this color presentation. Edits must not overlap with the main {@link ColorPresentation.textEdit edit} nor with themselves.
862 AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
863}
864
865// Parameters for a {@link ColorPresentationRequest}.
866//
867// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#colorPresentationParams
868type ColorPresentationParams struct {
869 // The text document.
870 TextDocument TextDocumentIdentifier `json:"textDocument"`
871 // The color to request presentations for.
872 Color Color `json:"color"`
873 // The range where the color would be inserted. Serves as a context.
874 Range Range `json:"range"`
875 WorkDoneProgressParams
876 PartialResultParams
877}
878
879// Represents a reference to a command. Provides a title which
880// will be used to represent a command in the UI and, optionally,
881// an array of arguments which will be passed to the command handler
882// function when invoked.
883//
884// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#command
885type Command struct {
886 // Title of the command, like `save`.
887 Title string `json:"title"`
888 // An optional tooltip.
889 //
890 // @since 3.18.0
891 // @proposed
892 Tooltip string `json:"tooltip,omitempty"`
893 // The identifier of the actual command handler.
894 Command string `json:"command"`
895 // Arguments that the command handler should be
896 // invoked with.
897 Arguments []json.RawMessage `json:"arguments,omitempty"`
898}
899
900// Completion client capabilities
901//
902// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionClientCapabilities
903type CompletionClientCapabilities struct {
904 // Whether completion supports dynamic registration.
905 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
906 // The client supports the following `CompletionItem` specific
907 // capabilities.
908 CompletionItem ClientCompletionItemOptions `json:"completionItem,omitempty"`
909 CompletionItemKind *ClientCompletionItemOptionsKind `json:"completionItemKind,omitempty"`
910 // Defines how the client handles whitespace and indentation
911 // when accepting a completion item that uses multi line
912 // text in either `insertText` or `textEdit`.
913 //
914 // @since 3.17.0
915 InsertTextMode InsertTextMode `json:"insertTextMode,omitempty"`
916 // The client supports to send additional context information for a
917 // `textDocument/completion` request.
918 ContextSupport bool `json:"contextSupport,omitempty"`
919 // The client supports the following `CompletionList` specific
920 // capabilities.
921 //
922 // @since 3.17.0
923 CompletionList *CompletionListCapabilities `json:"completionList,omitempty"`
924}
925
926// Contains additional information about the context in which a completion request is triggered.
927//
928// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionContext
929type CompletionContext struct {
930 // How the completion was triggered.
931 TriggerKind CompletionTriggerKind `json:"triggerKind"`
932 // The trigger character (a single character) that has trigger code complete.
933 // Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
934 TriggerCharacter string `json:"triggerCharacter,omitempty"`
935}
936
937// A completion item represents a text snippet that is
938// proposed to complete text that is being typed.
939//
940// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionItem
941type CompletionItem struct {
942 // The label of this completion item.
943 //
944 // The label property is also by default the text that
945 // is inserted when selecting this completion.
946 //
947 // If label details are provided the label itself should
948 // be an unqualified name of the completion item.
949 Label string `json:"label"`
950 // Additional details for the label
951 //
952 // @since 3.17.0
953 LabelDetails *CompletionItemLabelDetails `json:"labelDetails,omitempty"`
954 // The kind of this completion item. Based of the kind
955 // an icon is chosen by the editor.
956 Kind CompletionItemKind `json:"kind,omitempty"`
957 // Tags for this completion item.
958 //
959 // @since 3.15.0
960 Tags []CompletionItemTag `json:"tags,omitempty"`
961 // A human-readable string with additional information
962 // about this item, like type or symbol information.
963 Detail string `json:"detail,omitempty"`
964 // A human-readable string that represents a doc-comment.
965 Documentation *Or_CompletionItem_documentation `json:"documentation,omitempty"`
966 // Indicates if this item is deprecated.
967 // @deprecated Use `tags` instead.
968 Deprecated bool `json:"deprecated,omitempty"`
969 // Select this item when showing.
970 //
971 // *Note* that only one completion item can be selected and that the
972 // tool / client decides which item that is. The rule is that the *first*
973 // item of those that match best is selected.
974 Preselect bool `json:"preselect,omitempty"`
975 // A string that should be used when comparing this item
976 // with other items. When `falsy` the {@link CompletionItem.label label}
977 // is used.
978 SortText string `json:"sortText,omitempty"`
979 // A string that should be used when filtering a set of
980 // completion items. When `falsy` the {@link CompletionItem.label label}
981 // is used.
982 FilterText string `json:"filterText,omitempty"`
983 // A string that should be inserted into a document when selecting
984 // this completion. When `falsy` the {@link CompletionItem.label label}
985 // is used.
986 //
987 // The `insertText` is subject to interpretation by the client side.
988 // Some tools might not take the string literally. For example
989 // VS Code when code complete is requested in this example
990 // `con<cursor position>` and a completion item with an `insertText` of
991 // `console` is provided it will only insert `sole`. Therefore it is
992 // recommended to use `textEdit` instead since it avoids additional client
993 // side interpretation.
994 InsertText string `json:"insertText,omitempty"`
995 // The format of the insert text. The format applies to both the
996 // `insertText` property and the `newText` property of a provided
997 // `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
998 //
999 // Please note that the insertTextFormat doesn't apply to
1000 // `additionalTextEdits`.
1001 InsertTextFormat *InsertTextFormat `json:"insertTextFormat,omitempty"`
1002 // How whitespace and indentation is handled during completion
1003 // item insertion. If not provided the clients default value depends on
1004 // the `textDocument.completion.insertTextMode` client capability.
1005 //
1006 // @since 3.16.0
1007 InsertTextMode *InsertTextMode `json:"insertTextMode,omitempty"`
1008 // An {@link TextEdit edit} which is applied to a document when selecting
1009 // this completion. When an edit is provided the value of
1010 // {@link CompletionItem.insertText insertText} is ignored.
1011 //
1012 // Most editors support two different operations when accepting a completion
1013 // item. One is to insert a completion text and the other is to replace an
1014 // existing text with a completion text. Since this can usually not be
1015 // predetermined by a server it can report both ranges. Clients need to
1016 // signal support for `InsertReplaceEdits` via the
1017 // `textDocument.completion.insertReplaceSupport` client capability
1018 // property.
1019 //
1020 // *Note 1:* The text edit's range as well as both ranges from an insert
1021 // replace edit must be a [single line] and they must contain the position
1022 // at which completion has been requested.
1023 // *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
1024 // must be a prefix of the edit's replace range, that means it must be
1025 // contained and starting at the same position.
1026 //
1027 // @since 3.16.0 additional type `InsertReplaceEdit`
1028 TextEdit *Or_CompletionItem_textEdit `json:"textEdit,omitempty"`
1029 // The edit text used if the completion item is part of a CompletionList and
1030 // CompletionList defines an item default for the text edit range.
1031 //
1032 // Clients will only honor this property if they opt into completion list
1033 // item defaults using the capability `completionList.itemDefaults`.
1034 //
1035 // If not provided and a list's default range is provided the label
1036 // property is used as a text.
1037 //
1038 // @since 3.17.0
1039 TextEditText string `json:"textEditText,omitempty"`
1040 // An optional array of additional {@link TextEdit text edits} that are applied when
1041 // selecting this completion. Edits must not overlap (including the same insert position)
1042 // with the main {@link CompletionItem.textEdit edit} nor with themselves.
1043 //
1044 // Additional text edits should be used to change text unrelated to the current cursor position
1045 // (for example adding an import statement at the top of the file if the completion item will
1046 // insert an unqualified type).
1047 AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
1048 // An optional set of characters that when pressed while this completion is active will accept it first and
1049 // then type that character. *Note* that all commit characters should have `length=1` and that superfluous
1050 // characters will be ignored.
1051 CommitCharacters []string `json:"commitCharacters,omitempty"`
1052 // An optional {@link Command command} that is executed *after* inserting this completion. *Note* that
1053 // additional modifications to the current document should be described with the
1054 // {@link CompletionItem.additionalTextEdits additionalTextEdits}-property.
1055 Command *Command `json:"command,omitempty"`
1056 // A data entry field that is preserved on a completion item between a
1057 // {@link CompletionRequest} and a {@link CompletionResolveRequest}.
1058 Data interface{} `json:"data,omitempty"`
1059}
1060
1061// In many cases the items of an actual completion result share the same
1062// value for properties like `commitCharacters` or the range of a text
1063// edit. A completion list can therefore define item defaults which will
1064// be used if a completion item itself doesn't specify the value.
1065//
1066// If a completion list specifies a default value and a completion item
1067// also specifies a corresponding value the one from the item is used.
1068//
1069// Servers are only allowed to return default values if the client
1070// signals support for this via the `completionList.itemDefaults`
1071// capability.
1072//
1073// @since 3.17.0
1074//
1075// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionItemDefaults
1076type CompletionItemDefaults struct {
1077 // A default commit character set.
1078 //
1079 // @since 3.17.0
1080 CommitCharacters []string `json:"commitCharacters,omitempty"`
1081 // A default edit range.
1082 //
1083 // @since 3.17.0
1084 EditRange *Or_CompletionItemDefaults_editRange `json:"editRange,omitempty"`
1085 // A default insert text format.
1086 //
1087 // @since 3.17.0
1088 InsertTextFormat *InsertTextFormat `json:"insertTextFormat,omitempty"`
1089 // A default insert text mode.
1090 //
1091 // @since 3.17.0
1092 InsertTextMode *InsertTextMode `json:"insertTextMode,omitempty"`
1093 // A default data value.
1094 //
1095 // @since 3.17.0
1096 Data interface{} `json:"data,omitempty"`
1097}
1098
1099// The kind of a completion entry.
1100type CompletionItemKind uint32
1101
1102// Additional details for a completion item label.
1103//
1104// @since 3.17.0
1105//
1106// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionItemLabelDetails
1107type CompletionItemLabelDetails struct {
1108 // An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
1109 // without any spacing. Should be used for function signatures and type annotations.
1110 Detail string `json:"detail,omitempty"`
1111 // An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
1112 // for fully qualified names and file paths.
1113 Description string `json:"description,omitempty"`
1114}
1115
1116// Completion item tags are extra annotations that tweak the rendering of a completion
1117// item.
1118//
1119// @since 3.15.0
1120type CompletionItemTag uint32
1121
1122// @since 3.18.0
1123//
1124// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionItemTagOptions
1125type CompletionItemTagOptions struct {
1126 // The tags supported by the client.
1127 ValueSet []CompletionItemTag `json:"valueSet"`
1128}
1129
1130// Represents a collection of {@link CompletionItem completion items} to be presented
1131// in the editor.
1132//
1133// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionList
1134type CompletionList struct {
1135 // This list it not complete. Further typing results in recomputing this list.
1136 //
1137 // Recomputed lists have all their items replaced (not appended) in the
1138 // incomplete completion sessions.
1139 IsIncomplete bool `json:"isIncomplete"`
1140 // In many cases the items of an actual completion result share the same
1141 // value for properties like `commitCharacters` or the range of a text
1142 // edit. A completion list can therefore define item defaults which will
1143 // be used if a completion item itself doesn't specify the value.
1144 //
1145 // If a completion list specifies a default value and a completion item
1146 // also specifies a corresponding value the one from the item is used.
1147 //
1148 // Servers are only allowed to return default values if the client
1149 // signals support for this via the `completionList.itemDefaults`
1150 // capability.
1151 //
1152 // @since 3.17.0
1153 ItemDefaults *CompletionItemDefaults `json:"itemDefaults,omitempty"`
1154 // The completion items.
1155 Items []CompletionItem `json:"items"`
1156}
1157
1158// The client supports the following `CompletionList` specific
1159// capabilities.
1160//
1161// @since 3.17.0
1162//
1163// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionListCapabilities
1164type CompletionListCapabilities struct {
1165 // The client supports the following itemDefaults on
1166 // a completion list.
1167 //
1168 // The value lists the supported property names of the
1169 // `CompletionList.itemDefaults` object. If omitted
1170 // no properties are supported.
1171 //
1172 // @since 3.17.0
1173 ItemDefaults []string `json:"itemDefaults,omitempty"`
1174}
1175
1176// Completion options.
1177//
1178// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionOptions
1179type CompletionOptions struct {
1180 // Most tools trigger completion request automatically without explicitly requesting
1181 // it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
1182 // starts to type an identifier. For example if the user types `c` in a JavaScript file
1183 // code complete will automatically pop up present `console` besides others as a
1184 // completion item. Characters that make up identifiers don't need to be listed here.
1185 //
1186 // If code complete should automatically be trigger on characters not being valid inside
1187 // an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
1188 TriggerCharacters []string `json:"triggerCharacters,omitempty"`
1189 // The list of all possible characters that commit a completion. This field can be used
1190 // if clients don't support individual commit characters per completion item. See
1191 // `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
1192 //
1193 // If a server provides both `allCommitCharacters` and commit characters on an individual
1194 // completion item the ones on the completion item win.
1195 //
1196 // @since 3.2.0
1197 AllCommitCharacters []string `json:"allCommitCharacters,omitempty"`
1198 // The server provides support to resolve additional
1199 // information for a completion item.
1200 ResolveProvider bool `json:"resolveProvider,omitempty"`
1201 // The server supports the following `CompletionItem` specific
1202 // capabilities.
1203 //
1204 // @since 3.17.0
1205 CompletionItem *ServerCompletionItemOptions `json:"completionItem,omitempty"`
1206 WorkDoneProgressOptions
1207}
1208
1209// Completion parameters
1210//
1211// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionParams
1212type CompletionParams struct {
1213 // The completion context. This is only available it the client specifies
1214 // to send this using the client capability `textDocument.completion.contextSupport === true`
1215 Context CompletionContext `json:"context,omitempty"`
1216 TextDocumentPositionParams
1217 WorkDoneProgressParams
1218 PartialResultParams
1219}
1220
1221// Registration options for a {@link CompletionRequest}.
1222//
1223// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#completionRegistrationOptions
1224type CompletionRegistrationOptions struct {
1225 TextDocumentRegistrationOptions
1226 CompletionOptions
1227}
1228
1229// How a completion was triggered
1230type CompletionTriggerKind uint32
1231
1232// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#configurationItem
1233type ConfigurationItem struct {
1234 // The scope to get the configuration section for.
1235 ScopeURI *URI `json:"scopeUri,omitempty"`
1236 // The configuration section asked for.
1237 Section string `json:"section,omitempty"`
1238}
1239
1240// The parameters of a configuration request.
1241//
1242// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#configurationParams
1243type ConfigurationParams struct {
1244 Items []ConfigurationItem `json:"items"`
1245}
1246
1247// Create file operation.
1248//
1249// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#createFile
1250type CreateFile struct {
1251 // A create
1252 Kind string `json:"kind"`
1253 // The resource to create.
1254 URI DocumentURI `json:"uri"`
1255 // Additional options
1256 Options *CreateFileOptions `json:"options,omitempty"`
1257 ResourceOperation
1258}
1259
1260// Options to create a file.
1261//
1262// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#createFileOptions
1263type CreateFileOptions struct {
1264 // Overwrite existing file. Overwrite wins over `ignoreIfExists`
1265 Overwrite bool `json:"overwrite,omitempty"`
1266 // Ignore if exists.
1267 IgnoreIfExists bool `json:"ignoreIfExists,omitempty"`
1268}
1269
1270// The parameters sent in notifications/requests for user-initiated creation of
1271// files.
1272//
1273// @since 3.16.0
1274//
1275// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#createFilesParams
1276type CreateFilesParams struct {
1277 // An array of all files/folders created in this operation.
1278 Files []FileCreate `json:"files"`
1279}
1280
1281// The declaration of a symbol representation as one or many {@link Location locations}.
1282//
1283// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#declaration
1284type (
1285 Declaration = Or_Declaration // (alias)
1286 // @since 3.14.0
1287 //
1288 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#declarationClientCapabilities
1289 DeclarationClientCapabilities struct {
1290 // Whether declaration supports dynamic registration. If this is set to `true`
1291 // the client supports the new `DeclarationRegistrationOptions` return value
1292 // for the corresponding server capability as well.
1293 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1294 // The client supports additional metadata in the form of declaration links.
1295 LinkSupport bool `json:"linkSupport,omitempty"`
1296 }
1297)
1298
1299// Information about where a symbol is declared.
1300//
1301// Provides additional metadata over normal {@link Location location} declarations, including the range of
1302// the declaring symbol.
1303//
1304// Servers should prefer returning `DeclarationLink` over `Declaration` if supported
1305// by the client.
1306//
1307// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#declarationLink
1308type (
1309 DeclarationLink = LocationLink // (alias)
1310 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#declarationOptions
1311 DeclarationOptions struct {
1312 WorkDoneProgressOptions
1313 }
1314)
1315
1316// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#declarationParams
1317type DeclarationParams struct {
1318 TextDocumentPositionParams
1319 WorkDoneProgressParams
1320 PartialResultParams
1321}
1322
1323// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#declarationRegistrationOptions
1324type DeclarationRegistrationOptions struct {
1325 DeclarationOptions
1326 TextDocumentRegistrationOptions
1327 StaticRegistrationOptions
1328}
1329
1330// The definition of a symbol represented as one or many {@link Location locations}.
1331// For most programming languages there is only one location at which a symbol is
1332// defined.
1333//
1334// Servers should prefer returning `DefinitionLink` over `Definition` if supported
1335// by the client.
1336//
1337// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#definition
1338type (
1339 Definition = Or_Definition // (alias)
1340 // Client Capabilities for a {@link DefinitionRequest}.
1341 //
1342 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#definitionClientCapabilities
1343 DefinitionClientCapabilities struct {
1344 // Whether definition supports dynamic registration.
1345 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1346 // The client supports additional metadata in the form of definition links.
1347 //
1348 // @since 3.14.0
1349 LinkSupport bool `json:"linkSupport,omitempty"`
1350 }
1351)
1352
1353// Information about where a symbol is defined.
1354//
1355// Provides additional metadata over normal {@link Location location} definitions, including the range of
1356// the defining symbol
1357//
1358// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#definitionLink
1359type (
1360 DefinitionLink = LocationLink // (alias)
1361 // Server Capabilities for a {@link DefinitionRequest}.
1362 //
1363 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#definitionOptions
1364 DefinitionOptions struct {
1365 WorkDoneProgressOptions
1366 }
1367)
1368
1369// Parameters for a {@link DefinitionRequest}.
1370//
1371// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#definitionParams
1372type DefinitionParams struct {
1373 TextDocumentPositionParams
1374 WorkDoneProgressParams
1375 PartialResultParams
1376}
1377
1378// Registration options for a {@link DefinitionRequest}.
1379//
1380// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#definitionRegistrationOptions
1381type DefinitionRegistrationOptions struct {
1382 TextDocumentRegistrationOptions
1383 DefinitionOptions
1384}
1385
1386// Delete file operation
1387//
1388// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#deleteFile
1389type DeleteFile struct {
1390 // A delete
1391 Kind string `json:"kind"`
1392 // The file to delete.
1393 URI DocumentURI `json:"uri"`
1394 // Delete options.
1395 Options *DeleteFileOptions `json:"options,omitempty"`
1396 ResourceOperation
1397}
1398
1399// Delete file options
1400//
1401// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#deleteFileOptions
1402type DeleteFileOptions struct {
1403 // Delete the content recursively if a folder is denoted.
1404 Recursive bool `json:"recursive,omitempty"`
1405 // Ignore the operation if the file doesn't exist.
1406 IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"`
1407}
1408
1409// The parameters sent in notifications/requests for user-initiated deletes of
1410// files.
1411//
1412// @since 3.16.0
1413//
1414// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#deleteFilesParams
1415type DeleteFilesParams struct {
1416 // An array of all files/folders deleted in this operation.
1417 Files []FileDelete `json:"files"`
1418}
1419
1420// Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
1421// are only valid in the scope of a resource.
1422//
1423// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnostic
1424type Diagnostic struct {
1425 // The range at which the message applies
1426 Range Range `json:"range"`
1427 // The diagnostic's severity. To avoid interpretation mismatches when a
1428 // server is used with different clients it is highly recommended that servers
1429 // always provide a severity value.
1430 Severity DiagnosticSeverity `json:"severity,omitempty"`
1431 // The diagnostic's code, which usually appear in the user interface.
1432 Code interface{} `json:"code,omitempty"`
1433 // An optional property to describe the error code.
1434 // Requires the code field (above) to be present/not null.
1435 //
1436 // @since 3.16.0
1437 CodeDescription *CodeDescription `json:"codeDescription,omitempty"`
1438 // A human-readable string describing the source of this
1439 // diagnostic, e.g. 'typescript' or 'super lint'. It usually
1440 // appears in the user interface.
1441 Source string `json:"source,omitempty"`
1442 // The diagnostic's message. It usually appears in the user interface
1443 Message string `json:"message"`
1444 // Additional metadata about the diagnostic.
1445 //
1446 // @since 3.15.0
1447 Tags []DiagnosticTag `json:"tags,omitempty"`
1448 // An array of related diagnostic information, e.g. when symbol-names within
1449 // a scope collide all definitions can be marked via this property.
1450 RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`
1451 // A data entry field that is preserved between a `textDocument/publishDiagnostics`
1452 // notification and `textDocument/codeAction` request.
1453 //
1454 // @since 3.16.0
1455 Data *json.RawMessage `json:"data,omitempty"`
1456}
1457
1458// Client capabilities specific to diagnostic pull requests.
1459//
1460// @since 3.17.0
1461//
1462// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticClientCapabilities
1463type DiagnosticClientCapabilities struct {
1464 // Whether implementation supports dynamic registration. If this is set to `true`
1465 // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
1466 // return value for the corresponding server capability as well.
1467 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1468 // Whether the clients supports related documents for document diagnostic pulls.
1469 RelatedDocumentSupport bool `json:"relatedDocumentSupport,omitempty"`
1470 DiagnosticsCapabilities
1471}
1472
1473// Diagnostic options.
1474//
1475// @since 3.17.0
1476//
1477// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticOptions
1478type DiagnosticOptions struct {
1479 // An optional identifier under which the diagnostics are
1480 // managed by the client.
1481 Identifier string `json:"identifier,omitempty"`
1482 // Whether the language has inter file dependencies meaning that
1483 // editing code in one file can result in a different diagnostic
1484 // set in another file. Inter file dependencies are common for
1485 // most programming languages and typically uncommon for linters.
1486 InterFileDependencies bool `json:"interFileDependencies"`
1487 // The server provides support for workspace diagnostics as well.
1488 WorkspaceDiagnostics bool `json:"workspaceDiagnostics"`
1489 WorkDoneProgressOptions
1490}
1491
1492// Diagnostic registration options.
1493//
1494// @since 3.17.0
1495//
1496// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticRegistrationOptions
1497type DiagnosticRegistrationOptions struct {
1498 TextDocumentRegistrationOptions
1499 DiagnosticOptions
1500 StaticRegistrationOptions
1501}
1502
1503// Represents a related message and source code location for a diagnostic. This should be
1504// used to point to code locations that cause or related to a diagnostics, e.g when duplicating
1505// a symbol in a scope.
1506//
1507// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticRelatedInformation
1508type DiagnosticRelatedInformation struct {
1509 // The location of this related diagnostic information.
1510 Location Location `json:"location"`
1511 // The message of this related diagnostic information.
1512 Message string `json:"message"`
1513}
1514
1515// Cancellation data returned from a diagnostic request.
1516//
1517// @since 3.17.0
1518//
1519// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticServerCancellationData
1520type DiagnosticServerCancellationData struct {
1521 RetriggerRequest bool `json:"retriggerRequest"`
1522}
1523
1524// The diagnostic's severity.
1525type DiagnosticSeverity uint32
1526
1527// The diagnostic tags.
1528//
1529// @since 3.15.0
1530type DiagnosticTag uint32
1531
1532// Workspace client capabilities specific to diagnostic pull requests.
1533//
1534// @since 3.17.0
1535//
1536// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticWorkspaceClientCapabilities
1537type DiagnosticWorkspaceClientCapabilities struct {
1538 // Whether the client implementation supports a refresh request sent from
1539 // the server to the client.
1540 //
1541 // Note that this event is global and will force the client to refresh all
1542 // pulled diagnostics currently shown. It should be used with absolute care and
1543 // is useful for situation where a server for example detects a project wide
1544 // change that requires such a calculation.
1545 RefreshSupport bool `json:"refreshSupport,omitempty"`
1546}
1547
1548// General diagnostics capabilities for pull and push model.
1549//
1550// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#diagnosticsCapabilities
1551type DiagnosticsCapabilities struct {
1552 // Whether the clients accepts diagnostics with related information.
1553 RelatedInformation bool `json:"relatedInformation,omitempty"`
1554 // Client supports the tag property to provide meta data about a diagnostic.
1555 // Clients supporting tags have to handle unknown tags gracefully.
1556 //
1557 // @since 3.15.0
1558 TagSupport *ClientDiagnosticsTagOptions `json:"tagSupport,omitempty"`
1559 // Client supports a codeDescription property
1560 //
1561 // @since 3.16.0
1562 CodeDescriptionSupport bool `json:"codeDescriptionSupport,omitempty"`
1563 // Whether code action supports the `data` property which is
1564 // preserved between a `textDocument/publishDiagnostics` and
1565 // `textDocument/codeAction` request.
1566 //
1567 // @since 3.16.0
1568 DataSupport bool `json:"dataSupport,omitempty"`
1569}
1570
1571// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeConfigurationClientCapabilities
1572type DidChangeConfigurationClientCapabilities struct {
1573 // Did change configuration notification supports dynamic registration.
1574 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1575}
1576
1577// The parameters of a change configuration notification.
1578//
1579// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeConfigurationParams
1580type DidChangeConfigurationParams struct {
1581 // The actual changed settings
1582 Settings interface{} `json:"settings"`
1583}
1584
1585// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeConfigurationRegistrationOptions
1586type DidChangeConfigurationRegistrationOptions struct {
1587 Section *Or_DidChangeConfigurationRegistrationOptions_section `json:"section,omitempty"`
1588}
1589
1590// The params sent in a change notebook document notification.
1591//
1592// @since 3.17.0
1593//
1594// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeNotebookDocumentParams
1595type DidChangeNotebookDocumentParams struct {
1596 // The notebook document that did change. The version number points
1597 // to the version after all provided changes have been applied. If
1598 // only the text document content of a cell changes the notebook version
1599 // doesn't necessarily have to change.
1600 NotebookDocument VersionedNotebookDocumentIdentifier `json:"notebookDocument"`
1601 // The actual changes to the notebook document.
1602 //
1603 // The changes describe single state changes to the notebook document.
1604 // So if there are two changes c1 (at array index 0) and c2 (at array
1605 // index 1) for a notebook in state S then c1 moves the notebook from
1606 // S to S' and c2 from S' to S''. So c1 is computed on the state S and
1607 // c2 is computed on the state S'.
1608 //
1609 // To mirror the content of a notebook using change events use the following approach:
1610 //
1611 // - start with the same initial content
1612 // - apply the 'notebookDocument/didChange' notifications in the order you receive them.
1613 // - apply the `NotebookChangeEvent`s in a single notification in the order
1614 // you receive them.
1615 Change NotebookDocumentChangeEvent `json:"change"`
1616}
1617
1618// The change text document notification's parameters.
1619//
1620// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeTextDocumentParams
1621type DidChangeTextDocumentParams struct {
1622 // The document that did change. The version number points
1623 // to the version after all provided content changes have
1624 // been applied.
1625 TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
1626 // The actual content changes. The content changes describe single state changes
1627 // to the document. So if there are two content changes c1 (at array index 0) and
1628 // c2 (at array index 1) for a document in state S then c1 moves the document from
1629 // S to S' and c2 from S' to S''. So c1 is computed on the state S and c2 is computed
1630 // on the state S'.
1631 //
1632 // To mirror the content of a document using change events use the following approach:
1633 //
1634 // - start with the same initial content
1635 // - apply the 'textDocument/didChange' notifications in the order you receive them.
1636 // - apply the `TextDocumentContentChangeEvent`s in a single notification in the order
1637 // you receive them.
1638 ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
1639}
1640
1641// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeWatchedFilesClientCapabilities
1642type DidChangeWatchedFilesClientCapabilities struct {
1643 // Did change watched files notification supports dynamic registration. Please note
1644 // that the current protocol doesn't support static configuration for file changes
1645 // from the server side.
1646 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1647 // Whether the client has support for {@link RelativePattern relative pattern}
1648 // or not.
1649 //
1650 // @since 3.17.0
1651 RelativePatternSupport bool `json:"relativePatternSupport,omitempty"`
1652}
1653
1654// The watched files change notification's parameters.
1655//
1656// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeWatchedFilesParams
1657type DidChangeWatchedFilesParams struct {
1658 // The actual file events.
1659 Changes []FileEvent `json:"changes"`
1660}
1661
1662// Describe options to be used when registered for text document change events.
1663//
1664// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeWatchedFilesRegistrationOptions
1665type DidChangeWatchedFilesRegistrationOptions struct {
1666 // The watchers to register.
1667 Watchers []FileSystemWatcher `json:"watchers"`
1668}
1669
1670// The parameters of a `workspace/didChangeWorkspaceFolders` notification.
1671//
1672// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didChangeWorkspaceFoldersParams
1673type DidChangeWorkspaceFoldersParams struct {
1674 // The actual workspace folder change event.
1675 Event WorkspaceFoldersChangeEvent `json:"event"`
1676}
1677
1678// The params sent in a close notebook document notification.
1679//
1680// @since 3.17.0
1681//
1682// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didCloseNotebookDocumentParams
1683type DidCloseNotebookDocumentParams struct {
1684 // The notebook document that got closed.
1685 NotebookDocument NotebookDocumentIdentifier `json:"notebookDocument"`
1686 // The text documents that represent the content
1687 // of a notebook cell that got closed.
1688 CellTextDocuments []TextDocumentIdentifier `json:"cellTextDocuments"`
1689}
1690
1691// The parameters sent in a close text document notification
1692//
1693// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didCloseTextDocumentParams
1694type DidCloseTextDocumentParams struct {
1695 // The document that was closed.
1696 TextDocument TextDocumentIdentifier `json:"textDocument"`
1697}
1698
1699// The params sent in an open notebook document notification.
1700//
1701// @since 3.17.0
1702//
1703// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didOpenNotebookDocumentParams
1704type DidOpenNotebookDocumentParams struct {
1705 // The notebook document that got opened.
1706 NotebookDocument NotebookDocument `json:"notebookDocument"`
1707 // The text documents that represent the content
1708 // of a notebook cell.
1709 CellTextDocuments []TextDocumentItem `json:"cellTextDocuments"`
1710}
1711
1712// The parameters sent in an open text document notification
1713//
1714// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didOpenTextDocumentParams
1715type DidOpenTextDocumentParams struct {
1716 // The document that was opened.
1717 TextDocument TextDocumentItem `json:"textDocument"`
1718}
1719
1720// The params sent in a save notebook document notification.
1721//
1722// @since 3.17.0
1723//
1724// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didSaveNotebookDocumentParams
1725type DidSaveNotebookDocumentParams struct {
1726 // The notebook document that got saved.
1727 NotebookDocument NotebookDocumentIdentifier `json:"notebookDocument"`
1728}
1729
1730// The parameters sent in a save text document notification
1731//
1732// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#didSaveTextDocumentParams
1733type DidSaveTextDocumentParams struct {
1734 // The document that was saved.
1735 TextDocument TextDocumentIdentifier `json:"textDocument"`
1736 // Optional the content when saved. Depends on the includeText value
1737 // when the save notification was requested.
1738 Text *string `json:"text,omitempty"`
1739}
1740
1741// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentColorClientCapabilities
1742type DocumentColorClientCapabilities struct {
1743 // Whether implementation supports dynamic registration. If this is set to `true`
1744 // the client supports the new `DocumentColorRegistrationOptions` return value
1745 // for the corresponding server capability as well.
1746 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1747}
1748
1749// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentColorOptions
1750type DocumentColorOptions struct {
1751 WorkDoneProgressOptions
1752}
1753
1754// Parameters for a {@link DocumentColorRequest}.
1755//
1756// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentColorParams
1757type DocumentColorParams struct {
1758 // The text document.
1759 TextDocument TextDocumentIdentifier `json:"textDocument"`
1760 WorkDoneProgressParams
1761 PartialResultParams
1762}
1763
1764// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentColorRegistrationOptions
1765type DocumentColorRegistrationOptions struct {
1766 TextDocumentRegistrationOptions
1767 DocumentColorOptions
1768 StaticRegistrationOptions
1769}
1770
1771// Parameters of the document diagnostic request.
1772//
1773// @since 3.17.0
1774//
1775// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentDiagnosticParams
1776type DocumentDiagnosticParams struct {
1777 // The text document.
1778 TextDocument TextDocumentIdentifier `json:"textDocument"`
1779 // The additional identifier provided during registration.
1780 Identifier string `json:"identifier,omitempty"`
1781 // The result id of a previous response if provided.
1782 PreviousResultID string `json:"previousResultId,omitempty"`
1783 WorkDoneProgressParams
1784 PartialResultParams
1785}
1786
1787// The result of a document diagnostic pull request. A report can
1788// either be a full report containing all diagnostics for the
1789// requested document or an unchanged report indicating that nothing
1790// has changed in terms of diagnostics in comparison to the last
1791// pull request.
1792//
1793// @since 3.17.0
1794//
1795// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentDiagnosticReport
1796type (
1797 DocumentDiagnosticReport = Or_DocumentDiagnosticReport // (alias)
1798 // The document diagnostic report kinds.
1799 //
1800 // @since 3.17.0
1801 DocumentDiagnosticReportKind string
1802)
1803
1804// A partial result for a document diagnostic report.
1805//
1806// @since 3.17.0
1807//
1808// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentDiagnosticReportPartialResult
1809type DocumentDiagnosticReportPartialResult struct {
1810 RelatedDocuments map[DocumentURI]interface{} `json:"relatedDocuments"`
1811}
1812
1813// A document filter describes a top level text document or
1814// a notebook cell document.
1815//
1816// @since 3.17.0 - proposed support for NotebookCellTextDocumentFilter.
1817//
1818// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentFilter
1819type (
1820 DocumentFilter = Or_DocumentFilter // (alias)
1821 // Client capabilities of a {@link DocumentFormattingRequest}.
1822 //
1823 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentFormattingClientCapabilities
1824 DocumentFormattingClientCapabilities struct {
1825 // Whether formatting supports dynamic registration.
1826 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1827 }
1828)
1829
1830// Provider options for a {@link DocumentFormattingRequest}.
1831//
1832// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentFormattingOptions
1833type DocumentFormattingOptions struct {
1834 WorkDoneProgressOptions
1835}
1836
1837// The parameters of a {@link DocumentFormattingRequest}.
1838//
1839// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentFormattingParams
1840type DocumentFormattingParams struct {
1841 // The document to format.
1842 TextDocument TextDocumentIdentifier `json:"textDocument"`
1843 // The format options.
1844 Options FormattingOptions `json:"options"`
1845 WorkDoneProgressParams
1846}
1847
1848// Registration options for a {@link DocumentFormattingRequest}.
1849//
1850// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentFormattingRegistrationOptions
1851type DocumentFormattingRegistrationOptions struct {
1852 TextDocumentRegistrationOptions
1853 DocumentFormattingOptions
1854}
1855
1856// A document highlight is a range inside a text document which deserves
1857// special attention. Usually a document highlight is visualized by changing
1858// the background color of its range.
1859//
1860// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentHighlight
1861type DocumentHighlight struct {
1862 // The range this highlight applies to.
1863 Range Range `json:"range"`
1864 // The highlight kind, default is {@link DocumentHighlightKind.Text text}.
1865 Kind DocumentHighlightKind `json:"kind,omitempty"`
1866}
1867
1868// Client Capabilities for a {@link DocumentHighlightRequest}.
1869//
1870// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentHighlightClientCapabilities
1871type DocumentHighlightClientCapabilities struct {
1872 // Whether document highlight supports dynamic registration.
1873 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1874}
1875
1876// A document highlight kind.
1877type DocumentHighlightKind uint32
1878
1879// Provider options for a {@link DocumentHighlightRequest}.
1880//
1881// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentHighlightOptions
1882type DocumentHighlightOptions struct {
1883 WorkDoneProgressOptions
1884}
1885
1886// Parameters for a {@link DocumentHighlightRequest}.
1887//
1888// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentHighlightParams
1889type DocumentHighlightParams struct {
1890 TextDocumentPositionParams
1891 WorkDoneProgressParams
1892 PartialResultParams
1893}
1894
1895// Registration options for a {@link DocumentHighlightRequest}.
1896//
1897// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentHighlightRegistrationOptions
1898type DocumentHighlightRegistrationOptions struct {
1899 TextDocumentRegistrationOptions
1900 DocumentHighlightOptions
1901}
1902
1903// A document link is a range in a text document that links to an internal or external resource, like another
1904// text document or a web site.
1905//
1906// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentLink
1907type DocumentLink struct {
1908 // The range this link applies to.
1909 Range Range `json:"range"`
1910 // The uri this link points to. If missing a resolve request is sent later.
1911 Target *URI `json:"target,omitempty"`
1912 // The tooltip text when you hover over this link.
1913 //
1914 // If a tooltip is provided, is will be displayed in a string that includes instructions on how to
1915 // trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
1916 // user settings, and localization.
1917 //
1918 // @since 3.15.0
1919 Tooltip string `json:"tooltip,omitempty"`
1920 // A data entry field that is preserved on a document link between a
1921 // DocumentLinkRequest and a DocumentLinkResolveRequest.
1922 Data interface{} `json:"data,omitempty"`
1923}
1924
1925// The client capabilities of a {@link DocumentLinkRequest}.
1926//
1927// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentLinkClientCapabilities
1928type DocumentLinkClientCapabilities struct {
1929 // Whether document link supports dynamic registration.
1930 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1931 // Whether the client supports the `tooltip` property on `DocumentLink`.
1932 //
1933 // @since 3.15.0
1934 TooltipSupport bool `json:"tooltipSupport,omitempty"`
1935}
1936
1937// Provider options for a {@link DocumentLinkRequest}.
1938//
1939// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentLinkOptions
1940type DocumentLinkOptions struct {
1941 // Document links have a resolve provider as well.
1942 ResolveProvider bool `json:"resolveProvider,omitempty"`
1943 WorkDoneProgressOptions
1944}
1945
1946// The parameters of a {@link DocumentLinkRequest}.
1947//
1948// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentLinkParams
1949type DocumentLinkParams struct {
1950 // The document to provide document links for.
1951 TextDocument TextDocumentIdentifier `json:"textDocument"`
1952 WorkDoneProgressParams
1953 PartialResultParams
1954}
1955
1956// Registration options for a {@link DocumentLinkRequest}.
1957//
1958// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentLinkRegistrationOptions
1959type DocumentLinkRegistrationOptions struct {
1960 TextDocumentRegistrationOptions
1961 DocumentLinkOptions
1962}
1963
1964// Client capabilities of a {@link DocumentOnTypeFormattingRequest}.
1965//
1966// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentOnTypeFormattingClientCapabilities
1967type DocumentOnTypeFormattingClientCapabilities struct {
1968 // Whether on type formatting supports dynamic registration.
1969 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
1970}
1971
1972// Provider options for a {@link DocumentOnTypeFormattingRequest}.
1973//
1974// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentOnTypeFormattingOptions
1975type DocumentOnTypeFormattingOptions struct {
1976 // A character on which formatting should be triggered, like `{`.
1977 FirstTriggerCharacter string `json:"firstTriggerCharacter"`
1978 // More trigger characters.
1979 MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"`
1980}
1981
1982// The parameters of a {@link DocumentOnTypeFormattingRequest}.
1983//
1984// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentOnTypeFormattingParams
1985type DocumentOnTypeFormattingParams struct {
1986 // The document to format.
1987 TextDocument TextDocumentIdentifier `json:"textDocument"`
1988 // The position around which the on type formatting should happen.
1989 // This is not necessarily the exact position where the character denoted
1990 // by the property `ch` got typed.
1991 Position Position `json:"position"`
1992 // The character that has been typed that triggered the formatting
1993 // on type request. That is not necessarily the last character that
1994 // got inserted into the document since the client could auto insert
1995 // characters as well (e.g. like automatic brace completion).
1996 Ch string `json:"ch"`
1997 // The formatting options.
1998 Options FormattingOptions `json:"options"`
1999}
2000
2001// Registration options for a {@link DocumentOnTypeFormattingRequest}.
2002//
2003// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentOnTypeFormattingRegistrationOptions
2004type DocumentOnTypeFormattingRegistrationOptions struct {
2005 TextDocumentRegistrationOptions
2006 DocumentOnTypeFormattingOptions
2007}
2008
2009// Client capabilities of a {@link DocumentRangeFormattingRequest}.
2010//
2011// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentRangeFormattingClientCapabilities
2012type DocumentRangeFormattingClientCapabilities struct {
2013 // Whether range formatting supports dynamic registration.
2014 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2015 // Whether the client supports formatting multiple ranges at once.
2016 //
2017 // @since 3.18.0
2018 // @proposed
2019 RangesSupport bool `json:"rangesSupport,omitempty"`
2020}
2021
2022// Provider options for a {@link DocumentRangeFormattingRequest}.
2023//
2024// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentRangeFormattingOptions
2025type DocumentRangeFormattingOptions struct {
2026 // Whether the server supports formatting multiple ranges at once.
2027 //
2028 // @since 3.18.0
2029 // @proposed
2030 RangesSupport bool `json:"rangesSupport,omitempty"`
2031 WorkDoneProgressOptions
2032}
2033
2034// The parameters of a {@link DocumentRangeFormattingRequest}.
2035//
2036// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentRangeFormattingParams
2037type DocumentRangeFormattingParams struct {
2038 // The document to format.
2039 TextDocument TextDocumentIdentifier `json:"textDocument"`
2040 // The range to format
2041 Range Range `json:"range"`
2042 // The format options
2043 Options FormattingOptions `json:"options"`
2044 WorkDoneProgressParams
2045}
2046
2047// Registration options for a {@link DocumentRangeFormattingRequest}.
2048//
2049// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentRangeFormattingRegistrationOptions
2050type DocumentRangeFormattingRegistrationOptions struct {
2051 TextDocumentRegistrationOptions
2052 DocumentRangeFormattingOptions
2053}
2054
2055// The parameters of a {@link DocumentRangesFormattingRequest}.
2056//
2057// @since 3.18.0
2058// @proposed
2059//
2060// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentRangesFormattingParams
2061type DocumentRangesFormattingParams struct {
2062 // The document to format.
2063 TextDocument TextDocumentIdentifier `json:"textDocument"`
2064 // The ranges to format
2065 Ranges []Range `json:"ranges"`
2066 // The format options
2067 Options FormattingOptions `json:"options"`
2068 WorkDoneProgressParams
2069}
2070
2071// A document selector is the combination of one or many document filters.
2072//
2073// @sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`;
2074//
2075// The use of a string as a document filter is deprecated @since 3.16.0.
2076//
2077// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentSelector
2078type (
2079 DocumentSelector = []DocumentFilter // (alias)
2080 // Represents programming constructs like variables, classes, interfaces etc.
2081 // that appear in a document. Document symbols can be hierarchical and they
2082 // have two ranges: one that encloses its definition and one that points to
2083 // its most interesting range, e.g. the range of an identifier.
2084 //
2085 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentSymbol
2086 DocumentSymbol struct {
2087 // The name of this symbol. Will be displayed in the user interface and therefore must not be
2088 // an empty string or a string only consisting of white spaces.
2089 Name string `json:"name"`
2090 // More detail for this symbol, e.g the signature of a function.
2091 Detail string `json:"detail,omitempty"`
2092 // The kind of this symbol.
2093 Kind SymbolKind `json:"kind"`
2094 // Tags for this document symbol.
2095 //
2096 // @since 3.16.0
2097 Tags []SymbolTag `json:"tags,omitempty"`
2098 // Indicates if this symbol is deprecated.
2099 //
2100 // @deprecated Use tags instead
2101 Deprecated bool `json:"deprecated,omitempty"`
2102 // The range enclosing this symbol not including leading/trailing whitespace but everything else
2103 // like comments. This information is typically used to determine if the clients cursor is
2104 // inside the symbol to reveal in the symbol in the UI.
2105 Range Range `json:"range"`
2106 // The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
2107 // Must be contained by the `range`.
2108 SelectionRange Range `json:"selectionRange"`
2109 // Children of this symbol, e.g. properties of a class.
2110 Children []DocumentSymbol `json:"children,omitempty"`
2111 }
2112)
2113
2114// Client Capabilities for a {@link DocumentSymbolRequest}.
2115//
2116// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentSymbolClientCapabilities
2117type DocumentSymbolClientCapabilities struct {
2118 // Whether document symbol supports dynamic registration.
2119 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2120 // Specific capabilities for the `SymbolKind` in the
2121 // `textDocument/documentSymbol` request.
2122 SymbolKind *ClientSymbolKindOptions `json:"symbolKind,omitempty"`
2123 // The client supports hierarchical document symbols.
2124 HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"`
2125 // The client supports tags on `SymbolInformation`. Tags are supported on
2126 // `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
2127 // Clients supporting tags have to handle unknown tags gracefully.
2128 //
2129 // @since 3.16.0
2130 TagSupport *ClientSymbolTagOptions `json:"tagSupport,omitempty"`
2131 // The client supports an additional label presented in the UI when
2132 // registering a document symbol provider.
2133 //
2134 // @since 3.16.0
2135 LabelSupport bool `json:"labelSupport,omitempty"`
2136}
2137
2138// Provider options for a {@link DocumentSymbolRequest}.
2139//
2140// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentSymbolOptions
2141type DocumentSymbolOptions struct {
2142 // A human-readable string that is shown when multiple outlines trees
2143 // are shown for the same document.
2144 //
2145 // @since 3.16.0
2146 Label string `json:"label,omitempty"`
2147 WorkDoneProgressOptions
2148}
2149
2150// Parameters for a {@link DocumentSymbolRequest}.
2151//
2152// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentSymbolParams
2153type DocumentSymbolParams struct {
2154 // The text document.
2155 TextDocument TextDocumentIdentifier `json:"textDocument"`
2156 WorkDoneProgressParams
2157 PartialResultParams
2158}
2159
2160// Registration options for a {@link DocumentSymbolRequest}.
2161//
2162// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#documentSymbolRegistrationOptions
2163type DocumentSymbolRegistrationOptions struct {
2164 TextDocumentRegistrationOptions
2165 DocumentSymbolOptions
2166}
2167
2168// Edit range variant that includes ranges for insert and replace operations.
2169//
2170// @since 3.18.0
2171//
2172// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#editRangeWithInsertReplace
2173type EditRangeWithInsertReplace struct {
2174 Insert Range `json:"insert"`
2175 Replace Range `json:"replace"`
2176}
2177
2178// Predefined error codes.
2179type ErrorCodes int32
2180
2181// The client capabilities of a {@link ExecuteCommandRequest}.
2182//
2183// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#executeCommandClientCapabilities
2184type ExecuteCommandClientCapabilities struct {
2185 // Execute command supports dynamic registration.
2186 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2187}
2188
2189// The server capabilities of a {@link ExecuteCommandRequest}.
2190//
2191// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#executeCommandOptions
2192type ExecuteCommandOptions struct {
2193 // The commands to be executed on the server
2194 Commands []string `json:"commands"`
2195 WorkDoneProgressOptions
2196}
2197
2198// The parameters of a {@link ExecuteCommandRequest}.
2199//
2200// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#executeCommandParams
2201type ExecuteCommandParams struct {
2202 // The identifier of the actual command handler.
2203 Command string `json:"command"`
2204 // Arguments that the command should be invoked with.
2205 Arguments []json.RawMessage `json:"arguments,omitempty"`
2206 WorkDoneProgressParams
2207}
2208
2209// Registration options for a {@link ExecuteCommandRequest}.
2210//
2211// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#executeCommandRegistrationOptions
2212type ExecuteCommandRegistrationOptions struct {
2213 ExecuteCommandOptions
2214}
2215
2216// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#executionSummary
2217type ExecutionSummary struct {
2218 // A strict monotonically increasing value
2219 // indicating the execution order of a cell
2220 // inside a notebook.
2221 ExecutionOrder uint32 `json:"executionOrder"`
2222 // Whether the execution was successful or
2223 // not if known by the client.
2224 Success bool `json:"success,omitempty"`
2225}
2226type FailureHandlingKind string
2227
2228// The file event type
2229type FileChangeType uint32
2230
2231// Represents information on a file/folder create.
2232//
2233// @since 3.16.0
2234//
2235// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileCreate
2236type FileCreate struct {
2237 // A file:// URI for the location of the file/folder being created.
2238 URI string `json:"uri"`
2239}
2240
2241// Represents information on a file/folder delete.
2242//
2243// @since 3.16.0
2244//
2245// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileDelete
2246type FileDelete struct {
2247 // A file:// URI for the location of the file/folder being deleted.
2248 URI string `json:"uri"`
2249}
2250
2251// An event describing a file change.
2252//
2253// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileEvent
2254type FileEvent struct {
2255 // The file's uri.
2256 URI DocumentURI `json:"uri"`
2257 // The change type.
2258 Type FileChangeType `json:"type"`
2259}
2260
2261// Capabilities relating to events from file operations by the user in the client.
2262//
2263// These events do not come from the file system, they come from user operations
2264// like renaming a file in the UI.
2265//
2266// @since 3.16.0
2267//
2268// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileOperationClientCapabilities
2269type FileOperationClientCapabilities struct {
2270 // Whether the client supports dynamic registration for file requests/notifications.
2271 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2272 // The client has support for sending didCreateFiles notifications.
2273 DidCreate bool `json:"didCreate,omitempty"`
2274 // The client has support for sending willCreateFiles requests.
2275 WillCreate bool `json:"willCreate,omitempty"`
2276 // The client has support for sending didRenameFiles notifications.
2277 DidRename bool `json:"didRename,omitempty"`
2278 // The client has support for sending willRenameFiles requests.
2279 WillRename bool `json:"willRename,omitempty"`
2280 // The client has support for sending didDeleteFiles notifications.
2281 DidDelete bool `json:"didDelete,omitempty"`
2282 // The client has support for sending willDeleteFiles requests.
2283 WillDelete bool `json:"willDelete,omitempty"`
2284}
2285
2286// A filter to describe in which file operation requests or notifications
2287// the server is interested in receiving.
2288//
2289// @since 3.16.0
2290//
2291// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileOperationFilter
2292type FileOperationFilter struct {
2293 // A Uri scheme like `file` or `untitled`.
2294 Scheme string `json:"scheme,omitempty"`
2295 // The actual file operation pattern.
2296 Pattern FileOperationPattern `json:"pattern"`
2297}
2298
2299// Options for notifications/requests for user operations on files.
2300//
2301// @since 3.16.0
2302//
2303// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileOperationOptions
2304type FileOperationOptions struct {
2305 // The server is interested in receiving didCreateFiles notifications.
2306 DidCreate *FileOperationRegistrationOptions `json:"didCreate,omitempty"`
2307 // The server is interested in receiving willCreateFiles requests.
2308 WillCreate *FileOperationRegistrationOptions `json:"willCreate,omitempty"`
2309 // The server is interested in receiving didRenameFiles notifications.
2310 DidRename *FileOperationRegistrationOptions `json:"didRename,omitempty"`
2311 // The server is interested in receiving willRenameFiles requests.
2312 WillRename *FileOperationRegistrationOptions `json:"willRename,omitempty"`
2313 // The server is interested in receiving didDeleteFiles file notifications.
2314 DidDelete *FileOperationRegistrationOptions `json:"didDelete,omitempty"`
2315 // The server is interested in receiving willDeleteFiles file requests.
2316 WillDelete *FileOperationRegistrationOptions `json:"willDelete,omitempty"`
2317}
2318
2319// A pattern to describe in which file operation requests or notifications
2320// the server is interested in receiving.
2321//
2322// @since 3.16.0
2323//
2324// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileOperationPattern
2325type FileOperationPattern struct {
2326 // The glob pattern to match. Glob patterns can have the following syntax:
2327 //
2328 // - `*` to match one or more characters in a path segment
2329 // - `?` to match on one character in a path segment
2330 // - `**` to match any number of path segments, including none
2331 // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files)
2332 // - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
2333 // - `[!...]` 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`)
2334 Glob string `json:"glob"`
2335 // Whether to match files or folders with this pattern.
2336 //
2337 // Matches both if undefined.
2338 Matches *FileOperationPatternKind `json:"matches,omitempty"`
2339 // Additional options used during matching.
2340 Options *FileOperationPatternOptions `json:"options,omitempty"`
2341}
2342
2343// A pattern kind describing if a glob pattern matches a file a folder or
2344// both.
2345//
2346// @since 3.16.0
2347type FileOperationPatternKind string
2348
2349// Matching options for the file operation pattern.
2350//
2351// @since 3.16.0
2352//
2353// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileOperationPatternOptions
2354type FileOperationPatternOptions struct {
2355 // The pattern should be matched ignoring casing.
2356 IgnoreCase bool `json:"ignoreCase,omitempty"`
2357}
2358
2359// The options to register for file operations.
2360//
2361// @since 3.16.0
2362//
2363// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileOperationRegistrationOptions
2364type FileOperationRegistrationOptions struct {
2365 // The actual filters.
2366 Filters []FileOperationFilter `json:"filters"`
2367}
2368
2369// Represents information on a file/folder rename.
2370//
2371// @since 3.16.0
2372//
2373// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileRename
2374type FileRename struct {
2375 // A file:// URI for the original location of the file/folder being renamed.
2376 OldURI string `json:"oldUri"`
2377 // A file:// URI for the new location of the file/folder being renamed.
2378 NewURI string `json:"newUri"`
2379}
2380
2381// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fileSystemWatcher
2382type FileSystemWatcher struct {
2383 // The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
2384 //
2385 // @since 3.17.0 support for relative patterns.
2386 GlobPattern GlobPattern `json:"globPattern"`
2387 // The kind of events of interest. If omitted it defaults
2388 // to WatchKind.Create | WatchKind.Change | WatchKind.Delete
2389 // which is 7.
2390 Kind *WatchKind `json:"kind,omitempty"`
2391}
2392
2393// Represents a folding range. To be valid, start and end line must be bigger than zero and smaller
2394// than the number of lines in the document. Clients are free to ignore invalid ranges.
2395//
2396// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#foldingRange
2397type FoldingRange struct {
2398 // The zero-based start line of the range to fold. The folded area starts after the line's last character.
2399 // To be valid, the end must be zero or larger and smaller than the number of lines in the document.
2400 StartLine uint32 `json:"startLine"`
2401 // The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line.
2402 StartCharacter uint32 `json:"startCharacter,omitempty"`
2403 // The zero-based end line of the range to fold. The folded area ends with the line's last character.
2404 // To be valid, the end must be zero or larger and smaller than the number of lines in the document.
2405 EndLine uint32 `json:"endLine"`
2406 // The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line.
2407 EndCharacter uint32 `json:"endCharacter,omitempty"`
2408 // Describes the kind of the folding range such as 'comment' or 'region'. The kind
2409 // is used to categorize folding ranges and used by commands like 'Fold all comments'.
2410 // See {@link FoldingRangeKind} for an enumeration of standardized kinds.
2411 Kind string `json:"kind,omitempty"`
2412 // The text that the client should show when the specified range is
2413 // collapsed. If not defined or not supported by the client, a default
2414 // will be chosen by the client.
2415 //
2416 // @since 3.17.0
2417 CollapsedText string `json:"collapsedText,omitempty"`
2418}
2419
2420// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#foldingRangeClientCapabilities
2421type FoldingRangeClientCapabilities struct {
2422 // Whether implementation supports dynamic registration for folding range
2423 // providers. If this is set to `true` the client supports the new
2424 // `FoldingRangeRegistrationOptions` return value for the corresponding
2425 // server capability as well.
2426 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2427 // The maximum number of folding ranges that the client prefers to receive
2428 // per document. The value serves as a hint, servers are free to follow the
2429 // limit.
2430 RangeLimit uint32 `json:"rangeLimit,omitempty"`
2431 // If set, the client signals that it only supports folding complete lines.
2432 // If set, client will ignore specified `startCharacter` and `endCharacter`
2433 // properties in a FoldingRange.
2434 LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"`
2435 // Specific options for the folding range kind.
2436 //
2437 // @since 3.17.0
2438 FoldingRangeKind *ClientFoldingRangeKindOptions `json:"foldingRangeKind,omitempty"`
2439 // Specific options for the folding range.
2440 //
2441 // @since 3.17.0
2442 FoldingRange *ClientFoldingRangeOptions `json:"foldingRange,omitempty"`
2443}
2444
2445// A set of predefined range kinds.
2446type FoldingRangeKind string
2447
2448// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#foldingRangeOptions
2449type FoldingRangeOptions struct {
2450 WorkDoneProgressOptions
2451}
2452
2453// Parameters for a {@link FoldingRangeRequest}.
2454//
2455// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#foldingRangeParams
2456type FoldingRangeParams struct {
2457 // The text document.
2458 TextDocument TextDocumentIdentifier `json:"textDocument"`
2459 WorkDoneProgressParams
2460 PartialResultParams
2461}
2462
2463// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#foldingRangeRegistrationOptions
2464type FoldingRangeRegistrationOptions struct {
2465 TextDocumentRegistrationOptions
2466 FoldingRangeOptions
2467 StaticRegistrationOptions
2468}
2469
2470// Client workspace capabilities specific to folding ranges
2471//
2472// @since 3.18.0
2473// @proposed
2474//
2475// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#foldingRangeWorkspaceClientCapabilities
2476type FoldingRangeWorkspaceClientCapabilities struct {
2477 // Whether the client implementation supports a refresh request sent from the
2478 // server to the client.
2479 //
2480 // Note that this event is global and will force the client to refresh all
2481 // folding ranges currently shown. It should be used with absolute care and is
2482 // useful for situation where a server for example detects a project wide
2483 // change that requires such a calculation.
2484 //
2485 // @since 3.18.0
2486 // @proposed
2487 RefreshSupport bool `json:"refreshSupport,omitempty"`
2488}
2489
2490// Value-object describing what options formatting should use.
2491//
2492// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#formattingOptions
2493type FormattingOptions struct {
2494 // Size of a tab in spaces.
2495 TabSize uint32 `json:"tabSize"`
2496 // Prefer spaces over tabs.
2497 InsertSpaces bool `json:"insertSpaces"`
2498 // Trim trailing whitespace on a line.
2499 //
2500 // @since 3.15.0
2501 TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"`
2502 // Insert a newline character at the end of the file if one does not exist.
2503 //
2504 // @since 3.15.0
2505 InsertFinalNewline bool `json:"insertFinalNewline,omitempty"`
2506 // Trim all newlines after the final newline at the end of the file.
2507 //
2508 // @since 3.15.0
2509 TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"`
2510}
2511
2512// A diagnostic report with a full set of problems.
2513//
2514// @since 3.17.0
2515//
2516// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#fullDocumentDiagnosticReport
2517type FullDocumentDiagnosticReport struct {
2518 // A full document diagnostic report.
2519 Kind string `json:"kind"`
2520 // An optional result id. If provided it will
2521 // be sent on the next diagnostic request for the
2522 // same document.
2523 ResultID string `json:"resultId,omitempty"`
2524 // The actual items.
2525 Items []Diagnostic `json:"items"`
2526}
2527
2528// General client capabilities.
2529//
2530// @since 3.16.0
2531//
2532// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#generalClientCapabilities
2533type GeneralClientCapabilities struct {
2534 // Client capability that signals how the client
2535 // handles stale requests (e.g. a request
2536 // for which the client will not process the response
2537 // anymore since the information is outdated).
2538 //
2539 // @since 3.17.0
2540 StaleRequestSupport *StaleRequestSupportOptions `json:"staleRequestSupport,omitempty"`
2541 // Client capabilities specific to regular expressions.
2542 //
2543 // @since 3.16.0
2544 RegularExpressions *RegularExpressionsClientCapabilities `json:"regularExpressions,omitempty"`
2545 // Client capabilities specific to the client's markdown parser.
2546 //
2547 // @since 3.16.0
2548 Markdown *MarkdownClientCapabilities `json:"markdown,omitempty"`
2549 // The position encodings supported by the client. Client and server
2550 // have to agree on the same position encoding to ensure that offsets
2551 // (e.g. character position in a line) are interpreted the same on both
2552 // sides.
2553 //
2554 // To keep the protocol backwards compatible the following applies: if
2555 // the value 'utf-16' is missing from the array of position encodings
2556 // servers can assume that the client supports UTF-16. UTF-16 is
2557 // therefore a mandatory encoding.
2558 //
2559 // If omitted it defaults to ['utf-16'].
2560 //
2561 // Implementation considerations: since the conversion from one encoding
2562 // into another requires the content of the file / line the conversion
2563 // is best done where the file is read which is usually on the server
2564 // side.
2565 //
2566 // @since 3.17.0
2567 PositionEncodings []PositionEncodingKind `json:"positionEncodings,omitempty"`
2568}
2569
2570// The glob pattern. Either a string pattern or a relative pattern.
2571//
2572// @since 3.17.0
2573//
2574// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#globPattern
2575type (
2576 GlobPattern = Or_GlobPattern // (alias)
2577 // The result of a hover request.
2578 //
2579 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#hover
2580 Hover struct {
2581 // The hover's content
2582 Contents MarkupContent `json:"contents"`
2583 // An optional range inside the text document that is used to
2584 // visualize the hover, e.g. by changing the background color.
2585 Range Range `json:"range,omitempty"`
2586 }
2587)
2588
2589// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#hoverClientCapabilities
2590type HoverClientCapabilities struct {
2591 // Whether hover supports dynamic registration.
2592 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2593 // Client supports the following content formats for the content
2594 // property. The order describes the preferred format of the client.
2595 ContentFormat []MarkupKind `json:"contentFormat,omitempty"`
2596}
2597
2598// Hover options.
2599//
2600// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#hoverOptions
2601type HoverOptions struct {
2602 WorkDoneProgressOptions
2603}
2604
2605// Parameters for a {@link HoverRequest}.
2606//
2607// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#hoverParams
2608type HoverParams struct {
2609 TextDocumentPositionParams
2610 WorkDoneProgressParams
2611}
2612
2613// Registration options for a {@link HoverRequest}.
2614//
2615// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#hoverRegistrationOptions
2616type HoverRegistrationOptions struct {
2617 TextDocumentRegistrationOptions
2618 HoverOptions
2619}
2620
2621// @since 3.6.0
2622//
2623// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#implementationClientCapabilities
2624type ImplementationClientCapabilities struct {
2625 // Whether implementation supports dynamic registration. If this is set to `true`
2626 // the client supports the new `ImplementationRegistrationOptions` return value
2627 // for the corresponding server capability as well.
2628 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2629 // The client supports additional metadata in the form of definition links.
2630 //
2631 // @since 3.14.0
2632 LinkSupport bool `json:"linkSupport,omitempty"`
2633}
2634
2635// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#implementationOptions
2636type ImplementationOptions struct {
2637 WorkDoneProgressOptions
2638}
2639
2640// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#implementationParams
2641type ImplementationParams struct {
2642 TextDocumentPositionParams
2643 WorkDoneProgressParams
2644 PartialResultParams
2645}
2646
2647// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#implementationRegistrationOptions
2648type ImplementationRegistrationOptions struct {
2649 TextDocumentRegistrationOptions
2650 ImplementationOptions
2651 StaticRegistrationOptions
2652}
2653
2654// The data type of the ResponseError if the
2655// initialize request fails.
2656//
2657// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#initializeError
2658type InitializeError struct {
2659 // Indicates whether the client execute the following retry logic:
2660 // (1) show the message provided by the ResponseError to the user
2661 // (2) user selects retry or cancel
2662 // (3) if user selected retry the initialize method is sent again.
2663 Retry bool `json:"retry"`
2664}
2665
2666// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#initializeParams
2667type InitializeParams struct {
2668 XInitializeParams
2669 WorkspaceFoldersInitializeParams
2670}
2671
2672// The result returned from an initialize request.
2673//
2674// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#initializeResult
2675type InitializeResult struct {
2676 // The capabilities the language server provides.
2677 Capabilities ServerCapabilities `json:"capabilities"`
2678 // Information about the server.
2679 //
2680 // @since 3.15.0
2681 ServerInfo *ServerInfo `json:"serverInfo,omitempty"`
2682}
2683
2684// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#initializedParams
2685type InitializedParams struct{}
2686
2687// Inlay hint information.
2688//
2689// @since 3.17.0
2690//
2691// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHint
2692type InlayHint struct {
2693 // The position of this hint.
2694 //
2695 // If multiple hints have the same position, they will be shown in the order
2696 // they appear in the response.
2697 Position Position `json:"position"`
2698 // The label of this hint. A human readable string or an array of
2699 // InlayHintLabelPart label parts.
2700 //
2701 // *Note* that neither the string nor the label part can be empty.
2702 Label []InlayHintLabelPart `json:"label"`
2703 // The kind of this hint. Can be omitted in which case the client
2704 // should fall back to a reasonable default.
2705 Kind InlayHintKind `json:"kind,omitempty"`
2706 // Optional text edits that are performed when accepting this inlay hint.
2707 //
2708 // *Note* that edits are expected to change the document so that the inlay
2709 // hint (or its nearest variant) is now part of the document and the inlay
2710 // hint itself is now obsolete.
2711 TextEdits []TextEdit `json:"textEdits,omitempty"`
2712 // The tooltip text when you hover over this item.
2713 Tooltip *Or_InlayHint_tooltip `json:"tooltip,omitempty"`
2714 // Render padding before the hint.
2715 //
2716 // Note: Padding should use the editor's background color, not the
2717 // background color of the hint itself. That means padding can be used
2718 // to visually align/separate an inlay hint.
2719 PaddingLeft bool `json:"paddingLeft,omitempty"`
2720 // Render padding after the hint.
2721 //
2722 // Note: Padding should use the editor's background color, not the
2723 // background color of the hint itself. That means padding can be used
2724 // to visually align/separate an inlay hint.
2725 PaddingRight bool `json:"paddingRight,omitempty"`
2726 // A data entry field that is preserved on an inlay hint between
2727 // a `textDocument/inlayHint` and a `inlayHint/resolve` request.
2728 Data interface{} `json:"data,omitempty"`
2729}
2730
2731// Inlay hint client capabilities.
2732//
2733// @since 3.17.0
2734//
2735// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHintClientCapabilities
2736type InlayHintClientCapabilities struct {
2737 // Whether inlay hints support dynamic registration.
2738 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2739 // Indicates which properties a client can resolve lazily on an inlay
2740 // hint.
2741 ResolveSupport *ClientInlayHintResolveOptions `json:"resolveSupport,omitempty"`
2742}
2743
2744// Inlay hint kinds.
2745//
2746// @since 3.17.0
2747type InlayHintKind uint32
2748
2749// An inlay hint label part allows for interactive and composite labels
2750// of inlay hints.
2751//
2752// @since 3.17.0
2753//
2754// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHintLabelPart
2755type InlayHintLabelPart struct {
2756 // The value of this label part.
2757 Value string `json:"value"`
2758 // The tooltip text when you hover over this label part. Depending on
2759 // the client capability `inlayHint.resolveSupport` clients might resolve
2760 // this property late using the resolve request.
2761 Tooltip *Or_InlayHintLabelPart_tooltip `json:"tooltip,omitempty"`
2762 // An optional source code location that represents this
2763 // label part.
2764 //
2765 // The editor will use this location for the hover and for code navigation
2766 // features: This part will become a clickable link that resolves to the
2767 // definition of the symbol at the given location (not necessarily the
2768 // location itself), it shows the hover that shows at the given location,
2769 // and it shows a context menu with further code navigation commands.
2770 //
2771 // Depending on the client capability `inlayHint.resolveSupport` clients
2772 // might resolve this property late using the resolve request.
2773 Location *Location `json:"location,omitempty"`
2774 // An optional command for this label part.
2775 //
2776 // Depending on the client capability `inlayHint.resolveSupport` clients
2777 // might resolve this property late using the resolve request.
2778 Command *Command `json:"command,omitempty"`
2779}
2780
2781// Inlay hint options used during static registration.
2782//
2783// @since 3.17.0
2784//
2785// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHintOptions
2786type InlayHintOptions struct {
2787 // The server provides support to resolve additional
2788 // information for an inlay hint item.
2789 ResolveProvider bool `json:"resolveProvider,omitempty"`
2790 WorkDoneProgressOptions
2791}
2792
2793// A parameter literal used in inlay hint requests.
2794//
2795// @since 3.17.0
2796//
2797// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHintParams
2798type InlayHintParams struct {
2799 // The text document.
2800 TextDocument TextDocumentIdentifier `json:"textDocument"`
2801 // The document range for which inlay hints should be computed.
2802 Range Range `json:"range"`
2803 WorkDoneProgressParams
2804}
2805
2806// Inlay hint options used during static or dynamic registration.
2807//
2808// @since 3.17.0
2809//
2810// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHintRegistrationOptions
2811type InlayHintRegistrationOptions struct {
2812 InlayHintOptions
2813 TextDocumentRegistrationOptions
2814 StaticRegistrationOptions
2815}
2816
2817// Client workspace capabilities specific to inlay hints.
2818//
2819// @since 3.17.0
2820//
2821// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlayHintWorkspaceClientCapabilities
2822type InlayHintWorkspaceClientCapabilities struct {
2823 // Whether the client implementation supports a refresh request sent from
2824 // the server to the client.
2825 //
2826 // Note that this event is global and will force the client to refresh all
2827 // inlay hints currently shown. It should be used with absolute care and
2828 // is useful for situation where a server for example detects a project wide
2829 // change that requires such a calculation.
2830 RefreshSupport bool `json:"refreshSupport,omitempty"`
2831}
2832
2833// Client capabilities specific to inline completions.
2834//
2835// @since 3.18.0
2836// @proposed
2837//
2838// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionClientCapabilities
2839type InlineCompletionClientCapabilities struct {
2840 // Whether implementation supports dynamic registration for inline completion providers.
2841 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2842}
2843
2844// Provides information about the context in which an inline completion was requested.
2845//
2846// @since 3.18.0
2847// @proposed
2848//
2849// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionContext
2850type InlineCompletionContext struct {
2851 // Describes how the inline completion was triggered.
2852 TriggerKind InlineCompletionTriggerKind `json:"triggerKind"`
2853 // Provides information about the currently selected item in the autocomplete widget if it is visible.
2854 SelectedCompletionInfo *SelectedCompletionInfo `json:"selectedCompletionInfo,omitempty"`
2855}
2856
2857// An inline completion item represents a text snippet that is proposed inline to complete text that is being typed.
2858//
2859// @since 3.18.0
2860// @proposed
2861//
2862// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionItem
2863type InlineCompletionItem struct {
2864 // The text to replace the range with. Must be set.
2865 InsertText Or_InlineCompletionItem_insertText `json:"insertText"`
2866 // A text that is used to decide if this inline completion should be shown. When `falsy` the {@link InlineCompletionItem.insertText} is used.
2867 FilterText string `json:"filterText,omitempty"`
2868 // The range to replace. Must begin and end on the same line.
2869 Range *Range `json:"range,omitempty"`
2870 // An optional {@link Command} that is executed *after* inserting this completion.
2871 Command *Command `json:"command,omitempty"`
2872}
2873
2874// Represents a collection of {@link InlineCompletionItem inline completion items} to be presented in the editor.
2875//
2876// @since 3.18.0
2877// @proposed
2878//
2879// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionList
2880type InlineCompletionList struct {
2881 // The inline completion items
2882 Items []InlineCompletionItem `json:"items"`
2883}
2884
2885// Inline completion options used during static registration.
2886//
2887// @since 3.18.0
2888// @proposed
2889//
2890// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionOptions
2891type InlineCompletionOptions struct {
2892 WorkDoneProgressOptions
2893}
2894
2895// A parameter literal used in inline completion requests.
2896//
2897// @since 3.18.0
2898// @proposed
2899//
2900// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionParams
2901type InlineCompletionParams struct {
2902 // Additional information about the context in which inline completions were
2903 // requested.
2904 Context InlineCompletionContext `json:"context"`
2905 TextDocumentPositionParams
2906 WorkDoneProgressParams
2907}
2908
2909// Inline completion options used during static or dynamic registration.
2910//
2911// @since 3.18.0
2912// @proposed
2913//
2914// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineCompletionRegistrationOptions
2915type InlineCompletionRegistrationOptions struct {
2916 InlineCompletionOptions
2917 TextDocumentRegistrationOptions
2918 StaticRegistrationOptions
2919}
2920
2921// Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.
2922//
2923// @since 3.18.0
2924// @proposed
2925type InlineCompletionTriggerKind uint32
2926
2927// Inline value information can be provided by different means:
2928//
2929// - directly as a text value (class InlineValueText).
2930// - as a name to use for a variable lookup (class InlineValueVariableLookup)
2931// - as an evaluatable expression (class InlineValueEvaluatableExpression)
2932//
2933// The InlineValue types combines all inline value types into one type.
2934//
2935// @since 3.17.0
2936//
2937// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValue
2938type (
2939 InlineValue = Or_InlineValue // (alias)
2940 // Client capabilities specific to inline values.
2941 //
2942 // @since 3.17.0
2943 //
2944 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueClientCapabilities
2945 InlineValueClientCapabilities struct {
2946 // Whether implementation supports dynamic registration for inline value providers.
2947 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
2948 }
2949)
2950
2951// @since 3.17.0
2952//
2953// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueContext
2954type InlineValueContext struct {
2955 // The stack frame (as a DAP Id) where the execution has stopped.
2956 FrameID int32 `json:"frameId"`
2957 // The document range where execution has stopped.
2958 // Typically the end position of the range denotes the line where the inline values are shown.
2959 StoppedLocation Range `json:"stoppedLocation"`
2960}
2961
2962// Provide an inline value through an expression evaluation.
2963// If only a range is specified, the expression will be extracted from the underlying document.
2964// An optional expression can be used to override the extracted expression.
2965//
2966// @since 3.17.0
2967//
2968// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueEvaluatableExpression
2969type InlineValueEvaluatableExpression struct {
2970 // The document range for which the inline value applies.
2971 // The range is used to extract the evaluatable expression from the underlying document.
2972 Range Range `json:"range"`
2973 // If specified the expression overrides the extracted expression.
2974 Expression string `json:"expression,omitempty"`
2975}
2976
2977// Inline value options used during static registration.
2978//
2979// @since 3.17.0
2980//
2981// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueOptions
2982type InlineValueOptions struct {
2983 WorkDoneProgressOptions
2984}
2985
2986// A parameter literal used in inline value requests.
2987//
2988// @since 3.17.0
2989//
2990// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueParams
2991type InlineValueParams struct {
2992 // The text document.
2993 TextDocument TextDocumentIdentifier `json:"textDocument"`
2994 // The document range for which inline values should be computed.
2995 Range Range `json:"range"`
2996 // Additional information about the context in which inline values were
2997 // requested.
2998 Context InlineValueContext `json:"context"`
2999 WorkDoneProgressParams
3000}
3001
3002// Inline value options used during static or dynamic registration.
3003//
3004// @since 3.17.0
3005//
3006// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueRegistrationOptions
3007type InlineValueRegistrationOptions struct {
3008 InlineValueOptions
3009 TextDocumentRegistrationOptions
3010 StaticRegistrationOptions
3011}
3012
3013// Provide inline value as text.
3014//
3015// @since 3.17.0
3016//
3017// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueText
3018type InlineValueText struct {
3019 // The document range for which the inline value applies.
3020 Range Range `json:"range"`
3021 // The text of the inline value.
3022 Text string `json:"text"`
3023}
3024
3025// Provide inline value through a variable lookup.
3026// If only a range is specified, the variable name will be extracted from the underlying document.
3027// An optional variable name can be used to override the extracted name.
3028//
3029// @since 3.17.0
3030//
3031// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueVariableLookup
3032type InlineValueVariableLookup struct {
3033 // The document range for which the inline value applies.
3034 // The range is used to extract the variable name from the underlying document.
3035 Range Range `json:"range"`
3036 // If specified the name of the variable to look up.
3037 VariableName string `json:"variableName,omitempty"`
3038 // How to perform the lookup.
3039 CaseSensitiveLookup bool `json:"caseSensitiveLookup"`
3040}
3041
3042// Client workspace capabilities specific to inline values.
3043//
3044// @since 3.17.0
3045//
3046// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#inlineValueWorkspaceClientCapabilities
3047type InlineValueWorkspaceClientCapabilities struct {
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 // inline values currently shown. It should be used with absolute care and is
3053 // useful for situation where a server for example detects a project wide
3054 // change that requires such a calculation.
3055 RefreshSupport bool `json:"refreshSupport,omitempty"`
3056}
3057
3058// A special text edit to provide an insert and a replace operation.
3059//
3060// @since 3.16.0
3061//
3062// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#insertReplaceEdit
3063type InsertReplaceEdit struct {
3064 // The string to be inserted.
3065 NewText string `json:"newText"`
3066 // The range if the insert is requested
3067 Insert Range `json:"insert"`
3068 // The range if the replace is requested.
3069 Replace Range `json:"replace"`
3070}
3071
3072// Defines whether the insert text in a completion item should be interpreted as
3073// plain text or a snippet.
3074type InsertTextFormat uint32
3075
3076// How whitespace and indentation is handled during completion
3077// item insertion.
3078//
3079// @since 3.16.0
3080type (
3081 InsertTextMode uint32
3082 LSPAny = interface{}
3083)
3084
3085// LSP arrays.
3086// @since 3.17.0
3087//
3088// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#lSPArray
3089type (
3090 LSPArray = []interface{} // (alias)
3091 LSPErrorCodes int32
3092)
3093
3094// LSP object definition.
3095// @since 3.17.0
3096//
3097// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#lSPObject
3098type (
3099 LSPObject = map[string]LSPAny // (alias)
3100 // Predefined Language kinds
3101 // @since 3.18.0
3102 // @proposed
3103 LanguageKind string
3104)
3105
3106// Client capabilities for the linked editing range request.
3107//
3108// @since 3.16.0
3109//
3110// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#linkedEditingRangeClientCapabilities
3111type LinkedEditingRangeClientCapabilities struct {
3112 // Whether implementation supports dynamic registration. If this is set to `true`
3113 // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
3114 // return value for the corresponding server capability as well.
3115 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
3116}
3117
3118// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#linkedEditingRangeOptions
3119type LinkedEditingRangeOptions struct {
3120 WorkDoneProgressOptions
3121}
3122
3123// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#linkedEditingRangeParams
3124type LinkedEditingRangeParams struct {
3125 TextDocumentPositionParams
3126 WorkDoneProgressParams
3127}
3128
3129// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#linkedEditingRangeRegistrationOptions
3130type LinkedEditingRangeRegistrationOptions struct {
3131 TextDocumentRegistrationOptions
3132 LinkedEditingRangeOptions
3133 StaticRegistrationOptions
3134}
3135
3136// The result of a linked editing range request.
3137//
3138// @since 3.16.0
3139//
3140// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#linkedEditingRanges
3141type LinkedEditingRanges struct {
3142 // A list of ranges that can be edited together. The ranges must have
3143 // identical length and contain identical text content. The ranges cannot overlap.
3144 Ranges []Range `json:"ranges"`
3145 // An optional word pattern (regular expression) that describes valid contents for
3146 // the given ranges. If no pattern is provided, the client configuration's word
3147 // pattern will be used.
3148 WordPattern string `json:"wordPattern,omitempty"`
3149}
3150
3151// created for Literal (Lit_ClientSemanticTokensRequestOptions_range_Item1)
3152type Lit_ClientSemanticTokensRequestOptions_range_Item1 struct{}
3153
3154// created for Literal (Lit_SemanticTokensOptions_range_Item1)
3155type Lit_SemanticTokensOptions_range_Item1 struct{}
3156
3157// Represents a location inside a resource, such as a line
3158// inside a text file.
3159//
3160// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#location
3161type Location struct {
3162 URI DocumentURI `json:"uri"`
3163 Range Range `json:"range"`
3164}
3165
3166// Represents the connection of two locations. Provides additional metadata over normal {@link Location locations},
3167// including an origin range.
3168//
3169// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#locationLink
3170type LocationLink struct {
3171 // Span of the origin of this link.
3172 //
3173 // Used as the underlined span for mouse interaction. Defaults to the word range at
3174 // the definition position.
3175 OriginSelectionRange *Range `json:"originSelectionRange,omitempty"`
3176 // The target resource identifier of this link.
3177 TargetURI DocumentURI `json:"targetUri"`
3178 // The full target range of this link. If the target for example is a symbol then target range is the
3179 // range enclosing this symbol not including leading/trailing whitespace but everything else
3180 // like comments. This information is typically used to highlight the range in the editor.
3181 TargetRange Range `json:"targetRange"`
3182 // The range that should be selected and revealed when this link is being followed, e.g the name of a function.
3183 // Must be contained by the `targetRange`. See also `DocumentSymbol#range`
3184 TargetSelectionRange Range `json:"targetSelectionRange"`
3185}
3186
3187// Location with only uri and does not include range.
3188//
3189// @since 3.18.0
3190//
3191// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#locationUriOnly
3192type LocationUriOnly struct {
3193 URI DocumentURI `json:"uri"`
3194}
3195
3196// The log message parameters.
3197//
3198// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#logMessageParams
3199type LogMessageParams struct {
3200 // The message type. See {@link MessageType}
3201 Type MessageType `json:"type"`
3202 // The actual message.
3203 Message string `json:"message"`
3204}
3205
3206// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#logTraceParams
3207type LogTraceParams struct {
3208 Message string `json:"message"`
3209 Verbose string `json:"verbose,omitempty"`
3210}
3211
3212// Client capabilities specific to the used markdown parser.
3213//
3214// @since 3.16.0
3215//
3216// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#markdownClientCapabilities
3217type MarkdownClientCapabilities struct {
3218 // The name of the parser.
3219 Parser string `json:"parser"`
3220 // The version of the parser.
3221 Version string `json:"version,omitempty"`
3222 // A list of HTML tags that the client allows / supports in
3223 // Markdown.
3224 //
3225 // @since 3.17.0
3226 AllowedTags []string `json:"allowedTags,omitempty"`
3227}
3228
3229// MarkedString can be used to render human readable text. It is either a markdown string
3230// or a code-block that provides a language and a code snippet. The language identifier
3231// is semantically equal to the optional language identifier in fenced code blocks in GitHub
3232// issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
3233//
3234// The pair of a language and a value is an equivalent to markdown:
3235// ```${language}
3236// ${value}
3237// ```
3238//
3239// Note that markdown strings will be sanitized - that means html will be escaped.
3240// @deprecated use MarkupContent instead.
3241//
3242// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#markedString
3243type (
3244 MarkedString = Or_MarkedString // (alias)
3245 // @since 3.18.0
3246 // @deprecated use MarkupContent instead.
3247 //
3248 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#markedStringWithLanguage
3249 MarkedStringWithLanguage struct {
3250 Language string `json:"language"`
3251 Value string `json:"value"`
3252 }
3253)
3254
3255// A `MarkupContent` literal represents a string value which content is interpreted base on its
3256// kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.
3257//
3258// If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
3259// See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
3260//
3261// Here is an example how such a string can be constructed using JavaScript / TypeScript:
3262// ```ts
3263//
3264// let markdown: MarkdownContent = {
3265// kind: MarkupKind.Markdown,
3266// value: [
3267// '# Header',
3268// 'Some text',
3269// '```typescript',
3270// 'someCode();',
3271// '```'
3272// ].join('\n')
3273// };
3274//
3275// ```
3276//
3277// *Please Note* that clients might sanitize the return markdown. A client could decide to
3278// remove HTML from the markdown to avoid script execution.
3279//
3280// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#markupContent
3281type MarkupContent struct {
3282 // The type of the Markup
3283 Kind MarkupKind `json:"kind"`
3284 // The content itself
3285 Value string `json:"value"`
3286}
3287
3288// Describes the content type that a client supports in various
3289// result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
3290//
3291// Please note that `MarkupKinds` must not start with a `$`. This kinds
3292// are reserved for internal usage.
3293type MarkupKind string
3294
3295// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#messageActionItem
3296type MessageActionItem struct {
3297 // A short title like 'Retry', 'Open Log' etc.
3298 Title string `json:"title"`
3299}
3300
3301// The message type
3302type MessageType uint32
3303
3304// Moniker definition to match LSIF 0.5 moniker definition.
3305//
3306// @since 3.16.0
3307//
3308// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#moniker
3309type Moniker struct {
3310 // The scheme of the moniker. For example tsc or .Net
3311 Scheme string `json:"scheme"`
3312 // The identifier of the moniker. The value is opaque in LSIF however
3313 // schema owners are allowed to define the structure if they want.
3314 Identifier string `json:"identifier"`
3315 // The scope in which the moniker is unique
3316 Unique UniquenessLevel `json:"unique"`
3317 // The moniker kind if known.
3318 Kind *MonikerKind `json:"kind,omitempty"`
3319}
3320
3321// Client capabilities specific to the moniker request.
3322//
3323// @since 3.16.0
3324//
3325// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#monikerClientCapabilities
3326type MonikerClientCapabilities struct {
3327 // Whether moniker supports dynamic registration. If this is set to `true`
3328 // the client supports the new `MonikerRegistrationOptions` return value
3329 // for the corresponding server capability as well.
3330 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
3331}
3332
3333// The moniker kind.
3334//
3335// @since 3.16.0
3336type MonikerKind string
3337
3338// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#monikerOptions
3339type MonikerOptions struct {
3340 WorkDoneProgressOptions
3341}
3342
3343// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#monikerParams
3344type MonikerParams struct {
3345 TextDocumentPositionParams
3346 WorkDoneProgressParams
3347 PartialResultParams
3348}
3349
3350// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#monikerRegistrationOptions
3351type MonikerRegistrationOptions struct {
3352 TextDocumentRegistrationOptions
3353 MonikerOptions
3354}
3355
3356// A notebook cell.
3357//
3358// A cell's document URI must be unique across ALL notebook
3359// cells and can therefore be used to uniquely identify a
3360// notebook cell or the cell's text document.
3361//
3362// @since 3.17.0
3363//
3364// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookCell
3365type NotebookCell struct {
3366 // The cell's kind
3367 Kind NotebookCellKind `json:"kind"`
3368 // The URI of the cell's text document
3369 // content.
3370 Document DocumentURI `json:"document"`
3371 // Additional metadata stored with the cell.
3372 //
3373 // Note: should always be an object literal (e.g. LSPObject)
3374 Metadata *LSPObject `json:"metadata,omitempty"`
3375 // Additional execution summary information
3376 // if supported by the client.
3377 ExecutionSummary *ExecutionSummary `json:"executionSummary,omitempty"`
3378}
3379
3380// A change describing how to move a `NotebookCell`
3381// array from state S to S'.
3382//
3383// @since 3.17.0
3384//
3385// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookCellArrayChange
3386type NotebookCellArrayChange struct {
3387 // The start oftest of the cell that changed.
3388 Start uint32 `json:"start"`
3389 // The deleted cells
3390 DeleteCount uint32 `json:"deleteCount"`
3391 // The new cells, if any
3392 Cells []NotebookCell `json:"cells,omitempty"`
3393}
3394
3395// A notebook cell kind.
3396//
3397// @since 3.17.0
3398type NotebookCellKind uint32
3399
3400// @since 3.18.0
3401//
3402// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookCellLanguage
3403type NotebookCellLanguage struct {
3404 Language string `json:"language"`
3405}
3406
3407// A notebook cell text document filter denotes a cell text
3408// document by different properties.
3409//
3410// @since 3.17.0
3411//
3412// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookCellTextDocumentFilter
3413type NotebookCellTextDocumentFilter struct {
3414 // A filter that matches against the notebook
3415 // containing the notebook cell. If a string
3416 // value is provided it matches against the
3417 // notebook type. '*' matches every notebook.
3418 Notebook Or_NotebookCellTextDocumentFilter_notebook `json:"notebook"`
3419 // A language id like `python`.
3420 //
3421 // Will be matched against the language id of the
3422 // notebook cell document. '*' matches every language.
3423 Language string `json:"language,omitempty"`
3424}
3425
3426// A notebook document.
3427//
3428// @since 3.17.0
3429//
3430// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocument
3431type NotebookDocument struct {
3432 // The notebook document's uri.
3433 URI URI `json:"uri"`
3434 // The type of the notebook.
3435 NotebookType string `json:"notebookType"`
3436 // The version number of this document (it will increase after each
3437 // change, including undo/redo).
3438 Version int32 `json:"version"`
3439 // Additional metadata stored with the notebook
3440 // document.
3441 //
3442 // Note: should always be an object literal (e.g. LSPObject)
3443 Metadata *LSPObject `json:"metadata,omitempty"`
3444 // The cells of a notebook.
3445 Cells []NotebookCell `json:"cells"`
3446}
3447
3448// Structural changes to cells in a notebook document.
3449//
3450// @since 3.18.0
3451//
3452// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentCellChangeStructure
3453type NotebookDocumentCellChangeStructure struct {
3454 // The change to the cell array.
3455 Array NotebookCellArrayChange `json:"array"`
3456 // Additional opened cell text documents.
3457 DidOpen []TextDocumentItem `json:"didOpen,omitempty"`
3458 // Additional closed cell text documents.
3459 DidClose []TextDocumentIdentifier `json:"didClose,omitempty"`
3460}
3461
3462// Cell changes to a notebook document.
3463//
3464// @since 3.18.0
3465//
3466// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentCellChanges
3467type NotebookDocumentCellChanges struct {
3468 // Changes to the cell structure to add or
3469 // remove cells.
3470 Structure *NotebookDocumentCellChangeStructure `json:"structure,omitempty"`
3471 // Changes to notebook cells properties like its
3472 // kind, execution summary or metadata.
3473 Data []NotebookCell `json:"data,omitempty"`
3474 // Changes to the text content of notebook cells.
3475 TextContent []NotebookDocumentCellContentChanges `json:"textContent,omitempty"`
3476}
3477
3478// Content changes to a cell in a notebook document.
3479//
3480// @since 3.18.0
3481//
3482// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentCellContentChanges
3483type NotebookDocumentCellContentChanges struct {
3484 Document VersionedTextDocumentIdentifier `json:"document"`
3485 Changes []TextDocumentContentChangeEvent `json:"changes"`
3486}
3487
3488// A change event for a notebook document.
3489//
3490// @since 3.17.0
3491//
3492// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentChangeEvent
3493type NotebookDocumentChangeEvent struct {
3494 // The changed meta data if any.
3495 //
3496 // Note: should always be an object literal (e.g. LSPObject)
3497 Metadata *LSPObject `json:"metadata,omitempty"`
3498 // Changes to cells
3499 Cells *NotebookDocumentCellChanges `json:"cells,omitempty"`
3500}
3501
3502// Capabilities specific to the notebook document support.
3503//
3504// @since 3.17.0
3505//
3506// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentClientCapabilities
3507type NotebookDocumentClientCapabilities struct {
3508 // Capabilities specific to notebook document synchronization
3509 //
3510 // @since 3.17.0
3511 Synchronization NotebookDocumentSyncClientCapabilities `json:"synchronization"`
3512}
3513
3514// A notebook document filter denotes a notebook document by
3515// different properties. The properties will be match
3516// against the notebook's URI (same as with documents)
3517//
3518// @since 3.17.0
3519//
3520// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentFilter
3521type (
3522 NotebookDocumentFilter = Or_NotebookDocumentFilter // (alias)
3523 // A notebook document filter where `notebookType` is required field.
3524 //
3525 // @since 3.18.0
3526 //
3527 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentFilterNotebookType
3528 NotebookDocumentFilterNotebookType struct {
3529 // The type of the enclosing notebook.
3530 NotebookType string `json:"notebookType"`
3531 // A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
3532 Scheme string `json:"scheme,omitempty"`
3533 // A glob pattern.
3534 Pattern *GlobPattern `json:"pattern,omitempty"`
3535 }
3536)
3537
3538// A notebook document filter where `pattern` is required field.
3539//
3540// @since 3.18.0
3541//
3542// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentFilterPattern
3543type NotebookDocumentFilterPattern struct {
3544 // The type of the enclosing notebook.
3545 NotebookType string `json:"notebookType,omitempty"`
3546 // A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
3547 Scheme string `json:"scheme,omitempty"`
3548 // A glob pattern.
3549 Pattern GlobPattern `json:"pattern"`
3550}
3551
3552// A notebook document filter where `scheme` is required field.
3553//
3554// @since 3.18.0
3555//
3556// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentFilterScheme
3557type NotebookDocumentFilterScheme struct {
3558 // The type of the enclosing notebook.
3559 NotebookType string `json:"notebookType,omitempty"`
3560 // A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
3561 Scheme string `json:"scheme"`
3562 // A glob pattern.
3563 Pattern *GlobPattern `json:"pattern,omitempty"`
3564}
3565
3566// @since 3.18.0
3567//
3568// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentFilterWithCells
3569type NotebookDocumentFilterWithCells struct {
3570 // The notebook to be synced If a string
3571 // value is provided it matches against the
3572 // notebook type. '*' matches every notebook.
3573 Notebook *Or_NotebookDocumentFilterWithCells_notebook `json:"notebook,omitempty"`
3574 // The cells of the matching notebook to be synced.
3575 Cells []NotebookCellLanguage `json:"cells"`
3576}
3577
3578// @since 3.18.0
3579//
3580// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentFilterWithNotebook
3581type NotebookDocumentFilterWithNotebook struct {
3582 // The notebook to be synced If a string
3583 // value is provided it matches against the
3584 // notebook type. '*' matches every notebook.
3585 Notebook Or_NotebookDocumentFilterWithNotebook_notebook `json:"notebook"`
3586 // The cells of the matching notebook to be synced.
3587 Cells []NotebookCellLanguage `json:"cells,omitempty"`
3588}
3589
3590// A literal to identify a notebook document in the client.
3591//
3592// @since 3.17.0
3593//
3594// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentIdentifier
3595type NotebookDocumentIdentifier struct {
3596 // The notebook document's uri.
3597 URI URI `json:"uri"`
3598}
3599
3600// Notebook specific client capabilities.
3601//
3602// @since 3.17.0
3603//
3604// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentSyncClientCapabilities
3605type NotebookDocumentSyncClientCapabilities struct {
3606 // Whether implementation supports dynamic registration. If this is
3607 // set to `true` the client supports the new
3608 // `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
3609 // return value for the corresponding server capability as well.
3610 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
3611 // The client supports sending execution summary data per cell.
3612 ExecutionSummarySupport bool `json:"executionSummarySupport,omitempty"`
3613}
3614
3615// Options specific to a notebook plus its cells
3616// to be synced to the server.
3617//
3618// If a selector provides a notebook document
3619// filter but no cell selector all cells of a
3620// matching notebook document will be synced.
3621//
3622// If a selector provides no notebook document
3623// filter but only a cell selector all notebook
3624// document that contain at least one matching
3625// cell will be synced.
3626//
3627// @since 3.17.0
3628//
3629// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentSyncOptions
3630type NotebookDocumentSyncOptions struct {
3631 // The notebooks to be synced
3632 NotebookSelector []Or_NotebookDocumentSyncOptions_notebookSelector_Elem `json:"notebookSelector"`
3633 // Whether save notification should be forwarded to
3634 // the server. Will only be honored if mode === `notebook`.
3635 Save bool `json:"save,omitempty"`
3636}
3637
3638// Registration options specific to a notebook.
3639//
3640// @since 3.17.0
3641//
3642// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#notebookDocumentSyncRegistrationOptions
3643type NotebookDocumentSyncRegistrationOptions struct {
3644 NotebookDocumentSyncOptions
3645 StaticRegistrationOptions
3646}
3647
3648// A text document identifier to optionally denote a specific version of a text document.
3649//
3650// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#optionalVersionedTextDocumentIdentifier
3651type OptionalVersionedTextDocumentIdentifier struct {
3652 // The version number of this document. If a versioned text document identifier
3653 // is sent from the server to the client and the file is not open in the editor
3654 // (the server has not received an open notification before) the server can send
3655 // `null` to indicate that the version is unknown and the content on disk is the
3656 // truth (as specified with document content ownership).
3657 Version int32 `json:"version"`
3658 TextDocumentIdentifier
3659}
3660
3661// created for Or [int32 string]
3662type Or_CancelParams_id struct {
3663 Value interface{} `json:"value"`
3664}
3665
3666// created for Or [ClientSemanticTokensRequestFullDelta bool]
3667type Or_ClientSemanticTokensRequestOptions_full struct {
3668 Value interface{} `json:"value"`
3669}
3670
3671// created for Or [Lit_ClientSemanticTokensRequestOptions_range_Item1 bool]
3672type Or_ClientSemanticTokensRequestOptions_range struct {
3673 Value interface{} `json:"value"`
3674}
3675
3676// created for Or [EditRangeWithInsertReplace Range]
3677type Or_CompletionItemDefaults_editRange struct {
3678 Value interface{} `json:"value"`
3679}
3680
3681// created for Or [MarkupContent string]
3682type Or_CompletionItem_documentation struct {
3683 Value interface{} `json:"value"`
3684}
3685
3686// created for Or [InsertReplaceEdit TextEdit]
3687type Or_CompletionItem_textEdit struct {
3688 Value interface{} `json:"value"`
3689}
3690
3691// created for Or [Location []Location]
3692type Or_Declaration struct {
3693 Value interface{} `json:"value"`
3694}
3695
3696// created for Or [Location []Location]
3697type Or_Definition struct {
3698 Value interface{} `json:"value"`
3699}
3700
3701// created for Or [int32 string]
3702type Or_Diagnostic_code struct {
3703 Value interface{} `json:"value"`
3704}
3705
3706// created for Or [[]string string]
3707type Or_DidChangeConfigurationRegistrationOptions_section struct {
3708 Value interface{} `json:"value"`
3709}
3710
3711// created for Or [RelatedFullDocumentDiagnosticReport RelatedUnchangedDocumentDiagnosticReport]
3712type Or_DocumentDiagnosticReport struct {
3713 Value interface{} `json:"value"`
3714}
3715
3716// created for Or [FullDocumentDiagnosticReport UnchangedDocumentDiagnosticReport]
3717type Or_DocumentDiagnosticReportPartialResult_relatedDocuments_Value struct {
3718 Value interface{} `json:"value"`
3719}
3720
3721// created for Or [NotebookCellTextDocumentFilter TextDocumentFilter]
3722type Or_DocumentFilter struct {
3723 Value interface{} `json:"value"`
3724}
3725
3726// created for Or [Pattern RelativePattern]
3727type Or_GlobPattern struct {
3728 Value interface{} `json:"value"`
3729}
3730
3731// created for Or [MarkedString MarkupContent []MarkedString]
3732type Or_Hover_contents struct {
3733 Value interface{} `json:"value"`
3734}
3735
3736// created for Or [MarkupContent string]
3737type Or_InlayHintLabelPart_tooltip struct {
3738 Value interface{} `json:"value"`
3739}
3740
3741// created for Or [[]InlayHintLabelPart string]
3742type Or_InlayHint_label struct {
3743 Value interface{} `json:"value"`
3744}
3745
3746// created for Or [MarkupContent string]
3747type Or_InlayHint_tooltip struct {
3748 Value interface{} `json:"value"`
3749}
3750
3751// created for Or [StringValue string]
3752type Or_InlineCompletionItem_insertText struct {
3753 Value interface{} `json:"value"`
3754}
3755
3756// created for Or [InlineValueEvaluatableExpression InlineValueText InlineValueVariableLookup]
3757type Or_InlineValue struct {
3758 Value interface{} `json:"value"`
3759}
3760
3761// created for Or [LSPArray LSPObject bool float64 int32 string uint32]
3762type Or_LSPAny struct {
3763 Value interface{} `json:"value"`
3764}
3765
3766// created for Or [MarkedStringWithLanguage string]
3767type Or_MarkedString struct {
3768 Value interface{} `json:"value"`
3769}
3770
3771// created for Or [NotebookDocumentFilter string]
3772type Or_NotebookCellTextDocumentFilter_notebook struct {
3773 Value interface{} `json:"value"`
3774}
3775
3776// created for Or [NotebookDocumentFilterNotebookType NotebookDocumentFilterPattern NotebookDocumentFilterScheme]
3777type Or_NotebookDocumentFilter struct {
3778 Value interface{} `json:"value"`
3779}
3780
3781// created for Or [NotebookDocumentFilter string]
3782type Or_NotebookDocumentFilterWithCells_notebook struct {
3783 Value interface{} `json:"value"`
3784}
3785
3786// created for Or [NotebookDocumentFilter string]
3787type Or_NotebookDocumentFilterWithNotebook_notebook struct {
3788 Value interface{} `json:"value"`
3789}
3790
3791// created for Or [NotebookDocumentFilterWithCells NotebookDocumentFilterWithNotebook]
3792type Or_NotebookDocumentSyncOptions_notebookSelector_Elem struct {
3793 Value interface{} `json:"value"`
3794}
3795
3796// created for Or [MarkupContent string]
3797type Or_ParameterInformation_documentation struct {
3798 Value interface{} `json:"value"`
3799}
3800
3801// created for Or [Tuple_ParameterInformation_label_Item1 string]
3802type Or_ParameterInformation_label struct {
3803 Value interface{} `json:"value"`
3804}
3805
3806// created for Or [PrepareRenameDefaultBehavior PrepareRenamePlaceholder Range]
3807type Or_PrepareRenameResult struct {
3808 Value interface{} `json:"value"`
3809}
3810
3811// created for Or [int32 string]
3812type Or_ProgressToken struct {
3813 Value interface{} `json:"value"`
3814}
3815
3816// created for Or [FullDocumentDiagnosticReport UnchangedDocumentDiagnosticReport]
3817type Or_RelatedFullDocumentDiagnosticReport_relatedDocuments_Value struct {
3818 Value interface{} `json:"value"`
3819}
3820
3821// created for Or [FullDocumentDiagnosticReport UnchangedDocumentDiagnosticReport]
3822type Or_RelatedUnchangedDocumentDiagnosticReport_relatedDocuments_Value struct {
3823 Value interface{} `json:"value"`
3824}
3825
3826// created for Or [URI WorkspaceFolder]
3827type Or_RelativePattern_baseUri struct {
3828 Value interface{} `json:"value"`
3829}
3830
3831// created for Or [CodeAction Command]
3832type Or_Result_textDocument_codeAction_Item0_Elem struct {
3833 Value interface{} `json:"value"`
3834}
3835
3836// created for Or [CompletionList []CompletionItem]
3837type Or_Result_textDocument_completion struct {
3838 Value interface{} `json:"value"`
3839}
3840
3841// created for Or [Declaration []DeclarationLink]
3842type Or_Result_textDocument_declaration struct {
3843 Value interface{} `json:"value"`
3844}
3845
3846// created for Or [Definition []DefinitionLink]
3847type Or_Result_textDocument_definition struct {
3848 Value interface{} `json:"value"`
3849}
3850
3851// created for Or [[]DocumentSymbol []SymbolInformation]
3852type Or_Result_textDocument_documentSymbol struct {
3853 Value interface{} `json:"value"`
3854}
3855
3856// created for Or [Definition []DefinitionLink]
3857type Or_Result_textDocument_implementation struct {
3858 Value interface{} `json:"value"`
3859}
3860
3861// created for Or [InlineCompletionList []InlineCompletionItem]
3862type Or_Result_textDocument_inlineCompletion struct {
3863 Value interface{} `json:"value"`
3864}
3865
3866// created for Or [SemanticTokens SemanticTokensDelta]
3867type Or_Result_textDocument_semanticTokens_full_delta struct {
3868 Value interface{} `json:"value"`
3869}
3870
3871// created for Or [Definition []DefinitionLink]
3872type Or_Result_textDocument_typeDefinition struct {
3873 Value interface{} `json:"value"`
3874}
3875
3876// created for Or [[]SymbolInformation []WorkspaceSymbol]
3877type Or_Result_workspace_symbol struct {
3878 Value interface{} `json:"value"`
3879}
3880
3881// created for Or [SemanticTokensFullDelta bool]
3882type Or_SemanticTokensOptions_full struct {
3883 Value interface{} `json:"value"`
3884}
3885
3886// created for Or [Lit_SemanticTokensOptions_range_Item1 bool]
3887type Or_SemanticTokensOptions_range struct {
3888 Value interface{} `json:"value"`
3889}
3890
3891// created for Or [CallHierarchyOptions CallHierarchyRegistrationOptions bool]
3892type Or_ServerCapabilities_callHierarchyProvider struct {
3893 Value interface{} `json:"value"`
3894}
3895
3896// created for Or [CodeActionOptions bool]
3897type Or_ServerCapabilities_codeActionProvider struct {
3898 Value interface{} `json:"value"`
3899}
3900
3901// created for Or [DocumentColorOptions DocumentColorRegistrationOptions bool]
3902type Or_ServerCapabilities_colorProvider struct {
3903 Value interface{} `json:"value"`
3904}
3905
3906// created for Or [DeclarationOptions DeclarationRegistrationOptions bool]
3907type Or_ServerCapabilities_declarationProvider struct {
3908 Value interface{} `json:"value"`
3909}
3910
3911// created for Or [DefinitionOptions bool]
3912type Or_ServerCapabilities_definitionProvider struct {
3913 Value interface{} `json:"value"`
3914}
3915
3916// created for Or [DiagnosticOptions DiagnosticRegistrationOptions]
3917type Or_ServerCapabilities_diagnosticProvider struct {
3918 Value interface{} `json:"value"`
3919}
3920
3921// created for Or [DocumentFormattingOptions bool]
3922type Or_ServerCapabilities_documentFormattingProvider struct {
3923 Value interface{} `json:"value"`
3924}
3925
3926// created for Or [DocumentHighlightOptions bool]
3927type Or_ServerCapabilities_documentHighlightProvider struct {
3928 Value interface{} `json:"value"`
3929}
3930
3931// created for Or [DocumentRangeFormattingOptions bool]
3932type Or_ServerCapabilities_documentRangeFormattingProvider struct {
3933 Value interface{} `json:"value"`
3934}
3935
3936// created for Or [DocumentSymbolOptions bool]
3937type Or_ServerCapabilities_documentSymbolProvider struct {
3938 Value interface{} `json:"value"`
3939}
3940
3941// created for Or [FoldingRangeOptions FoldingRangeRegistrationOptions bool]
3942type Or_ServerCapabilities_foldingRangeProvider struct {
3943 Value interface{} `json:"value"`
3944}
3945
3946// created for Or [HoverOptions bool]
3947type Or_ServerCapabilities_hoverProvider struct {
3948 Value interface{} `json:"value"`
3949}
3950
3951// created for Or [ImplementationOptions ImplementationRegistrationOptions bool]
3952type Or_ServerCapabilities_implementationProvider struct {
3953 Value interface{} `json:"value"`
3954}
3955
3956// created for Or [InlayHintOptions InlayHintRegistrationOptions bool]
3957type Or_ServerCapabilities_inlayHintProvider struct {
3958 Value interface{} `json:"value"`
3959}
3960
3961// created for Or [InlineCompletionOptions bool]
3962type Or_ServerCapabilities_inlineCompletionProvider struct {
3963 Value interface{} `json:"value"`
3964}
3965
3966// created for Or [InlineValueOptions InlineValueRegistrationOptions bool]
3967type Or_ServerCapabilities_inlineValueProvider struct {
3968 Value interface{} `json:"value"`
3969}
3970
3971// created for Or [LinkedEditingRangeOptions LinkedEditingRangeRegistrationOptions bool]
3972type Or_ServerCapabilities_linkedEditingRangeProvider struct {
3973 Value interface{} `json:"value"`
3974}
3975
3976// created for Or [MonikerOptions MonikerRegistrationOptions bool]
3977type Or_ServerCapabilities_monikerProvider struct {
3978 Value interface{} `json:"value"`
3979}
3980
3981// created for Or [NotebookDocumentSyncOptions NotebookDocumentSyncRegistrationOptions]
3982type Or_ServerCapabilities_notebookDocumentSync struct {
3983 Value interface{} `json:"value"`
3984}
3985
3986// created for Or [ReferenceOptions bool]
3987type Or_ServerCapabilities_referencesProvider struct {
3988 Value interface{} `json:"value"`
3989}
3990
3991// created for Or [RenameOptions bool]
3992type Or_ServerCapabilities_renameProvider struct {
3993 Value interface{} `json:"value"`
3994}
3995
3996// created for Or [SelectionRangeOptions SelectionRangeRegistrationOptions bool]
3997type Or_ServerCapabilities_selectionRangeProvider struct {
3998 Value interface{} `json:"value"`
3999}
4000
4001// created for Or [SemanticTokensOptions SemanticTokensRegistrationOptions]
4002type Or_ServerCapabilities_semanticTokensProvider struct {
4003 Value interface{} `json:"value"`
4004}
4005
4006// created for Or [TextDocumentSyncKind TextDocumentSyncOptions]
4007type Or_ServerCapabilities_textDocumentSync struct {
4008 Value interface{} `json:"value"`
4009}
4010
4011// created for Or [TypeDefinitionOptions TypeDefinitionRegistrationOptions bool]
4012type Or_ServerCapabilities_typeDefinitionProvider struct {
4013 Value interface{} `json:"value"`
4014}
4015
4016// created for Or [TypeHierarchyOptions TypeHierarchyRegistrationOptions bool]
4017type Or_ServerCapabilities_typeHierarchyProvider struct {
4018 Value interface{} `json:"value"`
4019}
4020
4021// created for Or [WorkspaceSymbolOptions bool]
4022type Or_ServerCapabilities_workspaceSymbolProvider struct {
4023 Value interface{} `json:"value"`
4024}
4025
4026// created for Or [MarkupContent string]
4027type Or_SignatureInformation_documentation struct {
4028 Value interface{} `json:"value"`
4029}
4030
4031// created for Or [TextDocumentContentChangePartial TextDocumentContentChangeWholeDocument]
4032type Or_TextDocumentContentChangeEvent struct {
4033 Value interface{} `json:"value"`
4034}
4035
4036// created for Or [AnnotatedTextEdit SnippetTextEdit TextEdit]
4037type Or_TextDocumentEdit_edits_Elem struct {
4038 Value interface{} `json:"value"`
4039}
4040
4041// created for Or [TextDocumentFilterLanguage TextDocumentFilterPattern TextDocumentFilterScheme]
4042type Or_TextDocumentFilter struct {
4043 Value interface{} `json:"value"`
4044}
4045
4046// created for Or [SaveOptions bool]
4047type Or_TextDocumentSyncOptions_save struct {
4048 Value interface{} `json:"value"`
4049}
4050
4051// created for Or [WorkspaceFullDocumentDiagnosticReport WorkspaceUnchangedDocumentDiagnosticReport]
4052type Or_WorkspaceDocumentDiagnosticReport struct {
4053 Value interface{} `json:"value"`
4054}
4055
4056// created for Or [CreateFile DeleteFile RenameFile TextDocumentEdit]
4057type Or_WorkspaceEdit_documentChanges_Elem struct {
4058 Value interface{} `json:"value"`
4059}
4060
4061// created for Or [bool string]
4062type Or_WorkspaceFoldersServerCapabilities_changeNotifications struct {
4063 Value interface{} `json:"value"`
4064}
4065
4066// created for Or [TextDocumentContentOptions TextDocumentContentRegistrationOptions]
4067type Or_WorkspaceOptions_textDocumentContent struct {
4068 Value interface{} `json:"value"`
4069}
4070
4071// created for Or [Location LocationUriOnly]
4072type Or_WorkspaceSymbol_location struct {
4073 Value interface{} `json:"value"`
4074}
4075
4076// The parameters of a configuration request.
4077//
4078// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#configurationParams
4079type ParamConfiguration struct {
4080 Items []ConfigurationItem `json:"items"`
4081}
4082
4083// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#initializeParams
4084type ParamInitialize struct {
4085 XInitializeParams
4086 WorkspaceFoldersInitializeParams
4087}
4088
4089// Represents a parameter of a callable-signature. A parameter can
4090// have a label and a doc-comment.
4091//
4092// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#parameterInformation
4093type ParameterInformation struct {
4094 // The label of this parameter information.
4095 //
4096 // Either a string or an inclusive start and exclusive end offsets within its containing
4097 // signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
4098 // string representation as `Position` and `Range` does.
4099 //
4100 // To avoid ambiguities a server should use the [start, end] offset value instead of using
4101 // a substring. Whether a client support this is controlled via `labelOffsetSupport` client
4102 // capability.
4103 //
4104 // *Note*: a label of type string should be a substring of its containing signature label.
4105 // Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`.
4106 Label Or_ParameterInformation_label `json:"label"`
4107 // The human-readable doc-comment of this parameter. Will be shown
4108 // in the UI but can be omitted.
4109 Documentation *Or_ParameterInformation_documentation `json:"documentation,omitempty"`
4110}
4111
4112// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#partialResultParams
4113type PartialResultParams struct {
4114 // An optional token that a server can use to report partial results (e.g. streaming) to
4115 // the client.
4116 PartialResultToken *ProgressToken `json:"partialResultToken,omitempty"`
4117}
4118
4119// The glob pattern to watch relative to the base path. Glob patterns can have the following syntax:
4120//
4121// - `*` to match one or more characters in a path segment
4122// - `?` to match on one character in a path segment
4123// - `**` to match any number of path segments, including none
4124// - `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files)
4125// - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
4126// - `[!...]` 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`)
4127//
4128// @since 3.17.0
4129//
4130// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#pattern
4131type (
4132 Pattern = string // (alias)
4133 // Position in a text document expressed as zero-based line and character
4134 // offset. Prior to 3.17 the offsets were always based on a UTF-16 string
4135 // representation. So a string of the form `a𐐀b` the character offset of the
4136 // character `a` is 0, the character offset of `𐐀` is 1 and the character
4137 // offset of b is 3 since `𐐀` is represented using two code units in UTF-16.
4138 // Since 3.17 clients and servers can agree on a different string encoding
4139 // representation (e.g. UTF-8). The client announces it's supported encoding
4140 // via the client capability [`general.positionEncodings`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#clientCapabilities).
4141 // The value is an array of position encodings the client supports, with
4142 // decreasing preference (e.g. the encoding at index `0` is the most preferred
4143 // one). To stay backwards compatible the only mandatory encoding is UTF-16
4144 // represented via the string `utf-16`. The server can pick one of the
4145 // encodings offered by the client and signals that encoding back to the
4146 // client via the initialize result's property
4147 // [`capabilities.positionEncoding`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#serverCapabilities). If the string value
4148 // `utf-16` is missing from the client's capability `general.positionEncodings`
4149 // servers can safely assume that the client supports UTF-16. If the server
4150 // omits the position encoding in its initialize result the encoding defaults
4151 // to the string value `utf-16`. Implementation considerations: since the
4152 // conversion from one encoding into another requires the content of the
4153 // file / line the conversion is best done where the file is read which is
4154 // usually on the server side.
4155 //
4156 // Positions are line end character agnostic. So you can not specify a position
4157 // that denotes `\r|\n` or `\n|` where `|` represents the character offset.
4158 //
4159 // @since 3.17.0 - support for negotiated position encoding.
4160 //
4161 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#position
4162 Position struct {
4163 // Line position in a document (zero-based).
4164 //
4165 // If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.
4166 // If a line number is negative, it defaults to 0.
4167 Line uint32 `json:"line"`
4168 // Character offset on a line in a document (zero-based).
4169 //
4170 // The meaning of this offset is determined by the negotiated
4171 // `PositionEncodingKind`.
4172 //
4173 // If the character value is greater than the line length it defaults back to the
4174 // line length.
4175 Character uint32 `json:"character"`
4176 }
4177)
4178
4179// A set of predefined position encoding kinds.
4180//
4181// @since 3.17.0
4182type PositionEncodingKind string
4183
4184// @since 3.18.0
4185//
4186// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#prepareRenameDefaultBehavior
4187type PrepareRenameDefaultBehavior struct {
4188 DefaultBehavior bool `json:"defaultBehavior"`
4189}
4190
4191// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#prepareRenameParams
4192type PrepareRenameParams struct {
4193 TextDocumentPositionParams
4194 WorkDoneProgressParams
4195}
4196
4197// @since 3.18.0
4198//
4199// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#prepareRenamePlaceholder
4200type PrepareRenamePlaceholder struct {
4201 Range Range `json:"range"`
4202 Placeholder string `json:"placeholder"`
4203}
4204
4205// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#prepareRenameResult
4206type (
4207 PrepareRenameResult = Or_PrepareRenameResult // (alias)
4208 PrepareSupportDefaultBehavior uint32
4209)
4210
4211// A previous result id in a workspace pull request.
4212//
4213// @since 3.17.0
4214//
4215// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#previousResultId
4216type PreviousResultID struct {
4217 // The URI for which the client knowns a
4218 // result id.
4219 URI DocumentURI `json:"uri"`
4220 // The value of the previous result id.
4221 Value string `json:"value"`
4222}
4223
4224// A previous result id in a workspace pull request.
4225//
4226// @since 3.17.0
4227//
4228// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#previousResultId
4229type PreviousResultId struct {
4230 // The URI for which the client knowns a
4231 // result id.
4232 URI DocumentURI `json:"uri"`
4233 // The value of the previous result id.
4234 Value string `json:"value"`
4235}
4236
4237// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#progressParams
4238type ProgressParams struct {
4239 // The progress token provided by the client or server.
4240 Token ProgressToken `json:"token"`
4241 // The progress data.
4242 Value interface{} `json:"value"`
4243}
4244
4245// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#progressToken
4246type (
4247 ProgressToken = Or_ProgressToken // (alias)
4248 // The publish diagnostic client capabilities.
4249 //
4250 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#publishDiagnosticsClientCapabilities
4251 PublishDiagnosticsClientCapabilities struct {
4252 // Whether the client interprets the version property of the
4253 // `textDocument/publishDiagnostics` notification's parameter.
4254 //
4255 // @since 3.15.0
4256 VersionSupport bool `json:"versionSupport,omitempty"`
4257 DiagnosticsCapabilities
4258 }
4259)
4260
4261// The publish diagnostic notification's parameters.
4262//
4263// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#publishDiagnosticsParams
4264type PublishDiagnosticsParams struct {
4265 // The URI for which diagnostic information is reported.
4266 URI DocumentURI `json:"uri"`
4267 // Optional the version number of the document the diagnostics are published for.
4268 //
4269 // @since 3.15.0
4270 Version int32 `json:"version,omitempty"`
4271 // An array of diagnostic information items.
4272 Diagnostics []Diagnostic `json:"diagnostics"`
4273}
4274
4275// A range in a text document expressed as (zero-based) start and end positions.
4276//
4277// If you want to specify a range that contains a line including the line ending
4278// character(s) then use an end position denoting the start of the next line.
4279// For example:
4280// ```ts
4281//
4282// {
4283// start: { line: 5, character: 23 }
4284// end : { line 6, character : 0 }
4285// }
4286//
4287// ```
4288//
4289// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#range
4290type Range struct {
4291 // The range's start position.
4292 Start Position `json:"start"`
4293 // The range's end position.
4294 End Position `json:"end"`
4295}
4296
4297// Client Capabilities for a {@link ReferencesRequest}.
4298//
4299// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#referenceClientCapabilities
4300type ReferenceClientCapabilities struct {
4301 // Whether references supports dynamic registration.
4302 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
4303}
4304
4305// Value-object that contains additional information when
4306// requesting references.
4307//
4308// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#referenceContext
4309type ReferenceContext struct {
4310 // Include the declaration of the current symbol.
4311 IncludeDeclaration bool `json:"includeDeclaration"`
4312}
4313
4314// Reference options.
4315//
4316// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#referenceOptions
4317type ReferenceOptions struct {
4318 WorkDoneProgressOptions
4319}
4320
4321// Parameters for a {@link ReferencesRequest}.
4322//
4323// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#referenceParams
4324type ReferenceParams struct {
4325 Context ReferenceContext `json:"context"`
4326 TextDocumentPositionParams
4327 WorkDoneProgressParams
4328 PartialResultParams
4329}
4330
4331// Registration options for a {@link ReferencesRequest}.
4332//
4333// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#referenceRegistrationOptions
4334type ReferenceRegistrationOptions struct {
4335 TextDocumentRegistrationOptions
4336 ReferenceOptions
4337}
4338
4339// General parameters to register for a notification or to register a provider.
4340//
4341// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#registration
4342type Registration struct {
4343 // The id used to register the request. The id can be used to deregister
4344 // the request again.
4345 ID string `json:"id"`
4346 // The method / capability to register for.
4347 Method string `json:"method"`
4348 // Options necessary for the registration.
4349 RegisterOptions interface{} `json:"registerOptions,omitempty"`
4350}
4351
4352// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#registrationParams
4353type RegistrationParams struct {
4354 Registrations []Registration `json:"registrations"`
4355}
4356
4357// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#regularExpressionEngineKind
4358type (
4359 RegularExpressionEngineKind = string // (alias)
4360 // Client capabilities specific to regular expressions.
4361 //
4362 // @since 3.16.0
4363 //
4364 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#regularExpressionsClientCapabilities
4365 RegularExpressionsClientCapabilities struct {
4366 // The engine's name.
4367 Engine RegularExpressionEngineKind `json:"engine"`
4368 // The engine's version.
4369 Version string `json:"version,omitempty"`
4370 }
4371)
4372
4373// A full diagnostic report with a set of related documents.
4374//
4375// @since 3.17.0
4376//
4377// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#relatedFullDocumentDiagnosticReport
4378type RelatedFullDocumentDiagnosticReport struct {
4379 // Diagnostics of related documents. This information is useful
4380 // in programming languages where code in a file A can generate
4381 // diagnostics in a file B which A depends on. An example of
4382 // such a language is C/C++ where marco definitions in a file
4383 // a.cpp and result in errors in a header file b.hpp.
4384 //
4385 // @since 3.17.0
4386 RelatedDocuments map[DocumentURI]interface{} `json:"relatedDocuments,omitempty"`
4387 FullDocumentDiagnosticReport
4388}
4389
4390// An unchanged diagnostic report with a set of related documents.
4391//
4392// @since 3.17.0
4393//
4394// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#relatedUnchangedDocumentDiagnosticReport
4395type RelatedUnchangedDocumentDiagnosticReport struct {
4396 // Diagnostics of related documents. This information is useful
4397 // in programming languages where code in a file A can generate
4398 // diagnostics in a file B which A depends on. An example of
4399 // such a language is C/C++ where marco definitions in a file
4400 // a.cpp and result in errors in a header file b.hpp.
4401 //
4402 // @since 3.17.0
4403 RelatedDocuments map[DocumentURI]interface{} `json:"relatedDocuments,omitempty"`
4404 UnchangedDocumentDiagnosticReport
4405}
4406
4407// A relative pattern is a helper to construct glob patterns that are matched
4408// relatively to a base URI. The common value for a `baseUri` is a workspace
4409// folder root, but it can be another absolute URI as well.
4410//
4411// @since 3.17.0
4412//
4413// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#relativePattern
4414type RelativePattern struct {
4415 // A workspace folder or a base URI to which this pattern will be matched
4416 // against relatively.
4417 BaseURI Or_RelativePattern_baseUri `json:"baseUri"`
4418 // The actual glob pattern;
4419 Pattern Pattern `json:"pattern"`
4420}
4421
4422// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameClientCapabilities
4423type RenameClientCapabilities struct {
4424 // Whether rename supports dynamic registration.
4425 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
4426 // Client supports testing for validity of rename operations
4427 // before execution.
4428 //
4429 // @since 3.12.0
4430 PrepareSupport bool `json:"prepareSupport,omitempty"`
4431 // Client supports the default behavior result.
4432 //
4433 // The value indicates the default behavior used by the
4434 // client.
4435 //
4436 // @since 3.16.0
4437 PrepareSupportDefaultBehavior *PrepareSupportDefaultBehavior `json:"prepareSupportDefaultBehavior,omitempty"`
4438 // Whether the client honors the change annotations in
4439 // text edits and resource operations returned via the
4440 // rename request's workspace edit by for example presenting
4441 // the workspace edit in the user interface and asking
4442 // for confirmation.
4443 //
4444 // @since 3.16.0
4445 HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"`
4446}
4447
4448// Rename file operation
4449//
4450// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameFile
4451type RenameFile struct {
4452 // A rename
4453 Kind string `json:"kind"`
4454 // The old (existing) location.
4455 OldURI DocumentURI `json:"oldUri"`
4456 // The new location.
4457 NewURI DocumentURI `json:"newUri"`
4458 // Rename options.
4459 Options *RenameFileOptions `json:"options,omitempty"`
4460 ResourceOperation
4461}
4462
4463// Rename file options
4464//
4465// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameFileOptions
4466type RenameFileOptions struct {
4467 // Overwrite target if existing. Overwrite wins over `ignoreIfExists`
4468 Overwrite bool `json:"overwrite,omitempty"`
4469 // Ignores if target exists.
4470 IgnoreIfExists bool `json:"ignoreIfExists,omitempty"`
4471}
4472
4473// The parameters sent in notifications/requests for user-initiated renames of
4474// files.
4475//
4476// @since 3.16.0
4477//
4478// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameFilesParams
4479type RenameFilesParams struct {
4480 // An array of all files/folders renamed in this operation. When a folder is renamed, only
4481 // the folder will be included, and not its children.
4482 Files []FileRename `json:"files"`
4483}
4484
4485// Provider options for a {@link RenameRequest}.
4486//
4487// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameOptions
4488type RenameOptions struct {
4489 // Renames should be checked and tested before being executed.
4490 //
4491 // @since version 3.12.0
4492 PrepareProvider bool `json:"prepareProvider,omitempty"`
4493 WorkDoneProgressOptions
4494}
4495
4496// The parameters of a {@link RenameRequest}.
4497//
4498// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameParams
4499type RenameParams struct {
4500 // The document to rename.
4501 TextDocument TextDocumentIdentifier `json:"textDocument"`
4502 // The position at which this request was sent.
4503 Position Position `json:"position"`
4504 // The new name of the symbol. If the given name is not valid the
4505 // request must return a {@link ResponseError} with an
4506 // appropriate message set.
4507 NewName string `json:"newName"`
4508 WorkDoneProgressParams
4509}
4510
4511// Registration options for a {@link RenameRequest}.
4512//
4513// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#renameRegistrationOptions
4514type RenameRegistrationOptions struct {
4515 TextDocumentRegistrationOptions
4516 RenameOptions
4517}
4518
4519// A generic resource operation.
4520//
4521// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#resourceOperation
4522type ResourceOperation struct {
4523 // The resource operation kind.
4524 Kind string `json:"kind"`
4525 // An optional annotation identifier describing the operation.
4526 //
4527 // @since 3.16.0
4528 AnnotationID *ChangeAnnotationIdentifier `json:"annotationId,omitempty"`
4529}
4530type ResourceOperationKind string
4531
4532// Save options.
4533//
4534// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#saveOptions
4535type SaveOptions struct {
4536 // The client is supposed to include the content on save.
4537 IncludeText bool `json:"includeText,omitempty"`
4538}
4539
4540// Describes the currently selected completion item.
4541//
4542// @since 3.18.0
4543// @proposed
4544//
4545// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#selectedCompletionInfo
4546type SelectedCompletionInfo struct {
4547 // The range that will be replaced if this completion item is accepted.
4548 Range Range `json:"range"`
4549 // The text the range will be replaced with if this completion is accepted.
4550 Text string `json:"text"`
4551}
4552
4553// A selection range represents a part of a selection hierarchy. A selection range
4554// may have a parent selection range that contains it.
4555//
4556// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#selectionRange
4557type SelectionRange struct {
4558 // The {@link Range range} of this selection range.
4559 Range Range `json:"range"`
4560 // The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
4561 Parent *SelectionRange `json:"parent,omitempty"`
4562}
4563
4564// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#selectionRangeClientCapabilities
4565type SelectionRangeClientCapabilities struct {
4566 // Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
4567 // the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
4568 // capability as well.
4569 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
4570}
4571
4572// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#selectionRangeOptions
4573type SelectionRangeOptions struct {
4574 WorkDoneProgressOptions
4575}
4576
4577// A parameter literal used in selection range requests.
4578//
4579// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#selectionRangeParams
4580type SelectionRangeParams struct {
4581 // The text document.
4582 TextDocument TextDocumentIdentifier `json:"textDocument"`
4583 // The positions inside the text document.
4584 Positions []Position `json:"positions"`
4585 WorkDoneProgressParams
4586 PartialResultParams
4587}
4588
4589// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#selectionRangeRegistrationOptions
4590type SelectionRangeRegistrationOptions struct {
4591 SelectionRangeOptions
4592 TextDocumentRegistrationOptions
4593 StaticRegistrationOptions
4594}
4595
4596// A set of predefined token modifiers. This set is not fixed
4597// an clients can specify additional token types via the
4598// corresponding client capabilities.
4599//
4600// @since 3.16.0
4601type SemanticTokenModifiers string
4602
4603// A set of predefined token types. This set is not fixed
4604// an clients can specify additional token types via the
4605// corresponding client capabilities.
4606//
4607// @since 3.16.0
4608type SemanticTokenTypes string
4609
4610// @since 3.16.0
4611//
4612// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokens
4613type SemanticTokens struct {
4614 // An optional result id. If provided and clients support delta updating
4615 // the client will include the result id in the next semantic token request.
4616 // A server can then instead of computing all semantic tokens again simply
4617 // send a delta.
4618 ResultID string `json:"resultId,omitempty"`
4619 // The actual tokens.
4620 Data []uint32 `json:"data"`
4621}
4622
4623// @since 3.16.0
4624//
4625// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensClientCapabilities
4626type SemanticTokensClientCapabilities struct {
4627 // Whether implementation supports dynamic registration. If this is set to `true`
4628 // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
4629 // return value for the corresponding server capability as well.
4630 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
4631 // Which requests the client supports and might send to the server
4632 // depending on the server's capability. Please note that clients might not
4633 // show semantic tokens or degrade some of the user experience if a range
4634 // or full request is advertised by the client but not provided by the
4635 // server. If for example the client capability `requests.full` and
4636 // `request.range` are both set to true but the server only provides a
4637 // range provider the client might not render a minimap correctly or might
4638 // even decide to not show any semantic tokens at all.
4639 Requests ClientSemanticTokensRequestOptions `json:"requests"`
4640 // The token types that the client supports.
4641 TokenTypes []string `json:"tokenTypes"`
4642 // The token modifiers that the client supports.
4643 TokenModifiers []string `json:"tokenModifiers"`
4644 // The token formats the clients supports.
4645 Formats []TokenFormat `json:"formats"`
4646 // Whether the client supports tokens that can overlap each other.
4647 OverlappingTokenSupport bool `json:"overlappingTokenSupport,omitempty"`
4648 // Whether the client supports tokens that can span multiple lines.
4649 MultilineTokenSupport bool `json:"multilineTokenSupport,omitempty"`
4650 // Whether the client allows the server to actively cancel a
4651 // semantic token request, e.g. supports returning
4652 // LSPErrorCodes.ServerCancelled. If a server does the client
4653 // needs to retrigger the request.
4654 //
4655 // @since 3.17.0
4656 ServerCancelSupport bool `json:"serverCancelSupport,omitempty"`
4657 // Whether the client uses semantic tokens to augment existing
4658 // syntax tokens. If set to `true` client side created syntax
4659 // tokens and semantic tokens are both used for colorization. If
4660 // set to `false` the client only uses the returned semantic tokens
4661 // for colorization.
4662 //
4663 // If the value is `undefined` then the client behavior is not
4664 // specified.
4665 //
4666 // @since 3.17.0
4667 AugmentsSyntaxTokens bool `json:"augmentsSyntaxTokens,omitempty"`
4668}
4669
4670// @since 3.16.0
4671//
4672// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensDelta
4673type SemanticTokensDelta struct {
4674 ResultID string `json:"resultId,omitempty"`
4675 // The semantic token edits to transform a previous result into a new result.
4676 Edits []SemanticTokensEdit `json:"edits"`
4677}
4678
4679// @since 3.16.0
4680//
4681// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensDeltaParams
4682type SemanticTokensDeltaParams struct {
4683 // The text document.
4684 TextDocument TextDocumentIdentifier `json:"textDocument"`
4685 // The result id of a previous response. The result Id can either point to a full response
4686 // or a delta response depending on what was received last.
4687 PreviousResultID string `json:"previousResultId"`
4688 WorkDoneProgressParams
4689 PartialResultParams
4690}
4691
4692// @since 3.16.0
4693//
4694// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensDeltaPartialResult
4695type SemanticTokensDeltaPartialResult struct {
4696 Edits []SemanticTokensEdit `json:"edits"`
4697}
4698
4699// @since 3.16.0
4700//
4701// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensEdit
4702type SemanticTokensEdit struct {
4703 // The start offset of the edit.
4704 Start uint32 `json:"start"`
4705 // The count of elements to remove.
4706 DeleteCount uint32 `json:"deleteCount"`
4707 // The elements to insert.
4708 Data []uint32 `json:"data,omitempty"`
4709}
4710
4711// Semantic tokens options to support deltas for full documents
4712//
4713// @since 3.18.0
4714//
4715// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensFullDelta
4716type SemanticTokensFullDelta struct {
4717 // The server supports deltas for full documents.
4718 Delta bool `json:"delta,omitempty"`
4719}
4720
4721// @since 3.16.0
4722//
4723// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensLegend
4724type SemanticTokensLegend struct {
4725 // The token types a server uses.
4726 TokenTypes []string `json:"tokenTypes"`
4727 // The token modifiers a server uses.
4728 TokenModifiers []string `json:"tokenModifiers"`
4729}
4730
4731// @since 3.16.0
4732//
4733// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensOptions
4734type SemanticTokensOptions struct {
4735 // The legend used by the server
4736 Legend SemanticTokensLegend `json:"legend"`
4737 // Server supports providing semantic tokens for a specific range
4738 // of a document.
4739 Range *Or_SemanticTokensOptions_range `json:"range,omitempty"`
4740 // Server supports providing semantic tokens for a full document.
4741 Full *Or_SemanticTokensOptions_full `json:"full,omitempty"`
4742 WorkDoneProgressOptions
4743}
4744
4745// @since 3.16.0
4746//
4747// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensParams
4748type SemanticTokensParams struct {
4749 // The text document.
4750 TextDocument TextDocumentIdentifier `json:"textDocument"`
4751 WorkDoneProgressParams
4752 PartialResultParams
4753}
4754
4755// @since 3.16.0
4756//
4757// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensPartialResult
4758type SemanticTokensPartialResult struct {
4759 Data []uint32 `json:"data"`
4760}
4761
4762// @since 3.16.0
4763//
4764// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensRangeParams
4765type SemanticTokensRangeParams struct {
4766 // The text document.
4767 TextDocument TextDocumentIdentifier `json:"textDocument"`
4768 // The range the semantic tokens are requested for.
4769 Range Range `json:"range"`
4770 WorkDoneProgressParams
4771 PartialResultParams
4772}
4773
4774// @since 3.16.0
4775//
4776// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensRegistrationOptions
4777type SemanticTokensRegistrationOptions struct {
4778 TextDocumentRegistrationOptions
4779 SemanticTokensOptions
4780 StaticRegistrationOptions
4781}
4782
4783// @since 3.16.0
4784//
4785// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#semanticTokensWorkspaceClientCapabilities
4786type SemanticTokensWorkspaceClientCapabilities struct {
4787 // Whether the client implementation supports a refresh request sent from
4788 // the server to the client.
4789 //
4790 // Note that this event is global and will force the client to refresh all
4791 // semantic tokens currently shown. It should be used with absolute care
4792 // and is useful for situation where a server for example detects a project
4793 // wide change that requires such a calculation.
4794 RefreshSupport bool `json:"refreshSupport,omitempty"`
4795}
4796
4797// Defines the capabilities provided by a language
4798// server.
4799//
4800// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#serverCapabilities
4801type ServerCapabilities struct {
4802 // The position encoding the server picked from the encodings offered
4803 // by the client via the client capability `general.positionEncodings`.
4804 //
4805 // If the client didn't provide any position encodings the only valid
4806 // value that a server can return is 'utf-16'.
4807 //
4808 // If omitted it defaults to 'utf-16'.
4809 //
4810 // @since 3.17.0
4811 PositionEncoding *PositionEncodingKind `json:"positionEncoding,omitempty"`
4812 // Defines how text documents are synced. Is either a detailed structure
4813 // defining each notification or for backwards compatibility the
4814 // TextDocumentSyncKind number.
4815 TextDocumentSync interface{} `json:"textDocumentSync,omitempty"`
4816 // Defines how notebook documents are synced.
4817 //
4818 // @since 3.17.0
4819 NotebookDocumentSync *Or_ServerCapabilities_notebookDocumentSync `json:"notebookDocumentSync,omitempty"`
4820 // The server provides completion support.
4821 CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"`
4822 // The server provides hover support.
4823 HoverProvider *Or_ServerCapabilities_hoverProvider `json:"hoverProvider,omitempty"`
4824 // The server provides signature help support.
4825 SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"`
4826 // The server provides Goto Declaration support.
4827 DeclarationProvider *Or_ServerCapabilities_declarationProvider `json:"declarationProvider,omitempty"`
4828 // The server provides goto definition support.
4829 DefinitionProvider *Or_ServerCapabilities_definitionProvider `json:"definitionProvider,omitempty"`
4830 // The server provides Goto Type Definition support.
4831 TypeDefinitionProvider *Or_ServerCapabilities_typeDefinitionProvider `json:"typeDefinitionProvider,omitempty"`
4832 // The server provides Goto Implementation support.
4833 ImplementationProvider *Or_ServerCapabilities_implementationProvider `json:"implementationProvider,omitempty"`
4834 // The server provides find references support.
4835 ReferencesProvider *Or_ServerCapabilities_referencesProvider `json:"referencesProvider,omitempty"`
4836 // The server provides document highlight support.
4837 DocumentHighlightProvider *Or_ServerCapabilities_documentHighlightProvider `json:"documentHighlightProvider,omitempty"`
4838 // The server provides document symbol support.
4839 DocumentSymbolProvider *Or_ServerCapabilities_documentSymbolProvider `json:"documentSymbolProvider,omitempty"`
4840 // The server provides code actions. CodeActionOptions may only be
4841 // specified if the client states that it supports
4842 // `codeActionLiteralSupport` in its initial `initialize` request.
4843 CodeActionProvider interface{} `json:"codeActionProvider,omitempty"`
4844 // The server provides code lens.
4845 CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"`
4846 // The server provides document link support.
4847 DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"`
4848 // The server provides color provider support.
4849 ColorProvider *Or_ServerCapabilities_colorProvider `json:"colorProvider,omitempty"`
4850 // The server provides workspace symbol support.
4851 WorkspaceSymbolProvider *Or_ServerCapabilities_workspaceSymbolProvider `json:"workspaceSymbolProvider,omitempty"`
4852 // The server provides document formatting.
4853 DocumentFormattingProvider *Or_ServerCapabilities_documentFormattingProvider `json:"documentFormattingProvider,omitempty"`
4854 // The server provides document range formatting.
4855 DocumentRangeFormattingProvider *Or_ServerCapabilities_documentRangeFormattingProvider `json:"documentRangeFormattingProvider,omitempty"`
4856 // The server provides document formatting on typing.
4857 DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"`
4858 // The server provides rename support. RenameOptions may only be
4859 // specified if the client states that it supports
4860 // `prepareSupport` in its initial `initialize` request.
4861 RenameProvider interface{} `json:"renameProvider,omitempty"`
4862 // The server provides folding provider support.
4863 FoldingRangeProvider *Or_ServerCapabilities_foldingRangeProvider `json:"foldingRangeProvider,omitempty"`
4864 // The server provides selection range support.
4865 SelectionRangeProvider *Or_ServerCapabilities_selectionRangeProvider `json:"selectionRangeProvider,omitempty"`
4866 // The server provides execute command support.
4867 ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
4868 // The server provides call hierarchy support.
4869 //
4870 // @since 3.16.0
4871 CallHierarchyProvider *Or_ServerCapabilities_callHierarchyProvider `json:"callHierarchyProvider,omitempty"`
4872 // The server provides linked editing range support.
4873 //
4874 // @since 3.16.0
4875 LinkedEditingRangeProvider *Or_ServerCapabilities_linkedEditingRangeProvider `json:"linkedEditingRangeProvider,omitempty"`
4876 // The server provides semantic tokens support.
4877 //
4878 // @since 3.16.0
4879 SemanticTokensProvider interface{} `json:"semanticTokensProvider,omitempty"`
4880 // The server provides moniker support.
4881 //
4882 // @since 3.16.0
4883 MonikerProvider *Or_ServerCapabilities_monikerProvider `json:"monikerProvider,omitempty"`
4884 // The server provides type hierarchy support.
4885 //
4886 // @since 3.17.0
4887 TypeHierarchyProvider *Or_ServerCapabilities_typeHierarchyProvider `json:"typeHierarchyProvider,omitempty"`
4888 // The server provides inline values.
4889 //
4890 // @since 3.17.0
4891 InlineValueProvider *Or_ServerCapabilities_inlineValueProvider `json:"inlineValueProvider,omitempty"`
4892 // The server provides inlay hints.
4893 //
4894 // @since 3.17.0
4895 InlayHintProvider interface{} `json:"inlayHintProvider,omitempty"`
4896 // The server has support for pull model diagnostics.
4897 //
4898 // @since 3.17.0
4899 DiagnosticProvider *Or_ServerCapabilities_diagnosticProvider `json:"diagnosticProvider,omitempty"`
4900 // Inline completion options used during static registration.
4901 //
4902 // @since 3.18.0
4903 // @proposed
4904 InlineCompletionProvider *Or_ServerCapabilities_inlineCompletionProvider `json:"inlineCompletionProvider,omitempty"`
4905 // Workspace specific server capabilities.
4906 Workspace *WorkspaceOptions `json:"workspace,omitempty"`
4907 // Experimental server capabilities.
4908 Experimental interface{} `json:"experimental,omitempty"`
4909}
4910
4911// @since 3.18.0
4912//
4913// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#serverCompletionItemOptions
4914type ServerCompletionItemOptions struct {
4915 // The server has support for completion item label
4916 // details (see also `CompletionItemLabelDetails`) when
4917 // receiving a completion item in a resolve call.
4918 //
4919 // @since 3.17.0
4920 LabelDetailsSupport bool `json:"labelDetailsSupport,omitempty"`
4921}
4922
4923// Information about the server
4924//
4925// @since 3.15.0
4926// @since 3.18.0 ServerInfo type name added.
4927//
4928// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#serverInfo
4929type ServerInfo struct {
4930 // The name of the server as defined by the server.
4931 Name string `json:"name"`
4932 // The server's version as defined by the server.
4933 Version string `json:"version,omitempty"`
4934}
4935
4936// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#setTraceParams
4937type SetTraceParams struct {
4938 Value TraceValue `json:"value"`
4939}
4940
4941// Client capabilities for the showDocument request.
4942//
4943// @since 3.16.0
4944//
4945// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#showDocumentClientCapabilities
4946type ShowDocumentClientCapabilities struct {
4947 // The client has support for the showDocument
4948 // request.
4949 Support bool `json:"support"`
4950}
4951
4952// Params to show a resource in the UI.
4953//
4954// @since 3.16.0
4955//
4956// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#showDocumentParams
4957type ShowDocumentParams struct {
4958 // The uri to show.
4959 URI URI `json:"uri"`
4960 // Indicates to show the resource in an external program.
4961 // To show, for example, `https://code.visualstudio.com/`
4962 // in the default WEB browser set `external` to `true`.
4963 External bool `json:"external,omitempty"`
4964 // An optional property to indicate whether the editor
4965 // showing the document should take focus or not.
4966 // Clients might ignore this property if an external
4967 // program is started.
4968 TakeFocus bool `json:"takeFocus,omitempty"`
4969 // An optional selection range if the document is a text
4970 // document. Clients might ignore the property if an
4971 // external program is started or the file is not a text
4972 // file.
4973 Selection *Range `json:"selection,omitempty"`
4974}
4975
4976// The result of a showDocument request.
4977//
4978// @since 3.16.0
4979//
4980// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#showDocumentResult
4981type ShowDocumentResult struct {
4982 // A boolean indicating if the show was successful.
4983 Success bool `json:"success"`
4984}
4985
4986// The parameters of a notification message.
4987//
4988// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#showMessageParams
4989type ShowMessageParams struct {
4990 // The message type. See {@link MessageType}
4991 Type MessageType `json:"type"`
4992 // The actual message.
4993 Message string `json:"message"`
4994}
4995
4996// Show message request client capabilities
4997//
4998// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#showMessageRequestClientCapabilities
4999type ShowMessageRequestClientCapabilities struct {
5000 // Capabilities specific to the `MessageActionItem` type.
5001 MessageActionItem *ClientShowMessageActionItemOptions `json:"messageActionItem,omitempty"`
5002}
5003
5004// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#showMessageRequestParams
5005type ShowMessageRequestParams struct {
5006 // The message type. See {@link MessageType}
5007 Type MessageType `json:"type"`
5008 // The actual message.
5009 Message string `json:"message"`
5010 // The message action items to present.
5011 Actions []MessageActionItem `json:"actions,omitempty"`
5012}
5013
5014// Signature help represents the signature of something
5015// callable. There can be multiple signature but only one
5016// active and only one active parameter.
5017//
5018// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureHelp
5019type SignatureHelp struct {
5020 // One or more signatures.
5021 Signatures []SignatureInformation `json:"signatures"`
5022 // The active signature. If omitted or the value lies outside the
5023 // range of `signatures` the value defaults to zero or is ignored if
5024 // the `SignatureHelp` has no signatures.
5025 //
5026 // Whenever possible implementors should make an active decision about
5027 // the active signature and shouldn't rely on a default value.
5028 //
5029 // In future version of the protocol this property might become
5030 // mandatory to better express this.
5031 ActiveSignature uint32 `json:"activeSignature,omitempty"`
5032 // The active parameter of the active signature.
5033 //
5034 // If `null`, no parameter of the signature is active (for example a named
5035 // argument that does not match any declared parameters). This is only valid
5036 // if the client specifies the client capability
5037 // `textDocument.signatureHelp.noActiveParameterSupport === true`
5038 //
5039 // If omitted or the value lies outside the range of
5040 // `signatures[activeSignature].parameters` defaults to 0 if the active
5041 // signature has parameters.
5042 //
5043 // If the active signature has no parameters it is ignored.
5044 //
5045 // In future version of the protocol this property might become
5046 // mandatory (but still nullable) to better express the active parameter if
5047 // the active signature does have any.
5048 ActiveParameter uint32 `json:"activeParameter,omitempty"`
5049}
5050
5051// Client Capabilities for a {@link SignatureHelpRequest}.
5052//
5053// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureHelpClientCapabilities
5054type SignatureHelpClientCapabilities struct {
5055 // Whether signature help supports dynamic registration.
5056 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
5057 // The client supports the following `SignatureInformation`
5058 // specific properties.
5059 SignatureInformation *ClientSignatureInformationOptions `json:"signatureInformation,omitempty"`
5060 // The client supports to send additional context information for a
5061 // `textDocument/signatureHelp` request. A client that opts into
5062 // contextSupport will also support the `retriggerCharacters` on
5063 // `SignatureHelpOptions`.
5064 //
5065 // @since 3.15.0
5066 ContextSupport bool `json:"contextSupport,omitempty"`
5067}
5068
5069// Additional information about the context in which a signature help request was triggered.
5070//
5071// @since 3.15.0
5072//
5073// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureHelpContext
5074type SignatureHelpContext struct {
5075 // Action that caused signature help to be triggered.
5076 TriggerKind SignatureHelpTriggerKind `json:"triggerKind"`
5077 // Character that caused signature help to be triggered.
5078 //
5079 // This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
5080 TriggerCharacter string `json:"triggerCharacter,omitempty"`
5081 // `true` if signature help was already showing when it was triggered.
5082 //
5083 // Retriggers occurs when the signature help is already active and can be caused by actions such as
5084 // typing a trigger character, a cursor move, or document content changes.
5085 IsRetrigger bool `json:"isRetrigger"`
5086 // The currently active `SignatureHelp`.
5087 //
5088 // The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
5089 // the user navigating through available signatures.
5090 ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitempty"`
5091}
5092
5093// Server Capabilities for a {@link SignatureHelpRequest}.
5094//
5095// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureHelpOptions
5096type SignatureHelpOptions struct {
5097 // List of characters that trigger signature help automatically.
5098 TriggerCharacters []string `json:"triggerCharacters,omitempty"`
5099 // List of characters that re-trigger signature help.
5100 //
5101 // These trigger characters are only active when signature help is already showing. All trigger characters
5102 // are also counted as re-trigger characters.
5103 //
5104 // @since 3.15.0
5105 RetriggerCharacters []string `json:"retriggerCharacters,omitempty"`
5106 WorkDoneProgressOptions
5107}
5108
5109// Parameters for a {@link SignatureHelpRequest}.
5110//
5111// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureHelpParams
5112type SignatureHelpParams struct {
5113 // The signature help context. This is only available if the client specifies
5114 // to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
5115 //
5116 // @since 3.15.0
5117 Context *SignatureHelpContext `json:"context,omitempty"`
5118 TextDocumentPositionParams
5119 WorkDoneProgressParams
5120}
5121
5122// Registration options for a {@link SignatureHelpRequest}.
5123//
5124// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureHelpRegistrationOptions
5125type SignatureHelpRegistrationOptions struct {
5126 TextDocumentRegistrationOptions
5127 SignatureHelpOptions
5128}
5129
5130// How a signature help was triggered.
5131//
5132// @since 3.15.0
5133type SignatureHelpTriggerKind uint32
5134
5135// Represents the signature of something callable. A signature
5136// can have a label, like a function-name, a doc-comment, and
5137// a set of parameters.
5138//
5139// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#signatureInformation
5140type SignatureInformation struct {
5141 // The label of this signature. Will be shown in
5142 // the UI.
5143 Label string `json:"label"`
5144 // The human-readable doc-comment of this signature. Will be shown
5145 // in the UI but can be omitted.
5146 Documentation *Or_SignatureInformation_documentation `json:"documentation,omitempty"`
5147 // The parameters of this signature.
5148 Parameters []ParameterInformation `json:"parameters,omitempty"`
5149 // The index of the active parameter.
5150 //
5151 // If `null`, no parameter of the signature is active (for example a named
5152 // argument that does not match any declared parameters). This is only valid
5153 // if the client specifies the client capability
5154 // `textDocument.signatureHelp.noActiveParameterSupport === true`
5155 //
5156 // If provided (or `null`), this is used in place of
5157 // `SignatureHelp.activeParameter`.
5158 //
5159 // @since 3.16.0
5160 ActiveParameter uint32 `json:"activeParameter,omitempty"`
5161}
5162
5163// An interactive text edit.
5164//
5165// @since 3.18.0
5166// @proposed
5167//
5168// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#snippetTextEdit
5169type SnippetTextEdit struct {
5170 // The range of the text document to be manipulated.
5171 Range Range `json:"range"`
5172 // The snippet to be inserted.
5173 Snippet StringValue `json:"snippet"`
5174 // The actual identifier of the snippet edit.
5175 AnnotationID *ChangeAnnotationIdentifier `json:"annotationId,omitempty"`
5176}
5177
5178// @since 3.18.0
5179//
5180// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#staleRequestSupportOptions
5181type StaleRequestSupportOptions struct {
5182 // The client will actively cancel the request.
5183 Cancel bool `json:"cancel"`
5184 // The list of requests for which the client
5185 // will retry the request if it receives a
5186 // response with error code `ContentModified`
5187 RetryOnContentModified []string `json:"retryOnContentModified"`
5188}
5189
5190// Static registration options to be returned in the initialize
5191// request.
5192//
5193// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#staticRegistrationOptions
5194type StaticRegistrationOptions struct {
5195 // The id used to register the request. The id can be used to deregister
5196 // the request again. See also Registration#id.
5197 ID string `json:"id,omitempty"`
5198}
5199
5200// A string value used as a snippet is a template which allows to insert text
5201// and to control the editor cursor when insertion happens.
5202//
5203// A snippet can define tab stops and placeholders with `$1`, `$2`
5204// and `${3:foo}`. `$0` defines the final tab stop, it defaults to
5205// the end of the snippet. Variables are defined with `$name` and
5206// `${name:default value}`.
5207//
5208// @since 3.18.0
5209// @proposed
5210//
5211// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#stringValue
5212type StringValue struct {
5213 // The kind of string value.
5214 Kind string `json:"kind"`
5215 // The snippet string.
5216 Value string `json:"value"`
5217}
5218
5219// Represents information about programming constructs like variables, classes,
5220// interfaces etc.
5221//
5222// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#symbolInformation
5223type SymbolInformation struct {
5224 // extends BaseSymbolInformation
5225 // Indicates if this symbol is deprecated.
5226 //
5227 // @deprecated Use tags instead
5228 Deprecated bool `json:"deprecated,omitempty"`
5229 // The location of this symbol. The location's range is used by a tool
5230 // to reveal the location in the editor. If the symbol is selected in the
5231 // tool the range's start information is used to position the cursor. So
5232 // the range usually spans more than the actual symbol's name and does
5233 // normally include things like visibility modifiers.
5234 //
5235 // The range doesn't have to denote a node range in the sense of an abstract
5236 // syntax tree. It can therefore not be used to re-construct a hierarchy of
5237 // the symbols.
5238 Location Location `json:"location"`
5239 // The name of this symbol.
5240 Name string `json:"name"`
5241 // The kind of this symbol.
5242 Kind SymbolKind `json:"kind"`
5243 // Tags for this symbol.
5244 //
5245 // @since 3.16.0
5246 Tags []SymbolTag `json:"tags,omitempty"`
5247 // The name of the symbol containing this symbol. This information is for
5248 // user interface purposes (e.g. to render a qualifier in the user interface
5249 // if necessary). It can't be used to re-infer a hierarchy for the document
5250 // symbols.
5251 ContainerName string `json:"containerName,omitempty"`
5252}
5253
5254// A symbol kind.
5255type SymbolKind uint32
5256
5257// Symbol tags are extra annotations that tweak the rendering of a symbol.
5258//
5259// @since 3.16
5260type SymbolTag uint32
5261
5262// Describe options to be used when registered for text document change events.
5263//
5264// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentChangeRegistrationOptions
5265type TextDocumentChangeRegistrationOptions struct {
5266 // How documents are synced to the server.
5267 SyncKind TextDocumentSyncKind `json:"syncKind"`
5268 TextDocumentRegistrationOptions
5269}
5270
5271// Text document specific client capabilities.
5272//
5273// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentClientCapabilities
5274type TextDocumentClientCapabilities struct {
5275 // Defines which synchronization capabilities the client supports.
5276 Synchronization *TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"`
5277 // Capabilities specific to the `textDocument/completion` request.
5278 Completion CompletionClientCapabilities `json:"completion,omitempty"`
5279 // Capabilities specific to the `textDocument/hover` request.
5280 Hover *HoverClientCapabilities `json:"hover,omitempty"`
5281 // Capabilities specific to the `textDocument/signatureHelp` request.
5282 SignatureHelp *SignatureHelpClientCapabilities `json:"signatureHelp,omitempty"`
5283 // Capabilities specific to the `textDocument/declaration` request.
5284 //
5285 // @since 3.14.0
5286 Declaration *DeclarationClientCapabilities `json:"declaration,omitempty"`
5287 // Capabilities specific to the `textDocument/definition` request.
5288 Definition *DefinitionClientCapabilities `json:"definition,omitempty"`
5289 // Capabilities specific to the `textDocument/typeDefinition` request.
5290 //
5291 // @since 3.6.0
5292 TypeDefinition *TypeDefinitionClientCapabilities `json:"typeDefinition,omitempty"`
5293 // Capabilities specific to the `textDocument/implementation` request.
5294 //
5295 // @since 3.6.0
5296 Implementation *ImplementationClientCapabilities `json:"implementation,omitempty"`
5297 // Capabilities specific to the `textDocument/references` request.
5298 References *ReferenceClientCapabilities `json:"references,omitempty"`
5299 // Capabilities specific to the `textDocument/documentHighlight` request.
5300 DocumentHighlight *DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"`
5301 // Capabilities specific to the `textDocument/documentSymbol` request.
5302 DocumentSymbol DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"`
5303 // Capabilities specific to the `textDocument/codeAction` request.
5304 CodeAction CodeActionClientCapabilities `json:"codeAction,omitempty"`
5305 // Capabilities specific to the `textDocument/codeLens` request.
5306 CodeLens *CodeLensClientCapabilities `json:"codeLens,omitempty"`
5307 // Capabilities specific to the `textDocument/documentLink` request.
5308 DocumentLink *DocumentLinkClientCapabilities `json:"documentLink,omitempty"`
5309 // Capabilities specific to the `textDocument/documentColor` and the
5310 // `textDocument/colorPresentation` request.
5311 //
5312 // @since 3.6.0
5313 ColorProvider *DocumentColorClientCapabilities `json:"colorProvider,omitempty"`
5314 // Capabilities specific to the `textDocument/formatting` request.
5315 Formatting *DocumentFormattingClientCapabilities `json:"formatting,omitempty"`
5316 // Capabilities specific to the `textDocument/rangeFormatting` request.
5317 RangeFormatting *DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"`
5318 // Capabilities specific to the `textDocument/onTypeFormatting` request.
5319 OnTypeFormatting *DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"`
5320 // Capabilities specific to the `textDocument/rename` request.
5321 Rename *RenameClientCapabilities `json:"rename,omitempty"`
5322 // Capabilities specific to the `textDocument/foldingRange` request.
5323 //
5324 // @since 3.10.0
5325 FoldingRange *FoldingRangeClientCapabilities `json:"foldingRange,omitempty"`
5326 // Capabilities specific to the `textDocument/selectionRange` request.
5327 //
5328 // @since 3.15.0
5329 SelectionRange *SelectionRangeClientCapabilities `json:"selectionRange,omitempty"`
5330 // Capabilities specific to the `textDocument/publishDiagnostics` notification.
5331 PublishDiagnostics PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"`
5332 // Capabilities specific to the various call hierarchy requests.
5333 //
5334 // @since 3.16.0
5335 CallHierarchy *CallHierarchyClientCapabilities `json:"callHierarchy,omitempty"`
5336 // Capabilities specific to the various semantic token request.
5337 //
5338 // @since 3.16.0
5339 SemanticTokens SemanticTokensClientCapabilities `json:"semanticTokens,omitempty"`
5340 // Capabilities specific to the `textDocument/linkedEditingRange` request.
5341 //
5342 // @since 3.16.0
5343 LinkedEditingRange *LinkedEditingRangeClientCapabilities `json:"linkedEditingRange,omitempty"`
5344 // Client capabilities specific to the `textDocument/moniker` request.
5345 //
5346 // @since 3.16.0
5347 Moniker *MonikerClientCapabilities `json:"moniker,omitempty"`
5348 // Capabilities specific to the various type hierarchy requests.
5349 //
5350 // @since 3.17.0
5351 TypeHierarchy *TypeHierarchyClientCapabilities `json:"typeHierarchy,omitempty"`
5352 // Capabilities specific to the `textDocument/inlineValue` request.
5353 //
5354 // @since 3.17.0
5355 InlineValue *InlineValueClientCapabilities `json:"inlineValue,omitempty"`
5356 // Capabilities specific to the `textDocument/inlayHint` request.
5357 //
5358 // @since 3.17.0
5359 InlayHint *InlayHintClientCapabilities `json:"inlayHint,omitempty"`
5360 // Capabilities specific to the diagnostic pull model.
5361 //
5362 // @since 3.17.0
5363 Diagnostic *DiagnosticClientCapabilities `json:"diagnostic,omitempty"`
5364 // Client capabilities specific to inline completions.
5365 //
5366 // @since 3.18.0
5367 // @proposed
5368 InlineCompletion *InlineCompletionClientCapabilities `json:"inlineCompletion,omitempty"`
5369}
5370
5371// An event describing a change to a text document. If only a text is provided
5372// it is considered to be the full content of the document.
5373//
5374// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentChangeEvent
5375type (
5376 TextDocumentContentChangeEvent = Or_TextDocumentContentChangeEvent // (alias)
5377 // @since 3.18.0
5378 //
5379 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentChangePartial
5380 TextDocumentContentChangePartial struct {
5381 // The range of the document that changed.
5382 Range *Range `json:"range,omitempty"`
5383 // The optional length of the range that got replaced.
5384 //
5385 // @deprecated use range instead.
5386 RangeLength uint32 `json:"rangeLength,omitempty"`
5387 // The new text for the provided range.
5388 Text string `json:"text"`
5389 }
5390)
5391
5392// @since 3.18.0
5393//
5394// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentChangeWholeDocument
5395type TextDocumentContentChangeWholeDocument struct {
5396 // The new text of the whole document.
5397 Text string `json:"text"`
5398}
5399
5400// Client capabilities for a text document content provider.
5401//
5402// @since 3.18.0
5403// @proposed
5404//
5405// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentClientCapabilities
5406type TextDocumentContentClientCapabilities struct {
5407 // Text document content provider supports dynamic registration.
5408 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
5409}
5410
5411// Text document content provider options.
5412//
5413// @since 3.18.0
5414// @proposed
5415//
5416// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentOptions
5417type TextDocumentContentOptions struct {
5418 // The scheme for which the server provides content.
5419 Scheme string `json:"scheme"`
5420}
5421
5422// Parameters for the `workspace/textDocumentContent` request.
5423//
5424// @since 3.18.0
5425// @proposed
5426//
5427// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentParams
5428type TextDocumentContentParams struct {
5429 // The uri of the text document.
5430 URI DocumentURI `json:"uri"`
5431}
5432
5433// Parameters for the `workspace/textDocumentContent/refresh` request.
5434//
5435// @since 3.18.0
5436// @proposed
5437//
5438// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentRefreshParams
5439type TextDocumentContentRefreshParams struct {
5440 // The uri of the text document to refresh.
5441 URI DocumentURI `json:"uri"`
5442}
5443
5444// Text document content provider registration options.
5445//
5446// @since 3.18.0
5447// @proposed
5448//
5449// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentContentRegistrationOptions
5450type TextDocumentContentRegistrationOptions struct {
5451 TextDocumentContentOptions
5452 StaticRegistrationOptions
5453}
5454
5455// Describes textual changes on a text document. A TextDocumentEdit describes all changes
5456// on a document version Si and after they are applied move the document to version Si+1.
5457// So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any
5458// kind of ordering. However the edits must be non overlapping.
5459//
5460// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentEdit
5461type TextDocumentEdit struct {
5462 // The text document to change.
5463 TextDocument OptionalVersionedTextDocumentIdentifier `json:"textDocument"`
5464 // The edits to be applied.
5465 //
5466 // @since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
5467 // client capability.
5468 //
5469 // @since 3.18.0 - support for SnippetTextEdit. This is guarded using a
5470 // client capability.
5471 Edits []Or_TextDocumentEdit_edits_Elem `json:"edits"`
5472}
5473
5474// A document filter denotes a document by different properties like
5475// the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
5476// its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
5477//
5478// Glob patterns can have the following syntax:
5479//
5480// - `*` to match one or more characters in a path segment
5481// - `?` to match on one character in a path segment
5482// - `**` to match any number of path segments, including none
5483// - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files)
5484// - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
5485// - `[!...]` 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`)
5486//
5487// @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
5488// @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
5489//
5490// @since 3.17.0
5491//
5492// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentFilter
5493type (
5494 TextDocumentFilter = Or_TextDocumentFilter // (alias)
5495 // A document filter where `language` is required field.
5496 //
5497 // @since 3.18.0
5498 //
5499 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentFilterLanguage
5500 TextDocumentFilterLanguage struct {
5501 // A language id, like `typescript`.
5502 Language string `json:"language"`
5503 // A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
5504 Scheme string `json:"scheme,omitempty"`
5505 // A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
5506 //
5507 // @since 3.18.0 - support for relative patterns.
5508 Pattern *GlobPattern `json:"pattern,omitempty"`
5509 }
5510)
5511
5512// A document filter where `pattern` is required field.
5513//
5514// @since 3.18.0
5515//
5516// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentFilterPattern
5517type TextDocumentFilterPattern struct {
5518 // A language id, like `typescript`.
5519 Language string `json:"language,omitempty"`
5520 // A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
5521 Scheme string `json:"scheme,omitempty"`
5522 // A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
5523 //
5524 // @since 3.18.0 - support for relative patterns.
5525 Pattern GlobPattern `json:"pattern"`
5526}
5527
5528// A document filter where `scheme` is required field.
5529//
5530// @since 3.18.0
5531//
5532// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentFilterScheme
5533type TextDocumentFilterScheme struct {
5534 // A language id, like `typescript`.
5535 Language string `json:"language,omitempty"`
5536 // A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
5537 Scheme string `json:"scheme"`
5538 // A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
5539 //
5540 // @since 3.18.0 - support for relative patterns.
5541 Pattern *GlobPattern `json:"pattern,omitempty"`
5542}
5543
5544// A literal to identify a text document in the client.
5545//
5546// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentIdentifier
5547type TextDocumentIdentifier struct {
5548 // The text document's uri.
5549 URI DocumentURI `json:"uri"`
5550}
5551
5552// An item to transfer a text document from the client to the
5553// server.
5554//
5555// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentItem
5556type TextDocumentItem struct {
5557 // The text document's uri.
5558 URI DocumentURI `json:"uri"`
5559 // The text document's language identifier.
5560 LanguageID LanguageKind `json:"languageId"`
5561 // The version number of this document (it will increase after each
5562 // change, including undo/redo).
5563 Version int32 `json:"version"`
5564 // The content of the opened text document.
5565 Text string `json:"text"`
5566}
5567
5568// A parameter literal used in requests to pass a text document and a position inside that
5569// document.
5570//
5571// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentPositionParams
5572type TextDocumentPositionParams struct {
5573 // The text document.
5574 TextDocument TextDocumentIdentifier `json:"textDocument"`
5575 // The position inside the text document.
5576 Position Position `json:"position"`
5577}
5578
5579// General text document registration options.
5580//
5581// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentRegistrationOptions
5582type TextDocumentRegistrationOptions struct {
5583 // A document selector to identify the scope of the registration. If set to null
5584 // the document selector provided on the client side will be used.
5585 DocumentSelector DocumentSelector `json:"documentSelector"`
5586}
5587
5588// Represents reasons why a text document is saved.
5589type TextDocumentSaveReason uint32
5590
5591// Save registration options.
5592//
5593// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentSaveRegistrationOptions
5594type TextDocumentSaveRegistrationOptions struct {
5595 TextDocumentRegistrationOptions
5596 SaveOptions
5597}
5598
5599// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentSyncClientCapabilities
5600type TextDocumentSyncClientCapabilities struct {
5601 // Whether text document synchronization supports dynamic registration.
5602 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
5603 // The client supports sending will save notifications.
5604 WillSave bool `json:"willSave,omitempty"`
5605 // The client supports sending a will save request and
5606 // waits for a response providing text edits which will
5607 // be applied to the document before it is saved.
5608 WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
5609 // The client supports did save notifications.
5610 DidSave bool `json:"didSave,omitempty"`
5611}
5612
5613// Defines how the host (editor) should sync
5614// document changes to the language server.
5615type TextDocumentSyncKind uint32
5616
5617// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textDocumentSyncOptions
5618type TextDocumentSyncOptions struct {
5619 // Open and close notifications are sent to the server. If omitted open close notification should not
5620 // be sent.
5621 OpenClose bool `json:"openClose,omitempty"`
5622 // Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
5623 // and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None.
5624 Change TextDocumentSyncKind `json:"change,omitempty"`
5625 // If present will save notifications are sent to the server. If omitted the notification should not be
5626 // sent.
5627 WillSave bool `json:"willSave,omitempty"`
5628 // If present will save wait until requests are sent to the server. If omitted the request should not be
5629 // sent.
5630 WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
5631 // If present save notifications are sent to the server. If omitted the notification should not be
5632 // sent.
5633 Save *SaveOptions `json:"save,omitempty"`
5634}
5635
5636// A text edit applicable to a text document.
5637//
5638// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#textEdit
5639type TextEdit struct {
5640 // The range of the text document to be manipulated. To insert
5641 // text into a document create a range where start === end.
5642 Range Range `json:"range"`
5643 // The string to be inserted. For delete operations use an
5644 // empty string.
5645 NewText string `json:"newText"`
5646}
5647type (
5648 TokenFormat string
5649 TraceValue string
5650)
5651
5652// created for Tuple
5653type Tuple_ParameterInformation_label_Item1 struct {
5654 Fld0 uint32 `json:"fld0"`
5655 Fld1 uint32 `json:"fld1"`
5656}
5657
5658// Since 3.6.0
5659//
5660// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeDefinitionClientCapabilities
5661type TypeDefinitionClientCapabilities struct {
5662 // Whether implementation supports dynamic registration. If this is set to `true`
5663 // the client supports the new `TypeDefinitionRegistrationOptions` return value
5664 // for the corresponding server capability as well.
5665 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
5666 // The client supports additional metadata in the form of definition links.
5667 //
5668 // Since 3.14.0
5669 LinkSupport bool `json:"linkSupport,omitempty"`
5670}
5671
5672// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeDefinitionOptions
5673type TypeDefinitionOptions struct {
5674 WorkDoneProgressOptions
5675}
5676
5677// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeDefinitionParams
5678type TypeDefinitionParams struct {
5679 TextDocumentPositionParams
5680 WorkDoneProgressParams
5681 PartialResultParams
5682}
5683
5684// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeDefinitionRegistrationOptions
5685type TypeDefinitionRegistrationOptions struct {
5686 TextDocumentRegistrationOptions
5687 TypeDefinitionOptions
5688 StaticRegistrationOptions
5689}
5690
5691// @since 3.17.0
5692//
5693// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchyClientCapabilities
5694type TypeHierarchyClientCapabilities struct {
5695 // Whether implementation supports dynamic registration. If this is set to `true`
5696 // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5697 // return value for the corresponding server capability as well.
5698 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
5699}
5700
5701// @since 3.17.0
5702//
5703// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchyItem
5704type TypeHierarchyItem struct {
5705 // The name of this item.
5706 Name string `json:"name"`
5707 // The kind of this item.
5708 Kind SymbolKind `json:"kind"`
5709 // Tags for this item.
5710 Tags []SymbolTag `json:"tags,omitempty"`
5711 // More detail for this item, e.g. the signature of a function.
5712 Detail string `json:"detail,omitempty"`
5713 // The resource identifier of this item.
5714 URI DocumentURI `json:"uri"`
5715 // The range enclosing this symbol not including leading/trailing whitespace
5716 // but everything else, e.g. comments and code.
5717 Range Range `json:"range"`
5718 // The range that should be selected and revealed when this symbol is being
5719 // picked, e.g. the name of a function. Must be contained by the
5720 // {@link TypeHierarchyItem.range `range`}.
5721 SelectionRange Range `json:"selectionRange"`
5722 // A data entry field that is preserved between a type hierarchy prepare and
5723 // supertypes or subtypes requests. It could also be used to identify the
5724 // type hierarchy in the server, helping improve the performance on
5725 // resolving supertypes and subtypes.
5726 Data interface{} `json:"data,omitempty"`
5727}
5728
5729// Type hierarchy options used during static registration.
5730//
5731// @since 3.17.0
5732//
5733// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchyOptions
5734type TypeHierarchyOptions struct {
5735 WorkDoneProgressOptions
5736}
5737
5738// The parameter of a `textDocument/prepareTypeHierarchy` request.
5739//
5740// @since 3.17.0
5741//
5742// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchyPrepareParams
5743type TypeHierarchyPrepareParams struct {
5744 TextDocumentPositionParams
5745 WorkDoneProgressParams
5746}
5747
5748// Type hierarchy options used during static or dynamic registration.
5749//
5750// @since 3.17.0
5751//
5752// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchyRegistrationOptions
5753type TypeHierarchyRegistrationOptions struct {
5754 TextDocumentRegistrationOptions
5755 TypeHierarchyOptions
5756 StaticRegistrationOptions
5757}
5758
5759// The parameter of a `typeHierarchy/subtypes` request.
5760//
5761// @since 3.17.0
5762//
5763// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchySubtypesParams
5764type TypeHierarchySubtypesParams struct {
5765 Item TypeHierarchyItem `json:"item"`
5766 WorkDoneProgressParams
5767 PartialResultParams
5768}
5769
5770// The parameter of a `typeHierarchy/supertypes` request.
5771//
5772// @since 3.17.0
5773//
5774// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#typeHierarchySupertypesParams
5775type TypeHierarchySupertypesParams struct {
5776 Item TypeHierarchyItem `json:"item"`
5777 WorkDoneProgressParams
5778 PartialResultParams
5779}
5780
5781// A diagnostic report indicating that the last returned
5782// report is still accurate.
5783//
5784// @since 3.17.0
5785//
5786// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#unchangedDocumentDiagnosticReport
5787type UnchangedDocumentDiagnosticReport struct {
5788 // A document diagnostic report indicating
5789 // no changes to the last result. A server can
5790 // only return `unchanged` if result ids are
5791 // provided.
5792 Kind string `json:"kind"`
5793 // A result id which will be sent on the next
5794 // diagnostic request for the same document.
5795 ResultID string `json:"resultId"`
5796}
5797
5798// Moniker uniqueness level to define scope of the moniker.
5799//
5800// @since 3.16.0
5801type UniquenessLevel string
5802
5803// General parameters to unregister a request or notification.
5804//
5805// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#unregistration
5806type Unregistration struct {
5807 // The id used to unregister the request or notification. Usually an id
5808 // provided during the register request.
5809 ID string `json:"id"`
5810 // The method to unregister for.
5811 Method string `json:"method"`
5812}
5813
5814// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#unregistrationParams
5815type UnregistrationParams struct {
5816 Unregisterations []Unregistration `json:"unregisterations"`
5817}
5818
5819// A versioned notebook document identifier.
5820//
5821// @since 3.17.0
5822//
5823// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#versionedNotebookDocumentIdentifier
5824type VersionedNotebookDocumentIdentifier struct {
5825 // The version number of this notebook document.
5826 Version int32 `json:"version"`
5827 // The notebook document's uri.
5828 URI URI `json:"uri"`
5829}
5830
5831// A text document identifier to denote a specific version of a text document.
5832//
5833// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#versionedTextDocumentIdentifier
5834type VersionedTextDocumentIdentifier struct {
5835 // The version number of this document.
5836 Version int32 `json:"version"`
5837 TextDocumentIdentifier
5838}
5839type (
5840 WatchKind = uint32 // The parameters sent in a will save text document notification.
5841 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#willSaveTextDocumentParams
5842 WillSaveTextDocumentParams struct {
5843 // The document that will be saved.
5844 TextDocument TextDocumentIdentifier `json:"textDocument"`
5845 // The 'TextDocumentSaveReason'.
5846 Reason TextDocumentSaveReason `json:"reason"`
5847 }
5848)
5849
5850// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#windowClientCapabilities
5851type WindowClientCapabilities struct {
5852 // It indicates whether the client supports server initiated
5853 // progress using the `window/workDoneProgress/create` request.
5854 //
5855 // The capability also controls Whether client supports handling
5856 // of progress notifications. If set servers are allowed to report a
5857 // `workDoneProgress` property in the request specific server
5858 // capabilities.
5859 //
5860 // @since 3.15.0
5861 WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
5862 // Capabilities specific to the showMessage request.
5863 //
5864 // @since 3.16.0
5865 ShowMessage *ShowMessageRequestClientCapabilities `json:"showMessage,omitempty"`
5866 // Capabilities specific to the showDocument request.
5867 //
5868 // @since 3.16.0
5869 ShowDocument *ShowDocumentClientCapabilities `json:"showDocument,omitempty"`
5870}
5871
5872// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressBegin
5873type WorkDoneProgressBegin struct {
5874 Kind string `json:"kind"`
5875 // Mandatory title of the progress operation. Used to briefly inform about
5876 // the kind of operation being performed.
5877 //
5878 // Examples: "Indexing" or "Linking dependencies".
5879 Title string `json:"title"`
5880 // Controls if a cancel button should show to allow the user to cancel the
5881 // long running operation. Clients that don't support cancellation are allowed
5882 // to ignore the setting.
5883 Cancellable bool `json:"cancellable,omitempty"`
5884 // Optional, more detailed associated progress message. Contains
5885 // complementary information to the `title`.
5886 //
5887 // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
5888 // If unset, the previous progress message (if any) is still valid.
5889 Message string `json:"message,omitempty"`
5890 // Optional progress percentage to display (value 100 is considered 100%).
5891 // If not provided infinite progress is assumed and clients are allowed
5892 // to ignore the `percentage` value in subsequent in report notifications.
5893 //
5894 // The value should be steadily rising. Clients are free to ignore values
5895 // that are not following this rule. The value range is [0, 100].
5896 Percentage uint32 `json:"percentage,omitempty"`
5897}
5898
5899// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressCancelParams
5900type WorkDoneProgressCancelParams struct {
5901 // The token to be used to report progress.
5902 Token ProgressToken `json:"token"`
5903}
5904
5905// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressCreateParams
5906type WorkDoneProgressCreateParams struct {
5907 // The token to be used to report progress.
5908 Token ProgressToken `json:"token"`
5909}
5910
5911// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressEnd
5912type WorkDoneProgressEnd struct {
5913 Kind string `json:"kind"`
5914 // Optional, a final message indicating to for example indicate the outcome
5915 // of the operation.
5916 Message string `json:"message,omitempty"`
5917}
5918
5919// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressOptions
5920type WorkDoneProgressOptions struct {
5921 WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
5922}
5923
5924// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressParams
5925type WorkDoneProgressParams struct {
5926 // An optional token that a server can use to report work done progress.
5927 WorkDoneToken ProgressToken `json:"workDoneToken,omitempty"`
5928}
5929
5930// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workDoneProgressReport
5931type WorkDoneProgressReport struct {
5932 Kind string `json:"kind"`
5933 // Controls enablement state of a cancel button.
5934 //
5935 // Clients that don't support cancellation or don't support controlling the button's
5936 // enablement state are allowed to ignore the property.
5937 Cancellable bool `json:"cancellable,omitempty"`
5938 // Optional, more detailed associated progress message. Contains
5939 // complementary information to the `title`.
5940 //
5941 // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
5942 // If unset, the previous progress message (if any) is still valid.
5943 Message string `json:"message,omitempty"`
5944 // Optional progress percentage to display (value 100 is considered 100%).
5945 // If not provided infinite progress is assumed and clients are allowed
5946 // to ignore the `percentage` value in subsequent in report notifications.
5947 //
5948 // The value should be steadily rising. Clients are free to ignore values
5949 // that are not following this rule. The value range is [0, 100]
5950 Percentage uint32 `json:"percentage,omitempty"`
5951}
5952
5953// Workspace specific client capabilities.
5954//
5955// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceClientCapabilities
5956type WorkspaceClientCapabilities struct {
5957 // The client supports applying batch edits
5958 // to the workspace by supporting the request
5959 // 'workspace/applyEdit'
5960 ApplyEdit bool `json:"applyEdit,omitempty"`
5961 // Capabilities specific to `WorkspaceEdit`s.
5962 WorkspaceEdit *WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"`
5963 // Capabilities specific to the `workspace/didChangeConfiguration` notification.
5964 DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"`
5965 // Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
5966 DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"`
5967 // Capabilities specific to the `workspace/symbol` request.
5968 Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"`
5969 // Capabilities specific to the `workspace/executeCommand` request.
5970 ExecuteCommand *ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"`
5971 // The client has support for workspace folders.
5972 //
5973 // @since 3.6.0
5974 WorkspaceFolders bool `json:"workspaceFolders,omitempty"`
5975 // The client supports `workspace/configuration` requests.
5976 //
5977 // @since 3.6.0
5978 Configuration bool `json:"configuration,omitempty"`
5979 // Capabilities specific to the semantic token requests scoped to the
5980 // workspace.
5981 //
5982 // @since 3.16.0.
5983 SemanticTokens *SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"`
5984 // Capabilities specific to the code lens requests scoped to the
5985 // workspace.
5986 //
5987 // @since 3.16.0.
5988 CodeLens *CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"`
5989 // The client has support for file notifications/requests for user operations on files.
5990 //
5991 // Since 3.16.0
5992 FileOperations *FileOperationClientCapabilities `json:"fileOperations,omitempty"`
5993 // Capabilities specific to the inline values requests scoped to the
5994 // workspace.
5995 //
5996 // @since 3.17.0.
5997 InlineValue *InlineValueWorkspaceClientCapabilities `json:"inlineValue,omitempty"`
5998 // Capabilities specific to the inlay hint requests scoped to the
5999 // workspace.
6000 //
6001 // @since 3.17.0.
6002 InlayHint *InlayHintWorkspaceClientCapabilities `json:"inlayHint,omitempty"`
6003 // Capabilities specific to the diagnostic requests scoped to the
6004 // workspace.
6005 //
6006 // @since 3.17.0.
6007 Diagnostics *DiagnosticWorkspaceClientCapabilities `json:"diagnostics,omitempty"`
6008 // Capabilities specific to the folding range requests scoped to the workspace.
6009 //
6010 // @since 3.18.0
6011 // @proposed
6012 FoldingRange *FoldingRangeWorkspaceClientCapabilities `json:"foldingRange,omitempty"`
6013 // Capabilities specific to the `workspace/textDocumentContent` request.
6014 //
6015 // @since 3.18.0
6016 // @proposed
6017 TextDocumentContent *TextDocumentContentClientCapabilities `json:"textDocumentContent,omitempty"`
6018}
6019
6020// Parameters of the workspace diagnostic request.
6021//
6022// @since 3.17.0
6023//
6024// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceDiagnosticParams
6025type WorkspaceDiagnosticParams struct {
6026 // The additional identifier provided during registration.
6027 Identifier string `json:"identifier,omitempty"`
6028 // The currently known diagnostic reports with their
6029 // previous result ids.
6030 PreviousResultIds []PreviousResultId `json:"previousResultIds"`
6031 WorkDoneProgressParams
6032 PartialResultParams
6033}
6034
6035// A workspace diagnostic report.
6036//
6037// @since 3.17.0
6038//
6039// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceDiagnosticReport
6040type WorkspaceDiagnosticReport struct {
6041 Items []WorkspaceDocumentDiagnosticReport `json:"items"`
6042}
6043
6044// A partial result for a workspace diagnostic report.
6045//
6046// @since 3.17.0
6047//
6048// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceDiagnosticReportPartialResult
6049type WorkspaceDiagnosticReportPartialResult struct {
6050 Items []WorkspaceDocumentDiagnosticReport `json:"items"`
6051}
6052
6053// A workspace diagnostic document report.
6054//
6055// @since 3.17.0
6056//
6057// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceDocumentDiagnosticReport
6058type (
6059 WorkspaceDocumentDiagnosticReport = Or_WorkspaceDocumentDiagnosticReport // (alias)
6060 // A workspace edit represents changes to many resources managed in the workspace. The edit
6061 // should either provide `changes` or `documentChanges`. If documentChanges are present
6062 // they are preferred over `changes` if the client can handle versioned document edits.
6063 //
6064 // Since version 3.13.0 a workspace edit can contain resource operations as well. If resource
6065 // operations are present clients need to execute the operations in the order in which they
6066 // are provided. So a workspace edit for example can consist of the following two changes:
6067 // (1) a create file a.txt and (2) a text document edit which insert text into file a.txt.
6068 //
6069 // An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will
6070 // cause failure of the operation. How the client recovers from the failure is described by
6071 // the client capability: `workspace.workspaceEdit.failureHandling`
6072 //
6073 // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceEdit
6074 WorkspaceEdit struct {
6075 // Holds changes to existing resources.
6076 Changes map[DocumentURI][]TextEdit `json:"changes,omitempty"`
6077 // Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
6078 // are either an array of `TextDocumentEdit`s to express changes to n different text documents
6079 // where each text document edit addresses a specific version of a text document. Or it can contain
6080 // above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
6081 //
6082 // Whether a client supports versioned document edits is expressed via
6083 // `workspace.workspaceEdit.documentChanges` client capability.
6084 //
6085 // If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
6086 // only plain `TextEdit`s using the `changes` property are supported.
6087 DocumentChanges []DocumentChange `json:"documentChanges,omitempty"`
6088 // A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and
6089 // delete file / folder operations.
6090 //
6091 // Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.
6092 //
6093 // @since 3.16.0
6094 ChangeAnnotations map[ChangeAnnotationIdentifier]ChangeAnnotation `json:"changeAnnotations,omitempty"`
6095 }
6096)
6097
6098// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceEditClientCapabilities
6099type WorkspaceEditClientCapabilities struct {
6100 // The client supports versioned document changes in `WorkspaceEdit`s
6101 DocumentChanges bool `json:"documentChanges,omitempty"`
6102 // The resource operations the client supports. Clients should at least
6103 // support 'create', 'rename' and 'delete' files and folders.
6104 //
6105 // @since 3.13.0
6106 ResourceOperations []ResourceOperationKind `json:"resourceOperations,omitempty"`
6107 // The failure handling strategy of a client if applying the workspace edit
6108 // fails.
6109 //
6110 // @since 3.13.0
6111 FailureHandling *FailureHandlingKind `json:"failureHandling,omitempty"`
6112 // Whether the client normalizes line endings to the client specific
6113 // setting.
6114 // If set to `true` the client will normalize line ending characters
6115 // in a workspace edit to the client-specified new line
6116 // character.
6117 //
6118 // @since 3.16.0
6119 NormalizesLineEndings bool `json:"normalizesLineEndings,omitempty"`
6120 // Whether the client in general supports change annotations on text edits,
6121 // create file, rename file and delete file changes.
6122 //
6123 // @since 3.16.0
6124 ChangeAnnotationSupport *ChangeAnnotationsSupportOptions `json:"changeAnnotationSupport,omitempty"`
6125 // Whether the client supports `WorkspaceEditMetadata` in `WorkspaceEdit`s.
6126 //
6127 // @since 3.18.0
6128 // @proposed
6129 MetadataSupport bool `json:"metadataSupport,omitempty"`
6130 // Whether the client supports snippets as text edits.
6131 //
6132 // @since 3.18.0
6133 // @proposed
6134 SnippetEditSupport bool `json:"snippetEditSupport,omitempty"`
6135}
6136
6137// Additional data about a workspace edit.
6138//
6139// @since 3.18.0
6140// @proposed
6141//
6142// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceEditMetadata
6143type WorkspaceEditMetadata struct {
6144 // Signal to the editor that this edit is a refactoring.
6145 IsRefactoring bool `json:"isRefactoring,omitempty"`
6146}
6147
6148// A workspace folder inside a client.
6149//
6150// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceFolder
6151type WorkspaceFolder struct {
6152 // The associated URI for this workspace folder.
6153 URI URI `json:"uri"`
6154 // The name of the workspace folder. Used to refer to this
6155 // workspace folder in the user interface.
6156 Name string `json:"name"`
6157}
6158
6159// The workspace folder change event.
6160//
6161// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceFoldersChangeEvent
6162type WorkspaceFoldersChangeEvent struct {
6163 // The array of added workspace folders
6164 Added []WorkspaceFolder `json:"added"`
6165 // The array of the removed workspace folders
6166 Removed []WorkspaceFolder `json:"removed"`
6167}
6168
6169// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceFoldersInitializeParams
6170type WorkspaceFoldersInitializeParams struct {
6171 // The workspace folders configured in the client when the server starts.
6172 //
6173 // This property is only available if the client supports workspace folders.
6174 // It can be `null` if the client supports workspace folders but none are
6175 // configured.
6176 //
6177 // @since 3.6.0
6178 WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders,omitempty"`
6179}
6180
6181// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceFoldersServerCapabilities
6182type WorkspaceFoldersServerCapabilities struct {
6183 // The server has support for workspace folders
6184 Supported bool `json:"supported,omitempty"`
6185 // Whether the server wants to receive workspace folder
6186 // change notifications.
6187 //
6188 // If a string is provided the string is treated as an ID
6189 // under which the notification is registered on the client
6190 // side. The ID can be used to unregister for these events
6191 // using the `client/unregisterCapability` request.
6192 ChangeNotifications *Or_WorkspaceFoldersServerCapabilities_changeNotifications `json:"changeNotifications,omitempty"`
6193}
6194
6195// A full document diagnostic report for a workspace diagnostic result.
6196//
6197// @since 3.17.0
6198//
6199// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceFullDocumentDiagnosticReport
6200type WorkspaceFullDocumentDiagnosticReport struct {
6201 // The URI for which diagnostic information is reported.
6202 URI DocumentURI `json:"uri"`
6203 // The version number for which the diagnostics are reported.
6204 // If the document is not marked as open `null` can be provided.
6205 Version int32 `json:"version"`
6206 FullDocumentDiagnosticReport
6207}
6208
6209// Defines workspace specific capabilities of the server.
6210//
6211// @since 3.18.0
6212//
6213// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceOptions
6214type WorkspaceOptions struct {
6215 // The server supports workspace folder.
6216 //
6217 // @since 3.6.0
6218 WorkspaceFolders *WorkspaceFoldersServerCapabilities `json:"workspaceFolders,omitempty"`
6219 // The server is interested in notifications/requests for operations on files.
6220 //
6221 // @since 3.16.0
6222 FileOperations *FileOperationOptions `json:"fileOperations,omitempty"`
6223 // The server supports the `workspace/textDocumentContent` request.
6224 //
6225 // @since 3.18.0
6226 // @proposed
6227 TextDocumentContent *Or_WorkspaceOptions_textDocumentContent `json:"textDocumentContent,omitempty"`
6228}
6229
6230// A special workspace symbol that supports locations without a range.
6231//
6232// See also SymbolInformation.
6233//
6234// @since 3.17.0
6235//
6236// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceSymbol
6237type WorkspaceSymbol struct {
6238 // The location of the symbol. Whether a server is allowed to
6239 // return a location without a range depends on the client
6240 // capability `workspace.symbol.resolveSupport`.
6241 //
6242 // See SymbolInformation#location for more details.
6243 Location Or_WorkspaceSymbol_location `json:"location"`
6244 // A data entry field that is preserved on a workspace symbol between a
6245 // workspace symbol request and a workspace symbol resolve request.
6246 Data interface{} `json:"data,omitempty"`
6247 BaseSymbolInformation
6248}
6249
6250// Client capabilities for a {@link WorkspaceSymbolRequest}.
6251//
6252// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceSymbolClientCapabilities
6253type WorkspaceSymbolClientCapabilities struct {
6254 // Symbol request supports dynamic registration.
6255 DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
6256 // Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
6257 SymbolKind *ClientSymbolKindOptions `json:"symbolKind,omitempty"`
6258 // The client supports tags on `SymbolInformation`.
6259 // Clients supporting tags have to handle unknown tags gracefully.
6260 //
6261 // @since 3.16.0
6262 TagSupport *ClientSymbolTagOptions `json:"tagSupport,omitempty"`
6263 // The client support partial workspace symbols. The client will send the
6264 // request `workspaceSymbol/resolve` to the server to resolve additional
6265 // properties.
6266 //
6267 // @since 3.17.0
6268 ResolveSupport *ClientSymbolResolveOptions `json:"resolveSupport,omitempty"`
6269}
6270
6271// Server capabilities for a {@link WorkspaceSymbolRequest}.
6272//
6273// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceSymbolOptions
6274type WorkspaceSymbolOptions struct {
6275 // The server provides support to resolve additional
6276 // information for a workspace symbol.
6277 //
6278 // @since 3.17.0
6279 ResolveProvider bool `json:"resolveProvider,omitempty"`
6280 WorkDoneProgressOptions
6281}
6282
6283// The parameters of a {@link WorkspaceSymbolRequest}.
6284//
6285// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceSymbolParams
6286type WorkspaceSymbolParams struct {
6287 // A query string to filter symbols by. Clients may send an empty
6288 // string here to request all symbols.
6289 //
6290 // The `query`-parameter should be interpreted in a *relaxed way* as editors
6291 // will apply their own highlighting and scoring on the results. A good rule
6292 // of thumb is to match case-insensitive and to simply check that the
6293 // characters of *query* appear in their order in a candidate symbol.
6294 // Servers shouldn't use prefix, substring, or similar strict matching.
6295 Query string `json:"query"`
6296 WorkDoneProgressParams
6297 PartialResultParams
6298}
6299
6300// Registration options for a {@link WorkspaceSymbolRequest}.
6301//
6302// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceSymbolRegistrationOptions
6303type WorkspaceSymbolRegistrationOptions struct {
6304 WorkspaceSymbolOptions
6305}
6306
6307// An unchanged document diagnostic report for a workspace diagnostic result.
6308//
6309// @since 3.17.0
6310//
6311// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#workspaceUnchangedDocumentDiagnosticReport
6312type WorkspaceUnchangedDocumentDiagnosticReport struct {
6313 // The URI for which diagnostic information is reported.
6314 URI DocumentURI `json:"uri"`
6315 // The version number for which the diagnostics are reported.
6316 // If the document is not marked as open `null` can be provided.
6317 Version int32 `json:"version"`
6318 UnchangedDocumentDiagnosticReport
6319}
6320
6321// The initialize parameters
6322//
6323// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#_InitializeParams
6324type XInitializeParams struct {
6325 // The process Id of the parent process that started
6326 // the server.
6327 //
6328 // Is `null` if the process has not been started by another process.
6329 // If the parent process is not alive then the server should exit.
6330 ProcessID int32 `json:"processId"`
6331 // Information about the client
6332 //
6333 // @since 3.15.0
6334 ClientInfo *ClientInfo `json:"clientInfo,omitempty"`
6335 // The locale the client is currently showing the user interface
6336 // in. This must not necessarily be the locale of the operating
6337 // system.
6338 //
6339 // Uses IETF language tags as the value's syntax
6340 // (See https://en.wikipedia.org/wiki/IETF_language_tag)
6341 //
6342 // @since 3.16.0
6343 Locale string `json:"locale,omitempty"`
6344 // The rootPath of the workspace. Is null
6345 // if no folder is open.
6346 //
6347 // @deprecated in favour of rootUri.
6348 RootPath string `json:"rootPath,omitempty"`
6349 // The rootUri of the workspace. Is null if no
6350 // folder is open. If both `rootPath` and `rootUri` are set
6351 // `rootUri` wins.
6352 //
6353 // @deprecated in favour of workspaceFolders.
6354 RootURI DocumentURI `json:"rootUri"`
6355 // The capabilities provided by the client (editor or tool)
6356 Capabilities ClientCapabilities `json:"capabilities"`
6357 // User provided initialization options.
6358 InitializationOptions interface{} `json:"initializationOptions,omitempty"`
6359 // The initial trace setting. If omitted trace is disabled ('off').
6360 Trace *TraceValue `json:"trace,omitempty"`
6361 WorkDoneProgressParams
6362}
6363
6364// The initialize parameters
6365//
6366// See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification#_InitializeParams
6367type _InitializeParams struct {
6368 // The process Id of the parent process that started
6369 // the server.
6370 //
6371 // Is `null` if the process has not been started by another process.
6372 // If the parent process is not alive then the server should exit.
6373 ProcessID int32 `json:"processId"`
6374 // Information about the client
6375 //
6376 // @since 3.15.0
6377 ClientInfo *ClientInfo `json:"clientInfo,omitempty"`
6378 // The locale the client is currently showing the user interface
6379 // in. This must not necessarily be the locale of the operating
6380 // system.
6381 //
6382 // Uses IETF language tags as the value's syntax
6383 // (See https://en.wikipedia.org/wiki/IETF_language_tag)
6384 //
6385 // @since 3.16.0
6386 Locale string `json:"locale,omitempty"`
6387 // The rootPath of the workspace. Is null
6388 // if no folder is open.
6389 //
6390 // @deprecated in favour of rootUri.
6391 RootPath string `json:"rootPath,omitempty"`
6392 // The rootUri of the workspace. Is null if no
6393 // folder is open. If both `rootPath` and `rootUri` are set
6394 // `rootUri` wins.
6395 //
6396 // @deprecated in favour of workspaceFolders.
6397 RootURI DocumentURI `json:"rootUri"`
6398 // The capabilities provided by the client (editor or tool)
6399 Capabilities ClientCapabilities `json:"capabilities"`
6400 // User provided initialization options.
6401 InitializationOptions interface{} `json:"initializationOptions,omitempty"`
6402 // The initial trace setting. If omitted trace is disabled ('off').
6403 Trace *TraceValue `json:"trace,omitempty"`
6404 WorkDoneProgressParams
6405}
6406
6407const (
6408 // A set of predefined code action kinds
6409 // Empty kind.
6410 Empty CodeActionKind = ""
6411 // Base kind for quickfix actions: 'quickfix'
6412 QuickFix CodeActionKind = "quickfix"
6413 // Base kind for refactoring actions: 'refactor'
6414 Refactor CodeActionKind = "refactor"
6415 // Base kind for refactoring extraction actions: 'refactor.extract'
6416 //
6417 // Example extract actions:
6418 //
6419 //
6420 // - Extract method
6421 // - Extract function
6422 // - Extract variable
6423 // - Extract interface from class
6424 // - ...
6425 RefactorExtract CodeActionKind = "refactor.extract"
6426 // Base kind for refactoring inline actions: 'refactor.inline'
6427 //
6428 // Example inline actions:
6429 //
6430 //
6431 // - Inline function
6432 // - Inline variable
6433 // - Inline constant
6434 // - ...
6435 RefactorInline CodeActionKind = "refactor.inline"
6436 // Base kind for refactoring move actions: `refactor.move`
6437 //
6438 // Example move actions:
6439 //
6440 //
6441 // - Move a function to a new file
6442 // - Move a property between classes
6443 // - Move method to base class
6444 // - ...
6445 //
6446 // @since 3.18.0
6447 // @proposed
6448 RefactorMove CodeActionKind = "refactor.move"
6449 // Base kind for refactoring rewrite actions: 'refactor.rewrite'
6450 //
6451 // Example rewrite actions:
6452 //
6453 //
6454 // - Convert JavaScript function to class
6455 // - Add or remove parameter
6456 // - Encapsulate field
6457 // - Make method static
6458 // - Move method to base class
6459 // - ...
6460 RefactorRewrite CodeActionKind = "refactor.rewrite"
6461 // Base kind for source actions: `source`
6462 //
6463 // Source code actions apply to the entire file.
6464 Source CodeActionKind = "source"
6465 // Base kind for an organize imports source action: `source.organizeImports`
6466 SourceOrganizeImports CodeActionKind = "source.organizeImports"
6467 // Base kind for auto-fix source actions: `source.fixAll`.
6468 //
6469 // Fix all actions automatically fix errors that have a clear fix that do not require user input.
6470 // They should not suppress errors or perform unsafe fixes such as generating new types or classes.
6471 //
6472 // @since 3.15.0
6473 SourceFixAll CodeActionKind = "source.fixAll"
6474 // Base kind for all code actions applying to the entire notebook's scope. CodeActionKinds using
6475 // this should always begin with `notebook.`
6476 //
6477 // @since 3.18.0
6478 Notebook CodeActionKind = "notebook"
6479 // The reason why code actions were requested.
6480 //
6481 // @since 3.17.0
6482 // Code actions were explicitly requested by the user or by an extension.
6483 CodeActionInvoked CodeActionTriggerKind = 1
6484 // Code actions were requested automatically.
6485 //
6486 // This typically happens when current selection in a file changes, but can
6487 // also be triggered when file content changes.
6488 CodeActionAutomatic CodeActionTriggerKind = 2
6489 // The kind of a completion entry.
6490 TextCompletion CompletionItemKind = 1
6491 MethodCompletion CompletionItemKind = 2
6492 FunctionCompletion CompletionItemKind = 3
6493 ConstructorCompletion CompletionItemKind = 4
6494 FieldCompletion CompletionItemKind = 5
6495 VariableCompletion CompletionItemKind = 6
6496 ClassCompletion CompletionItemKind = 7
6497 InterfaceCompletion CompletionItemKind = 8
6498 ModuleCompletion CompletionItemKind = 9
6499 PropertyCompletion CompletionItemKind = 10
6500 UnitCompletion CompletionItemKind = 11
6501 ValueCompletion CompletionItemKind = 12
6502 EnumCompletion CompletionItemKind = 13
6503 KeywordCompletion CompletionItemKind = 14
6504 SnippetCompletion CompletionItemKind = 15
6505 ColorCompletion CompletionItemKind = 16
6506 FileCompletion CompletionItemKind = 17
6507 ReferenceCompletion CompletionItemKind = 18
6508 FolderCompletion CompletionItemKind = 19
6509 EnumMemberCompletion CompletionItemKind = 20
6510 ConstantCompletion CompletionItemKind = 21
6511 StructCompletion CompletionItemKind = 22
6512 EventCompletion CompletionItemKind = 23
6513 OperatorCompletion CompletionItemKind = 24
6514 TypeParameterCompletion CompletionItemKind = 25
6515 // Completion item tags are extra annotations that tweak the rendering of a completion
6516 // item.
6517 //
6518 // @since 3.15.0
6519 // Render a completion as obsolete, usually using a strike-out.
6520 ComplDeprecated CompletionItemTag = 1
6521 // How a completion was triggered
6522 // Completion was triggered by typing an identifier (24x7 code
6523 // complete), manual invocation (e.g Ctrl+Space) or via API.
6524 Invoked CompletionTriggerKind = 1
6525 // Completion was triggered by a trigger character specified by
6526 // the `triggerCharacters` properties of the `CompletionRegistrationOptions`.
6527 TriggerCharacter CompletionTriggerKind = 2
6528 // Completion was re-triggered as current completion list is incomplete
6529 TriggerForIncompleteCompletions CompletionTriggerKind = 3
6530 // The diagnostic's severity.
6531 // Reports an error.
6532 SeverityError DiagnosticSeverity = 1
6533 // Reports a warning.
6534 SeverityWarning DiagnosticSeverity = 2
6535 // Reports an information.
6536 SeverityInformation DiagnosticSeverity = 3
6537 // Reports a hint.
6538 SeverityHint DiagnosticSeverity = 4
6539 // The diagnostic tags.
6540 //
6541 // @since 3.15.0
6542 // Unused or unnecessary code.
6543 //
6544 // Clients are allowed to render diagnostics with this tag faded out instead of having
6545 // an error squiggle.
6546 Unnecessary DiagnosticTag = 1
6547 // Deprecated or obsolete code.
6548 //
6549 // Clients are allowed to rendered diagnostics with this tag strike through.
6550 Deprecated DiagnosticTag = 2
6551 // The document diagnostic report kinds.
6552 //
6553 // @since 3.17.0
6554 // A diagnostic report with a full
6555 // set of problems.
6556 DiagnosticFull DocumentDiagnosticReportKind = "full"
6557 // A report indicating that the last
6558 // returned report is still accurate.
6559 DiagnosticUnchanged DocumentDiagnosticReportKind = "unchanged"
6560 // A document highlight kind.
6561 // A textual occurrence.
6562 Text DocumentHighlightKind = 1
6563 // Read-access of a symbol, like reading a variable.
6564 Read DocumentHighlightKind = 2
6565 // Write-access of a symbol, like writing to a variable.
6566 Write DocumentHighlightKind = 3
6567 // Predefined error codes.
6568 ParseError ErrorCodes = -32700
6569 InvalidRequest ErrorCodes = -32600
6570 MethodNotFound ErrorCodes = -32601
6571 InvalidParams ErrorCodes = -32602
6572 InternalError ErrorCodes = -32603
6573 // Error code indicating that a server received a notification or
6574 // request before the server has received the `initialize` request.
6575 ServerNotInitialized ErrorCodes = -32002
6576 UnknownErrorCode ErrorCodes = -32001
6577 // Applying the workspace change is simply aborted if one of the changes provided
6578 // fails. All operations executed before the failing operation stay executed.
6579 Abort FailureHandlingKind = "abort"
6580 // All operations are executed transactional. That means they either all
6581 // succeed or no changes at all are applied to the workspace.
6582 Transactional FailureHandlingKind = "transactional"
6583 // If the workspace edit contains only textual file changes they are executed transactional.
6584 // If resource changes (create, rename or delete file) are part of the change the failure
6585 // handling strategy is abort.
6586 TextOnlyTransactional FailureHandlingKind = "textOnlyTransactional"
6587 // The client tries to undo the operations already executed. But there is no
6588 // guarantee that this is succeeding.
6589 Undo FailureHandlingKind = "undo"
6590 // The file event type
6591 // The file got created.
6592 Created FileChangeType = 1
6593 // The file got changed.
6594 Changed FileChangeType = 2
6595 // The file got deleted.
6596 Deleted FileChangeType = 3
6597 // A pattern kind describing if a glob pattern matches a file a folder or
6598 // both.
6599 //
6600 // @since 3.16.0
6601 // The pattern matches a file only.
6602 FilePattern FileOperationPatternKind = "file"
6603 // The pattern matches a folder only.
6604 FolderPattern FileOperationPatternKind = "folder"
6605 // A set of predefined range kinds.
6606 // Folding range for a comment
6607 Comment FoldingRangeKind = "comment"
6608 // Folding range for an import or include
6609 Imports FoldingRangeKind = "imports"
6610 // Folding range for a region (e.g. `#region`)
6611 Region FoldingRangeKind = "region"
6612 // Inlay hint kinds.
6613 //
6614 // @since 3.17.0
6615 // An inlay hint that for a type annotation.
6616 Type InlayHintKind = 1
6617 // An inlay hint that is for a parameter.
6618 Parameter InlayHintKind = 2
6619 // Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.
6620 //
6621 // @since 3.18.0
6622 // @proposed
6623 // Completion was triggered explicitly by a user gesture.
6624 InlineInvoked InlineCompletionTriggerKind = 1
6625 // Completion was triggered automatically while editing.
6626 InlineAutomatic InlineCompletionTriggerKind = 2
6627 // Defines whether the insert text in a completion item should be interpreted as
6628 // plain text or a snippet.
6629 // The primary text to be inserted is treated as a plain string.
6630 PlainTextTextFormat InsertTextFormat = 1
6631 // The primary text to be inserted is treated as a snippet.
6632 //
6633 // A snippet can define tab stops and placeholders with `$1`, `$2`
6634 // and `${3:foo}`. `$0` defines the final tab stop, it defaults to
6635 // the end of the snippet. Placeholders with equal identifiers are linked,
6636 // that is typing in one will update others too.
6637 //
6638 // See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax
6639 SnippetTextFormat InsertTextFormat = 2
6640 // How whitespace and indentation is handled during completion
6641 // item insertion.
6642 //
6643 // @since 3.16.0
6644 // The insertion or replace strings is taken as it is. If the
6645 // value is multi line the lines below the cursor will be
6646 // inserted using the indentation defined in the string value.
6647 // The client will not apply any kind of adjustments to the
6648 // string.
6649 AsIs InsertTextMode = 1
6650 // The editor adjusts leading whitespace of new lines so that
6651 // they match the indentation up to the cursor of the line for
6652 // which the item is accepted.
6653 //
6654 // Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a
6655 // multi line completion item is indented using 2 tabs and all
6656 // following lines inserted will be indented using 2 tabs as well.
6657 AdjustIndentation InsertTextMode = 2
6658 // A request failed but it was syntactically correct, e.g the
6659 // method name was known and the parameters were valid. The error
6660 // message should contain human readable information about why
6661 // the request failed.
6662 //
6663 // @since 3.17.0
6664 RequestFailed LSPErrorCodes = -32803
6665 // The server cancelled the request. This error code should
6666 // only be used for requests that explicitly support being
6667 // server cancellable.
6668 //
6669 // @since 3.17.0
6670 ServerCancelled LSPErrorCodes = -32802
6671 // The server detected that the content of a document got
6672 // modified outside normal conditions. A server should
6673 // NOT send this error code if it detects a content change
6674 // in it unprocessed messages. The result even computed
6675 // on an older state might still be useful for the client.
6676 //
6677 // If a client decides that a result is not of any use anymore
6678 // the client should cancel the request.
6679 ContentModified LSPErrorCodes = -32801
6680 // The client has canceled a request and a server has detected
6681 // the cancel.
6682 RequestCancelled LSPErrorCodes = -32800
6683 // Predefined Language kinds
6684 // @since 3.18.0
6685 // @proposed
6686 LangABAP LanguageKind = "abap"
6687 LangWindowsBat LanguageKind = "bat"
6688 LangBibTeX LanguageKind = "bibtex"
6689 LangClojure LanguageKind = "clojure"
6690 LangCoffeescript LanguageKind = "coffeescript"
6691 LangC LanguageKind = "c"
6692 LangCPP LanguageKind = "cpp"
6693 LangCSharp LanguageKind = "csharp"
6694 LangCSS LanguageKind = "css"
6695 // @since 3.18.0
6696 // @proposed
6697 LangD LanguageKind = "d"
6698 // @since 3.18.0
6699 // @proposed
6700 LangDelphi LanguageKind = "pascal"
6701 LangDiff LanguageKind = "diff"
6702 LangDart LanguageKind = "dart"
6703 LangDockerfile LanguageKind = "dockerfile"
6704 LangElixir LanguageKind = "elixir"
6705 LangErlang LanguageKind = "erlang"
6706 LangFSharp LanguageKind = "fsharp"
6707 LangGitCommit LanguageKind = "git-commit"
6708 LangGitRebase LanguageKind = "rebase"
6709 LangGo LanguageKind = "go"
6710 LangGroovy LanguageKind = "groovy"
6711 LangHandlebars LanguageKind = "handlebars"
6712 LangHaskell LanguageKind = "haskell"
6713 LangHTML LanguageKind = "html"
6714 LangIni LanguageKind = "ini"
6715 LangJava LanguageKind = "java"
6716 LangJavaScript LanguageKind = "javascript"
6717 LangJavaScriptReact LanguageKind = "javascriptreact"
6718 LangJSON LanguageKind = "json"
6719 LangLaTeX LanguageKind = "latex"
6720 LangLess LanguageKind = "less"
6721 LangLua LanguageKind = "lua"
6722 LangMakefile LanguageKind = "makefile"
6723 LangMarkdown LanguageKind = "markdown"
6724 LangObjectiveC LanguageKind = "objective-c"
6725 LangObjectiveCPP LanguageKind = "objective-cpp"
6726 // @since 3.18.0
6727 // @proposed
6728 LangPascal LanguageKind = "pascal"
6729 LangPerl LanguageKind = "perl"
6730 LangPerl6 LanguageKind = "perl6"
6731 LangPHP LanguageKind = "php"
6732 LangPowershell LanguageKind = "powershell"
6733 LangPug LanguageKind = "jade"
6734 LangPython LanguageKind = "python"
6735 LangR LanguageKind = "r"
6736 LangRazor LanguageKind = "razor"
6737 LangRuby LanguageKind = "ruby"
6738 LangRust LanguageKind = "rust"
6739 LangSCSS LanguageKind = "scss"
6740 LangSASS LanguageKind = "sass"
6741 LangScala LanguageKind = "scala"
6742 LangShaderLab LanguageKind = "shaderlab"
6743 LangShellScript LanguageKind = "shellscript"
6744 LangSQL LanguageKind = "sql"
6745 LangSwift LanguageKind = "swift"
6746 LangTypeScript LanguageKind = "typescript"
6747 LangTypeScriptReact LanguageKind = "typescriptreact"
6748 LangTeX LanguageKind = "tex"
6749 LangVisualBasic LanguageKind = "vb"
6750 LangXML LanguageKind = "xml"
6751 LangXSL LanguageKind = "xsl"
6752 LangYAML LanguageKind = "yaml"
6753 // Describes the content type that a client supports in various
6754 // result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
6755 //
6756 // Please note that `MarkupKinds` must not start with a `$`. This kinds
6757 // are reserved for internal usage.
6758 // Plain text is supported as a content format
6759 PlainText MarkupKind = "plaintext"
6760 // Markdown is supported as a content format
6761 Markdown MarkupKind = "markdown"
6762 // The message type
6763 // An error message.
6764 Error MessageType = 1
6765 // A warning message.
6766 Warning MessageType = 2
6767 // An information message.
6768 Info MessageType = 3
6769 // A log message.
6770 Log MessageType = 4
6771 // A debug message.
6772 //
6773 // @since 3.18.0
6774 // @proposed
6775 Debug MessageType = 5
6776 // The moniker kind.
6777 //
6778 // @since 3.16.0
6779 // The moniker represent a symbol that is imported into a project
6780 Import MonikerKind = "import"
6781 // The moniker represents a symbol that is exported from a project
6782 Export MonikerKind = "export"
6783 // The moniker represents a symbol that is local to a project (e.g. a local
6784 // variable of a function, a class not visible outside the project, ...)
6785 Local MonikerKind = "local"
6786 // A notebook cell kind.
6787 //
6788 // @since 3.17.0
6789 // A markup-cell is formatted source that is used for display.
6790 Markup NotebookCellKind = 1
6791 // A code-cell is source code.
6792 Code NotebookCellKind = 2
6793 // A set of predefined position encoding kinds.
6794 //
6795 // @since 3.17.0
6796 // Character offsets count UTF-8 code units (e.g. bytes).
6797 UTF8 PositionEncodingKind = "utf-8"
6798 // Character offsets count UTF-16 code units.
6799 //
6800 // This is the default and must always be supported
6801 // by servers
6802 UTF16 PositionEncodingKind = "utf-16"
6803 // Character offsets count UTF-32 code units.
6804 //
6805 // Implementation note: these are the same as Unicode codepoints,
6806 // so this `PositionEncodingKind` may also be used for an
6807 // encoding-agnostic representation of character offsets.
6808 UTF32 PositionEncodingKind = "utf-32"
6809 // The client's default behavior is to select the identifier
6810 // according the to language's syntax rule.
6811 Identifier PrepareSupportDefaultBehavior = 1
6812 // Supports creating new files and folders.
6813 Create ResourceOperationKind = "create"
6814 // Supports renaming existing files and folders.
6815 Rename ResourceOperationKind = "rename"
6816 // Supports deleting existing files and folders.
6817 Delete ResourceOperationKind = "delete"
6818 // A set of predefined token modifiers. This set is not fixed
6819 // an clients can specify additional token types via the
6820 // corresponding client capabilities.
6821 //
6822 // @since 3.16.0
6823 ModDeclaration SemanticTokenModifiers = "declaration"
6824 ModDefinition SemanticTokenModifiers = "definition"
6825 ModReadonly SemanticTokenModifiers = "readonly"
6826 ModStatic SemanticTokenModifiers = "static"
6827 ModDeprecated SemanticTokenModifiers = "deprecated"
6828 ModAbstract SemanticTokenModifiers = "abstract"
6829 ModAsync SemanticTokenModifiers = "async"
6830 ModModification SemanticTokenModifiers = "modification"
6831 ModDocumentation SemanticTokenModifiers = "documentation"
6832 ModDefaultLibrary SemanticTokenModifiers = "defaultLibrary"
6833 // A set of predefined token types. This set is not fixed
6834 // an clients can specify additional token types via the
6835 // corresponding client capabilities.
6836 //
6837 // @since 3.16.0
6838 NamespaceType SemanticTokenTypes = "namespace"
6839 // Represents a generic type. Acts as a fallback for types which can't be mapped to
6840 // a specific type like class or enum.
6841 TypeType SemanticTokenTypes = "type"
6842 ClassType SemanticTokenTypes = "class"
6843 EnumType SemanticTokenTypes = "enum"
6844 InterfaceType SemanticTokenTypes = "interface"
6845 StructType SemanticTokenTypes = "struct"
6846 TypeParameterType SemanticTokenTypes = "typeParameter"
6847 ParameterType SemanticTokenTypes = "parameter"
6848 VariableType SemanticTokenTypes = "variable"
6849 PropertyType SemanticTokenTypes = "property"
6850 EnumMemberType SemanticTokenTypes = "enumMember"
6851 EventType SemanticTokenTypes = "event"
6852 FunctionType SemanticTokenTypes = "function"
6853 MethodType SemanticTokenTypes = "method"
6854 MacroType SemanticTokenTypes = "macro"
6855 KeywordType SemanticTokenTypes = "keyword"
6856 ModifierType SemanticTokenTypes = "modifier"
6857 CommentType SemanticTokenTypes = "comment"
6858 StringType SemanticTokenTypes = "string"
6859 NumberType SemanticTokenTypes = "number"
6860 RegexpType SemanticTokenTypes = "regexp"
6861 OperatorType SemanticTokenTypes = "operator"
6862 // @since 3.17.0
6863 DecoratorType SemanticTokenTypes = "decorator"
6864 // @since 3.18.0
6865 LabelType SemanticTokenTypes = "label"
6866 // How a signature help was triggered.
6867 //
6868 // @since 3.15.0
6869 // Signature help was invoked manually by the user or by a command.
6870 SigInvoked SignatureHelpTriggerKind = 1
6871 // Signature help was triggered by a trigger character.
6872 SigTriggerCharacter SignatureHelpTriggerKind = 2
6873 // Signature help was triggered by the cursor moving or by the document content changing.
6874 SigContentChange SignatureHelpTriggerKind = 3
6875 // A symbol kind.
6876 File SymbolKind = 1
6877 Module SymbolKind = 2
6878 Namespace SymbolKind = 3
6879 Package SymbolKind = 4
6880 Class SymbolKind = 5
6881 Method SymbolKind = 6
6882 Property SymbolKind = 7
6883 Field SymbolKind = 8
6884 Constructor SymbolKind = 9
6885 Enum SymbolKind = 10
6886 Interface SymbolKind = 11
6887 Function SymbolKind = 12
6888 Variable SymbolKind = 13
6889 Constant SymbolKind = 14
6890 String SymbolKind = 15
6891 Number SymbolKind = 16
6892 Boolean SymbolKind = 17
6893 Array SymbolKind = 18
6894 Object SymbolKind = 19
6895 Key SymbolKind = 20
6896 Null SymbolKind = 21
6897 EnumMember SymbolKind = 22
6898 Struct SymbolKind = 23
6899 Event SymbolKind = 24
6900 Operator SymbolKind = 25
6901 TypeParameter SymbolKind = 26
6902 // Symbol tags are extra annotations that tweak the rendering of a symbol.
6903 //
6904 // @since 3.16
6905 // Render a symbol as obsolete, usually using a strike-out.
6906 DeprecatedSymbol SymbolTag = 1
6907 // Represents reasons why a text document is saved.
6908 // Manually triggered, e.g. by the user pressing save, by starting debugging,
6909 // or by an API call.
6910 Manual TextDocumentSaveReason = 1
6911 // Automatic after a delay.
6912 AfterDelay TextDocumentSaveReason = 2
6913 // When the editor lost focus.
6914 FocusOut TextDocumentSaveReason = 3
6915 // Defines how the host (editor) should sync
6916 // document changes to the language server.
6917 // Documents should not be synced at all.
6918 None TextDocumentSyncKind = 0
6919 // Documents are synced by always sending the full content
6920 // of the document.
6921 Full TextDocumentSyncKind = 1
6922 // Documents are synced by sending the full content on open.
6923 // After that only incremental updates to the document are
6924 // send.
6925 Incremental TextDocumentSyncKind = 2
6926 Relative TokenFormat = "relative"
6927 // Turn tracing off.
6928 Off TraceValue = "off"
6929 // Trace messages only.
6930 Messages TraceValue = "messages"
6931 // Verbose message tracing.
6932 Verbose TraceValue = "verbose"
6933 // Moniker uniqueness level to define scope of the moniker.
6934 //
6935 // @since 3.16.0
6936 // The moniker is only unique inside a document
6937 Document UniquenessLevel = "document"
6938 // The moniker is unique inside a project for which a dump got created
6939 Project UniquenessLevel = "project"
6940 // The moniker is unique inside the group to which a project belongs
6941 Group UniquenessLevel = "group"
6942 // The moniker is unique inside the moniker scheme.
6943 Scheme UniquenessLevel = "scheme"
6944 // The moniker is globally unique
6945 Global UniquenessLevel = "global"
6946 // Interested in create events.
6947 WatchCreate WatchKind = 1
6948 // Interested in change events
6949 WatchChange WatchKind = 2
6950 // Interested in delete events
6951 WatchDelete WatchKind = 4
6952)