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