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