@mrclrchtr/supi-lsp 1.11.2 → 1.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +1 -1
  2. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  3. package/node_modules/@mrclrchtr/supi-core/package.json +1 -1
  4. package/node_modules/vscode-languageserver-protocol/README.md +3 -3
  5. package/node_modules/vscode-languageserver-protocol/eslint.config.js +13 -0
  6. package/node_modules/vscode-languageserver-protocol/lib/browser/main.js +1 -2
  7. package/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +1 -1
  8. package/node_modules/vscode-languageserver-protocol/lib/common/api.js +1 -1
  9. package/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +13 -13
  10. package/node_modules/vscode-languageserver-protocol/lib/common/connection.js +1 -2
  11. package/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +7 -0
  12. package/node_modules/vscode-languageserver-protocol/lib/common/messages.js +38 -1
  13. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +5 -2
  14. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +3 -0
  15. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +5 -3
  16. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +3 -1
  17. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +2 -1
  18. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +1 -0
  19. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +735 -361
  20. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +3 -2
  21. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +1 -0
  22. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +12 -3
  23. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +37 -1
  24. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +8 -2
  25. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +6 -0
  26. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +34 -25
  27. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +4 -1
  28. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +3 -2
  29. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +1 -0
  30. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +15 -8
  31. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +3 -0
  32. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +3 -7
  33. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +1 -1
  34. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +7 -6
  35. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +2 -0
  36. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +97 -9
  37. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +3 -2
  38. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +1 -0
  39. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +3 -2
  40. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +1 -0
  41. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +91 -63
  42. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +34 -1
  43. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +2 -1
  44. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +1 -0
  45. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +3 -2
  46. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +1 -0
  47. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +44 -26
  48. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +4 -0
  49. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +4 -3
  50. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +1 -0
  51. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.textDocumentContent.d.ts +93 -0
  52. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.textDocumentContent.js +33 -0
  53. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +3 -2
  54. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +2 -1
  55. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +3 -2
  56. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +1 -0
  57. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +3 -1
  58. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +2 -0
  59. package/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +9 -10
  60. package/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +0 -1
  61. package/node_modules/vscode-languageserver-protocol/lib/node/main.js +1 -2
  62. package/node_modules/vscode-languageserver-protocol/metaModel.schema.json +84 -3
  63. package/node_modules/vscode-languageserver-protocol/package.json +21 -12
  64. package/node_modules/vscode-languageserver-types/README.md +1 -1
  65. package/node_modules/vscode-languageserver-types/eslint.config.js +13 -0
  66. package/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +483 -107
  67. package/node_modules/vscode-languageserver-types/lib/esm/main.js +255 -62
  68. package/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +483 -107
  69. package/node_modules/vscode-languageserver-types/lib/umd/main.js +201 -8
  70. package/node_modules/vscode-languageserver-types/package.json +9 -8
  71. package/package.json +3 -3
  72. package/src/config/types.ts +3 -0
  73. package/src/diagnostics/diagnostic-context.ts +2 -1
  74. package/src/diagnostics/diagnostic-display.ts +2 -1
  75. package/src/diagnostics/diagnostics.ts +2 -1
  76. package/src/diagnostics/stale-diagnostics.ts +3 -1
  77. package/src/diagnostics/suppression-diagnostics.ts +3 -1
  78. package/src/format.ts +30 -3
  79. package/src/ui/ui.ts +3 -1
  80. package/node_modules/vscode-languageserver-protocol/browser.d.ts +0 -6
  81. package/node_modules/vscode-languageserver-protocol/browser.js +0 -7
  82. package/node_modules/vscode-languageserver-protocol/node.cmd +0 -5
  83. package/node_modules/vscode-languageserver-protocol/node.d.ts +0 -6
  84. package/node_modules/vscode-languageserver-protocol/node.js +0 -7
  85. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +0 -11
  86. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +0 -69
  87. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +0 -6
  88. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +0 -7
  89. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +0 -17
  90. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +0 -76
  91. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +0 -12
  92. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +0 -156
  93. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +0 -14
  94. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +0 -81
  95. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +0 -32
  96. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +0 -96
  97. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +0 -358
  98. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +0 -1212
  99. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +0 -9
  100. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +0 -16
  101. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +0 -52
  102. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +0 -70
  103. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +0 -39
  104. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +0 -128
  105. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +0 -7
  106. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +0 -35
  107. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +0 -53
  108. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +0 -398
  109. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +0 -18
  110. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +0 -152
  111. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +0 -77
  112. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +0 -197
  113. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +0 -60
  114. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +0 -115
  115. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +0 -369
  116. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +0 -306
  117. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +0 -74
  118. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +0 -23
  119. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +0 -10
  120. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +0 -68
  121. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +0 -15
  122. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +0 -76
  123. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +0 -63
  124. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +0 -257
  125. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +0 -13
  126. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +0 -161
  127. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +0 -5
  128. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +0 -6
  129. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +0 -7
  130. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +0 -45
  131. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +0 -16
  132. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +0 -5
@@ -98,9 +98,6 @@ export type LSPArray = any[];
98
98
  export interface Position {
99
99
  /**
100
100
  * Line position in a document (zero-based).
101
- *
102
- * 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.
103
- * If a line number is negative, it defaults to 0.
104
101
  */
105
102
  line: uinteger;
106
103
  /**
@@ -108,9 +105,6 @@ export interface Position {
108
105
  *
109
106
  * The meaning of this offset is determined by the negotiated
110
107
  * `PositionEncodingKind`.
111
- *
112
- * If the character value is greater than the line length it defaults back to the
113
- * line length.
114
108
  */
115
109
  character: uinteger;
116
110
  }
@@ -389,7 +383,7 @@ export interface FoldingRange {
389
383
  */
390
384
  endCharacter?: uinteger;
391
385
  /**
392
- * Describes the kind of the folding range such as `comment' or 'region'. The kind
386
+ * Describes the kind of the folding range such as 'comment' or 'region'. The kind
393
387
  * is used to categorize folding ranges and used by commands like 'Fold all comments'.
394
388
  * See {@link FoldingRangeKind} for an enumeration of standardized kinds.
395
389
  */
@@ -518,8 +512,9 @@ export interface Diagnostic {
518
512
  */
519
513
  range: Range;
520
514
  /**
521
- * The diagnostic's severity. Can be omitted. If omitted it is up to the
522
- * client to interpret diagnostics as error, warning, info or hint.
515
+ * The diagnostic's severity. To avoid interpretation mismatches when a
516
+ * server is used with different clients it is highly recommended that servers
517
+ * always provide a severity value.
523
518
  */
524
519
  severity?: DiagnosticSeverity;
525
520
  /**
@@ -540,9 +535,12 @@ export interface Diagnostic {
540
535
  */
541
536
  source?: string;
542
537
  /**
543
- * The diagnostic's message. It usually appears in the user interface
538
+ * The diagnostic's message. It usually appears in the user interface.
539
+ *
540
+ * @since 3.18.0 - support for MarkupContent. This is guarded by the client
541
+ * capability `textDocument.diagnostic.markupMessageSupport`.
544
542
  */
545
- message: string;
543
+ message: string | MarkupContent;
546
544
  /**
547
545
  * Additional metadata about the diagnostic.
548
546
  *
@@ -570,11 +568,30 @@ export declare namespace Diagnostic {
570
568
  /**
571
569
  * Creates a new Diagnostic literal.
572
570
  */
573
- function create(range: Range, message: string, severity?: DiagnosticSeverity, code?: integer | string, source?: string, relatedInformation?: DiagnosticRelatedInformation[]): Diagnostic;
571
+ function create(range: Range, message: string | MarkupContent, severity?: DiagnosticSeverity, code?: integer | string, source?: string, relatedInformation?: DiagnosticRelatedInformation[]): Diagnostic;
574
572
  /**
575
573
  * Checks whether the given literal conforms to the {@link Diagnostic} interface.
576
574
  */
577
575
  function is(value: any): value is Diagnostic;
576
+ /**
577
+ * Checks whether the given diagnostic's message conforms to the 3.17.0
578
+ * version of the protocol where the message is a string.
579
+ *
580
+ * @param value the diagnostic
581
+ * @returns true if the diagnostic's message is a string, false otherwise.
582
+ */
583
+ function is3_17(value: Diagnostic): value is Omit<Diagnostic, 'message'> & {
584
+ message: string;
585
+ };
586
+ /**
587
+ * Gets the message string of a diagnostic. If the message is already a
588
+ * string, it is returned as is. If the message is a MarkupContent,
589
+ * the value of the MarkupContent is returned. Otherwise an error is thrown.
590
+ *
591
+ * @param diagnostic the diagnostic to get the message string from.
592
+ * @returns the message string of the given diagnostic.
593
+ */
594
+ function getMessageString(diagnostic: Diagnostic): string;
578
595
  }
579
596
  /**
580
597
  * Represents a reference to a command. Provides a title which
@@ -587,6 +604,12 @@ export interface Command {
587
604
  * Title of the command, like `save`.
588
605
  */
589
606
  title: string;
607
+ /**
608
+ * An optional tooltip.
609
+ *
610
+ * @since 3.18.0
611
+ */
612
+ tooltip?: string;
590
613
  /**
591
614
  * The identifier of the actual command handler.
592
615
  */
@@ -736,8 +759,11 @@ export interface TextDocumentEdit {
736
759
  *
737
760
  * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
738
761
  * client capability.
762
+ *
763
+ * @since 3.18.0 - support for SnippetTextEdit. This is guarded using a
764
+ * client capability.
739
765
  */
740
- edits: (TextEdit | AnnotatedTextEdit)[];
766
+ edits: (TextEdit | AnnotatedTextEdit | SnippetTextEdit)[];
741
767
  }
742
768
  /**
743
769
  * The TextDocumentEdit namespace provides helper function to create
@@ -747,7 +773,7 @@ export declare namespace TextDocumentEdit {
747
773
  /**
748
774
  * Creates a new `TextDocumentEdit`
749
775
  */
750
- function create(textDocument: OptionalVersionedTextDocumentIdentifier, edits: (TextEdit | AnnotatedTextEdit)[]): TextDocumentEdit;
776
+ function create(textDocument: OptionalVersionedTextDocumentIdentifier, edits: (TextEdit | AnnotatedTextEdit | SnippetTextEdit)[]): TextDocumentEdit;
751
777
  function is(value: any): value is TextDocumentEdit;
752
778
  }
753
779
  /**
@@ -920,6 +946,17 @@ export interface WorkspaceEdit {
920
946
  export declare namespace WorkspaceEdit {
921
947
  function is(value: any): value is WorkspaceEdit;
922
948
  }
949
+ /**
950
+ * Additional data about a workspace edit.
951
+ *
952
+ * @since 3.18.0
953
+ */
954
+ export type WorkspaceEditMetadata = {
955
+ /**
956
+ * Signal to the editor that this edit is a refactoring.
957
+ */
958
+ isRefactoring?: boolean;
959
+ };
923
960
  /**
924
961
  * A change to capture text edits for existing resources.
925
962
  */
@@ -931,8 +968,11 @@ export interface TextEditChange {
931
968
  *
932
969
  * @since 3.16.0 - support for annotated text edits. This is usually
933
970
  * guarded using a client capability.
971
+ *
972
+ * @since 3.18.0 - support for snippet text edits. This is usually
973
+ * guarded using a client capability.
934
974
  */
935
- all(): (TextEdit | AnnotatedTextEdit)[];
975
+ all(): (TextEdit | AnnotatedTextEdit | SnippetTextEdit)[];
936
976
  /**
937
977
  * Clears the edits for this change.
938
978
  */
@@ -944,8 +984,11 @@ export interface TextEditChange {
944
984
  *
945
985
  * @since 3.16.0 - support for annotated text edits. This is usually
946
986
  * guarded using a client capability.
987
+ *
988
+ * @since 3.18.0 - support for snippet text edits. This is usually
989
+ * guarded using a client capability.
947
990
  */
948
- add(edit: TextEdit | AnnotatedTextEdit): void;
991
+ add(edit: TextEdit | AnnotatedTextEdit | SnippetTextEdit): void;
949
992
  /**
950
993
  * Insert the given text at the given position.
951
994
  *
@@ -973,6 +1016,28 @@ export interface TextEditChange {
973
1016
  delete(range: Range): void;
974
1017
  delete(range: Range, annotation?: ChangeAnnotation | ChangeAnnotationIdentifier): ChangeAnnotationIdentifier;
975
1018
  }
1019
+ /**
1020
+ * An interactive text edit.
1021
+ *
1022
+ * @since 3.18.0
1023
+ */
1024
+ export interface SnippetTextEdit {
1025
+ /**
1026
+ * The range of the text document to be manipulated.
1027
+ */
1028
+ range: Range;
1029
+ /**
1030
+ * The snippet to be inserted.
1031
+ */
1032
+ snippet: StringValue;
1033
+ /**
1034
+ * The actual identifier of the snippet edit.
1035
+ */
1036
+ annotationId?: ChangeAnnotationIdentifier;
1037
+ }
1038
+ export declare namespace SnippetTextEdit {
1039
+ function is(value: any): value is SnippetTextEdit;
1040
+ }
976
1041
  /**
977
1042
  * A workspace change helps constructing changes to a workspace.
978
1043
  */
@@ -1091,7 +1156,7 @@ export interface TextDocumentItem {
1091
1156
  /**
1092
1157
  * The text document's language identifier.
1093
1158
  */
1094
- languageId: string;
1159
+ languageId: LanguageKind;
1095
1160
  /**
1096
1161
  * The version number of this document (it will increase after each
1097
1162
  * change, including undo/redo).
@@ -1102,6 +1167,84 @@ export interface TextDocumentItem {
1102
1167
  */
1103
1168
  text: string;
1104
1169
  }
1170
+ /**
1171
+ * Predefined Language kinds
1172
+ * @since 3.18.0
1173
+ */
1174
+ export declare namespace LanguageKind {
1175
+ const ABAP: "abap";
1176
+ const WindowsBat: "bat";
1177
+ const BibTeX: "bibtex";
1178
+ const Clojure: "clojure";
1179
+ const Coffeescript: "coffeescript";
1180
+ const C: "c";
1181
+ const CPP: "cpp";
1182
+ const CSharp: "csharp";
1183
+ const CSS: "css";
1184
+ /**
1185
+ * @since 3.18.0
1186
+ */
1187
+ const D: "d";
1188
+ /**
1189
+ * @since 3.18.0
1190
+ */
1191
+ const Delphi: "pascal";
1192
+ const Diff: "diff";
1193
+ const Dart: "dart";
1194
+ const Dockerfile: "dockerfile";
1195
+ const Elixir: "elixir";
1196
+ const Erlang: "erlang";
1197
+ const FSharp: "fsharp";
1198
+ const GitCommit: "git-commit";
1199
+ const GitRebase: "git-rebase";
1200
+ const Go: "go";
1201
+ const Groovy: "groovy";
1202
+ const Handlebars: "handlebars";
1203
+ const Haskell: "haskell";
1204
+ const HTML: "html";
1205
+ const Ini: "ini";
1206
+ const Java: "java";
1207
+ const JavaScript: "javascript";
1208
+ const JavaScriptReact: "javascriptreact";
1209
+ const JSON: "json";
1210
+ const LaTeX: "latex";
1211
+ const Less: "less";
1212
+ const Lua: "lua";
1213
+ const Makefile: "makefile";
1214
+ const Markdown: "markdown";
1215
+ const ObjectiveC: "objective-c";
1216
+ const ObjectiveCPP: "objective-cpp";
1217
+ /**
1218
+ * @since 3.18.0
1219
+ */
1220
+ const Pascal: "pascal";
1221
+ const Perl: "perl";
1222
+ const Perl6: "perl6";
1223
+ const PHP: "php";
1224
+ const Plaintext: "plaintext";
1225
+ const Powershell: "powershell";
1226
+ const Pug: "jade";
1227
+ const Python: "python";
1228
+ const R: "r";
1229
+ const Razor: "razor";
1230
+ const Ruby: "ruby";
1231
+ const Rust: "rust";
1232
+ const SCSS: "scss";
1233
+ const SASS: "sass";
1234
+ const Scala: "scala";
1235
+ const ShaderLab: "shaderlab";
1236
+ const ShellScript: "shellscript";
1237
+ const SQL: "sql";
1238
+ const Swift: "swift";
1239
+ const TypeScript: "typescript";
1240
+ const TypeScriptReact: "typescriptreact";
1241
+ const TeX: "tex";
1242
+ const VisualBasic: "vb";
1243
+ const XML: "xml";
1244
+ const XSL: "xsl";
1245
+ const YAML: "yaml";
1246
+ }
1247
+ export type LanguageKind = string;
1105
1248
  /**
1106
1249
  * The TextDocumentItem namespace provides helper functions to work with
1107
1250
  * {@link TextDocumentItem} literals.
@@ -1114,7 +1257,7 @@ export declare namespace TextDocumentItem {
1114
1257
  * @param version The document's version number.
1115
1258
  * @param text The document's text.
1116
1259
  */
1117
- function create(uri: DocumentUri, languageId: string, version: integer, text: string): TextDocumentItem;
1260
+ function create(uri: DocumentUri, languageId: LanguageKind, version: integer, text: string): TextDocumentItem;
1118
1261
  /**
1119
1262
  * Checks whether the given literal conforms to the {@link TextDocumentItem} interface.
1120
1263
  */
@@ -1309,6 +1452,33 @@ export declare namespace InsertTextMode {
1309
1452
  const adjustIndentation: 2;
1310
1453
  }
1311
1454
  export type InsertTextMode = 1 | 2;
1455
+ /**
1456
+ * Defines how values from a set of defaults and an individual item will be
1457
+ * merged.
1458
+ *
1459
+ * @since 3.18.0
1460
+ */
1461
+ export declare namespace ApplyKind {
1462
+ /**
1463
+ * The value from the individual item (if provided and not `null`) will be
1464
+ * used instead of the default.
1465
+ */
1466
+ const Replace: 1;
1467
+ /**
1468
+ * The value from the item will be merged with the default.
1469
+ *
1470
+ * The specific rules for mergeing values are defined against each field
1471
+ * that supports merging.
1472
+ */
1473
+ const Merge: 2;
1474
+ }
1475
+ /**
1476
+ * Defines how values from a set of defaults and an individual item will be
1477
+ * merged.
1478
+ *
1479
+ * @since 3.18.0
1480
+ */
1481
+ export type ApplyKind = 1 | 2;
1312
1482
  /**
1313
1483
  * Additional details for a completion item label.
1314
1484
  *
@@ -1501,6 +1671,128 @@ export declare namespace CompletionItem {
1501
1671
  */
1502
1672
  function create(label: string): CompletionItem;
1503
1673
  }
1674
+ /**
1675
+ * Edit range variant that includes ranges for insert and replace operations.
1676
+ *
1677
+ * @since 3.18.0
1678
+ */
1679
+ export type EditRangeWithInsertReplace = {
1680
+ insert: Range;
1681
+ replace: Range;
1682
+ };
1683
+ /**
1684
+ * In many cases the items of an actual completion result share the same
1685
+ * value for properties like `commitCharacters` or the range of a text
1686
+ * edit. A completion list can therefore define item defaults which will
1687
+ * be used if a completion item itself doesn't specify the value.
1688
+ *
1689
+ * If a completion list specifies a default value and a completion item
1690
+ * also specifies a corresponding value, the rules for combining these are
1691
+ * defined by `applyKinds` (if the client supports it), defaulting to
1692
+ * ApplyKind.Replace.
1693
+ *
1694
+ * Servers are only allowed to return default values if the client
1695
+ * signals support for this via the `completionList.itemDefaults`
1696
+ * capability.
1697
+ *
1698
+ * @since 3.17.0
1699
+ */
1700
+ export interface CompletionItemDefaults {
1701
+ /**
1702
+ * A default commit character set.
1703
+ *
1704
+ * @since 3.17.0
1705
+ */
1706
+ commitCharacters?: string[];
1707
+ /**
1708
+ * A default edit range.
1709
+ *
1710
+ * @since 3.17.0
1711
+ */
1712
+ editRange?: Range | EditRangeWithInsertReplace;
1713
+ /**
1714
+ * A default insert text format.
1715
+ *
1716
+ * @since 3.17.0
1717
+ */
1718
+ insertTextFormat?: InsertTextFormat;
1719
+ /**
1720
+ * A default insert text mode.
1721
+ *
1722
+ * @since 3.17.0
1723
+ */
1724
+ insertTextMode?: InsertTextMode;
1725
+ /**
1726
+ * A default data value.
1727
+ *
1728
+ * @since 3.17.0
1729
+ */
1730
+ data?: LSPAny;
1731
+ }
1732
+ /**
1733
+ * Specifies how fields from a completion item should be combined with those
1734
+ * from `completionList.itemDefaults`.
1735
+ *
1736
+ * If unspecified, all fields will be treated as ApplyKind.Replace.
1737
+ *
1738
+ * If a field's value is ApplyKind.Replace, the value from a completion item (if
1739
+ * provided and not `null`) will always be used instead of the value from
1740
+ * `completionItem.itemDefaults`.
1741
+ *
1742
+ * If a field's value is ApplyKind.Merge, the values will be merged using the rules
1743
+ * defined against each field below.
1744
+ *
1745
+ * Servers are only allowed to return `applyKind` if the client
1746
+ * signals support for this via the `completionList.applyKindSupport`
1747
+ * capability.
1748
+ *
1749
+ * @since 3.18.0
1750
+ */
1751
+ export interface CompletionItemApplyKinds {
1752
+ /**
1753
+ * Specifies whether commitCharacters on a completion will replace or be
1754
+ * merged with those in `completionList.itemDefaults.commitCharacters`.
1755
+ *
1756
+ * If ApplyKind.Replace, the commit characters from the completion item will
1757
+ * always be used unless not provided, in which case those from
1758
+ * `completionList.itemDefaults.commitCharacters` will be used. An
1759
+ * empty list can be used if a completion item does not have any commit
1760
+ * characters and also should not use those from
1761
+ * `completionList.itemDefaults.commitCharacters`.
1762
+ *
1763
+ * If ApplyKind.Merge the commitCharacters for the completion will be the
1764
+ * union of all values in both `completionList.itemDefaults.commitCharacters`
1765
+ * and the completion's own `commitCharacters`.
1766
+ *
1767
+ * @since 3.18.0
1768
+ */
1769
+ commitCharacters?: ApplyKind;
1770
+ /**
1771
+ * Specifies whether the `data` field on a completion will replace or
1772
+ * be merged with data from `completionList.itemDefaults.data`.
1773
+ *
1774
+ * If ApplyKind.Replace, the data from the completion item will be used if
1775
+ * provided (and not `null`), otherwise
1776
+ * `completionList.itemDefaults.data` will be used. An empty object can
1777
+ * be used if a completion item does not have any data but also should
1778
+ * not use the value from `completionList.itemDefaults.data`.
1779
+ *
1780
+ * If ApplyKind.Merge, a shallow merge will be performed between
1781
+ * `completionList.itemDefaults.data` and the completion's own data
1782
+ * using the following rules:
1783
+ *
1784
+ * - If a completion's `data` field is not provided (or `null`), the
1785
+ * entire `data` field from `completionList.itemDefaults.data` will be
1786
+ * used as-is.
1787
+ * - If a completion's `data` field is provided, each field will
1788
+ * overwrite the field of the same name in
1789
+ * `completionList.itemDefaults.data` but no merging of nested fields
1790
+ * within that value will occur.
1791
+ *
1792
+ * @since 3.18.0
1793
+ */
1794
+ data?: ApplyKind;
1795
+ }
1504
1796
  /**
1505
1797
  * Represents a collection of {@link CompletionItem completion items} to be presented
1506
1798
  * in the editor.
@@ -1520,7 +1812,9 @@ export interface CompletionList {
1520
1812
  * be used if a completion item itself doesn't specify the value.
1521
1813
  *
1522
1814
  * If a completion list specifies a default value and a completion item
1523
- * also specifies a corresponding value the one from the item is used.
1815
+ * also specifies a corresponding value, the rules for combining these are
1816
+ * defined by `applyKinds` (if the client supports it), defaulting to
1817
+ * ApplyKind.Replace.
1524
1818
  *
1525
1819
  * Servers are only allowed to return default values if the client
1526
1820
  * signals support for this via the `completionList.itemDefaults`
@@ -1528,41 +1822,27 @@ export interface CompletionList {
1528
1822
  *
1529
1823
  * @since 3.17.0
1530
1824
  */
1531
- itemDefaults?: {
1532
- /**
1533
- * A default commit character set.
1534
- *
1535
- * @since 3.17.0
1536
- */
1537
- commitCharacters?: string[];
1538
- /**
1539
- * A default edit range.
1540
- *
1541
- * @since 3.17.0
1542
- */
1543
- editRange?: Range | {
1544
- insert: Range;
1545
- replace: Range;
1546
- };
1547
- /**
1548
- * A default insert text format.
1549
- *
1550
- * @since 3.17.0
1551
- */
1552
- insertTextFormat?: InsertTextFormat;
1553
- /**
1554
- * A default insert text mode.
1555
- *
1556
- * @since 3.17.0
1557
- */
1558
- insertTextMode?: InsertTextMode;
1559
- /**
1560
- * A default data value.
1561
- *
1562
- * @since 3.17.0
1563
- */
1564
- data?: LSPAny;
1565
- };
1825
+ itemDefaults?: CompletionItemDefaults;
1826
+ /**
1827
+ * Specifies how fields from a completion item should be combined with those
1828
+ * from `completionList.itemDefaults`.
1829
+ *
1830
+ * If unspecified, all fields will be treated as ApplyKind.Replace.
1831
+ *
1832
+ * If a field's value is ApplyKind.Replace, the value from a completion item
1833
+ * (if provided and not `null`) will always be used instead of the value
1834
+ * from `completionItem.itemDefaults`.
1835
+ *
1836
+ * If a field's value is ApplyKind.Merge, the values will be merged using
1837
+ * the rules defined against each field below.
1838
+ *
1839
+ * Servers are only allowed to return `applyKind` if the client
1840
+ * signals support for this via the `completionList.applyKindSupport`
1841
+ * capability.
1842
+ *
1843
+ * @since 3.18.0
1844
+ */
1845
+ applyKind?: CompletionItemApplyKinds;
1566
1846
  /**
1567
1847
  * The completion items.
1568
1848
  */
@@ -1581,6 +1861,14 @@ export declare namespace CompletionList {
1581
1861
  */
1582
1862
  function create(items?: CompletionItem[], isIncomplete?: boolean): CompletionList;
1583
1863
  }
1864
+ /**
1865
+ * @since 3.18.0
1866
+ * @deprecated use MarkupContent instead.
1867
+ */
1868
+ export type MarkedStringWithLanguage = {
1869
+ language: string;
1870
+ value: string;
1871
+ };
1584
1872
  /**
1585
1873
  * MarkedString can be used to render human readable text. It is either a markdown string
1586
1874
  * or a code-block that provides a language and a code snippet. The language identifier
@@ -1595,10 +1883,7 @@ export declare namespace CompletionList {
1595
1883
  * Note that markdown strings will be sanitized - that means html will be escaped.
1596
1884
  * @deprecated use MarkupContent instead.
1597
1885
  */
1598
- export type MarkedString = string | {
1599
- language: string;
1600
- value: string;
1601
- };
1886
+ export type MarkedString = string | MarkedStringWithLanguage;
1602
1887
  export declare namespace MarkedString {
1603
1888
  /**
1604
1889
  * Creates a marked string from plain text.
@@ -1643,6 +1928,10 @@ export interface ParameterInformation {
1643
1928
  * signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
1644
1929
  * string representation as `Position` and `Range` does.
1645
1930
  *
1931
+ * To avoid ambiguities a server should use the [start, end] offset value instead of using
1932
+ * a substring. Whether a client support this is controlled via `labelOffsetSupport` client
1933
+ * capability.
1934
+ *
1646
1935
  * *Note*: a label of type string should be a substring of its containing signature label.
1647
1936
  * Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`.
1648
1937
  */
@@ -1689,11 +1978,17 @@ export interface SignatureInformation {
1689
1978
  /**
1690
1979
  * The index of the active parameter.
1691
1980
  *
1692
- * If provided, this is used in place of `SignatureHelp.activeParameter`.
1981
+ * If `null`, no parameter of the signature is active (for example a named
1982
+ * argument that does not match any declared parameters). This is only valid
1983
+ * if the client specifies the client capability
1984
+ * `textDocument.signatureHelp.noActiveParameterSupport === true`
1985
+ *
1986
+ * If provided (or `null`), this is used in place of
1987
+ * `SignatureHelp.activeParameter`.
1693
1988
  *
1694
1989
  * @since 3.16.0
1695
1990
  */
1696
- activeParameter?: uinteger;
1991
+ activeParameter?: uinteger | null;
1697
1992
  }
1698
1993
  /**
1699
1994
  * The SignatureInformation namespace provides helper functions to work with
@@ -1725,15 +2020,27 @@ export interface SignatureHelp {
1725
2020
  */
1726
2021
  activeSignature?: uinteger;
1727
2022
  /**
1728
- * The active parameter of the active signature. If omitted or the value
1729
- * lies outside the range of `signatures[activeSignature].parameters`
1730
- * defaults to 0 if the active signature has parameters. If
1731
- * the active signature has no parameters it is ignored.
2023
+ * The active parameter of the active signature.
2024
+ *
2025
+ * If `null`, no parameter of the signature is active (for example a named
2026
+ * argument that does not match any declared parameters). This is only valid
2027
+ * if the client specifies the client capability
2028
+ * `textDocument.signatureHelp.noActiveParameterSupport === true`
2029
+ *
2030
+ * If omitted or the value lies outside the range of
2031
+ * `signatures[activeSignature].parameters` defaults to 0 if the active
2032
+ * signature has parameters.
2033
+ *
2034
+ * If the active signature has no parameters it is ignored.
2035
+ *
1732
2036
  * In future version of the protocol this property might become
1733
- * mandatory to better express the active parameter if the
1734
- * active signature does have any.
2037
+ * mandatory (but still nullable) to better express the active parameter if
2038
+ * the active signature does have any.
2039
+ *
2040
+ * Since version 3.16.0 the `SignatureInformation` itself provides a
2041
+ * `activeParameter` property and it should be used instead of this one.
1735
2042
  */
1736
- activeParameter?: uinteger;
2043
+ activeParameter?: uinteger | null;
1737
2044
  }
1738
2045
  /**
1739
2046
  * The definition of a symbol represented as one or many {@link Location locations}.
@@ -1926,6 +2233,14 @@ export declare namespace SymbolInformation {
1926
2233
  */
1927
2234
  function create(name: string, kind: SymbolKind, range: Range, uri: DocumentUri, containerName?: string): SymbolInformation;
1928
2235
  }
2236
+ /**
2237
+ * Location with only uri and does not include range.
2238
+ *
2239
+ * @since 3.18.0
2240
+ */
2241
+ export type LocationUriOnly = {
2242
+ uri: DocumentUri;
2243
+ };
1929
2244
  /**
1930
2245
  * A special workspace symbol that supports locations without a range.
1931
2246
  *
@@ -1941,9 +2256,7 @@ export interface WorkspaceSymbol extends BaseSymbolInformation {
1941
2256
  *
1942
2257
  * See SymbolInformation#location for more details.
1943
2258
  */
1944
- location: Location | {
1945
- uri: DocumentUri;
1946
- };
2259
+ location: Location | LocationUriOnly;
1947
2260
  /**
1948
2261
  * A data entry field that is preserved on a workspace symbol between a
1949
2262
  * workspace symbol request and a workspace symbol resolve request.
@@ -2075,6 +2388,19 @@ export declare namespace CodeActionKind {
2075
2388
  * - ...
2076
2389
  */
2077
2390
  const RefactorInline: 'refactor.inline';
2391
+ /**
2392
+ * Base kind for refactoring move actions: `refactor.move`
2393
+ *
2394
+ * Example move actions:
2395
+ *
2396
+ * - Move a function to a new file
2397
+ * - Move a property between classes
2398
+ * - Move method to base class
2399
+ * - ...
2400
+ *
2401
+ * @since 3.18.0
2402
+ */
2403
+ const RefactorMove: 'refactor.move';
2078
2404
  /**
2079
2405
  * Base kind for refactoring rewrite actions: 'refactor.rewrite'
2080
2406
  *
@@ -2107,6 +2433,13 @@ export declare namespace CodeActionKind {
2107
2433
  * @since 3.15.0
2108
2434
  */
2109
2435
  const SourceFixAll: 'source.fixAll';
2436
+ /**
2437
+ * Base kind for all code actions applying to the entire notebook's scope. CodeActionKinds using
2438
+ * this should always begin with `notebook.`
2439
+ *
2440
+ * @since 3.18.0
2441
+ */
2442
+ const Notebook: 'notebook';
2110
2443
  }
2111
2444
  /**
2112
2445
  * The reason why code actions were requested.
@@ -2168,6 +2501,35 @@ export declare namespace CodeActionContext {
2168
2501
  */
2169
2502
  function is(value: any): value is CodeActionContext;
2170
2503
  }
2504
+ /**
2505
+ * Captures why the code action is currently disabled.
2506
+ *
2507
+ * @since 3.18.0
2508
+ */
2509
+ export type CodeActionDisabled = {
2510
+ /**
2511
+ * Human readable description of why the code action is currently disabled.
2512
+ *
2513
+ * This is displayed in the code actions UI.
2514
+ */
2515
+ reason: string;
2516
+ };
2517
+ /**
2518
+ * Code action tags are extra annotations that tweak the behavior of a code action.
2519
+ *
2520
+ * @since 3.18.0 - proposed
2521
+ */
2522
+ export declare namespace CodeActionTag {
2523
+ /**
2524
+ * Marks the code action as LLM-generated.
2525
+ */
2526
+ const LLMGenerated = 1;
2527
+ /**
2528
+ * Checks whether the given literal conforms to the {@link CodeActionTag} interface.
2529
+ */
2530
+ function is(value: any): value is CodeActionTag;
2531
+ }
2532
+ export type CodeActionTag = 1;
2171
2533
  /**
2172
2534
  * A code action represents a change that can be performed in code, e.g. to fix a problem or
2173
2535
  * to refactor code.
@@ -2216,14 +2578,7 @@ export interface CodeAction {
2216
2578
  *
2217
2579
  * @since 3.16.0
2218
2580
  */
2219
- disabled?: {
2220
- /**
2221
- * Human readable description of why the code action is currently disabled.
2222
- *
2223
- * This is displayed in the code actions UI.
2224
- */
2225
- reason: string;
2226
- };
2581
+ disabled?: CodeActionDisabled;
2227
2582
  /**
2228
2583
  * The workspace edit this code action performs.
2229
2584
  */
@@ -2241,6 +2596,12 @@ export interface CodeAction {
2241
2596
  * @since 3.16.0
2242
2597
  */
2243
2598
  data?: LSPAny;
2599
+ /**
2600
+ * Tags for this code action.
2601
+ *
2602
+ * @since 3.18.0 - proposed
2603
+ */
2604
+ tags?: CodeActionTag[];
2244
2605
  }
2245
2606
  export declare namespace CodeAction {
2246
2607
  /**
@@ -2535,7 +2896,11 @@ export declare enum SemanticTokenTypes {
2535
2896
  /**
2536
2897
  * @since 3.17.0
2537
2898
  */
2538
- decorator = "decorator"
2899
+ decorator = "decorator",
2900
+ /**
2901
+ * @since 3.18.0
2902
+ */
2903
+ label = "label"
2539
2904
  }
2540
2905
  /**
2541
2906
  * A set of predefined token modifiers. This set is not fixed
@@ -2662,7 +3027,7 @@ export type TypeHierarchyItem = {
2662
3027
  data?: LSPAny;
2663
3028
  };
2664
3029
  /**
2665
- * Provide inline value as text.
3030
+ * Returns inline value information as the complete text to be shown.
2666
3031
  *
2667
3032
  * @since 3.17.0
2668
3033
  */
@@ -2689,16 +3054,22 @@ export declare namespace InlineValueText {
2689
3054
  function is(value: InlineValue | undefined | null): value is InlineValueText;
2690
3055
  }
2691
3056
  /**
2692
- * Provide inline value through a variable lookup.
2693
- * If only a range is specified, the variable name will be extracted from the underlying document.
2694
- * An optional variable name can be used to override the extracted name.
3057
+ * To compute inline value through a variable lookup.
3058
+ *
3059
+ * If only a range is specified, the variable name should
3060
+ * be extracted from the underlying document.
3061
+ *
3062
+ * An optional variable name could be used to lookup instead
3063
+ * of the extracted name.
2695
3064
  *
2696
3065
  * @since 3.17.0
2697
3066
  */
2698
3067
  export type InlineValueVariableLookup = {
2699
3068
  /**
2700
3069
  * The document range for which the inline value applies.
2701
- * The range is used to extract the variable name from the underlying document.
3070
+ *
3071
+ * The range could be used to extract the variable name
3072
+ * from the underlying document.
2702
3073
  */
2703
3074
  range: Range;
2704
3075
  /**
@@ -2711,7 +3082,8 @@ export type InlineValueVariableLookup = {
2711
3082
  caseSensitiveLookup: boolean;
2712
3083
  };
2713
3084
  /**
2714
- * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups.
3085
+ * The InlineValueVariableLookup namespace provides functions to
3086
+ * deal with InlineValueVariableLookups.
2715
3087
  *
2716
3088
  * @since 3.17.0
2717
3089
  */
@@ -2723,20 +3095,26 @@ export declare namespace InlineValueVariableLookup {
2723
3095
  function is(value: InlineValue | undefined | null): value is InlineValueVariableLookup;
2724
3096
  }
2725
3097
  /**
2726
- * Provide an inline value through an expression evaluation.
2727
- * If only a range is specified, the expression will be extracted from the underlying document.
2728
- * An optional expression can be used to override the extracted expression.
3098
+ * To compute an inline value through an expression evaluation.
3099
+ *
3100
+ * If only a range is specified, the expression should be
3101
+ * extracted from the underlying document.
3102
+ *
3103
+ * An optional expression could be evaluated instead of
3104
+ * the extracted expression.
2729
3105
  *
2730
3106
  * @since 3.17.0
2731
3107
  */
2732
3108
  export type InlineValueEvaluatableExpression = {
2733
3109
  /**
2734
3110
  * The document range for which the inline value applies.
2735
- * The range is used to extract the evaluatable expression from the underlying document.
3111
+ *
3112
+ * The range could be used to extract the evaluatable expression
3113
+ * from the underlying document.
2736
3114
  */
2737
3115
  range: Range;
2738
3116
  /**
2739
- * If specified the expression overrides the extracted expression.
3117
+ * If specified the expression could be evaluated instead.
2740
3118
  */
2741
3119
  expression?: string;
2742
3120
  };
@@ -2860,6 +3238,9 @@ export declare namespace InlayHintLabelPart {
2860
3238
  export type InlayHint = {
2861
3239
  /**
2862
3240
  * The position of this hint.
3241
+ *
3242
+ * If multiple hints have the same position, they will be shown in the order
3243
+ * they appear in the response.
2863
3244
  */
2864
3245
  position: Position;
2865
3246
  /**
@@ -2922,9 +3303,8 @@ export declare namespace InlayHint {
2922
3303
  * `${name:default value}`.
2923
3304
  *
2924
3305
  * @since 3.18.0
2925
- * @proposed
2926
3306
  */
2927
- export interface StringValue {
3307
+ export type StringValue = {
2928
3308
  /**
2929
3309
  * The kind of string value.
2930
3310
  */
@@ -2933,15 +3313,15 @@ export interface StringValue {
2933
3313
  * The snippet string.
2934
3314
  */
2935
3315
  value: string;
2936
- }
3316
+ };
2937
3317
  export declare namespace StringValue {
2938
3318
  function createSnippet(value: string): StringValue;
3319
+ function isSnippet(value: any): value is StringValue;
2939
3320
  }
2940
3321
  /**
2941
3322
  * An inline completion item represents a text snippet that is proposed inline to complete text that is being typed.
2942
3323
  *
2943
3324
  * @since 3.18.0
2944
- * @proposed
2945
3325
  */
2946
3326
  export interface InlineCompletionItem {
2947
3327
  /**
@@ -2968,7 +3348,6 @@ export declare namespace InlineCompletionItem {
2968
3348
  * Represents a collection of {@link InlineCompletionItem inline completion items} to be presented in the editor.
2969
3349
  *
2970
3350
  * @since 3.18.0
2971
- * @proposed
2972
3351
  */
2973
3352
  export interface InlineCompletionList {
2974
3353
  /**
@@ -2983,26 +3362,24 @@ export declare namespace InlineCompletionList {
2983
3362
  * Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.
2984
3363
  *
2985
3364
  * @since 3.18.0
2986
- * @proposed
2987
3365
  */
2988
3366
  export declare namespace InlineCompletionTriggerKind {
2989
3367
  /**
2990
3368
  * Completion was triggered explicitly by a user gesture.
2991
3369
  */
2992
- const Invoked: 0;
3370
+ const Invoked: 1;
2993
3371
  /**
2994
3372
  * Completion was triggered automatically while editing.
2995
3373
  */
2996
- const Automatic: 1;
3374
+ const Automatic: 2;
2997
3375
  }
2998
- export type InlineCompletionTriggerKind = 0 | 1;
3376
+ export type InlineCompletionTriggerKind = 1 | 2;
2999
3377
  /**
3000
3378
  * Describes the currently selected completion item.
3001
3379
  *
3002
3380
  * @since 3.18.0
3003
- * @proposed
3004
3381
  */
3005
- export interface SelectedCompletionInfo {
3382
+ export type SelectedCompletionInfo = {
3006
3383
  /**
3007
3384
  * The range that will be replaced if this completion item is accepted.
3008
3385
  */
@@ -3011,7 +3388,7 @@ export interface SelectedCompletionInfo {
3011
3388
  * The text the range will be replaced with if this completion is accepted.
3012
3389
  */
3013
3390
  text: string;
3014
- }
3391
+ };
3015
3392
  export declare namespace SelectedCompletionInfo {
3016
3393
  function create(range: Range, text: string): SelectedCompletionInfo;
3017
3394
  }
@@ -3019,9 +3396,8 @@ export declare namespace SelectedCompletionInfo {
3019
3396
  * Provides information about the context in which an inline completion was requested.
3020
3397
  *
3021
3398
  * @since 3.18.0
3022
- * @proposed
3023
3399
  */
3024
- export interface InlineCompletionContext {
3400
+ export type InlineCompletionContext = {
3025
3401
  /**
3026
3402
  * Describes how the inline completion was triggered.
3027
3403
  */
@@ -3030,7 +3406,7 @@ export interface InlineCompletionContext {
3030
3406
  * Provides information about the currently selected item in the autocomplete widget if it is visible.
3031
3407
  */
3032
3408
  selectedCompletionInfo?: SelectedCompletionInfo;
3033
- }
3409
+ };
3034
3410
  export declare namespace InlineCompletionContext {
3035
3411
  function create(triggerKind: InlineCompletionTriggerKind, selectedCompletionInfo?: SelectedCompletionInfo): InlineCompletionContext;
3036
3412
  }
@@ -3072,7 +3448,7 @@ export interface TextDocument {
3072
3448
  *
3073
3449
  * @readonly
3074
3450
  */
3075
- readonly languageId: string;
3451
+ readonly languageId: LanguageKind;
3076
3452
  /**
3077
3453
  * The version number of this document (it will increase after each
3078
3454
  * change, including undo/redo).
@@ -3129,7 +3505,7 @@ export declare namespace TextDocument {
3129
3505
  * @param version The document's version.
3130
3506
  * @param content The document's content.
3131
3507
  */
3132
- function create(uri: DocumentUri, languageId: string, version: integer, content: string): TextDocument;
3508
+ function create(uri: DocumentUri, languageId: LanguageKind, version: integer, content: string): TextDocument;
3133
3509
  /**
3134
3510
  * Checks whether the given literal conforms to the {@link ITextDocument} interface.
3135
3511
  */