1// Package protocol contains data types and code for LSP jsonrpcs 2// generated automatically from vscode-languageserver-node 3// commit: 7b90c29d0cb5cd7b9c41084f6cb3781a955adeba 4// last fetched Wed Feb 12 2020 17:16:47 GMT-0500 (Eastern Standard Time) 5package protocol 6 7// Code generated (see typescript/README.md) DO NOT EDIT. 8 9/** 10 * The parameters passed via a apply workspace edit request. 11 */ 12type ApplyWorkspaceEditParams struct { 13 /** 14 * An optional label of the workspace edit. This label is 15 * presented in the user interface for example on an undo 16 * stack to undo the workspace edit. 17 */ 18 Label string `json:"label,omitempty"` 19 /** 20 * The edits to apply. 21 */ 22 Edit WorkspaceEdit `json:"edit"` 23} 24 25/** 26 * A response returned from the apply workspace edit request. 27 */ 28type ApplyWorkspaceEditResponse struct { 29 /** 30 * Indicates whether the edit was applied or not. 31 */ 32 Applied bool `json:"applied"` 33 /** 34 * An optional textual description for why the edit was not applied. 35 * This may be used by the server for diagnostic logging or to provide 36 * a suitable error for a request that triggered the edit. 37 */ 38 FailureReason string `json:"failureReason,omitempty"` 39 /** 40 * Depending on the client's failure handling strategy `failedChange` might 41 * contain the index of the change that failed. This property is only available 42 * if the client signals a `failureHandlingStrategy` in its client capabilities. 43 */ 44 FailedChange float64 `json:"failedChange,omitempty"` 45} 46 47/** 48 * Represents an incoming call, e.g. a caller of a method or constructor. 49 * 50 * @since 3.16.0 - Proposed state 51 */ 52type CallHierarchyIncomingCall struct { 53 /** 54 * The item that makes the call. 55 */ 56 From CallHierarchyItem `json:"from"` 57 /** 58 * The range at which at which the calls appears. This is relative to the caller 59 * denoted by [`this.from`](#CallHierarchyIncomingCall.from). 60 */ 61 FromRanges []Range `json:"fromRanges"` 62} 63 64/** 65 * The parameter of a `callHierarchy/incomingCalls` request. 66 * 67 * @since 3.16.0 - Proposed state 68 */ 69type CallHierarchyIncomingCallsParams struct { 70 Item CallHierarchyItem `json:"item"` 71 WorkDoneProgressParams 72 PartialResultParams 73} 74 75/** 76 * Represents programming constructs like functions or constructors in the context 77 * of call hierarchy. 78 * 79 * @since 3.16.0 - Proposed state 80 */ 81type CallHierarchyItem struct { 82 /** 83 * The name of this item. 84 */ 85 Name string `json:"name"` 86 /** 87 * The kind of this item. 88 */ 89 Kind SymbolKind `json:"kind"` 90 /** 91 * Tags for this item. 92 */ 93 Tags []SymbolTag `json:"tags,omitempty"` 94 /** 95 * More detail for this item, e.g. the signature of a function. 96 */ 97 Detail string `json:"detail,omitempty"` 98 /** 99 * The resource identifier of this item. 100 */ 101 URI DocumentURI `json:"uri"` 102 /** 103 * The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code. 104 */ 105 Range Range `json:"range"` 106 /** 107 * The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function. 108 * Must be contained by the [`range`](#CallHierarchyItem.range). 109 */ 110 SelectionRange Range `json:"selectionRange"` 111} 112 113/** 114 * Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc. 115 * 116 * @since 3.16.0 - Proposed state 117 */ 118type CallHierarchyOutgoingCall struct { 119 /** 120 * The item that is called. 121 */ 122 To CallHierarchyItem `json:"to"` 123 /** 124 * The range at which this item is called. This is the range relative to the caller, e.g the item 125 * passed to [`provideCallHierarchyOutgoingCalls`](#CallHierarchyItemProvider.provideCallHierarchyOutgoingCalls) 126 * and not [`this.to`](#CallHierarchyOutgoingCall.to). 127 */ 128 FromRanges []Range `json:"fromRanges"` 129} 130 131/** 132 * The parameter of a `callHierarchy/outgoingCalls` request. 133 * 134 * @since 3.16.0 - Proposed state 135 */ 136type CallHierarchyOutgoingCallsParams struct { 137 Item CallHierarchyItem `json:"item"` 138 WorkDoneProgressParams 139 PartialResultParams 140} 141 142/** 143 * The parameter of a `textDocument/prepareCallHierarchy` request. 144 * 145 * @since 3.16.0 - Proposed state 146 */ 147type CallHierarchyPrepareParams struct { 148 TextDocumentPositionParams 149 WorkDoneProgressParams 150} 151 152type CancelParams struct { 153 /** 154 * The request id to cancel. 155 */ 156 ID interface{} /*number | string*/ `json:"id"` 157} 158 159type ClientCapabilities = struct { 160 Workspace struct { 161 /** 162 * Workspace specific client capabilities. 163 */ 164 WorkspaceClientCapabilities 165 /** 166 * The client has support for workspace folders 167 */ 168 WorkspaceFolders bool `json:"workspaceFolders,omitempty"` 169 /** 170 * The client supports `workspace/configuration` requests. 171 */ 172 Configuration bool `json:"configuration,omitempty"` 173 } 174 /** 175 * Text document specific client capabilities. 176 */ 177 TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"` 178 Window struct { 179 /** 180 * Window specific client capabilities. 181 */ 182 Window interface{} `json:"window,omitempty"` 183 /** 184 * Whether client supports handling progress notifications. If set servers are allowed to 185 * report in `workDoneProgress` property in the request specific server capabilities. 186 * 187 * Since 3.15.0 188 */ 189 WorkDoneProgress bool `json:"workDoneProgress,omitempty"` 190 } 191 /** 192 * Experimental client capabilities. 193 */ 194 Experimental interface{} `json:"experimental,omitempty"` 195} 196 197/** 198 * A code action represents a change that can be performed in code, e.g. to fix a problem or 199 * to refactor code. 200 * 201 * A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed. 202 */ 203type CodeAction struct { 204 /** 205 * A short, human-readable, title for this code action. 206 */ 207 Title string `json:"title"` 208 /** 209 * The kind of the code action. 210 * 211 * Used to filter code actions. 212 */ 213 Kind CodeActionKind `json:"kind,omitempty"` 214 /** 215 * The diagnostics that this code action resolves. 216 */ 217 Diagnostics []Diagnostic `json:"diagnostics,omitempty"` 218 /** 219 * Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted 220 * by keybindings. 221 * 222 * A quick fix should be marked preferred if it properly addresses the underlying error. 223 * A refactoring should be marked preferred if it is the most reasonable choice of actions to take. 224 * 225 * @since 3.15.0 226 */ 227 IsPreferred bool `json:"isPreferred,omitempty"` 228 /** 229 * The workspace edit this code action performs. 230 */ 231 Edit WorkspaceEdit `json:"edit,omitempty"` 232 /** 233 * A command this code action executes. If a code action 234 * provides a edit and a command, first the edit is 235 * executed and then the command. 236 */ 237 Command *Command `json:"command,omitempty"` 238} 239 240/** 241 * The Client Capabilities of a [CodeActionRequest](#CodeActionRequest). 242 */ 243type CodeActionClientCapabilities struct { 244 /** 245 * Whether code action supports dynamic registration. 246 */ 247 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 248 /** 249 * The client support code action literals as a valid 250 * response of the `textDocument/codeAction` request. 251 * 252 * @since 3.8.0 253 */ 254 CodeActionLiteralSupport struct { 255 /** 256 * The code action kind is support with the following value 257 * set. 258 */ 259 CodeActionKind struct { 260 /** 261 * The code action kind values the client supports. When this 262 * property exists the client also guarantees that it will 263 * handle values outside its set gracefully and falls back 264 * to a default value when unknown. 265 */ 266 ValueSet []CodeActionKind `json:"valueSet"` 267 } `json:"codeActionKind"` 268 } `json:"codeActionLiteralSupport,omitempty"` 269 /** 270 * Whether code action supports the `isPreferred` property. 271 * @since 3.15.0 272 */ 273 IsPreferredSupport bool `json:"isPreferredSupport,omitempty"` 274} 275 276/** 277 * Contains additional diagnostic information about the context in which 278 * a [code action](#CodeActionProvider.provideCodeActions) is run. 279 */ 280type CodeActionContext struct { 281 /** 282 * An array of diagnostics known on the client side overlapping the range provided to the 283 * `textDocument/codeAction` request. They are provied so that the server knows which 284 * errors are currently presented to the user for the given range. There is no guarantee 285 * that these accurately reflect the error state of the resource. The primary parameter 286 * to compute code actions is the provided range. 287 */ 288 Diagnostics []Diagnostic `json:"diagnostics"` 289 /** 290 * Requested kind of actions to return. 291 * 292 * Actions not of this kind are filtered out by the client before being shown. So servers 293 * can omit computing them. 294 */ 295 Only []CodeActionKind `json:"only,omitempty"` 296} 297 298/** 299 * A set of predefined code action kinds 300 */ 301type CodeActionKind string 302 303/** 304 * Provider options for a [CodeActionRequest](#CodeActionRequest). 305 */ 306type CodeActionOptions struct { 307 /** 308 * CodeActionKinds that this server may return. 309 * 310 * The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server 311 * may list out every specific kind they provide. 312 */ 313 CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"` 314 WorkDoneProgressOptions 315} 316 317/** 318 * The parameters of a [CodeActionRequest](#CodeActionRequest). 319 */ 320type CodeActionParams struct { 321 /** 322 * The document in which the command was invoked. 323 */ 324 TextDocument TextDocumentIdentifier `json:"textDocument"` 325 /** 326 * The range for which the command was invoked. 327 */ 328 Range Range `json:"range"` 329 /** 330 * Context carrying additional information. 331 */ 332 Context CodeActionContext `json:"context"` 333 WorkDoneProgressParams 334 PartialResultParams 335} 336 337/** 338 * A code lens represents a [command](#Command) that should be shown along with 339 * source text, like the number of references, a way to run tests, etc. 340 * 341 * A code lens is _unresolved_ when no command is associated to it. For performance 342 * reasons the creation of a code lens and resolving should be done to two stages. 343 */ 344type CodeLens struct { 345 /** 346 * The range in which this code lens is valid. Should only span a single line. 347 */ 348 Range Range `json:"range"` 349 /** 350 * The command this code lens represents. 351 */ 352 Command Command `json:"command,omitempty"` 353 /** 354 * An data entry field that is preserved on a code lens item between 355 * a [CodeLensRequest](#CodeLensRequest) and a [CodeLensResolveRequest] 356 * (#CodeLensResolveRequest) 357 */ 358 Data interface{} `json:"data,omitempty"` 359} 360 361/** 362 * The client capabilities of a [CodeLensRequest](#CodeLensRequest). 363 */ 364type CodeLensClientCapabilities struct { 365 /** 366 * Whether code lens supports dynamic registration. 367 */ 368 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 369} 370 371/** 372 * Code Lens provider options of a [CodeLensRequest](#CodeLensRequest). 373 */ 374type CodeLensOptions struct { 375 /** 376 * Code lens has a resolve provider as well. 377 */ 378 ResolveProvider bool `json:"resolveProvider,omitempty"` 379 WorkDoneProgressOptions 380} 381 382/** 383 * The parameters of a [CodeLensRequest](#CodeLensRequest). 384 */ 385type CodeLensParams struct { 386 /** 387 * The document to request code lens for. 388 */ 389 TextDocument TextDocumentIdentifier `json:"textDocument"` 390 WorkDoneProgressParams 391 PartialResultParams 392} 393 394/** 395 * Represents a color in RGBA space. 396 */ 397type Color struct { 398 /** 399 * The red component of this color in the range [0-1]. 400 */ 401 Red float64 `json:"red"` 402 /** 403 * The green component of this color in the range [0-1]. 404 */ 405 Green float64 `json:"green"` 406 /** 407 * The blue component of this color in the range [0-1]. 408 */ 409 Blue float64 `json:"blue"` 410 /** 411 * The alpha component of this color in the range [0-1]. 412 */ 413 Alpha float64 `json:"alpha"` 414} 415 416/** 417 * Represents a color range from a document. 418 */ 419type ColorInformation struct { 420 /** 421 * The range in the document where this color appers. 422 */ 423 Range Range `json:"range"` 424 /** 425 * The actual color value for this color range. 426 */ 427 Color Color `json:"color"` 428} 429 430type ColorPresentation struct { 431 /** 432 * The label of this color presentation. It will be shown on the color 433 * picker header. By default this is also the text that is inserted when selecting 434 * this color presentation. 435 */ 436 Label string `json:"label"` 437 /** 438 * An [edit](#TextEdit) which is applied to a document when selecting 439 * this presentation for the color. When `falsy` the [label](#ColorPresentation.label) 440 * is used. 441 */ 442 TextEdit TextEdit `json:"textEdit,omitempty"` 443 /** 444 * An optional array of additional [text edits](#TextEdit) that are applied when 445 * selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves. 446 */ 447 AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` 448} 449 450/** 451 * Parameters for a [ColorPresentationRequest](#ColorPresentationRequest). 452 */ 453type ColorPresentationParams struct { 454 /** 455 * The text document. 456 */ 457 TextDocument TextDocumentIdentifier `json:"textDocument"` 458 /** 459 * The color to request presentations for. 460 */ 461 Color Color `json:"color"` 462 /** 463 * The range where the color would be inserted. Serves as a context. 464 */ 465 Range Range `json:"range"` 466 WorkDoneProgressParams 467 PartialResultParams 468} 469 470/** 471 * Represents a reference to a command. Provides a title which 472 * will be used to represent a command in the UI and, optionally, 473 * an array of arguments which will be passed to the command handler 474 * function when invoked. 475 */ 476type Command struct { 477 /** 478 * Title of the command, like `save`. 479 */ 480 Title string `json:"title"` 481 /** 482 * The identifier of the actual command handler. 483 */ 484 Command string `json:"command"` 485 /** 486 * Arguments that the command handler should be 487 * invoked with. 488 */ 489 Arguments []interface{} `json:"arguments,omitempty"` 490} 491 492/** 493 * Completion client capabilities 494 */ 495type CompletionClientCapabilities struct { 496 /** 497 * Whether completion supports dynamic registration. 498 */ 499 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 500 /** 501 * The client supports the following `CompletionItem` specific 502 * capabilities. 503 */ 504 CompletionItem struct { 505 /** 506 * Client supports snippets as insert text. 507 * 508 * A snippet can define tab stops and placeholders with `$1`, `$2` 509 * and `${3:foo}`. `$0` defines the final tab stop, it defaults to 510 * the end of the snippet. Placeholders with equal identifiers are linked, 511 * that is typing in one will update others too. 512 */ 513 SnippetSupport bool `json:"snippetSupport,omitempty"` 514 /** 515 * Client supports commit characters on a completion item. 516 */ 517 CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"` 518 /** 519 * Client supports the follow content formats for the documentation 520 * property. The order describes the preferred format of the client. 521 */ 522 DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` 523 /** 524 * Client supports the deprecated property on a completion item. 525 */ 526 DeprecatedSupport bool `json:"deprecatedSupport,omitempty"` 527 /** 528 * Client supports the preselect property on a completion item. 529 */ 530 PreselectSupport bool `json:"preselectSupport,omitempty"` 531 /** 532 * Client supports the tag property on a completion item. Clients supporting 533 * tags have to handle unknown tags gracefully. Clients especially need to 534 * preserve unknown tags when sending a completion item back to the server in 535 * a resolve call. 536 * 537 * @since 3.15.0 538 */ 539 TagSupport struct { 540 /** 541 * The tags supported by the client. 542 */ 543 ValueSet []CompletionItemTag `json:"valueSet"` 544 } `json:"tagSupport,omitempty"` 545 } `json:"completionItem,omitempty"` 546 CompletionItemKind struct { 547 /** 548 * The completion item kind values the client supports. When this 549 * property exists the client also guarantees that it will 550 * handle values outside its set gracefully and falls back 551 * to a default value when unknown. 552 * 553 * If this property is not present the client only supports 554 * the completion items kinds from `Text` to `Reference` as defined in 555 * the initial version of the protocol. 556 */ 557 ValueSet []CompletionItemKind `json:"valueSet,omitempty"` 558 } `json:"completionItemKind,omitempty"` 559 /** 560 * The client supports to send additional context information for a 561 * `textDocument/completion` requestion. 562 */ 563 ContextSupport bool `json:"contextSupport,omitempty"` 564} 565 566/** 567 * Contains additional information about the context in which a completion request is triggered. 568 */ 569type CompletionContext struct { 570 /** 571 * How the completion was triggered. 572 */ 573 TriggerKind CompletionTriggerKind `json:"triggerKind"` 574 /** 575 * The trigger character (a single character) that has trigger code complete. 576 * Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter` 577 */ 578 TriggerCharacter string `json:"triggerCharacter,omitempty"` 579} 580 581/** 582 * A completion item represents a text snippet that is 583 * proposed to complete text that is being typed. 584 */ 585type CompletionItem struct { 586 /** 587 * The label of this completion item. By default 588 * also the text that is inserted when selecting 589 * this completion. 590 */ 591 Label string `json:"label"` 592 /** 593 * The kind of this completion item. Based of the kind 594 * an icon is chosen by the editor. 595 */ 596 Kind CompletionItemKind `json:"kind,omitempty"` 597 /** 598 * Tags for this completion item. 599 * 600 * @since 3.15.0 601 */ 602 Tags []CompletionItemTag `json:"tags,omitempty"` 603 /** 604 * A human-readable string with additional information 605 * about this item, like type or symbol information. 606 */ 607 Detail string `json:"detail,omitempty"` 608 /** 609 * A human-readable string that represents a doc-comment. 610 */ 611 Documentation string/*string | MarkupContent*/ `json:"documentation,omitempty"` 612 /** 613 * Indicates if this item is deprecated. 614 * @deprecated Use `tags` instead. 615 */ 616 Deprecated bool `json:"deprecated,omitempty"` 617 /** 618 * Select this item when showing. 619 * 620 * *Note* that only one completion item can be selected and that the 621 * tool / client decides which item that is. The rule is that the *first* 622 * item of those that match best is selected. 623 */ 624 Preselect bool `json:"preselect,omitempty"` 625 /** 626 * A string that should be used when comparing this item 627 * with other items. When `falsy` the [label](#CompletionItem.label) 628 * is used. 629 */ 630 SortText string `json:"sortText,omitempty"` 631 /** 632 * A string that should be used when filtering a set of 633 * completion items. When `falsy` the [label](#CompletionItem.label) 634 * is used. 635 */ 636 FilterText string `json:"filterText,omitempty"` 637 /** 638 * A string that should be inserted into a document when selecting 639 * this completion. When `falsy` the [label](#CompletionItem.label) 640 * is used. 641 * 642 * The `insertText` is subject to interpretation by the client side. 643 * Some tools might not take the string literally. For example 644 * VS Code when code complete is requested in this example `con<cursor position>` 645 * and a completion item with an `insertText` of `console` is provided it 646 * will only insert `sole`. Therefore it is recommended to use `textEdit` instead 647 * since it avoids additional client side interpretation. 648 */ 649 InsertText string `json:"insertText,omitempty"` 650 /** 651 * The format of the insert text. The format applies to both the `insertText` property 652 * and the `newText` property of a provided `textEdit`. If ommitted defaults to 653 * `InsertTextFormat.PlainText`. 654 */ 655 InsertTextFormat InsertTextFormat `json:"insertTextFormat,omitempty"` 656 /** 657 * An [edit](#TextEdit) which is applied to a document when selecting 658 * this completion. When an edit is provided the value of 659 * [insertText](#CompletionItem.insertText) is ignored. 660 * 661 * *Note:* The text edit's range must be a [single line] and it must contain the position 662 * at which completion has been requested. 663 */ 664 TextEdit *TextEdit `json:"textEdit,omitempty"` 665 /** 666 * An optional array of additional [text edits](#TextEdit) that are applied when 667 * selecting this completion. Edits must not overlap (including the same insert position) 668 * with the main [edit](#CompletionItem.textEdit) nor with themselves. 669 * 670 * Additional text edits should be used to change text unrelated to the current cursor position 671 * (for example adding an import statement at the top of the file if the completion item will 672 * insert an unqualified type). 673 */ 674 AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` 675 /** 676 * An optional set of characters that when pressed while this completion is active will accept it first and 677 * then type that character. *Note* that all commit characters should have `length=1` and that superfluous 678 * characters will be ignored. 679 */ 680 CommitCharacters []string `json:"commitCharacters,omitempty"` 681 /** 682 * An optional [command](#Command) that is executed *after* inserting this completion. *Note* that 683 * additional modifications to the current document should be described with the 684 * [additionalTextEdits](#CompletionItem.additionalTextEdits)-property. 685 */ 686 Command *Command `json:"command,omitempty"` 687 /** 688 * An data entry field that is preserved on a completion item between 689 * a [CompletionRequest](#CompletionRequest) and a [CompletionResolveRequest] 690 * (#CompletionResolveRequest) 691 */ 692 Data interface{} `json:"data,omitempty"` 693} 694 695/** 696 * The kind of a completion entry. 697 */ 698type CompletionItemKind float64 699 700/** 701 * Completion item tags are extra annotations that tweak the rendering of a completion 702 * item. 703 * 704 * @since 3.15.0 705 */ 706type CompletionItemTag float64 707 708/** 709 * Represents a collection of [completion items](#CompletionItem) to be presented 710 * in the editor. 711 */ 712type CompletionList struct { 713 /** 714 * This list it not complete. Further typing results in recomputing this list. 715 */ 716 IsIncomplete bool `json:"isIncomplete"` 717 /** 718 * The completion items. 719 */ 720 Items []CompletionItem `json:"items"` 721} 722 723/** 724 * Completion options. 725 */ 726type CompletionOptions struct { 727 /** 728 * Most tools trigger completion request automatically without explicitly requesting 729 * it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user 730 * starts to type an identifier. For example if the user types `c` in a JavaScript file 731 * code complete will automatically pop up present `console` besides others as a 732 * completion item. Characters that make up identifiers don't need to be listed here. 733 * 734 * If code complete should automatically be trigger on characters not being valid inside 735 * an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. 736 */ 737 TriggerCharacters []string `json:"triggerCharacters,omitempty"` 738 /** 739 * The list of all possible characters that commit a completion. This field can be used 740 * if clients don't support individual commmit characters per completion item. See 741 * `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport` 742 * 743 * If a server provides both `allCommitCharacters` and commit characters on an individual 744 * completion item the ones on the completion item win. 745 * 746 * @since 3.2.0 747 */ 748 AllCommitCharacters []string `json:"allCommitCharacters,omitempty"` 749 /** 750 * The server provides support to resolve additional 751 * information for a completion item. 752 */ 753 ResolveProvider bool `json:"resolveProvider,omitempty"` 754 WorkDoneProgressOptions 755} 756 757/** 758 * Completion parameters 759 */ 760type CompletionParams struct { 761 /** 762 * The completion context. This is only available it the client specifies 763 * to send this using the client capability `textDocument.completion.contextSupport === true` 764 */ 765 Context CompletionContext `json:"context,omitempty"` 766 TextDocumentPositionParams 767 WorkDoneProgressParams 768 PartialResultParams 769} 770 771/** 772 * How a completion was triggered 773 */ 774type CompletionTriggerKind float64 775 776type ConfigurationClientCapabilities struct { 777 /** 778 * The workspace client capabilities 779 */ 780 Workspace WorkspaceGn `json:"workspace,omitempty"` 781} 782 783type ConfigurationItem struct { 784 /** 785 * The scope to get the configuration section for. 786 */ 787 ScopeURI string `json:"scopeUri,omitempty"` 788 /** 789 * The configuration section asked for. 790 */ 791 Section string `json:"section,omitempty"` 792} 793 794/** 795 * The parameters of a configuration request. 796 */ 797type ConfigurationParams struct { 798 Items []ConfigurationItem `json:"items"` 799} 800 801/** 802 * Create file operation. 803 */ 804type CreateFile struct { 805 /** 806 * A create 807 */ 808 Kind string `json:"kind"` 809 /** 810 * The resource to create. 811 */ 812 URI DocumentURI `json:"uri"` 813 /** 814 * Additional options 815 */ 816 Options CreateFileOptions `json:"options,omitempty"` 817 ResourceOperation 818} 819 820/** 821 * Options to create a file. 822 */ 823type CreateFileOptions struct { 824 /** 825 * Overwrite existing file. Overwrite wins over `ignoreIfExists` 826 */ 827 Overwrite bool `json:"overwrite,omitempty"` 828 /** 829 * Ignore if exists. 830 */ 831 IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` 832} 833 834/** 835 * The declaration of a symbol representation as one or many [locations](#Location). 836 */ 837type Declaration = []Location /*Location | Location[]*/ 838 839/** 840 * Since 3.14.0 841 */ 842type DeclarationClientCapabilities struct { 843 /** 844 * Whether declaration supports dynamic registration. If this is set to `true` 845 * the client supports the new `DeclarationRegistrationOptions` return value 846 * for the corresponding server capability as well. 847 */ 848 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 849 /** 850 * The client supports additional metadata in the form of declaration links. 851 */ 852 LinkSupport bool `json:"linkSupport,omitempty"` 853} 854 855/** 856 * Information about where a symbol is declared. 857 * 858 * Provides additional metadata over normal [location](#Location) declarations, including the range of 859 * the declaring symbol. 860 * 861 * Servers should prefer returning `DeclarationLink` over `Declaration` if supported 862 * by the client. 863 */ 864type DeclarationLink = LocationLink 865 866type DeclarationOptions struct { 867 WorkDoneProgressOptions 868} 869 870type DeclarationParams struct { 871 TextDocumentPositionParams 872 WorkDoneProgressParams 873 PartialResultParams 874} 875 876type DeclarationRegistrationOptions struct { 877 DeclarationOptions 878 TextDocumentRegistrationOptions 879 StaticRegistrationOptions 880} 881 882/** 883 * The definition of a symbol represented as one or many [locations](#Location). 884 * For most programming languages there is only one location at which a symbol is 885 * defined. 886 * 887 * Servers should prefer returning `DefinitionLink` over `Definition` if supported 888 * by the client. 889 */ 890type Definition = []Location /*Location | Location[]*/ 891 892/** 893 * Client Capabilities for a [DefinitionRequest](#DefinitionRequest). 894 */ 895type DefinitionClientCapabilities struct { 896 /** 897 * Whether definition supports dynamic registration. 898 */ 899 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 900 /** 901 * The client supports additional metadata in the form of definition links. 902 * 903 * @since 3.14.0 904 */ 905 LinkSupport bool `json:"linkSupport,omitempty"` 906} 907 908/** 909 * Information about where a symbol is defined. 910 * 911 * Provides additional metadata over normal [location](#Location) definitions, including the range of 912 * the defining symbol 913 */ 914type DefinitionLink = LocationLink 915 916/** 917 * Server Capabilities for a [DefinitionRequest](#DefinitionRequest). 918 */ 919type DefinitionOptions struct { 920 WorkDoneProgressOptions 921} 922 923/** 924 * Parameters for a [DefinitionRequest](#DefinitionRequest). 925 */ 926type DefinitionParams struct { 927 TextDocumentPositionParams 928 WorkDoneProgressParams 929 PartialResultParams 930} 931 932/** 933 * Delete file operation 934 */ 935type DeleteFile struct { 936 /** 937 * A delete 938 */ 939 Kind string `json:"kind"` 940 /** 941 * The file to delete. 942 */ 943 URI DocumentURI `json:"uri"` 944 /** 945 * Delete options. 946 */ 947 Options DeleteFileOptions `json:"options,omitempty"` 948 ResourceOperation 949} 950 951/** 952 * Delete file options 953 */ 954type DeleteFileOptions struct { 955 /** 956 * Delete the content recursively if a folder is denoted. 957 */ 958 Recursive bool `json:"recursive,omitempty"` 959 /** 960 * Ignore the operation if the file doesn't exist. 961 */ 962 IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"` 963} 964 965/** 966 * Represents a diagnostic, such as a compiler error or warning. Diagnostic objects 967 * are only valid in the scope of a resource. 968 */ 969type Diagnostic struct { 970 /** 971 * The range at which the message applies 972 */ 973 Range Range `json:"range"` 974 /** 975 * The diagnostic's severity. Can be omitted. If omitted it is up to the 976 * client to interpret diagnostics as error, warning, info or hint. 977 */ 978 Severity DiagnosticSeverity `json:"severity,omitempty"` 979 /** 980 * The diagnostic's code, which usually appear in the user interface. 981 */ 982 Code interface{}/*number | string*/ `json:"code,omitempty"` 983 /** 984 * A human-readable string describing the source of this 985 * diagnostic, e.g. 'typescript' or 'super lint'. It usually 986 * appears in the user interface. 987 */ 988 Source string `json:"source,omitempty"` 989 /** 990 * The diagnostic's message. It usually appears in the user interface 991 */ 992 Message string `json:"message"` 993 /** 994 * Additional metadata about the diagnostic. 995 */ 996 Tags []DiagnosticTag `json:"tags,omitempty"` 997 /** 998 * An array of related diagnostic information, e.g. when symbol-names within 999 * a scope collide all definitions can be marked via this property. 1000 */ 1001 RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"` 1002} 1003 1004/** 1005 * Represents a related message and source code location for a diagnostic. This should be 1006 * used to point to code locations that cause or related to a diagnostics, e.g when duplicating 1007 * a symbol in a scope. 1008 */ 1009type DiagnosticRelatedInformation struct { 1010 /** 1011 * The location of this related diagnostic information. 1012 */ 1013 Location Location `json:"location"` 1014 /** 1015 * The message of this related diagnostic information. 1016 */ 1017 Message string `json:"message"` 1018} 1019 1020/** 1021 * The diagnostic's severity. 1022 */ 1023type DiagnosticSeverity float64 1024 1025/** 1026 * The diagnostic tags. 1027 * 1028 * @since 3.15.0 1029 */ 1030type DiagnosticTag float64 1031 1032type DidChangeConfigurationClientCapabilities struct { 1033 /** 1034 * Did change configuration notification supports dynamic registration. 1035 */ 1036 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1037} 1038 1039/** 1040 * The parameters of a change configuration notification. 1041 */ 1042type DidChangeConfigurationParams struct { 1043 /** 1044 * The actual changed settings 1045 */ 1046 Settings interface{} `json:"settings"` 1047} 1048 1049/** 1050 * The change text document notification's parameters. 1051 */ 1052type DidChangeTextDocumentParams struct { 1053 /** 1054 * The document that did change. The version number points 1055 * to the version after all provided content changes have 1056 * been applied. 1057 */ 1058 TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` 1059 /** 1060 * The actual content changes. The content changes describe single state changes 1061 * to the document. So if there are two content changes c1 (at array index 0) and 1062 * c2 (at array index 1) for a document in state S then c1 moves the document from 1063 * S to S' and c2 from S' to S''. So c1 is computed on the state S and c2 is computed 1064 * on the state S'. 1065 * 1066 * To mirror the content of a document using change events use the following approach: 1067 * - start with the same initial content 1068 * - apply the 'textDocument/didChange' notifications in the order you recevie them. 1069 * - apply the `TextDocumentContentChangeEvent`s in a single notification in the order 1070 * you receive them. 1071 */ 1072 ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"` 1073} 1074 1075type DidChangeWatchedFilesClientCapabilities struct { 1076 /** 1077 * Did change watched files notification supports dynamic registration. Please note 1078 * that the current protocol doesn't support static configuration for file changes 1079 * from the server side. 1080 */ 1081 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1082} 1083 1084/** 1085 * The watched files change notification's parameters. 1086 */ 1087type DidChangeWatchedFilesParams struct { 1088 /** 1089 * The actual file events. 1090 */ 1091 Changes []FileEvent `json:"changes"` 1092} 1093 1094/** 1095 * Describe options to be used when registered for text document change events. 1096 */ 1097type DidChangeWatchedFilesRegistrationOptions struct { 1098 /** 1099 * The watchers to register. 1100 */ 1101 Watchers []FileSystemWatcher `json:"watchers"` 1102} 1103 1104/** 1105 * The parameters of a `workspace/didChangeWorkspaceFolders` notification. 1106 */ 1107type DidChangeWorkspaceFoldersParams struct { 1108 /** 1109 * The actual workspace folder change event. 1110 */ 1111 Event WorkspaceFoldersChangeEvent `json:"event"` 1112} 1113 1114/** 1115 * The parameters send in a close text document notification 1116 */ 1117type DidCloseTextDocumentParams struct { 1118 /** 1119 * The document that was closed. 1120 */ 1121 TextDocument TextDocumentIdentifier `json:"textDocument"` 1122} 1123 1124/** 1125 * The parameters send in a open text document notification 1126 */ 1127type DidOpenTextDocumentParams struct { 1128 /** 1129 * The document that was opened. 1130 */ 1131 TextDocument TextDocumentItem `json:"textDocument"` 1132} 1133 1134/** 1135 * The parameters send in a save text document notification 1136 */ 1137type DidSaveTextDocumentParams struct { 1138 /** 1139 * The document that was closed. 1140 */ 1141 TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` 1142 /** 1143 * Optional the content when saved. Depends on the includeText value 1144 * when the save notification was requested. 1145 */ 1146 Text *string `json:"text,omitempty"` 1147} 1148 1149type DocumentColorClientCapabilities struct { 1150 /** 1151 * Whether implementation supports dynamic registration. If this is set to `true` 1152 * the client supports the new `DocumentColorRegistrationOptions` return value 1153 * for the corresponding server capability as well. 1154 */ 1155 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1156} 1157 1158type DocumentColorOptions struct { 1159 WorkDoneProgressOptions 1160} 1161 1162/** 1163 * Parameters for a [DocumentColorRequest](#DocumentColorRequest). 1164 */ 1165type DocumentColorParams struct { 1166 /** 1167 * The text document. 1168 */ 1169 TextDocument TextDocumentIdentifier `json:"textDocument"` 1170 WorkDoneProgressParams 1171 PartialResultParams 1172} 1173 1174type DocumentColorRegistrationOptions struct { 1175 TextDocumentRegistrationOptions 1176 StaticRegistrationOptions 1177 DocumentColorOptions 1178} 1179 1180/** 1181 * A document filter denotes a document by different properties like 1182 * the [language](#TextDocument.languageId), the [scheme](#Uri.scheme) of 1183 * its resource, or a glob-pattern that is applied to the [path](#TextDocument.fileName). 1184 * 1185 * Glob patterns can have the following syntax: 1186 * - `*` to match one or more characters in a path segment 1187 * - `?` to match on one character in a path segment 1188 * - `**` to match any number of path segments, including none 1189 * - `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) 1190 * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) 1191 * - `[!...]` 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`) 1192 * 1193 * @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }` 1194 * @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }` 1195 */ 1196type DocumentFilter = struct { 1197 /** A language id, like `typescript`. */ 1198 Language string `json:"language"` 1199 /** A Uri [scheme](#Uri.scheme), like `file` or `untitled`. */ 1200 Scheme string `json:"scheme,omitempty"` 1201 /** A glob pattern, like `*.{ts,js}`. */ 1202 Pattern string `json:"pattern,omitempty"` 1203} 1204 1205/** 1206 * Client capabilities of a [DocumentFormattingRequest](#DocumentFormattingRequest). 1207 */ 1208type DocumentFormattingClientCapabilities struct { 1209 /** 1210 * Whether formatting supports dynamic registration. 1211 */ 1212 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1213} 1214 1215/** 1216 * Provider options for a [DocumentFormattingRequest](#DocumentFormattingRequest). 1217 */ 1218type DocumentFormattingOptions struct { 1219 WorkDoneProgressOptions 1220} 1221 1222/** 1223 * The parameters of a [DocumentFormattingRequest](#DocumentFormattingRequest). 1224 */ 1225type DocumentFormattingParams struct { 1226 /** 1227 * The document to format. 1228 */ 1229 TextDocument TextDocumentIdentifier `json:"textDocument"` 1230 /** 1231 * The format options 1232 */ 1233 Options FormattingOptions `json:"options"` 1234 WorkDoneProgressParams 1235} 1236 1237/** 1238 * A document highlight is a range inside a text document which deserves 1239 * special attention. Usually a document highlight is visualized by changing 1240 * the background color of its range. 1241 */ 1242type DocumentHighlight struct { 1243 /** 1244 * The range this highlight applies to. 1245 */ 1246 Range Range `json:"range"` 1247 /** 1248 * The highlight kind, default is [text](#DocumentHighlightKind.Text). 1249 */ 1250 Kind DocumentHighlightKind `json:"kind,omitempty"` 1251} 1252 1253/** 1254 * Client Capabilities for a [DocumentHighlightRequest](#DocumentHighlightRequest). 1255 */ 1256type DocumentHighlightClientCapabilities struct { 1257 /** 1258 * Whether document highlight supports dynamic registration. 1259 */ 1260 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1261} 1262 1263/** 1264 * A document highlight kind. 1265 */ 1266type DocumentHighlightKind float64 1267 1268/** 1269 * Provider options for a [DocumentHighlightRequest](#DocumentHighlightRequest). 1270 */ 1271type DocumentHighlightOptions struct { 1272 WorkDoneProgressOptions 1273} 1274 1275/** 1276 * Parameters for a [DocumentHighlightRequest](#DocumentHighlightRequest). 1277 */ 1278type DocumentHighlightParams struct { 1279 TextDocumentPositionParams 1280 WorkDoneProgressParams 1281 PartialResultParams 1282} 1283 1284/** 1285 * A document link is a range in a text document that links to an internal or external resource, like another 1286 * text document or a web site. 1287 */ 1288type DocumentLink struct { 1289 /** 1290 * The range this link applies to. 1291 */ 1292 Range Range `json:"range"` 1293 /** 1294 * The uri this link points to. 1295 */ 1296 Target string `json:"target,omitempty"` 1297 /** 1298 * The tooltip text when you hover over this link. 1299 * 1300 * If a tooltip is provided, is will be displayed in a string that includes instructions on how to 1301 * trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS, 1302 * user settings, and localization. 1303 * 1304 * @since 3.15.0 1305 */ 1306 Tooltip string `json:"tooltip,omitempty"` 1307 /** 1308 * A data entry field that is preserved on a document link between a 1309 * DocumentLinkRequest and a DocumentLinkResolveRequest. 1310 */ 1311 Data interface{} `json:"data,omitempty"` 1312} 1313 1314/** 1315 * The client capabilities of a [DocumentLinkRequest](#DocumentLinkRequest). 1316 */ 1317type DocumentLinkClientCapabilities struct { 1318 /** 1319 * Whether document link supports dynamic registration. 1320 */ 1321 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1322 /** 1323 * Whether the client support the `tooltip` property on `DocumentLink`. 1324 * 1325 * @since 3.15.0 1326 */ 1327 TooltipSupport bool `json:"tooltipSupport,omitempty"` 1328} 1329 1330/** 1331 * Provider options for a [DocumentLinkRequest](#DocumentLinkRequest). 1332 */ 1333type DocumentLinkOptions struct { 1334 /** 1335 * Document links have a resolve provider as well. 1336 */ 1337 ResolveProvider bool `json:"resolveProvider,omitempty"` 1338 WorkDoneProgressOptions 1339} 1340 1341/** 1342 * The parameters of a [DocumentLinkRequest](#DocumentLinkRequest). 1343 */ 1344type DocumentLinkParams struct { 1345 /** 1346 * The document to provide document links for. 1347 */ 1348 TextDocument TextDocumentIdentifier `json:"textDocument"` 1349 WorkDoneProgressParams 1350 PartialResultParams 1351} 1352 1353/** 1354 * Client capabilities of a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest). 1355 */ 1356type DocumentOnTypeFormattingClientCapabilities struct { 1357 /** 1358 * Whether on type formatting supports dynamic registration. 1359 */ 1360 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1361} 1362 1363/** 1364 * Provider options for a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest). 1365 */ 1366type DocumentOnTypeFormattingOptions struct { 1367 /** 1368 * A character on which formatting should be triggered, like `}`. 1369 */ 1370 FirstTriggerCharacter string `json:"firstTriggerCharacter"` 1371 /** 1372 * More trigger characters. 1373 */ 1374 MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"` 1375} 1376 1377/** 1378 * The parameters of a [DocumentOnTypeFormattingRequest](#DocumentOnTypeFormattingRequest). 1379 */ 1380type DocumentOnTypeFormattingParams struct { 1381 /** 1382 * The document to format. 1383 */ 1384 TextDocument TextDocumentIdentifier `json:"textDocument"` 1385 /** 1386 * The position at which this request was send. 1387 */ 1388 Position Position `json:"position"` 1389 /** 1390 * The character that has been typed. 1391 */ 1392 Ch string `json:"ch"` 1393 /** 1394 * The format options. 1395 */ 1396 Options FormattingOptions `json:"options"` 1397} 1398 1399/** 1400 * Client capabilities of a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest). 1401 */ 1402type DocumentRangeFormattingClientCapabilities struct { 1403 /** 1404 * Whether range formatting supports dynamic registration. 1405 */ 1406 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1407} 1408 1409/** 1410 * Provider options for a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest). 1411 */ 1412type DocumentRangeFormattingOptions struct { 1413 WorkDoneProgressOptions 1414} 1415 1416/** 1417 * The parameters of a [DocumentRangeFormattingRequest](#DocumentRangeFormattingRequest). 1418 */ 1419type DocumentRangeFormattingParams struct { 1420 /** 1421 * The document to format. 1422 */ 1423 TextDocument TextDocumentIdentifier `json:"textDocument"` 1424 /** 1425 * The range to format 1426 */ 1427 Range Range `json:"range"` 1428 /** 1429 * The format options 1430 */ 1431 Options FormattingOptions `json:"options"` 1432 WorkDoneProgressParams 1433} 1434 1435/** 1436 * A document selector is the combination of one or many document filters. 1437 * 1438 * @sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`; 1439 */ 1440type DocumentSelector = []string /*string | DocumentFilter*/ 1441 1442/** 1443 * Represents programming constructs like variables, classes, interfaces etc. 1444 * that appear in a document. Document symbols can be hierarchical and they 1445 * have two ranges: one that encloses its definition and one that points to 1446 * its most interesting range, e.g. the range of an identifier. 1447 */ 1448type DocumentSymbol struct { 1449 /** 1450 * The name of this symbol. Will be displayed in the user interface and therefore must not be 1451 * an empty string or a string only consisting of white spaces. 1452 */ 1453 Name string `json:"name"` 1454 /** 1455 * More detail for this symbol, e.g the signature of a function. 1456 */ 1457 Detail string `json:"detail,omitempty"` 1458 /** 1459 * The kind of this symbol. 1460 */ 1461 Kind SymbolKind `json:"kind"` 1462 /** 1463 * Indicates if this symbol is deprecated. 1464 */ 1465 Deprecated bool `json:"deprecated,omitempty"` 1466 /** 1467 * The range enclosing this symbol not including leading/trailing whitespace but everything else 1468 * like comments. This information is typically used to determine if the the clients cursor is 1469 * inside the symbol to reveal in the symbol in the UI. 1470 */ 1471 Range Range `json:"range"` 1472 /** 1473 * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function. 1474 * Must be contained by the the `range`. 1475 */ 1476 SelectionRange Range `json:"selectionRange"` 1477 /** 1478 * Children of this symbol, e.g. properties of a class. 1479 */ 1480 Children []DocumentSymbol `json:"children,omitempty"` 1481} 1482 1483/** 1484 * Client Capabilities for a [DocumentSymbolRequest](#DocumentSymbolRequest). 1485 */ 1486type DocumentSymbolClientCapabilities struct { 1487 /** 1488 * Whether document symbol supports dynamic registration. 1489 */ 1490 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1491 /** 1492 * Specific capabilities for the `SymbolKind`. 1493 */ 1494 SymbolKind struct { 1495 /** 1496 * The symbol kind values the client supports. When this 1497 * property exists the client also guarantees that it will 1498 * handle values outside its set gracefully and falls back 1499 * to a default value when unknown. 1500 * 1501 * If this property is not present the client only supports 1502 * the symbol kinds from `File` to `Array` as defined in 1503 * the initial version of the protocol. 1504 */ 1505 ValueSet []SymbolKind `json:"valueSet,omitempty"` 1506 } `json:"symbolKind,omitempty"` 1507 /** 1508 * The client support hierarchical document symbols. 1509 */ 1510 HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"` 1511} 1512 1513/** 1514 * Provider options for a [DocumentSymbolRequest](#DocumentSymbolRequest). 1515 */ 1516type DocumentSymbolOptions struct { 1517 WorkDoneProgressOptions 1518} 1519 1520/** 1521 * Parameters for a [DocumentSymbolRequest](#DocumentSymbolRequest). 1522 */ 1523type DocumentSymbolParams struct { 1524 /** 1525 * The text document. 1526 */ 1527 TextDocument TextDocumentIdentifier `json:"textDocument"` 1528 WorkDoneProgressParams 1529 PartialResultParams 1530} 1531 1532/** 1533 * A tagging type for string properties that are actually URIs. 1534 */ 1535type DocumentURI string 1536 1537/** 1538 * The client capabilities of a [ExecuteCommandRequest](#ExecuteCommandRequest). 1539 */ 1540type ExecuteCommandClientCapabilities struct { 1541 /** 1542 * Execute command supports dynamic registration. 1543 */ 1544 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1545} 1546 1547/** 1548 * The server capabilities of a [ExecuteCommandRequest](#ExecuteCommandRequest). 1549 */ 1550type ExecuteCommandOptions struct { 1551 /** 1552 * The commands to be executed on the server 1553 */ 1554 Commands []string `json:"commands"` 1555 WorkDoneProgressOptions 1556} 1557 1558/** 1559 * The parameters of a [ExecuteCommandRequest](#ExecuteCommandRequest). 1560 */ 1561type ExecuteCommandParams struct { 1562 /** 1563 * The identifier of the actual command handler. 1564 */ 1565 Command string `json:"command"` 1566 /** 1567 * Arguments that the command should be invoked with. 1568 */ 1569 Arguments []interface{} `json:"arguments,omitempty"` 1570 WorkDoneProgressParams 1571} 1572 1573type FailureHandlingKind string 1574 1575/** 1576 * The file event type 1577 */ 1578type FileChangeType float64 1579 1580/** 1581 * An event describing a file change. 1582 */ 1583type FileEvent struct { 1584 /** 1585 * The file's uri. 1586 */ 1587 URI DocumentURI `json:"uri"` 1588 /** 1589 * The change type. 1590 */ 1591 Type FileChangeType `json:"type"` 1592} 1593 1594type FileSystemWatcher struct { 1595 /** 1596 * The glob pattern to watch. Glob patterns can have the following syntax: 1597 * - `*` to match one or more characters in a path segment 1598 * - `?` to match on one character in a path segment 1599 * - `**` to match any number of path segments, including none 1600 * - `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) 1601 * - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) 1602 * - `[!...]` 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`) 1603 */ 1604 GlobPattern string `json:"globPattern"` 1605 /** 1606 * The kind of events of interest. If omitted it defaults 1607 * to WatchKind.Create | WatchKind.Change | WatchKind.Delete 1608 * which is 7. 1609 */ 1610 Kind float64 `json:"kind,omitempty"` 1611} 1612 1613/** 1614 * Represents a folding range. 1615 */ 1616type FoldingRange struct { 1617 /** 1618 * The zero-based line number from where the folded range starts. 1619 */ 1620 StartLine float64 `json:"startLine"` 1621 /** 1622 * The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line. 1623 */ 1624 StartCharacter float64 `json:"startCharacter,omitempty"` 1625 /** 1626 * The zero-based line number where the folded range ends. 1627 */ 1628 EndLine float64 `json:"endLine"` 1629 /** 1630 * The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line. 1631 */ 1632 EndCharacter float64 `json:"endCharacter,omitempty"` 1633 /** 1634 * Describes the kind of the folding range such as `comment' or 'region'. The kind 1635 * is used to categorize folding ranges and used by commands like 'Fold all comments'. See 1636 * [FoldingRangeKind](#FoldingRangeKind) for an enumeration of standardized kinds. 1637 */ 1638 Kind string `json:"kind,omitempty"` 1639} 1640 1641type FoldingRangeClientCapabilities struct { 1642 /** 1643 * Whether implementation supports dynamic registration for folding range providers. If this is set to `true` 1644 * the client supports the new `FoldingRangeRegistrationOptions` return value for the corresponding server 1645 * capability as well. 1646 */ 1647 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1648 /** 1649 * The maximum number of folding ranges that the client prefers to receive per document. The value serves as a 1650 * hint, servers are free to follow the limit. 1651 */ 1652 RangeLimit float64 `json:"rangeLimit,omitempty"` 1653 /** 1654 * If set, the client signals that it only supports folding complete lines. If set, client will 1655 * ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange. 1656 */ 1657 LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"` 1658} 1659 1660/** 1661 * Enum of known range kinds 1662 */ 1663type FoldingRangeKind string 1664 1665type FoldingRangeOptions struct { 1666 WorkDoneProgressOptions 1667} 1668 1669/** 1670 * Parameters for a [FoldingRangeRequest](#FoldingRangeRequest). 1671 */ 1672type FoldingRangeParams struct { 1673 /** 1674 * The text document. 1675 */ 1676 TextDocument TextDocumentIdentifier `json:"textDocument"` 1677 WorkDoneProgressParams 1678 PartialResultParams 1679} 1680 1681type FoldingRangeRegistrationOptions struct { 1682 TextDocumentRegistrationOptions 1683 FoldingRangeOptions 1684 StaticRegistrationOptions 1685} 1686 1687/** 1688 * Value-object describing what options formatting should use. 1689 */ 1690type FormattingOptions struct { 1691 /** 1692 * Size of a tab in spaces. 1693 */ 1694 TabSize float64 `json:"tabSize"` 1695 /** 1696 * Prefer spaces over tabs. 1697 */ 1698 InsertSpaces bool `json:"insertSpaces"` 1699 /** 1700 * Trim trailing whitespaces on a line. 1701 * 1702 * @since 3.15.0 1703 */ 1704 TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"` 1705 /** 1706 * Insert a newline character at the end of the file if one does not exist. 1707 * 1708 * @since 3.15.0 1709 */ 1710 InsertFinalNewline bool `json:"insertFinalNewline,omitempty"` 1711 /** 1712 * Trim all newlines after the final newline at the end of the file. 1713 * 1714 * @since 3.15.0 1715 */ 1716 TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"` 1717} 1718 1719/** 1720 * The result of a hover request. 1721 */ 1722type Hover struct { 1723 /** 1724 * The hover's content 1725 */ 1726 Contents MarkupContent/*MarkupContent | MarkedString | MarkedString[]*/ `json:"contents"` 1727 /** 1728 * An optional range 1729 */ 1730 Range Range `json:"range,omitempty"` 1731} 1732 1733type HoverClientCapabilities struct { 1734 /** 1735 * Whether hover supports dynamic registration. 1736 */ 1737 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1738 /** 1739 * Client supports the follow content formats for the content 1740 * property. The order describes the preferred format of the client. 1741 */ 1742 ContentFormat []MarkupKind `json:"contentFormat,omitempty"` 1743} 1744 1745/** 1746 * Hover options. 1747 */ 1748type HoverOptions struct { 1749 WorkDoneProgressOptions 1750} 1751 1752/** 1753 * Parameters for a [HoverRequest](#HoverRequest). 1754 */ 1755type HoverParams struct { 1756 TextDocumentPositionParams 1757 WorkDoneProgressParams 1758} 1759 1760/** 1761 * Since 3.6.0 1762 */ 1763type ImplementationClientCapabilities struct { 1764 /** 1765 * Whether implementation supports dynamic registration. If this is set to `true` 1766 * the client supports the new `ImplementationRegistrationOptions` return value 1767 * for the corresponding server capability as well. 1768 */ 1769 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 1770 /** 1771 * The client supports additional metadata in the form of definition links. 1772 * 1773 * Since 3.14.0 1774 */ 1775 LinkSupport bool `json:"linkSupport,omitempty"` 1776} 1777 1778type ImplementationOptions struct { 1779 WorkDoneProgressOptions 1780} 1781 1782type ImplementationParams struct { 1783 TextDocumentPositionParams 1784 WorkDoneProgressParams 1785 PartialResultParams 1786} 1787 1788type ImplementationRegistrationOptions struct { 1789 TextDocumentRegistrationOptions 1790 ImplementationOptions 1791 StaticRegistrationOptions 1792} 1793 1794/** 1795 * Known error codes for an `InitializeError`; 1796 */ 1797type InitializeError float64 1798 1799type InitializeParams = struct { 1800 InnerInitializeParams 1801 WorkspaceFoldersInitializeParams 1802} 1803 1804/** 1805 * The result returned from an initialize request. 1806 */ 1807type InitializeResult struct { 1808 /** 1809 * The capabilities the language server provides. 1810 */ 1811 Capabilities ServerCapabilities `json:"capabilities"` 1812 /** 1813 * Information about the server. 1814 * 1815 * @since 3.15.0 1816 */ 1817 ServerInfo struct { 1818 /** 1819 * The name of the server as defined by the server. 1820 */ 1821 Name string `json:"name"` 1822 /** 1823 * The servers's version as defined by the server. 1824 */ 1825 Version string `json:"version,omitempty"` 1826 } `json:"serverInfo,omitempty"` 1827} 1828 1829type InitializedParams struct { 1830} 1831 1832/** 1833 * Defines the capabilities provided by the client. 1834 */ 1835type InnerClientCapabilities struct { 1836 /** 1837 * Workspace specific client capabilities. 1838 */ 1839 Workspace WorkspaceClientCapabilities `json:"workspace,omitempty"` 1840 /** 1841 * Text document specific client capabilities. 1842 */ 1843 TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"` 1844 /** 1845 * Window specific client capabilities. 1846 */ 1847 Window interface{} `json:"window,omitempty"` 1848 /** 1849 * Experimental client capabilities. 1850 */ 1851 Experimental interface{} `json:"experimental,omitempty"` 1852} 1853 1854/** 1855 * The initialize parameters 1856 */ 1857type InnerInitializeParams struct { 1858 /** 1859 * The process Id of the parent process that started 1860 * the server. 1861 */ 1862 ProcessID float64/*number | null*/ `json:"processId"` 1863 /** 1864 * Information about the client 1865 * 1866 * @since 3.15.0 1867 */ 1868 ClientInfo struct { 1869 /** 1870 * The name of the client as defined by the client. 1871 */ 1872 Name string `json:"name"` 1873 /** 1874 * The client's version as defined by the client. 1875 */ 1876 Version string `json:"version,omitempty"` 1877 } `json:"clientInfo,omitempty"` 1878 /** 1879 * The rootPath of the workspace. Is null 1880 * if no folder is open. 1881 * 1882 * @deprecated in favour of rootUri. 1883 */ 1884 RootPath string/*string | null*/ `json:"rootPath,omitempty"` 1885 /** 1886 * The rootUri of the workspace. Is null if no 1887 * folder is open. If both `rootPath` and `rootUri` are set 1888 * `rootUri` wins. 1889 * 1890 * @deprecated in favour of workspaceFolders. 1891 */ 1892 RootURI DocumentURI/*DocumentUri | null*/ `json:"rootUri"` 1893 /** 1894 * The capabilities provided by the client (editor or tool) 1895 */ 1896 Capabilities ClientCapabilities `json:"capabilities"` 1897 /** 1898 * User provided initialization options. 1899 */ 1900 InitializationOptions interface{} `json:"initializationOptions,omitempty"` 1901 /** 1902 * The initial trace setting. If omitted trace is disabled ('off'). 1903 */ 1904 Trace string/*'off' | 'messages' | 'verbose'*/ `json:"trace,omitempty"` 1905 WorkDoneProgressParams 1906} 1907 1908/** 1909 * Defines the capabilities provided by a language 1910 * server. 1911 */ 1912type InnerServerCapabilities struct { 1913 /** 1914 * Defines how text documents are synced. Is either a detailed structure defining each notification or 1915 * for backwards compatibility the TextDocumentSyncKind number. 1916 */ 1917 TextDocumentSync interface{}/*TextDocumentSyncOptions | TextDocumentSyncKind*/ `json:"textDocumentSync,omitempty"` 1918 /** 1919 * The server provides completion support. 1920 */ 1921 CompletionProvider CompletionOptions `json:"completionProvider,omitempty"` 1922 /** 1923 * The server provides hover support. 1924 */ 1925 HoverProvider bool/*boolean | HoverOptions*/ `json:"hoverProvider,omitempty"` 1926 /** 1927 * The server provides signature help support. 1928 */ 1929 SignatureHelpProvider SignatureHelpOptions `json:"signatureHelpProvider,omitempty"` 1930 /** 1931 * The server provides Goto Declaration support. 1932 */ 1933 DeclarationProvider interface{}/* bool | DeclarationOptions | DeclarationRegistrationOptions*/ `json:"declarationProvider,omitempty"` 1934 /** 1935 * The server provides goto definition support. 1936 */ 1937 DefinitionProvider bool/*boolean | DefinitionOptions*/ `json:"definitionProvider,omitempty"` 1938 /** 1939 * The server provides Goto Type Definition support. 1940 */ 1941 TypeDefinitionProvider interface{}/* bool | TypeDefinitionOptions | TypeDefinitionRegistrationOptions*/ `json:"typeDefinitionProvider,omitempty"` 1942 /** 1943 * The server provides Goto Implementation support. 1944 */ 1945 ImplementationProvider interface{}/* bool | ImplementationOptions | ImplementationRegistrationOptions*/ `json:"implementationProvider,omitempty"` 1946 /** 1947 * The server provides find references support. 1948 */ 1949 ReferencesProvider bool/*boolean | ReferenceOptions*/ `json:"referencesProvider,omitempty"` 1950 /** 1951 * The server provides document highlight support. 1952 */ 1953 DocumentHighlightProvider bool/*boolean | DocumentHighlightOptions*/ `json:"documentHighlightProvider,omitempty"` 1954 /** 1955 * The server provides document symbol support. 1956 */ 1957 DocumentSymbolProvider bool/*boolean | DocumentSymbolOptions*/ `json:"documentSymbolProvider,omitempty"` 1958 /** 1959 * The server provides code actions. CodeActionOptions may only be 1960 * specified if the client states that it supports 1961 * `codeActionLiteralSupport` in its initial `initialize` request. 1962 */ 1963 CodeActionProvider interface{}/*boolean | CodeActionOptions*/ `json:"codeActionProvider,omitempty"` 1964 /** 1965 * The server provides code lens. 1966 */ 1967 CodeLensProvider CodeLensOptions `json:"codeLensProvider,omitempty"` 1968 /** 1969 * The server provides document link support. 1970 */ 1971 DocumentLinkProvider DocumentLinkOptions `json:"documentLinkProvider,omitempty"` 1972 /** 1973 * The server provides color provider support. 1974 */ 1975 ColorProvider interface{}/* bool | DocumentColorOptions | DocumentColorRegistrationOptions*/ `json:"colorProvider,omitempty"` 1976 /** 1977 * The server provides workspace symbol support. 1978 */ 1979 WorkspaceSymbolProvider bool/*boolean | WorkspaceSymbolOptions*/ `json:"workspaceSymbolProvider,omitempty"` 1980 /** 1981 * The server provides document formatting. 1982 */ 1983 DocumentFormattingProvider bool/*boolean | DocumentFormattingOptions*/ `json:"documentFormattingProvider,omitempty"` 1984 /** 1985 * The server provides document range formatting. 1986 */ 1987 DocumentRangeFormattingProvider bool/*boolean | DocumentRangeFormattingOptions*/ `json:"documentRangeFormattingProvider,omitempty"` 1988 /** 1989 * The server provides document formatting on typing. 1990 */ 1991 DocumentOnTypeFormattingProvider DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"` 1992 /** 1993 * The server provides rename support. RenameOptions may only be 1994 * specified if the client states that it supports 1995 * `prepareSupport` in its initial `initialize` request. 1996 */ 1997 RenameProvider interface{}/*boolean | RenameOptions*/ `json:"renameProvider,omitempty"` 1998 /** 1999 * The server provides folding provider support. 2000 */ 2001 FoldingRangeProvider interface{}/* bool | FoldingRangeOptions | FoldingRangeRegistrationOptions*/ `json:"foldingRangeProvider,omitempty"` 2002 /** 2003 * The server provides selection range support. 2004 */ 2005 SelectionRangeProvider interface{}/* bool | SelectionRangeOptions | SelectionRangeRegistrationOptions*/ `json:"selectionRangeProvider,omitempty"` 2006 /** 2007 * The server provides execute command support. 2008 */ 2009 ExecuteCommandProvider ExecuteCommandOptions `json:"executeCommandProvider,omitempty"` 2010 /** 2011 * Experimental server capabilities. 2012 */ 2013 Experimental interface{} `json:"experimental,omitempty"` 2014} 2015 2016/** 2017 * Defines whether the insert text in a completion item should be interpreted as 2018 * plain text or a snippet. 2019 */ 2020type InsertTextFormat float64 2021 2022/** 2023 * Represents a location inside a resource, such as a line 2024 * inside a text file. 2025 */ 2026type Location struct { 2027 URI DocumentURI `json:"uri"` 2028 Range Range `json:"range"` 2029} 2030 2031/** 2032 * Represents the connection of two locations. Provides additional metadata over normal [locations](#Location), 2033 * including an origin range. 2034 */ 2035type LocationLink struct { 2036 /** 2037 * Span of the origin of this link. 2038 * 2039 * Used as the underlined span for mouse definition hover. Defaults to the word range at 2040 * the definition position. 2041 */ 2042 OriginSelectionRange Range `json:"originSelectionRange,omitempty"` 2043 /** 2044 * The target resource identifier of this link. 2045 */ 2046 TargetURI DocumentURI `json:"targetUri"` 2047 /** 2048 * The full target range of this link. If the target for example is a symbol then target range is the 2049 * range enclosing this symbol not including leading/trailing whitespace but everything else 2050 * like comments. This information is typically used to highlight the range in the editor. 2051 */ 2052 TargetRange Range `json:"targetRange"` 2053 /** 2054 * The range that should be selected and revealed when this link is being followed, e.g the name of a function. 2055 * Must be contained by the the `targetRange`. See also `DocumentSymbol#range` 2056 */ 2057 TargetSelectionRange Range `json:"targetSelectionRange"` 2058} 2059 2060/** 2061 * The log message parameters. 2062 */ 2063type LogMessageParams struct { 2064 /** 2065 * The message type. See {@link MessageType} 2066 */ 2067 Type MessageType `json:"type"` 2068 /** 2069 * The actual message 2070 */ 2071 Message string `json:"message"` 2072} 2073 2074type LogTraceParams struct { 2075 Message string `json:"message"` 2076 Verbose string `json:"verbose,omitempty"` 2077} 2078 2079/** 2080 * MarkedString can be used to render human readable text. It is either a markdown string 2081 * or a code-block that provides a language and a code snippet. The language identifier 2082 * is semantically equal to the optional language identifier in fenced code blocks in GitHub 2083 * issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting 2084 * 2085 * The pair of a language and a value is an equivalent to markdown: 2086 * ```${language} 2087 * ${value} 2088 * ``` 2089 * 2090 * Note that markdown strings will be sanitized - that means html will be escaped. 2091 * @deprecated use MarkupContent instead. 2092 */ 2093type MarkedString = string /*string | { language: string; value: string }*/ 2094 2095/** 2096 * A `MarkupContent` literal represents a string value which content is interpreted base on its 2097 * kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds. 2098 * 2099 * If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues. 2100 * See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting 2101 * 2102 * Here is an example how such a string can be constructed using JavaScript / TypeScript: 2103 * ```ts 2104 * let markdown: MarkdownContent = { 2105 * kind: MarkupKind.Markdown, 2106 * value: [ 2107 * '# Header', 2108 * 'Some text', 2109 * '```typescript', 2110 * 'someCode();', 2111 * '```' 2112 * ].join('\n') 2113 * }; 2114 * ``` 2115 * 2116 * *Please Note* that clients might sanitize the return markdown. A client could decide to 2117 * remove HTML from the markdown to avoid script execution. 2118 */ 2119type MarkupContent struct { 2120 /** 2121 * The type of the Markup 2122 */ 2123 Kind MarkupKind `json:"kind"` 2124 /** 2125 * The content itself 2126 */ 2127 Value string `json:"value"` 2128} 2129 2130/** 2131 * Describes the content type that a client supports in various 2132 * result literals like `Hover`, `ParameterInfo` or `CompletionItem`. 2133 * 2134 * Please note that `MarkupKinds` must not start with a `$`. This kinds 2135 * are reserved for internal usage. 2136 */ 2137type MarkupKind string 2138 2139type MessageActionItem struct { 2140 /** 2141 * A short title like 'Retry', 'Open Log' etc. 2142 */ 2143 Title string `json:"title"` 2144} 2145 2146/** 2147 * The message type 2148 */ 2149type MessageType float64 2150 2151/** 2152 * Represents a parameter of a callable-signature. A parameter can 2153 * have a label and a doc-comment. 2154 */ 2155type ParameterInformation struct { 2156 /** 2157 * The label of this parameter information. 2158 * 2159 * Either a string or an inclusive start and exclusive end offsets within its containing 2160 * signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 2161 * string representation as `Position` and `Range` does. 2162 * 2163 * *Note*: a label of type string should be a substring of its containing signature label. 2164 * Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`. 2165 */ 2166 Label string/*string | [number, number]*/ `json:"label"` 2167 /** 2168 * The human-readable doc-comment of this signature. Will be shown 2169 * in the UI but can be omitted. 2170 */ 2171 Documentation string/*string | MarkupContent*/ `json:"documentation,omitempty"` 2172} 2173 2174type PartialResultParams struct { 2175 /** 2176 * An optional token that a server can use to report partial results (e.g. streaming) to 2177 * the client. 2178 */ 2179 PartialResultToken ProgressToken `json:"partialResultToken,omitempty"` 2180} 2181 2182/** 2183 * Position in a text document expressed as zero-based line and character offset. 2184 * The offsets are based on a UTF-16 string representation. So a string of the form 2185 * `ab` the character offset of the character `a` is 0, the character offset of `` 2186 * is 1 and the character offset of b is 3 since `` is represented using two code 2187 * units in UTF-16. 2188 * 2189 * Positions are line end character agnostic. So you can not specify a position that 2190 * denotes `\r|\n` or `\n|` where `|` represents the character offset. 2191 */ 2192type Position struct { 2193 /** 2194 * Line position in a document (zero-based). 2195 * If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document. 2196 * If a line number is negative, it defaults to 0. 2197 */ 2198 Line float64 `json:"line"` 2199 /** 2200 * Character offset on a line in a document (zero-based). Assuming that the line is 2201 * represented as a string, the `character` value represents the gap between the 2202 * `character` and `character + 1`. 2203 * 2204 * If the character value is greater than the line length it defaults back to the 2205 * line length. 2206 * If a line number is negative, it defaults to 0. 2207 */ 2208 Character float64 `json:"character"` 2209} 2210 2211type PrepareRenameParams struct { 2212 TextDocumentPositionParams 2213 WorkDoneProgressParams 2214} 2215 2216type ProgressParams struct { 2217 /** 2218 * The progress token provided by the client or server. 2219 */ 2220 Token ProgressToken `json:"token"` 2221 /** 2222 * The progress data. 2223 */ 2224 Value interface{} `json:"value"` 2225} 2226 2227type ProgressToken = interface{} /*number | string*/ 2228 2229/** 2230 * The publish diagnostic client capabilities. 2231 */ 2232type PublishDiagnosticsClientCapabilities struct { 2233 /** 2234 * Whether the clients accepts diagnostics with related information. 2235 */ 2236 RelatedInformation bool `json:"relatedInformation,omitempty"` 2237 /** 2238 * Client supports the tag property to provide meta data about a diagnostic. 2239 * Clients supporting tags have to handle unknown tags gracefully. 2240 * 2241 * @since 3.15.0 2242 */ 2243 TagSupport struct { 2244 /** 2245 * The tags supported by the client. 2246 */ 2247 ValueSet []DiagnosticTag `json:"valueSet"` 2248 } `json:"tagSupport,omitempty"` 2249 /** 2250 * Whether the client interprets the version property of the 2251 * `textDocument/publishDiagnostics` notification`s parameter. 2252 * 2253 * @since 3.15.0 2254 */ 2255 VersionSupport bool `json:"versionSupport,omitempty"` 2256} 2257 2258/** 2259 * The publish diagnostic notification's parameters. 2260 */ 2261type PublishDiagnosticsParams struct { 2262 /** 2263 * The URI for which diagnostic information is reported. 2264 */ 2265 URI DocumentURI `json:"uri"` 2266 /** 2267 * Optional the version number of the document the diagnostics are published for. 2268 * 2269 * @since 3.15.0 2270 */ 2271 Version float64 `json:"version,omitempty"` 2272 /** 2273 * An array of diagnostic information items. 2274 */ 2275 Diagnostics []Diagnostic `json:"diagnostics"` 2276} 2277 2278/** 2279 * A range in a text document expressed as (zero-based) start and end positions. 2280 * 2281 * If you want to specify a range that contains a line including the line ending 2282 * character(s) then use an end position denoting the start of the next line. 2283 * For example: 2284 * ```ts 2285 * { 2286 * start: { line: 5, character: 23 } 2287 * end : { line 6, character : 0 } 2288 * } 2289 * ``` 2290 */ 2291type Range struct { 2292 /** 2293 * The range's start position 2294 */ 2295 Start Position `json:"start"` 2296 /** 2297 * The range's end position. 2298 */ 2299 End Position `json:"end"` 2300} 2301 2302/** 2303 * Client Capabilities for a [ReferencesRequest](#ReferencesRequest). 2304 */ 2305type ReferenceClientCapabilities struct { 2306 /** 2307 * Whether references supports dynamic registration. 2308 */ 2309 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 2310} 2311 2312/** 2313 * Value-object that contains additional information when 2314 * requesting references. 2315 */ 2316type ReferenceContext struct { 2317 /** 2318 * Include the declaration of the current symbol. 2319 */ 2320 IncludeDeclaration bool `json:"includeDeclaration"` 2321} 2322 2323/** 2324 * Reference options. 2325 */ 2326type ReferenceOptions struct { 2327 WorkDoneProgressOptions 2328} 2329 2330/** 2331 * Parameters for a [ReferencesRequest](#ReferencesRequest). 2332 */ 2333type ReferenceParams struct { 2334 Context ReferenceContext `json:"context"` 2335 TextDocumentPositionParams 2336 WorkDoneProgressParams 2337 PartialResultParams 2338} 2339 2340/** 2341 * General parameters to to register for an notification or to register a provider. 2342 */ 2343type Registration struct { 2344 /** 2345 * The id used to register the request. The id can be used to deregister 2346 * the request again. 2347 */ 2348 ID string `json:"id"` 2349 /** 2350 * The method to register for. 2351 */ 2352 Method string `json:"method"` 2353 /** 2354 * Options necessary for the registration. 2355 */ 2356 RegisterOptions interface{} `json:"registerOptions,omitempty"` 2357} 2358 2359type RegistrationParams struct { 2360 Registrations []Registration `json:"registrations"` 2361} 2362 2363type RenameClientCapabilities struct { 2364 /** 2365 * Whether rename supports dynamic registration. 2366 */ 2367 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 2368 /** 2369 * Client supports testing for validity of rename operations 2370 * before execution. 2371 * 2372 * @since version 3.12.0 2373 */ 2374 PrepareSupport bool `json:"prepareSupport,omitempty"` 2375} 2376 2377/** 2378 * Rename file operation 2379 */ 2380type RenameFile struct { 2381 /** 2382 * A rename 2383 */ 2384 Kind string `json:"kind"` 2385 /** 2386 * The old (existing) location. 2387 */ 2388 OldURI DocumentURI `json:"oldUri"` 2389 /** 2390 * The new location. 2391 */ 2392 NewURI DocumentURI `json:"newUri"` 2393 /** 2394 * Rename options. 2395 */ 2396 Options RenameFileOptions `json:"options,omitempty"` 2397 ResourceOperation 2398} 2399 2400/** 2401 * Rename file options 2402 */ 2403type RenameFileOptions struct { 2404 /** 2405 * Overwrite target if existing. Overwrite wins over `ignoreIfExists` 2406 */ 2407 Overwrite bool `json:"overwrite,omitempty"` 2408 /** 2409 * Ignores if target exists. 2410 */ 2411 IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` 2412} 2413 2414/** 2415 * Provider options for a [RenameRequest](#RenameRequest). 2416 */ 2417type RenameOptions struct { 2418 /** 2419 * Renames should be checked and tested before being executed. 2420 * 2421 * @since version 3.12.0 2422 */ 2423 PrepareProvider bool `json:"prepareProvider,omitempty"` 2424 WorkDoneProgressOptions 2425} 2426 2427/** 2428 * The parameters of a [RenameRequest](#RenameRequest). 2429 */ 2430type RenameParams struct { 2431 /** 2432 * The document to rename. 2433 */ 2434 TextDocument TextDocumentIdentifier `json:"textDocument"` 2435 /** 2436 * The position at which this request was sent. 2437 */ 2438 Position Position `json:"position"` 2439 /** 2440 * The new name of the symbol. If the given name is not valid the 2441 * request must return a [ResponseError](#ResponseError) with an 2442 * appropriate message set. 2443 */ 2444 NewName string `json:"newName"` 2445 WorkDoneProgressParams 2446} 2447 2448type ResourceOperation struct { 2449 Kind string `json:"kind"` 2450} 2451 2452type ResourceOperationKind string 2453 2454/** 2455 * Save options. 2456 */ 2457type SaveOptions struct { 2458 /** 2459 * The client is supposed to include the content on save. 2460 */ 2461 IncludeText bool `json:"includeText,omitempty"` 2462} 2463 2464/** 2465 * A selection range represents a part of a selection hierarchy. A selection range 2466 * may have a parent selection range that contains it. 2467 */ 2468type SelectionRange struct { 2469 /** 2470 * The [range](#Range) of this selection range. 2471 */ 2472 Range Range `json:"range"` 2473 /** 2474 * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`. 2475 */ 2476 Parent *SelectionRange `json:"parent,omitempty"` 2477} 2478 2479type SelectionRangeClientCapabilities struct { 2480 /** 2481 * Whether implementation supports dynamic registration for selection range providers. If this is set to `true` 2482 * the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server 2483 * capability as well. 2484 */ 2485 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 2486} 2487 2488type SelectionRangeOptions struct { 2489 WorkDoneProgressOptions 2490} 2491 2492/** 2493 * A parameter literal used in selection range requests. 2494 */ 2495type SelectionRangeParams struct { 2496 /** 2497 * The text document. 2498 */ 2499 TextDocument TextDocumentIdentifier `json:"textDocument"` 2500 /** 2501 * The positions inside the text document. 2502 */ 2503 Positions []Position `json:"positions"` 2504 WorkDoneProgressParams 2505 PartialResultParams 2506} 2507 2508type SelectionRangeRegistrationOptions struct { 2509 SelectionRangeOptions 2510 TextDocumentRegistrationOptions 2511 StaticRegistrationOptions 2512} 2513 2514/** 2515 * @since 3.16.0 - Proposed state 2516 */ 2517type SemanticTokens struct { 2518 /** 2519 * An optional result id. If provided and clients support delta updating 2520 * the client will include the result id in the next semantic token request. 2521 * A server can then instead of computing all sematic tokens again simply 2522 * send a delta. 2523 */ 2524 ResultID string `json:"resultId,omitempty"` 2525 /** 2526 * The actual tokens. For a detailed description about how the data is 2527 * structured pls see 2528 * https://github.com/microsoft/vscode-extension-samples/blob/5ae1f7787122812dcc84e37427ca90af5ee09f14/semantic-tokens-sample/vscode.proposed.d.ts#L71 2529 */ 2530 Data []float64 `json:"data"` 2531} 2532 2533/** 2534 * @since 3.16.0 - Proposed state 2535 */ 2536type SemanticTokensEdit struct { 2537 Start float64 `json:"start"` 2538 DeleteCount float64 `json:"deleteCount"` 2539 Data []float64 `json:"data,omitempty"` 2540} 2541 2542/** 2543 * @since 3.16.0 - Proposed state 2544 */ 2545type SemanticTokensEdits struct { 2546 ResultID string `json:"resultId,omitempty"` 2547 /** 2548 * For a detailed description how these edits are structured pls see 2549 * https://github.com/microsoft/vscode-extension-samples/blob/5ae1f7787122812dcc84e37427ca90af5ee09f14/semantic-tokens-sample/vscode.proposed.d.ts#L131 2550 */ 2551 Edits []SemanticTokensEdit `json:"edits"` 2552} 2553 2554/** 2555 * @since 3.16.0 - Proposed state 2556 */ 2557type SemanticTokensEditsParams struct { 2558 /** 2559 * The text document. 2560 */ 2561 TextDocument TextDocumentIdentifier `json:"textDocument"` 2562 /** 2563 * The previous result id. 2564 */ 2565 PreviousResultID string `json:"previousResultId"` 2566 WorkDoneProgressParams 2567 PartialResultParams 2568} 2569 2570/** 2571 * @since 3.16.0 - Proposed state 2572 */ 2573type SemanticTokensParams struct { 2574 /** 2575 * The text document. 2576 */ 2577 TextDocument TextDocumentIdentifier `json:"textDocument"` 2578 WorkDoneProgressParams 2579 PartialResultParams 2580} 2581 2582/** 2583 * @since 3.16.0 - Proposed state 2584 */ 2585type SemanticTokensRangeParams struct { 2586 /** 2587 * The text document. 2588 */ 2589 TextDocument TextDocumentIdentifier `json:"textDocument"` 2590 /** 2591 * The range the semantic tokens are requested for. 2592 */ 2593 Range Range `json:"range"` 2594 WorkDoneProgressParams 2595 PartialResultParams 2596} 2597 2598type ServerCapabilities = struct { 2599 /** 2600 * Defines how text documents are synced. Is either a detailed structure defining each notification or 2601 * for backwards compatibility the TextDocumentSyncKind number. 2602 */ 2603 TextDocumentSync interface{}/*TextDocumentSyncOptions | TextDocumentSyncKind*/ `json:"textDocumentSync,omitempty"` 2604 /** 2605 * The server provides completion support. 2606 */ 2607 CompletionProvider CompletionOptions `json:"completionProvider,omitempty"` 2608 /** 2609 * The server provides hover support. 2610 */ 2611 HoverProvider bool/*boolean | HoverOptions*/ `json:"hoverProvider,omitempty"` 2612 /** 2613 * The server provides signature help support. 2614 */ 2615 SignatureHelpProvider SignatureHelpOptions `json:"signatureHelpProvider,omitempty"` 2616 /** 2617 * The server provides Goto Declaration support. 2618 */ 2619 DeclarationProvider interface{}/* bool | DeclarationOptions | DeclarationRegistrationOptions*/ `json:"declarationProvider,omitempty"` 2620 /** 2621 * The server provides goto definition support. 2622 */ 2623 DefinitionProvider bool/*boolean | DefinitionOptions*/ `json:"definitionProvider,omitempty"` 2624 /** 2625 * The server provides Goto Type Definition support. 2626 */ 2627 TypeDefinitionProvider interface{}/* bool | TypeDefinitionOptions | TypeDefinitionRegistrationOptions*/ `json:"typeDefinitionProvider,omitempty"` 2628 /** 2629 * The server provides Goto Implementation support. 2630 */ 2631 ImplementationProvider interface{}/* bool | ImplementationOptions | ImplementationRegistrationOptions*/ `json:"implementationProvider,omitempty"` 2632 /** 2633 * The server provides find references support. 2634 */ 2635 ReferencesProvider bool/*boolean | ReferenceOptions*/ `json:"referencesProvider,omitempty"` 2636 /** 2637 * The server provides document highlight support. 2638 */ 2639 DocumentHighlightProvider bool/*boolean | DocumentHighlightOptions*/ `json:"documentHighlightProvider,omitempty"` 2640 /** 2641 * The server provides document symbol support. 2642 */ 2643 DocumentSymbolProvider bool/*boolean | DocumentSymbolOptions*/ `json:"documentSymbolProvider,omitempty"` 2644 /** 2645 * The server provides code actions. CodeActionOptions may only be 2646 * specified if the client states that it supports 2647 * `codeActionLiteralSupport` in its initial `initialize` request. 2648 */ 2649 CodeActionProvider interface{}/*boolean | CodeActionOptions*/ `json:"codeActionProvider,omitempty"` 2650 /** 2651 * The server provides code lens. 2652 */ 2653 CodeLensProvider CodeLensOptions `json:"codeLensProvider,omitempty"` 2654 /** 2655 * The server provides document link support. 2656 */ 2657 DocumentLinkProvider DocumentLinkOptions `json:"documentLinkProvider,omitempty"` 2658 /** 2659 * The server provides color provider support. 2660 */ 2661 ColorProvider interface{}/* bool | DocumentColorOptions | DocumentColorRegistrationOptions*/ `json:"colorProvider,omitempty"` 2662 /** 2663 * The server provides workspace symbol support. 2664 */ 2665 WorkspaceSymbolProvider bool/*boolean | WorkspaceSymbolOptions*/ `json:"workspaceSymbolProvider,omitempty"` 2666 /** 2667 * The server provides document formatting. 2668 */ 2669 DocumentFormattingProvider bool/*boolean | DocumentFormattingOptions*/ `json:"documentFormattingProvider,omitempty"` 2670 /** 2671 * The server provides document range formatting. 2672 */ 2673 DocumentRangeFormattingProvider bool/*boolean | DocumentRangeFormattingOptions*/ `json:"documentRangeFormattingProvider,omitempty"` 2674 /** 2675 * The server provides document formatting on typing. 2676 */ 2677 DocumentOnTypeFormattingProvider DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"` 2678 /** 2679 * The server provides rename support. RenameOptions may only be 2680 * specified if the client states that it supports 2681 * `prepareSupport` in its initial `initialize` request. 2682 */ 2683 RenameProvider interface{}/*boolean | RenameOptions*/ `json:"renameProvider,omitempty"` 2684 /** 2685 * The server provides folding provider support. 2686 */ 2687 FoldingRangeProvider interface{}/* bool | FoldingRangeOptions | FoldingRangeRegistrationOptions*/ `json:"foldingRangeProvider,omitempty"` 2688 /** 2689 * The server provides selection range support. 2690 */ 2691 SelectionRangeProvider interface{}/* bool | SelectionRangeOptions | SelectionRangeRegistrationOptions*/ `json:"selectionRangeProvider,omitempty"` 2692 /** 2693 * The server provides execute command support. 2694 */ 2695 ExecuteCommandProvider ExecuteCommandOptions `json:"executeCommandProvider,omitempty"` 2696 /** 2697 * Experimental server capabilities. 2698 */ 2699 Experimental interface{} `json:"experimental,omitempty"` 2700 /** 2701 * The workspace server capabilities 2702 */ 2703 Workspace WorkspaceGn `json:"workspace,omitempty"` 2704} 2705 2706type SetTraceParams struct { 2707 Value TraceValues `json:"value"` 2708} 2709 2710/** 2711 * The parameters of a notification message. 2712 */ 2713type ShowMessageParams struct { 2714 /** 2715 * The message type. See {@link MessageType} 2716 */ 2717 Type MessageType `json:"type"` 2718 /** 2719 * The actual message 2720 */ 2721 Message string `json:"message"` 2722} 2723 2724type ShowMessageRequestParams struct { 2725 /** 2726 * The message type. See {@link MessageType} 2727 */ 2728 Type MessageType `json:"type"` 2729 /** 2730 * The actual message 2731 */ 2732 Message string `json:"message"` 2733 /** 2734 * The message action items to present. 2735 */ 2736 Actions []MessageActionItem `json:"actions,omitempty"` 2737} 2738 2739/** 2740 * Signature help represents the signature of something 2741 * callable. There can be multiple signature but only one 2742 * active and only one active parameter. 2743 */ 2744type SignatureHelp struct { 2745 /** 2746 * One or more signatures. 2747 */ 2748 Signatures []SignatureInformation `json:"signatures"` 2749 /** 2750 * The active signature. Set to `null` if no 2751 * signatures exist. 2752 */ 2753 ActiveSignature float64/*number | null*/ `json:"activeSignature"` 2754 /** 2755 * The active parameter of the active signature. Set to `null` 2756 * if the active signature has no parameters. 2757 */ 2758 ActiveParameter float64/*number | null*/ `json:"activeParameter"` 2759} 2760 2761/** 2762 * Client Capabilities for a [SignatureHelpRequest](#SignatureHelpRequest). 2763 */ 2764type SignatureHelpClientCapabilities struct { 2765 /** 2766 * Whether signature help supports dynamic registration. 2767 */ 2768 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 2769 /** 2770 * The client supports the following `SignatureInformation` 2771 * specific properties. 2772 */ 2773 SignatureInformation struct { 2774 /** 2775 * Client supports the follow content formats for the documentation 2776 * property. The order describes the preferred format of the client. 2777 */ 2778 DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` 2779 /** 2780 * Client capabilities specific to parameter information. 2781 */ 2782 ParameterInformation struct { 2783 /** 2784 * The client supports processing label offsets instead of a 2785 * simple label string. 2786 * 2787 * @since 3.14.0 2788 */ 2789 LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"` 2790 } `json:"parameterInformation,omitempty"` 2791 } `json:"signatureInformation,omitempty"` 2792 /** 2793 * The client supports to send additional context information for a 2794 * `textDocument/signatureHelp` request. A client that opts into 2795 * contextSupport will also support the `retriggerCharacters` on 2796 * `SignatureHelpOptions`. 2797 * 2798 * @since 3.15.0 2799 */ 2800 ContextSupport bool `json:"contextSupport,omitempty"` 2801} 2802 2803/** 2804 * Additional information about the context in which a signature help request was triggered. 2805 * 2806 * @since 3.15.0 2807 */ 2808type SignatureHelpContext struct { 2809 /** 2810 * Action that caused signature help to be triggered. 2811 */ 2812 TriggerKind SignatureHelpTriggerKind `json:"triggerKind"` 2813 /** 2814 * Character that caused signature help to be triggered. 2815 * 2816 * This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter` 2817 */ 2818 TriggerCharacter string `json:"triggerCharacter,omitempty"` 2819 /** 2820 * `true` if signature help was already showing when it was triggered. 2821 * 2822 * Retriggers occur when the signature help is already active and can be caused by actions such as 2823 * typing a trigger character, a cursor move, or document content changes. 2824 */ 2825 IsRetrigger bool `json:"isRetrigger"` 2826 /** 2827 * The currently active `SignatureHelp`. 2828 * 2829 * The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on 2830 * the user navigating through available signatures. 2831 */ 2832 ActiveSignatureHelp SignatureHelp `json:"activeSignatureHelp,omitempty"` 2833} 2834 2835/** 2836 * Server Capabilities for a [SignatureHelpRequest](#SignatureHelpRequest). 2837 */ 2838type SignatureHelpOptions struct { 2839 /** 2840 * List of characters that trigger signature help. 2841 */ 2842 TriggerCharacters []string `json:"triggerCharacters,omitempty"` 2843 /** 2844 * List of characters that re-trigger signature help. 2845 * 2846 * These trigger characters are only active when signature help is already showing. All trigger characters 2847 * are also counted as re-trigger characters. 2848 * 2849 * @since 3.15.0 2850 */ 2851 RetriggerCharacters []string `json:"retriggerCharacters,omitempty"` 2852 WorkDoneProgressOptions 2853} 2854 2855/** 2856 * Parameters for a [SignatureHelpRequest](#SignatureHelpRequest). 2857 */ 2858type SignatureHelpParams struct { 2859 /** 2860 * The signature help context. This is only available if the client specifies 2861 * to send this using the client capability `textDocument.signatureHelp.contextSupport === true` 2862 * 2863 * @since 3.15.0 2864 */ 2865 Context SignatureHelpContext `json:"context,omitempty"` 2866 TextDocumentPositionParams 2867 WorkDoneProgressParams 2868} 2869 2870/** 2871 * How a signature help was triggered. 2872 * 2873 * @since 3.15.0 2874 */ 2875type SignatureHelpTriggerKind float64 2876 2877/** 2878 * Represents the signature of something callable. A signature 2879 * can have a label, like a function-name, a doc-comment, and 2880 * a set of parameters. 2881 */ 2882type SignatureInformation struct { 2883 /** 2884 * The label of this signature. Will be shown in 2885 * the UI. 2886 */ 2887 Label string `json:"label"` 2888 /** 2889 * The human-readable doc-comment of this signature. Will be shown 2890 * in the UI but can be omitted. 2891 */ 2892 Documentation string/*string | MarkupContent*/ `json:"documentation,omitempty"` 2893 /** 2894 * The parameters of this signature. 2895 */ 2896 Parameters []ParameterInformation `json:"parameters,omitempty"` 2897} 2898 2899/** 2900 * Static registration options to be returned in the initialize 2901 * request. 2902 */ 2903type StaticRegistrationOptions struct { 2904 /** 2905 * The id used to register the request. The id can be used to deregister 2906 * the request again. See also Registration#id. 2907 */ 2908 ID string `json:"id,omitempty"` 2909} 2910 2911/** 2912 * Represents information about programming constructs like variables, classes, 2913 * interfaces etc. 2914 */ 2915type SymbolInformation struct { 2916 /** 2917 * The name of this symbol. 2918 */ 2919 Name string `json:"name"` 2920 /** 2921 * The kind of this symbol. 2922 */ 2923 Kind SymbolKind `json:"kind"` 2924 /** 2925 * Indicates if this symbol is deprecated. 2926 */ 2927 Deprecated bool `json:"deprecated,omitempty"` 2928 /** 2929 * The location of this symbol. The location's range is used by a tool 2930 * to reveal the location in the editor. If the symbol is selected in the 2931 * tool the range's start information is used to position the cursor. So 2932 * the range usually spans more than the actual symbol's name and does 2933 * normally include thinks like visibility modifiers. 2934 * 2935 * The range doesn't have to denote a node range in the sense of a abstract 2936 * syntax tree. It can therefore not be used to re-construct a hierarchy of 2937 * the symbols. 2938 */ 2939 Location Location `json:"location"` 2940 /** 2941 * The name of the symbol containing this symbol. This information is for 2942 * user interface purposes (e.g. to render a qualifier in the user interface 2943 * if necessary). It can't be used to re-infer a hierarchy for the document 2944 * symbols. 2945 */ 2946 ContainerName string `json:"containerName,omitempty"` 2947} 2948 2949/** 2950 * A symbol kind. 2951 */ 2952type SymbolKind float64 2953 2954/** 2955 * Symbol tags are extra annotations that tweak the rendering of a symbol. 2956 * @since 3.15 2957 */ 2958type SymbolTag float64 2959 2960/** 2961 * Text document specific client capabilities. 2962 */ 2963type TextDocumentClientCapabilities struct { 2964 /** 2965 * Defines which synchronization capabilities the client supports. 2966 */ 2967 Synchronization TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"` 2968 /** 2969 * Capabilities specific to the `textDocument/completion` 2970 */ 2971 Completion CompletionClientCapabilities `json:"completion,omitempty"` 2972 /** 2973 * Capabilities specific to the `textDocument/hover` 2974 */ 2975 Hover HoverClientCapabilities `json:"hover,omitempty"` 2976 /** 2977 * Capabilities specific to the `textDocument/signatureHelp` 2978 */ 2979 SignatureHelp SignatureHelpClientCapabilities `json:"signatureHelp,omitempty"` 2980 /** 2981 * Capabilities specific to the `textDocument/declaration` 2982 * 2983 * @since 3.14.0 2984 */ 2985 Declaration DeclarationClientCapabilities `json:"declaration,omitempty"` 2986 /** 2987 * Capabilities specific to the `textDocument/definition` 2988 */ 2989 Definition DefinitionClientCapabilities `json:"definition,omitempty"` 2990 /** 2991 * Capabilities specific to the `textDocument/typeDefinition` 2992 * 2993 * @since 3.6.0 2994 */ 2995 TypeDefinition TypeDefinitionClientCapabilities `json:"typeDefinition,omitempty"` 2996 /** 2997 * Capabilities specific to the `textDocument/implementation` 2998 * 2999 * @since 3.6.0 3000 */ 3001 Implementation ImplementationClientCapabilities `json:"implementation,omitempty"` 3002 /** 3003 * Capabilities specific to the `textDocument/references` 3004 */ 3005 References ReferenceClientCapabilities `json:"references,omitempty"` 3006 /** 3007 * Capabilities specific to the `textDocument/documentHighlight` 3008 */ 3009 DocumentHighlight DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"` 3010 /** 3011 * Capabilities specific to the `textDocument/documentSymbol` 3012 */ 3013 DocumentSymbol DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"` 3014 /** 3015 * Capabilities specific to the `textDocument/codeAction` 3016 */ 3017 CodeAction CodeActionClientCapabilities `json:"codeAction,omitempty"` 3018 /** 3019 * Capabilities specific to the `textDocument/codeLens` 3020 */ 3021 CodeLens CodeLensClientCapabilities `json:"codeLens,omitempty"` 3022 /** 3023 * Capabilities specific to the `textDocument/documentLink` 3024 */ 3025 DocumentLink DocumentLinkClientCapabilities `json:"documentLink,omitempty"` 3026 /** 3027 * Capabilities specific to the `textDocument/documentColor` 3028 */ 3029 ColorProvider DocumentColorClientCapabilities `json:"colorProvider,omitempty"` 3030 /** 3031 * Capabilities specific to the `textDocument/formatting` 3032 */ 3033 Formatting DocumentFormattingClientCapabilities `json:"formatting,omitempty"` 3034 /** 3035 * Capabilities specific to the `textDocument/rangeFormatting` 3036 */ 3037 RangeFormatting DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"` 3038 /** 3039 * Capabilities specific to the `textDocument/onTypeFormatting` 3040 */ 3041 OnTypeFormatting DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"` 3042 /** 3043 * Capabilities specific to the `textDocument/rename` 3044 */ 3045 Rename RenameClientCapabilities `json:"rename,omitempty"` 3046 /** 3047 * Capabilities specific to `textDocument/foldingRange` requests. 3048 * 3049 * @since 3.10.0 3050 */ 3051 FoldingRange FoldingRangeClientCapabilities `json:"foldingRange,omitempty"` 3052 /** 3053 * Capabilities specific to `textDocument/selectionRange` requests 3054 * 3055 * @since 3.15.0 3056 */ 3057 SelectionRange SelectionRangeClientCapabilities `json:"selectionRange,omitempty"` 3058 /** 3059 * Capabilities specific to `textDocument/publishDiagnostics`. 3060 */ 3061 PublishDiagnostics PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"` 3062} 3063 3064/** 3065 * An event describing a change to a text document. If range and rangeLength are omitted 3066 * the new text is considered to be the full content of the document. 3067 */ 3068type TextDocumentContentChangeEvent = struct { 3069 /** 3070 * The range of the document that changed. 3071 */ 3072 Range *Range `json:"range,omitempty"` 3073 /** 3074 * The optional length of the range that got replaced. 3075 * 3076 * @deprecated use range instead. 3077 */ 3078 RangeLength float64 `json:"rangeLength,omitempty"` 3079 /** 3080 * The new text for the provided range. 3081 */ 3082 Text string `json:"text"` 3083} 3084 3085/** 3086 * Describes textual changes on a text document. A TextDocumentEdit describes all changes 3087 * on a document version Si and after they are applied move the document to version Si+1. 3088 * So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any 3089 * kind of ordering. However the edits must be non overlapping. 3090 */ 3091type TextDocumentEdit struct { 3092 /** 3093 * The text document to change. 3094 */ 3095 TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` 3096 /** 3097 * The edits to be applied. 3098 */ 3099 Edits []TextEdit `json:"edits"` 3100} 3101 3102/** 3103 * A literal to identify a text document in the client. 3104 */ 3105type TextDocumentIdentifier struct { 3106 /** 3107 * The text document's uri. 3108 */ 3109 URI DocumentURI `json:"uri"` 3110} 3111 3112/** 3113 * An item to transfer a text document from the client to the 3114 * server. 3115 */ 3116type TextDocumentItem struct { 3117 /** 3118 * The text document's uri. 3119 */ 3120 URI DocumentURI `json:"uri"` 3121 /** 3122 * The text document's language identifier 3123 */ 3124 LanguageID string `json:"languageId"` 3125 /** 3126 * The version number of this document (it will increase after each 3127 * change, including undo/redo). 3128 */ 3129 Version float64 `json:"version"` 3130 /** 3131 * The content of the opened text document. 3132 */ 3133 Text string `json:"text"` 3134} 3135 3136/** 3137 * A parameter literal used in requests to pass a text document and a position inside that 3138 * document. 3139 */ 3140type TextDocumentPositionParams struct { 3141 /** 3142 * The text document. 3143 */ 3144 TextDocument TextDocumentIdentifier `json:"textDocument"` 3145 /** 3146 * The position inside the text document. 3147 */ 3148 Position Position `json:"position"` 3149} 3150 3151/** 3152 * General text document registration options. 3153 */ 3154type TextDocumentRegistrationOptions struct { 3155 /** 3156 * A document selector to identify the scope of the registration. If set to null 3157 * the document selector provided on the client side will be used. 3158 */ 3159 DocumentSelector DocumentSelector /*DocumentSelector | null*/ `json:"documentSelector"` 3160} 3161 3162/** 3163 * Represents reasons why a text document is saved. 3164 */ 3165type TextDocumentSaveReason float64 3166 3167type TextDocumentSyncClientCapabilities struct { 3168 /** 3169 * Whether text document synchronization supports dynamic registration. 3170 */ 3171 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 3172 /** 3173 * The client supports sending will save notifications. 3174 */ 3175 WillSave bool `json:"willSave,omitempty"` 3176 /** 3177 * The client supports sending a will save request and 3178 * waits for a response providing text edits which will 3179 * be applied to the document before it is saved. 3180 */ 3181 WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` 3182 /** 3183 * The client supports did save notifications. 3184 */ 3185 DidSave bool `json:"didSave,omitempty"` 3186} 3187 3188/** 3189 * Defines how the host (editor) should sync 3190 * document changes to the language server. 3191 */ 3192type TextDocumentSyncKind float64 3193 3194type TextDocumentSyncOptions struct { 3195 /** 3196 * Open and close notifications are sent to the server. If omitted open close notification should not 3197 * be sent. 3198 */ 3199 OpenClose bool `json:"openClose,omitempty"` 3200 /** 3201 * Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full 3202 * and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. 3203 */ 3204 Change TextDocumentSyncKind `json:"change,omitempty"` 3205 /** 3206 * If present will save notifications are sent to the server. If omitted the notification should not be 3207 * sent. 3208 */ 3209 WillSave bool `json:"willSave,omitempty"` 3210 /** 3211 * If present will save wait until requests are sent to the server. If omitted the request should not be 3212 * sent. 3213 */ 3214 WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` 3215 /** 3216 * If present save notifications are sent to the server. If omitted the notification should not be 3217 * sent. 3218 */ 3219 Save SaveOptions `json:"save,omitempty"` 3220} 3221 3222/** 3223 * A text edit applicable to a text document. 3224 */ 3225type TextEdit struct { 3226 /** 3227 * The range of the text document to be manipulated. To insert 3228 * text into a document create a range where start === end. 3229 */ 3230 Range Range `json:"range"` 3231 /** 3232 * The string to be inserted. For delete operations use an 3233 * empty string. 3234 */ 3235 NewText string `json:"newText"` 3236} 3237 3238type TraceValues = string /*'off' | 'messages' | 'verbose'*/ 3239 3240/** 3241 * Since 3.6.0 3242 */ 3243type TypeDefinitionClientCapabilities struct { 3244 /** 3245 * Whether implementation supports dynamic registration. If this is set to `true` 3246 * the client supports the new `TypeDefinitionRegistrationOptions` return value 3247 * for the corresponding server capability as well. 3248 */ 3249 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 3250 /** 3251 * The client supports additional metadata in the form of definition links. 3252 * 3253 * Since 3.14.0 3254 */ 3255 LinkSupport bool `json:"linkSupport,omitempty"` 3256} 3257 3258type TypeDefinitionOptions struct { 3259 WorkDoneProgressOptions 3260} 3261 3262type TypeDefinitionParams struct { 3263 TextDocumentPositionParams 3264 WorkDoneProgressParams 3265 PartialResultParams 3266} 3267 3268type TypeDefinitionRegistrationOptions struct { 3269 TextDocumentRegistrationOptions 3270 TypeDefinitionOptions 3271 StaticRegistrationOptions 3272} 3273 3274/** 3275 * General parameters to unregister a request or notification. 3276 */ 3277type Unregistration struct { 3278 /** 3279 * The id used to unregister the request or notification. Usually an id 3280 * provided during the register request. 3281 */ 3282 ID string `json:"id"` 3283 /** 3284 * The method to unregister for. 3285 */ 3286 Method string `json:"method"` 3287} 3288 3289type UnregistrationParams struct { 3290 Unregisterations []Unregistration `json:"unregisterations"` 3291} 3292 3293/** 3294 * An identifier to denote a specific version of a text document. 3295 */ 3296type VersionedTextDocumentIdentifier struct { 3297 /** 3298 * The version number of this document. If a versioned text document identifier 3299 * is sent from the server to the client and the file is not open in the editor 3300 * (the server has not received an open notification before) the server can send 3301 * `null` to indicate that the version is unknown and the content on disk is the 3302 * truth (as speced with document content ownership). 3303 */ 3304 Version float64/*number | null*/ `json:"version"` 3305 TextDocumentIdentifier 3306} 3307 3308type WatchKind float64 3309 3310/** 3311 * The parameters send in a will save text document notification. 3312 */ 3313type WillSaveTextDocumentParams struct { 3314 /** 3315 * The document that will be saved. 3316 */ 3317 TextDocument TextDocumentIdentifier `json:"textDocument"` 3318 /** 3319 * The 'TextDocumentSaveReason'. 3320 */ 3321 Reason TextDocumentSaveReason `json:"reason"` 3322} 3323 3324type WorkDoneProgressCancelParams struct { 3325 /** 3326 * The token to be used to report progress. 3327 */ 3328 Token ProgressToken `json:"token"` 3329} 3330 3331type WorkDoneProgressClientCapabilities struct { 3332 /** 3333 * Window specific client capabilities. 3334 */ 3335 Window struct { 3336 /** 3337 * Whether client supports handling progress notifications. If set servers are allowed to 3338 * report in `workDoneProgress` property in the request specific server capabilities. 3339 * 3340 * Since 3.15.0 3341 */ 3342 WorkDoneProgress bool `json:"workDoneProgress,omitempty"` 3343 } `json:"window,omitempty"` 3344} 3345 3346type WorkDoneProgressCreateParams struct { 3347 /** 3348 * The token to be used to report progress. 3349 */ 3350 Token ProgressToken `json:"token"` 3351} 3352 3353type WorkDoneProgressOptions struct { 3354 WorkDoneProgress bool `json:"workDoneProgress,omitempty"` 3355} 3356 3357type WorkDoneProgressParams struct { 3358 /** 3359 * An optional token that a server can use to report work done progress. 3360 */ 3361 WorkDoneToken ProgressToken `json:"workDoneToken,omitempty"` 3362} 3363 3364/** 3365 * Workspace specific client capabilities. 3366 */ 3367type WorkspaceClientCapabilities struct { 3368 /** 3369 * The client supports applying batch edits 3370 * to the workspace by supporting the request 3371 * 'workspace/applyEdit' 3372 */ 3373 ApplyEdit bool `json:"applyEdit,omitempty"` 3374 /** 3375 * Capabilities specific to `WorkspaceEdit`s 3376 */ 3377 WorkspaceEdit WorkspaceEditClientCapabilities `json:"workspaceEdit,omitempty"` 3378 /** 3379 * Capabilities specific to the `workspace/didChangeConfiguration` notification. 3380 */ 3381 DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration,omitempty"` 3382 /** 3383 * Capabilities specific to the `workspace/didChangeWatchedFiles` notification. 3384 */ 3385 DidChangeWatchedFiles DidChangeWatchedFilesClientCapabilities `json:"didChangeWatchedFiles,omitempty"` 3386 /** 3387 * Capabilities specific to the `workspace/symbol` request. 3388 */ 3389 Symbol WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"` 3390 /** 3391 * Capabilities specific to the `workspace/executeCommand` request. 3392 */ 3393 ExecuteCommand ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"` 3394} 3395 3396/** 3397 * A workspace edit represents changes to many resources managed in the workspace. The edit 3398 * should either provide `changes` or `documentChanges`. If documentChanges are present 3399 * they are preferred over `changes` if the client can handle versioned document edits. 3400 */ 3401type WorkspaceEdit struct { 3402 /** 3403 * Holds changes to existing resources. 3404 */ 3405 Changes map[string][]TextEdit `json:"changes,omitempty"` 3406 /** 3407 * Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes 3408 * are either an array of `TextDocumentEdit`s to express changes to n different text documents 3409 * where each text document edit addresses a specific version of a text document. Or it can contain 3410 * above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations. 3411 * 3412 * Whether a client supports versioned document edits is expressed via 3413 * `workspace.workspaceEdit.documentChanges` client capability. 3414 * 3415 * If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then 3416 * only plain `TextEdit`s using the `changes` property are supported. 3417 */ 3418 DocumentChanges []TextDocumentEdit/*TextDocumentEdit | CreateFile | RenameFile | DeleteFile*/ `json:"documentChanges,omitempty"` 3419} 3420 3421type WorkspaceEditClientCapabilities struct { 3422 /** 3423 * The client supports versioned document changes in `WorkspaceEdit`s 3424 */ 3425 DocumentChanges bool `json:"documentChanges,omitempty"` 3426 /** 3427 * The resource operations the client supports. Clients should at least 3428 * support 'create', 'rename' and 'delete' files and folders. 3429 * 3430 * @since 3.13.0 3431 */ 3432 ResourceOperations []ResourceOperationKind `json:"resourceOperations,omitempty"` 3433 /** 3434 * The failure handling strategy of a client if applying the workspace edit 3435 * fails. 3436 * 3437 * @since 3.13.0 3438 */ 3439 FailureHandling FailureHandlingKind `json:"failureHandling,omitempty"` 3440} 3441 3442type WorkspaceFolder struct { 3443 /** 3444 * The associated URI for this workspace folder. 3445 */ 3446 URI string `json:"uri"` 3447 /** 3448 * The name of the workspace folder. Used to refer to this 3449 * workspace folder in the user interface. 3450 */ 3451 Name string `json:"name"` 3452} 3453 3454/** 3455 * The workspace folder change event. 3456 */ 3457type WorkspaceFoldersChangeEvent struct { 3458 /** 3459 * The array of added workspace folders 3460 */ 3461 Added []WorkspaceFolder `json:"added"` 3462 /** 3463 * The array of the removed workspace folders 3464 */ 3465 Removed []WorkspaceFolder `json:"removed"` 3466} 3467 3468type WorkspaceFoldersClientCapabilities struct { 3469 /** 3470 * The workspace client capabilities 3471 */ 3472 Workspace WorkspaceGn `json:"workspace,omitempty"` 3473} 3474 3475type WorkspaceFoldersInitializeParams struct { 3476 /** 3477 * The actual configured workspace folders. 3478 */ 3479 WorkspaceFolders []WorkspaceFolder /*WorkspaceFolder[] | null*/ `json:"workspaceFolders"` 3480} 3481 3482type WorkspaceFoldersServerCapabilities struct { 3483 /** 3484 * The workspace server capabilities 3485 */ 3486 Workspace WorkspaceGn `json:"workspace,omitempty"` 3487} 3488 3489/** 3490 * Client capabilities for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest). 3491 */ 3492type WorkspaceSymbolClientCapabilities struct { 3493 /** 3494 * Symbol request supports dynamic registration. 3495 */ 3496 DynamicRegistration bool `json:"dynamicRegistration,omitempty"` 3497 /** 3498 * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request. 3499 */ 3500 SymbolKind struct { 3501 /** 3502 * The symbol kind values the client supports. When this 3503 * property exists the client also guarantees that it will 3504 * handle values outside its set gracefully and falls back 3505 * to a default value when unknown. 3506 * 3507 * If this property is not present the client only supports 3508 * the symbol kinds from `File` to `Array` as defined in 3509 * the initial version of the protocol. 3510 */ 3511 ValueSet []SymbolKind `json:"valueSet,omitempty"` 3512 } `json:"symbolKind,omitempty"` 3513} 3514 3515/** 3516 * Server capabilities for a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest). 3517 */ 3518type WorkspaceSymbolOptions struct { 3519 WorkDoneProgressOptions 3520} 3521 3522/** 3523 * The parameters of a [WorkspaceSymbolRequest](#WorkspaceSymbolRequest). 3524 */ 3525type WorkspaceSymbolParams struct { 3526 /** 3527 * A query string to filter symbols by. Clients may send an empty 3528 * string here to request all symbols. 3529 */ 3530 Query string `json:"query"` 3531 WorkDoneProgressParams 3532 PartialResultParams 3533} 3534 3535const ( 3536 /** 3537 * Empty kind. 3538 */ 3539 3540 Empty CodeActionKind = "" 3541 /** 3542 * Base kind for quickfix actions: 'quickfix' 3543 */ 3544 3545 QuickFix CodeActionKind = "quickfix" 3546 /** 3547 * Base kind for refactoring actions: 'refactor' 3548 */ 3549 3550 Refactor CodeActionKind = "refactor" 3551 /** 3552 * Base kind for refactoring extraction actions: 'refactor.extract' 3553 * 3554 * Example extract actions: 3555 * 3556 * - Extract method 3557 * - Extract function 3558 * - Extract variable 3559 * - Extract interface from class 3560 * - ... 3561 */ 3562 3563 RefactorExtract CodeActionKind = "refactor.extract" 3564 /** 3565 * Base kind for refactoring inline actions: 'refactor.inline' 3566 * 3567 * Example inline actions: 3568 * 3569 * - Inline function 3570 * - Inline variable 3571 * - Inline constant 3572 * - ... 3573 */ 3574 3575 RefactorInline CodeActionKind = "refactor.inline" 3576 /** 3577 * Base kind for refactoring rewrite actions: 'refactor.rewrite' 3578 * 3579 * Example rewrite actions: 3580 * 3581 * - Convert JavaScript function to class 3582 * - Add or remove parameter 3583 * - Encapsulate field 3584 * - Make method static 3585 * - Move method to base class 3586 * - ... 3587 */ 3588 3589 RefactorRewrite CodeActionKind = "refactor.rewrite" 3590 /** 3591 * Base kind for source actions: `source` 3592 * 3593 * Source code actions apply to the entire file. 3594 */ 3595 3596 Source CodeActionKind = "source" 3597 /** 3598 * Base kind for an organize imports source action: `source.organizeImports` 3599 */ 3600 3601 SourceOrganizeImports CodeActionKind = "source.organizeImports" 3602 /** 3603 * Base kind for auto-fix source actions: `source.fixAll`. 3604 * 3605 * Fix all actions automatically fix errors that have a clear fix that do not require user input. 3606 * They should not suppress errors or perform unsafe fixes such as generating new types or classes. 3607 * 3608 * @since 3.15.0 3609 */ 3610 3611 SourceFixAll CodeActionKind = "source.fixAll" 3612 TextCompletion CompletionItemKind = 1 3613 MethodCompletion CompletionItemKind = 2 3614 FunctionCompletion CompletionItemKind = 3 3615 ConstructorCompletion CompletionItemKind = 4 3616 FieldCompletion CompletionItemKind = 5 3617 VariableCompletion CompletionItemKind = 6 3618 ClassCompletion CompletionItemKind = 7 3619 InterfaceCompletion CompletionItemKind = 8 3620 ModuleCompletion CompletionItemKind = 9 3621 PropertyCompletion CompletionItemKind = 10 3622 UnitCompletion CompletionItemKind = 11 3623 ValueCompletion CompletionItemKind = 12 3624 EnumCompletion CompletionItemKind = 13 3625 KeywordCompletion CompletionItemKind = 14 3626 SnippetCompletion CompletionItemKind = 15 3627 ColorCompletion CompletionItemKind = 16 3628 FileCompletion CompletionItemKind = 17 3629 ReferenceCompletion CompletionItemKind = 18 3630 FolderCompletion CompletionItemKind = 19 3631 EnumMemberCompletion CompletionItemKind = 20 3632 ConstantCompletion CompletionItemKind = 21 3633 StructCompletion CompletionItemKind = 22 3634 EventCompletion CompletionItemKind = 23 3635 OperatorCompletion CompletionItemKind = 24 3636 TypeParameterCompletion CompletionItemKind = 25 3637 /** 3638 * Render a completion as obsolete, usually using a strike-out. 3639 */ 3640 3641 ComplDeprecated CompletionItemTag = 1 3642 /** 3643 * Completion was triggered by typing an identifier (24x7 code 3644 * complete), manual invocation (e.g Ctrl+Space) or via API. 3645 */ 3646 3647 Invoked CompletionTriggerKind = 1 3648 /** 3649 * Completion was triggered by a trigger character specified by 3650 * the `triggerCharacters` properties of the `CompletionRegistrationOptions`. 3651 */ 3652 3653 TriggerCharacter CompletionTriggerKind = 2 3654 /** 3655 * Completion was re-triggered as current completion list is incomplete 3656 */ 3657 3658 TriggerForIncompleteCompletions CompletionTriggerKind = 3 3659 /** 3660 * Reports an error. 3661 */ 3662 3663 SeverityError DiagnosticSeverity = 1 3664 /** 3665 * Reports a warning. 3666 */ 3667 3668 SeverityWarning DiagnosticSeverity = 2 3669 /** 3670 * Reports an information. 3671 */ 3672 3673 SeverityInformation DiagnosticSeverity = 3 3674 /** 3675 * Reports a hint. 3676 */ 3677 3678 SeverityHint DiagnosticSeverity = 4 3679 /** 3680 * Unused or unnecessary code. 3681 * 3682 * Clients are allowed to render diagnostics with this tag faded out instead of having 3683 * an error squiggle. 3684 */ 3685 3686 Unnecessary DiagnosticTag = 1 3687 /** 3688 * Deprecated or obsolete code. 3689 * 3690 * Clients are allowed to rendered diagnostics with this tag strike through. 3691 */ 3692 3693 Deprecated DiagnosticTag = 2 3694 /** 3695 * A textual occurrence. 3696 */ 3697 3698 Text DocumentHighlightKind = 1 3699 /** 3700 * Read-access of a symbol, like reading a variable. 3701 */ 3702 3703 Read DocumentHighlightKind = 2 3704 /** 3705 * Write-access of a symbol, like writing to a variable. 3706 */ 3707 3708 Write DocumentHighlightKind = 3 3709 /** 3710 * Applying the workspace change is simply aborted if one of the changes provided 3711 * fails. All operations executed before the failing operation stay executed. 3712 */ 3713 3714 Abort FailureHandlingKind = "abort" 3715 /** 3716 * All operations are executed transactional. That means they either all 3717 * succeed or no changes at all are applied to the workspace. 3718 */ 3719 3720 Transactional FailureHandlingKind = "transactional" 3721 /** 3722 * If the workspace edit contains only textual file changes they are executed transactional. 3723 * If resource changes (create, rename or delete file) are part of the change the failure 3724 * handling startegy is abort. 3725 */ 3726 3727 TextOnlyTransactional FailureHandlingKind = "textOnlyTransactional" 3728 /** 3729 * The client tries to undo the operations already executed. But there is no 3730 * guarantee that this is succeeding. 3731 */ 3732 3733 Undo FailureHandlingKind = "undo" 3734 /** 3735 * The file got created. 3736 */ 3737 3738 Created FileChangeType = 1 3739 /** 3740 * The file got changed. 3741 */ 3742 3743 Changed FileChangeType = 2 3744 /** 3745 * The file got deleted. 3746 */ 3747 3748 Deleted FileChangeType = 3 3749 /** 3750 * Folding range for a comment 3751 */ 3752 Comment FoldingRangeKind = "comment" 3753 /** 3754 * Folding range for a imports or includes 3755 */ 3756 Imports FoldingRangeKind = "imports" 3757 /** 3758 * Folding range for a region (e.g. `#region`) 3759 */ 3760 Region FoldingRangeKind = "region" 3761 /** 3762 * If the protocol version provided by the client can't be handled by the server. 3763 * @deprecated This initialize error got replaced by client capabilities. There is 3764 * no version handshake in version 3.0x 3765 */ 3766 3767 UnknownProtocolVersion InitializeError = 1 3768 /** 3769 * The primary text to be inserted is treated as a plain string. 3770 */ 3771 3772 PlainTextTextFormat InsertTextFormat = 1 3773 /** 3774 * The primary text to be inserted is treated as a snippet. 3775 * 3776 * A snippet can define tab stops and placeholders with `$1`, `$2` 3777 * and `${3:foo}`. `$0` defines the final tab stop, it defaults to 3778 * the end of the snippet. Placeholders with equal identifiers are linked, 3779 * that is typing in one will update others too. 3780 * 3781 * See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md 3782 */ 3783 3784 SnippetTextFormat InsertTextFormat = 2 3785 /** 3786 * Plain text is supported as a content format 3787 */ 3788 3789 PlainText MarkupKind = "plaintext" 3790 /** 3791 * Markdown is supported as a content format 3792 */ 3793 3794 Markdown MarkupKind = "markdown" 3795 /** 3796 * An error message. 3797 */ 3798 3799 Error MessageType = 1 3800 /** 3801 * A warning message. 3802 */ 3803 3804 Warning MessageType = 2 3805 /** 3806 * An information message. 3807 */ 3808 3809 Info MessageType = 3 3810 /** 3811 * A log message. 3812 */ 3813 3814 Log MessageType = 4 3815 /** 3816 * Supports creating new files and folders. 3817 */ 3818 3819 Create ResourceOperationKind = "create" 3820 /** 3821 * Supports renaming existing files and folders. 3822 */ 3823 3824 Rename ResourceOperationKind = "rename" 3825 /** 3826 * Supports deleting existing files and folders. 3827 */ 3828 3829 Delete ResourceOperationKind = "delete" 3830 /** 3831 * Signature help was invoked manually by the user or by a command. 3832 */ 3833 3834 SigInvoked SignatureHelpTriggerKind = 1 3835 /** 3836 * Signature help was triggered by a trigger character. 3837 */ 3838 3839 SigTriggerCharacter SignatureHelpTriggerKind = 2 3840 /** 3841 * Signature help was triggered by the cursor moving or by the document content changing. 3842 */ 3843 3844 SigContentChange SignatureHelpTriggerKind = 3 3845 File SymbolKind = 1 3846 Module SymbolKind = 2 3847 Namespace SymbolKind = 3 3848 Package SymbolKind = 4 3849 Class SymbolKind = 5 3850 Method SymbolKind = 6 3851 Property SymbolKind = 7 3852 Field SymbolKind = 8 3853 Constructor SymbolKind = 9 3854 Enum SymbolKind = 10 3855 Interface SymbolKind = 11 3856 Function SymbolKind = 12 3857 Variable SymbolKind = 13 3858 Constant SymbolKind = 14 3859 String SymbolKind = 15 3860 Number SymbolKind = 16 3861 Boolean SymbolKind = 17 3862 Array SymbolKind = 18 3863 Object SymbolKind = 19 3864 Key SymbolKind = 20 3865 Null SymbolKind = 21 3866 EnumMember SymbolKind = 22 3867 Struct SymbolKind = 23 3868 Event SymbolKind = 24 3869 Operator SymbolKind = 25 3870 TypeParameter SymbolKind = 26 3871 /** 3872 * Render a symbol as obsolete, usually using a strike-out. 3873 */ 3874 3875 DeprecatedSymbol SymbolTag = 1 3876 /** 3877 * Manually triggered, e.g. by the user pressing save, by starting debugging, 3878 * or by an API call. 3879 */ 3880 3881 Manual TextDocumentSaveReason = 1 3882 /** 3883 * Automatic after a delay. 3884 */ 3885 3886 AfterDelay TextDocumentSaveReason = 2 3887 /** 3888 * When the editor lost focus. 3889 */ 3890 3891 FocusOut TextDocumentSaveReason = 3 3892 /** 3893 * Documents should not be synced at all. 3894 */ 3895 3896 None TextDocumentSyncKind = 0 3897 /** 3898 * Documents are synced by always sending the full content 3899 * of the document. 3900 */ 3901 3902 Full TextDocumentSyncKind = 1 3903 /** 3904 * Documents are synced by sending the full content on open. 3905 * After that only incremental updates to the document are 3906 * send. 3907 */ 3908 3909 Incremental TextDocumentSyncKind = 2 3910 /** 3911 * Interested in create events. 3912 */ 3913 3914 WatchCreate WatchKind = 1 3915 /** 3916 * Interested in change events 3917 */ 3918 3919 WatchChange WatchKind = 2 3920 /** 3921 * Interested in delete events 3922 */ 3923 3924 WatchDelete WatchKind = 4 3925) 3926 3927// Types created to name formal parameters and embedded structs 3928type ParamConfiguration struct { 3929 ConfigurationParams 3930 PartialResultParams 3931} 3932type ParamInitialize struct { 3933 InitializeParams 3934 WorkDoneProgressParams 3935} 3936type WorkspaceGn struct { 3937 WorkspaceFolders WorkspaceFoldersGn `json:"workspaceFolders,omitempty"` 3938} 3939type WorkspaceFoldersGn struct { 3940 /** 3941 * The Server has support for workspace folders 3942 */ 3943 Supported bool `json:"supported,omitempty"` 3944 3945 /** 3946 * Whether the server wants to receive workspace folder 3947 * change notifications. 3948 * 3949 * If a strings is provided the string is treated as a ID 3950 * under which the notification is registed on the client 3951 * side. The ID can be used to unregister for these events 3952 * using the `client/unregisterCapability` request. 3953 */ 3954 ChangeNotifications string/*string | boolean*/ `json:"changeNotifications,omitempty"` 3955} 3956