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