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