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