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