From 0db2596a6b44dd0fcb7a83e5ccd9e5e55fa75769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Ch=C5=82odnicki?= Date: Sat, 12 Oct 2024 01:13:23 +0200 Subject: [PATCH] update to latest schema (#17) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update to latest schema * lint * update once more * lint --------- Co-authored-by: Предраг Николић --- generate.py | 1 + lsp_types.py | 267 +++++++++++++++++-- lsp_types_sublime_text_33.py | 264 +++++++++++++++++-- lsprotocol/lsp.json | 487 +++++++++++++++++++++++++++++++++-- lsprotocol/lsp.schema.json | 68 ++++- 5 files changed, 1020 insertions(+), 67 deletions(-) diff --git a/generate.py b/generate.py index 27222a5..ac70411 100755 --- a/generate.py +++ b/generate.py @@ -26,6 +26,7 @@ 'TraceValue': 'StrEnum', 'UniquenessLevel': 'StrEnum', 'WatchKind': 'IntFlag', + 'ApplyKind': 'StrEnum' } # type: Dict[str, Literal['StrEnum', 'IntFlag']] diff --git a/lsp_types.py b/lsp_types.py index 1b3efb9..a0b1ad9 100644 --- a/lsp_types.py +++ b/lsp_types.py @@ -44,6 +44,8 @@ class SemanticTokenTypes(StrEnum): Operator = 'operator' Decorator = 'decorator' """ @since 3.17.0 """ + Label = 'label' + """ @since 3.18.0 """ class SemanticTokenModifiers(StrEnum): @@ -113,7 +115,7 @@ class LSPErrorCodes(IntEnum): If a client decides that a result is not of any use anymore the client should cancel the request. """ RequestCancelled = -32800 - """ The client has canceled a request and a server as detected + """ The client has canceled a request and a server has detected the cancel. """ @@ -401,6 +403,14 @@ class CodeActionKind(StrEnum): @since 3.18.0 """ +class CodeActionTag(IntEnum): + """ Code action tags are extra annotations that tweak the behavior of a code action. + + @since 3.18.0 - proposed """ + LLMGenerated = 1 + """ Marks the code action as LLM-generated. """ + + class TraceValue(StrEnum): Off = 'off' """ Turn tracing off. """ @@ -583,6 +593,21 @@ class CompletionTriggerKind(IntEnum): """ Completion was re-triggered as current completion list is incomplete """ +class ApplyKind(StrEnum): + """ Defines how values from a set of defaults and an individual item will be + merged. + + @since 3.18.0 """ + Replace = 'replace' + """ The value from the individual item (if provided and not `null`) will be + used instead of the default. """ + Merge = 'merge' + """ The value from the item will be merged with the default. + + The specific rules for mergeing values are defined against each field + that supports merging. """ + + class SignatureHelpTriggerKind(IntEnum): """ How a signature help was triggered. @@ -1775,6 +1800,48 @@ class InlineCompletionRegistrationOptions(TypedDict): the request again. See also Registration#id. """ +class TextDocumentContentParams(TypedDict): + """ Parameters for the `workspace/textDocumentContent` request. + + @since 3.18.0 + @proposed """ + uri: 'DocumentUri' + """ The uri of the text document. """ + + +class TextDocumentContentResult(TypedDict): + """ Result of the `workspace/textDocumentContent` request. + + @since 3.18.0 + @proposed """ + text: str + """ The text content of the text document. Please note, that the content of + any subsequent open notifications for the text document might differ + from the returned content due to whitespace and line ending + normalizations done on the client """ + + +class TextDocumentContentRegistrationOptions(TypedDict): + """ Text document content provider registration options. + + @since 3.18.0 + @proposed """ + schemes: List[str] + """ The schemes for which the server provides content. """ + id: NotRequired[str] + """ The id used to register the request. The id can be used to deregister + the request again. See also Registration#id. """ + + +class TextDocumentContentRefreshParams(TypedDict): + """ Parameters for the `workspace/textDocumentContent/refresh` request. + + @since 3.18.0 + @proposed """ + uri: 'DocumentUri' + """ The uri of the text document to refresh. """ + + class RegistrationParams(TypedDict): registrations: List['Registration'] @@ -2148,13 +2215,33 @@ class CompletionList(TypedDict): be used if a completion item itself doesn't specify the value. If a completion list specifies a default value and a completion item - also specifies a corresponding value the one from the item is used. + also specifies a corresponding value, the rules for combining these are + defined by `applyKinds` (if the client supports it), defaulting to + "replace". Servers are only allowed to return default values if the client signals support for this via the `completionList.itemDefaults` capability. @since 3.17.0 """ + applyKind: NotRequired['CompletionItemApplyKinds'] + """ Specifies how fields from a completion item should be combined with those + from `completionList.itemDefaults`. + + If unspecified, all fields will be treated as "replace". + + If a field's value is "replace", the value from a completion item (if + provided and not `null`) will always be used instead of the value from + `completionItem.itemDefaults`. + + If a field's value is "merge", the values will be merged using the rules + defined against each field below. + + Servers are only allowed to return `applyKind` if the client + signals support for this via the `completionList.applyKindSupport` + capability. + + @since 3.18.0 """ items: List['CompletionItem'] """ The completion items. """ @@ -2523,6 +2610,10 @@ class CodeAction(TypedDict): a `textDocument/codeAction` and a `codeAction/resolve` request. @since 3.16.0 """ + tags: NotRequired[List['CodeActionTag']] + """ Tags for this code action. + + @since 3.18.0 - proposed """ class CodeActionRegistrationOptions(TypedDict): @@ -2562,7 +2653,13 @@ class WorkspaceSymbolParams(TypedDict): """ The parameters of a {@link WorkspaceSymbolRequest}. """ query: str """ A query string to filter symbols by. Clients may send an empty - string here to request all symbols. """ + string here to request all symbols. + + The `query`-parameter should be interpreted in a *relaxed way* as editors + will apply their own highlighting and scoring on the results. A good rule + of thumb is to match case-insensitive and to simply check that the + characters of *query* appear in their order in a candidate symbol. + Servers shouldn't use prefix, substring, or similar strict matching. """ workDoneToken: NotRequired['ProgressToken'] """ An optional token that a server can use to report work done progress. """ partialResultToken: NotRequired['ProgressToken'] @@ -3072,18 +3169,12 @@ class Position(TypedDict): @since 3.17.0 - support for negotiated position encoding. """ line: Uint - """ Line position in a document (zero-based). - - 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. - If a line number is negative, it defaults to 0. """ + """ Line position in a document (zero-based). """ character: Uint """ Character offset on a line in a document (zero-based). The meaning of this offset is determined by the negotiated - `PositionEncodingKind`. - - If the character value is greater than the line length it defaults back to the - line length. """ + `PositionEncodingKind`. """ class SelectionRangeOptions(TypedDict): @@ -3592,6 +3683,15 @@ class InlineCompletionOptions(TypedDict): workDoneProgress: NotRequired[bool] +class TextDocumentContentOptions(TypedDict): + """ Text document content provider options. + + @since 3.18.0 + @proposed """ + schemes: List[str] + """ The schemes for which the server provides content. """ + + class Registration(TypedDict): """ General parameters to register for a notification or to register a provider. """ id: str @@ -3785,8 +3885,9 @@ class Diagnostic(TypedDict): range: 'Range' """ The range at which the message applies """ severity: NotRequired['DiagnosticSeverity'] - """ The diagnostic's severity. Can be omitted. If omitted it is up to the - client to interpret diagnostics as error, warning, info or hint. """ + """ The diagnostic's severity. To avoid interpretation mismatches when a + server is used with different clients it is highly recommended that servers + always provide a severity value. """ code: NotRequired[Union[int, str]] """ The diagnostic's code, which usually appear in the user interface. """ codeDescription: NotRequired['CodeDescription'] @@ -3854,7 +3955,9 @@ class CompletionItemDefaults(TypedDict): be used if a completion item itself doesn't specify the value. If a completion list specifies a default value and a completion item - also specifies a corresponding value the one from the item is used. + also specifies a corresponding value, the rules for combining these are + defined by `applyKinds` (if the client supports it), defaulting to + "replace". Servers are only allowed to return default values if the client signals support for this via the `completionList.itemDefaults` @@ -3883,6 +3986,65 @@ class CompletionItemDefaults(TypedDict): @since 3.17.0 """ +class CompletionItemApplyKinds(TypedDict): + """ Specifies how fields from a completion item should be combined with those + from `completionList.itemDefaults`. + + If unspecified, all fields will be treated as "replace". + + If a field's value is "replace", the value from a completion item (if + provided and not `null`) will always be used instead of the value from + `completionItem.itemDefaults`. + + If a field's value is "merge", the values will be merged using the rules + defined against each field below. + + Servers are only allowed to return `applyKind` if the client + signals support for this via the `completionList.applyKindSupport` + capability. + + @since 3.18.0 """ + commitCharacters: NotRequired['ApplyKind'] + """ Specifies whether commitCharacters on a completion will replace or be + merged with those in `completionList.itemDefaults.commitCharacters`. + + If "replace", the commit characters from the completion item will + always be used unless not provided, in which case those from + `completionList.itemDefaults.commitCharacters` will be used. An + empty list can be used if a completion item does not have any commit + characters and also should not use those from + `completionList.itemDefaults.commitCharacters`. + + If "merge" the commitCharacters for the completion will be the union + of all values in both `completionList.itemDefaults.commitCharacters` + and the completion's own `commitCharacters`. + + @since 3.18.0 """ + data: NotRequired['ApplyKind'] + """ Specifies whether the `data` field on a completion will replace or + be merged with data from `completionList.itemDefaults.data`. + + If "replace", the data from the completion item will be used if + provided (and not `null`), otherwise + `completionList.itemDefaults.data` will be used. An empty object can + be used if a completion item does not have any data but also should + not use the value from `completionList.itemDefaults.data`. + + If "merge", a shallow merge will be performed between + `completionList.itemDefaults.data` and the completion's own data + using the following rules: + + - If a completion's `data` field is not provided (or `null`), the + entire `data` field from `completionList.itemDefaults.data` will be + used as-is. + - If a completion's `data` field is provided, each field will + overwrite the field of the same name in + `completionList.itemDefaults.data` but no merging of nested fields + within that value will occur. + + @since 3.18.0 """ + + class CompletionOptions(TypedDict): """ Completion options. """ triggerCharacters: NotRequired[List[str]] @@ -4477,6 +4639,11 @@ class WorkspaceOptions(TypedDict): """ The server is interested in notifications/requests for operations on files. @since 3.16.0 """ + textDocumentContent: NotRequired[Union['TextDocumentContentOptions', 'TextDocumentContentRegistrationOptions']] + """ The server supports the `workspace/textDocumentContent` request. + + @since 3.18.0 + @proposed """ class TextDocumentContentChangePartial(TypedDict): @@ -4696,6 +4863,11 @@ class WorkspaceClientCapabilities(TypedDict): @since 3.18.0 @proposed """ + textDocumentContent: NotRequired['TextDocumentContentClientCapabilities'] + """ Capabilities specific to the `workspace/textDocumentContent` request. + + @since 3.18.0 + @proposed """ class TextDocumentClientCapabilities(TypedDict): @@ -4919,8 +5091,10 @@ class TextDocumentFilterLanguage(TypedDict): """ A language id, like `typescript`. """ scheme: NotRequired[str] """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """ - pattern: NotRequired[str] - """ A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. """ + pattern: NotRequired['GlobPattern'] + """ A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. + + @since 3.18.0 - support for relative patterns. """ class TextDocumentFilterScheme(TypedDict): @@ -4931,8 +5105,10 @@ class TextDocumentFilterScheme(TypedDict): """ A language id, like `typescript`. """ scheme: str """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """ - pattern: NotRequired[str] - """ A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. """ + pattern: NotRequired['GlobPattern'] + """ A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. + + @since 3.18.0 - support for relative patterns. """ class TextDocumentFilterPattern(TypedDict): @@ -4943,8 +5119,10 @@ class TextDocumentFilterPattern(TypedDict): """ A language id, like `typescript`. """ scheme: NotRequired[str] """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """ - pattern: str - """ A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. """ + pattern: 'GlobPattern' + """ A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. + + @since 3.18.0 - support for relative patterns. """ class NotebookDocumentFilterNotebookType(TypedDict): @@ -4955,7 +5133,7 @@ class NotebookDocumentFilterNotebookType(TypedDict): """ The type of the enclosing notebook. """ scheme: NotRequired[str] """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """ - pattern: NotRequired[str] + pattern: NotRequired['GlobPattern'] """ A glob pattern. """ @@ -4967,7 +5145,7 @@ class NotebookDocumentFilterScheme(TypedDict): """ The type of the enclosing notebook. """ scheme: str """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """ - pattern: NotRequired[str] + pattern: NotRequired['GlobPattern'] """ A glob pattern. """ @@ -4979,7 +5157,7 @@ class NotebookDocumentFilterPattern(TypedDict): """ The type of the enclosing notebook. """ scheme: NotRequired[str] """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """ - pattern: str + pattern: 'GlobPattern' """ A glob pattern. """ @@ -5183,6 +5361,15 @@ class FoldingRangeWorkspaceClientCapabilities(TypedDict): @proposed """ +class TextDocumentContentClientCapabilities(TypedDict): + """ Client capabilities for a text document content provider. + + @since 3.18.0 + @proposed """ + dynamicRegistration: NotRequired[bool] + """ Text document content provider supports dynamic registration. """ + + class TextDocumentSyncClientCapabilities(TypedDict): dynamicRegistration: NotRequired[bool] """ Whether text document synchronization supports dynamic registration. """ @@ -5365,12 +5552,22 @@ class CodeActionClientCapabilities(TypedDict): @since 3.18.0 @proposed """ + tagSupport: NotRequired['CodeActionTagOptions'] + """ Client supports the tag property on a code action. Clients + supporting tags have to handle unknown tags gracefully. + + @since 3.18.0 - proposed """ class CodeLensClientCapabilities(TypedDict): """ The client capabilities of a {@link CodeLensRequest}. """ dynamicRegistration: NotRequired[bool] """ Whether code lens supports dynamic registration. """ + resolveSupport: NotRequired['ClientCodeLensResolveOptions'] + """ Whether the client supports resolving additional code lens + properties via a separate `codeLens/resolve` request. + + @since 3.18.0 """ class DocumentLinkClientCapabilities(TypedDict): @@ -5806,6 +6003,18 @@ class CompletionListCapabilities(TypedDict): no properties are supported. @since 3.17.0 """ + applyKindSupport: NotRequired[bool] + """ Specifies whether the client supports `CompletionList.applyKind` to + indicate how supported values from `completionList.itemDefaults` + and `completion` will be combined. + + If a client supports `applyKind` it must support it for all fields + that it supports that are listed in `CompletionList.applyKind`. This + means when clients add support for new/future fields in completion + items the MUST also support merge for them if those fields are + defined in `CompletionList.applyKind`. + + @since 3.18.0 """ class ClientSignatureInformationOptions(TypedDict): @@ -5842,6 +6051,18 @@ class ClientCodeActionResolveOptions(TypedDict): """ The properties that a client can resolve lazily. """ +class CodeActionTagOptions(TypedDict): + """ @since 3.18.0 - proposed """ + valueSet: List['CodeActionTag'] + """ The tags supported by the client. """ + + +class ClientCodeLensResolveOptions(TypedDict): + """ @since 3.18.0 """ + properties: List[str] + """ The properties that a client can resolve lazily. """ + + class ClientFoldingRangeKindOptions(TypedDict): """ @since 3.18.0 """ valueSet: NotRequired[List['FoldingRangeKind']] diff --git a/lsp_types_sublime_text_33.py b/lsp_types_sublime_text_33.py index 1b1ef80..1f37a81 100644 --- a/lsp_types_sublime_text_33.py +++ b/lsp_types_sublime_text_33.py @@ -44,6 +44,8 @@ class SemanticTokenTypes(StrEnum): Operator = 'operator' Decorator = 'decorator' """ @since 3.17.0 """ + Label = 'label' + """ @since 3.18.0 """ class SemanticTokenModifiers(StrEnum): @@ -113,7 +115,7 @@ class LSPErrorCodes(IntEnum): If a client decides that a result is not of any use anymore the client should cancel the request. """ RequestCancelled = -32800 - """ The client has canceled a request and a server as detected + """ The client has canceled a request and a server has detected the cancel. """ @@ -401,6 +403,14 @@ class CodeActionKind(StrEnum): @since 3.18.0 """ +class CodeActionTag(IntEnum): + """ Code action tags are extra annotations that tweak the behavior of a code action. + + @since 3.18.0 - proposed """ + LLMGenerated = 1 + """ Marks the code action as LLM-generated. """ + + class TraceValue(StrEnum): Off = 'off' """ Turn tracing off. """ @@ -583,6 +593,21 @@ class CompletionTriggerKind(IntEnum): """ Completion was re-triggered as current completion list is incomplete """ +class ApplyKind(StrEnum): + """ Defines how values from a set of defaults and an individual item will be + merged. + + @since 3.18.0 """ + Replace = 'replace' + """ The value from the individual item (if provided and not `null`) will be + used instead of the default. """ + Merge = 'merge' + """ The value from the item will be merged with the default. + + The specific rules for mergeing values are defined against each field + that supports merging. """ + + class SignatureHelpTriggerKind(IntEnum): """ How a signature help was triggered. @@ -1853,6 +1878,52 @@ class TokenFormat(StrEnum): @proposed """ +TextDocumentContentParams = TypedDict('TextDocumentContentParams', { + # The uri of the text document. + 'uri': 'DocumentUri', +}) +""" Parameters for the `workspace/textDocumentContent` request. + +@since 3.18.0 +@proposed """ + + +TextDocumentContentResult = TypedDict('TextDocumentContentResult', { + # The text content of the text document. Please note, that the content of + # any subsequent open notifications for the text document might differ + # from the returned content due to whitespace and line ending + # normalizations done on the client + 'text': str, +}) +""" Result of the `workspace/textDocumentContent` request. + +@since 3.18.0 +@proposed """ + + +TextDocumentContentRegistrationOptions = TypedDict('TextDocumentContentRegistrationOptions', { + # The schemes for which the server provides content. + 'schemes': List[str], + # The id used to register the request. The id can be used to deregister + # the request again. See also Registration#id. + 'id': NotRequired[str], +}) +""" Text document content provider registration options. + +@since 3.18.0 +@proposed """ + + +TextDocumentContentRefreshParams = TypedDict('TextDocumentContentRefreshParams', { + # The uri of the text document to refresh. + 'uri': 'DocumentUri', +}) +""" Parameters for the `workspace/textDocumentContent/refresh` request. + +@since 3.18.0 +@proposed """ + + RegistrationParams = TypedDict('RegistrationParams', { 'registrations': List['Registration'], }) @@ -2248,7 +2319,9 @@ class TokenFormat(StrEnum): # be used if a completion item itself doesn't specify the value. # # If a completion list specifies a default value and a completion item - # also specifies a corresponding value the one from the item is used. + # also specifies a corresponding value, the rules for combining these are + # defined by `applyKinds` (if the client supports it), defaulting to + # "replace". # # Servers are only allowed to return default values if the client # signals support for this via the `completionList.itemDefaults` @@ -2256,6 +2329,24 @@ class TokenFormat(StrEnum): # # @since 3.17.0 'itemDefaults': NotRequired['CompletionItemDefaults'], + # Specifies how fields from a completion item should be combined with those + # from `completionList.itemDefaults`. + # + # If unspecified, all fields will be treated as "replace". + # + # If a field's value is "replace", the value from a completion item (if + # provided and not `null`) will always be used instead of the value from + # `completionItem.itemDefaults`. + # + # If a field's value is "merge", the values will be merged using the rules + # defined against each field below. + # + # Servers are only allowed to return `applyKind` if the client + # signals support for this via the `completionList.applyKindSupport` + # capability. + # + # @since 3.18.0 + 'applyKind': NotRequired['CompletionItemApplyKinds'], # The completion items. 'items': List['CompletionItem'], }) @@ -2643,6 +2734,10 @@ class TokenFormat(StrEnum): # # @since 3.16.0 'data': NotRequired['LSPAny'], + # Tags for this code action. + # + # @since 3.18.0 - proposed + 'tags': NotRequired[List['CodeActionTag']], }) """ A code action represents a change that can be performed in code, e.g. to fix a problem or to refactor code. @@ -2687,6 +2782,12 @@ class TokenFormat(StrEnum): WorkspaceSymbolParams = TypedDict('WorkspaceSymbolParams', { # A query string to filter symbols by. Clients may send an empty # string here to request all symbols. + # + # The `query`-parameter should be interpreted in a *relaxed way* as editors + # will apply their own highlighting and scoring on the results. A good rule + # of thumb is to match case-insensitive and to simply check that the + # characters of *query* appear in their order in a candidate symbol. + # Servers shouldn't use prefix, substring, or similar strict matching. 'query': str, # An optional token that a server can use to report work done progress. 'workDoneToken': NotRequired['ProgressToken'], @@ -3216,17 +3317,11 @@ class TokenFormat(StrEnum): Position = TypedDict('Position', { # Line position in a document (zero-based). - # - # 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. - # If a line number is negative, it defaults to 0. 'line': Uint, # Character offset on a line in a document (zero-based). # # The meaning of this offset is determined by the negotiated # `PositionEncodingKind`. - # - # If the character value is greater than the line length it defaults back to the - # line length. 'character': Uint, }) """ Position in a text document expressed as zero-based line and character @@ -3803,6 +3898,16 @@ class TokenFormat(StrEnum): @proposed """ +TextDocumentContentOptions = TypedDict('TextDocumentContentOptions', { + # The schemes for which the server provides content. + 'schemes': List[str], +}) +""" Text document content provider options. + +@since 3.18.0 +@proposed """ + + Registration = TypedDict('Registration', { # The id used to register the request. The id can be used to deregister # the request again. @@ -4002,8 +4107,9 @@ class TokenFormat(StrEnum): Diagnostic = TypedDict('Diagnostic', { # The range at which the message applies 'range': 'Range', - # The diagnostic's severity. Can be omitted. If omitted it is up to the - # client to interpret diagnostics as error, warning, info or hint. + # The diagnostic's severity. To avoid interpretation mismatches when a + # server is used with different clients it is highly recommended that servers + # always provide a severity value. 'severity': NotRequired['DiagnosticSeverity'], # The diagnostic's code, which usually appear in the user interface. 'code': NotRequired[Union[int, str]], @@ -4099,7 +4205,9 @@ class TokenFormat(StrEnum): be used if a completion item itself doesn't specify the value. If a completion list specifies a default value and a completion item -also specifies a corresponding value the one from the item is used. +also specifies a corresponding value, the rules for combining these are +defined by `applyKinds` (if the client supports it), defaulting to +"replace". Servers are only allowed to return default values if the client signals support for this via the `completionList.itemDefaults` @@ -4108,6 +4216,66 @@ class TokenFormat(StrEnum): @since 3.17.0 """ +CompletionItemApplyKinds = TypedDict('CompletionItemApplyKinds', { + # Specifies whether commitCharacters on a completion will replace or be + # merged with those in `completionList.itemDefaults.commitCharacters`. + # + # If "replace", the commit characters from the completion item will + # always be used unless not provided, in which case those from + # `completionList.itemDefaults.commitCharacters` will be used. An + # empty list can be used if a completion item does not have any commit + # characters and also should not use those from + # `completionList.itemDefaults.commitCharacters`. + # + # If "merge" the commitCharacters for the completion will be the union + # of all values in both `completionList.itemDefaults.commitCharacters` + # and the completion's own `commitCharacters`. + # + # @since 3.18.0 + 'commitCharacters': NotRequired['ApplyKind'], + # Specifies whether the `data` field on a completion will replace or + # be merged with data from `completionList.itemDefaults.data`. + # + # If "replace", the data from the completion item will be used if + # provided (and not `null`), otherwise + # `completionList.itemDefaults.data` will be used. An empty object can + # be used if a completion item does not have any data but also should + # not use the value from `completionList.itemDefaults.data`. + # + # If "merge", a shallow merge will be performed between + # `completionList.itemDefaults.data` and the completion's own data + # using the following rules: + # + # - If a completion's `data` field is not provided (or `null`), the + # entire `data` field from `completionList.itemDefaults.data` will be + # used as-is. + # - If a completion's `data` field is provided, each field will + # overwrite the field of the same name in + # `completionList.itemDefaults.data` but no merging of nested fields + # within that value will occur. + # + # @since 3.18.0 + 'data': NotRequired['ApplyKind'], +}) +""" Specifies how fields from a completion item should be combined with those +from `completionList.itemDefaults`. + +If unspecified, all fields will be treated as "replace". + +If a field's value is "replace", the value from a completion item (if +provided and not `null`) will always be used instead of the value from +`completionItem.itemDefaults`. + +If a field's value is "merge", the values will be merged using the rules +defined against each field below. + +Servers are only allowed to return `applyKind` if the client +signals support for this via the `completionList.applyKindSupport` +capability. + +@since 3.18.0 """ + + CompletionOptions = TypedDict('CompletionOptions', { # Most tools trigger completion request automatically without explicitly requesting # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user @@ -4746,6 +4914,11 @@ class TokenFormat(StrEnum): # # @since 3.16.0 'fileOperations': NotRequired['FileOperationOptions'], + # The server supports the `workspace/textDocumentContent` request. + # + # @since 3.18.0 + # @proposed + 'textDocumentContent': NotRequired[Union['TextDocumentContentOptions', 'TextDocumentContentRegistrationOptions']], }) """ Defines workspace specific capabilities of the server. @@ -4983,6 +5156,11 @@ class TokenFormat(StrEnum): # @since 3.18.0 # @proposed 'foldingRange': NotRequired['FoldingRangeWorkspaceClientCapabilities'], + # Capabilities specific to the `workspace/textDocumentContent` request. + # + # @since 3.18.0 + # @proposed + 'textDocumentContent': NotRequired['TextDocumentContentClientCapabilities'], }) """ Workspace specific client capabilities. """ @@ -5213,7 +5391,9 @@ class TokenFormat(StrEnum): # A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. 'scheme': NotRequired[str], # A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. - 'pattern': NotRequired[str], + # + # @since 3.18.0 - support for relative patterns. + 'pattern': NotRequired['GlobPattern'], }) """ A document filter where `language` is required field. @@ -5226,7 +5406,9 @@ class TokenFormat(StrEnum): # A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. 'scheme': str, # A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. - 'pattern': NotRequired[str], + # + # @since 3.18.0 - support for relative patterns. + 'pattern': NotRequired['GlobPattern'], }) """ A document filter where `scheme` is required field. @@ -5239,7 +5421,9 @@ class TokenFormat(StrEnum): # A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. 'scheme': NotRequired[str], # A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples. - 'pattern': str, + # + # @since 3.18.0 - support for relative patterns. + 'pattern': 'GlobPattern', }) """ A document filter where `pattern` is required field. @@ -5252,7 +5436,7 @@ class TokenFormat(StrEnum): # A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. 'scheme': NotRequired[str], # A glob pattern. - 'pattern': NotRequired[str], + 'pattern': NotRequired['GlobPattern'], }) """ A notebook document filter where `notebookType` is required field. @@ -5265,7 +5449,7 @@ class TokenFormat(StrEnum): # A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. 'scheme': str, # A glob pattern. - 'pattern': NotRequired[str], + 'pattern': NotRequired['GlobPattern'], }) """ A notebook document filter where `scheme` is required field. @@ -5278,7 +5462,7 @@ class TokenFormat(StrEnum): # A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. 'scheme': NotRequired[str], # A glob pattern. - 'pattern': str, + 'pattern': 'GlobPattern', }) """ A notebook document filter where `pattern` is required field. @@ -5498,6 +5682,16 @@ class TokenFormat(StrEnum): @proposed """ +TextDocumentContentClientCapabilities = TypedDict('TextDocumentContentClientCapabilities', { + # Text document content provider supports dynamic registration. + 'dynamicRegistration': NotRequired[bool], +}) +""" Client capabilities for a text document content provider. + +@since 3.18.0 +@proposed """ + + TextDocumentSyncClientCapabilities = TypedDict('TextDocumentSyncClientCapabilities', { # Whether text document synchronization supports dynamic registration. 'dynamicRegistration': NotRequired[bool], @@ -5690,6 +5884,11 @@ class TokenFormat(StrEnum): # @since 3.18.0 # @proposed 'documentationSupport': NotRequired[bool], + # Client supports the tag property on a code action. Clients + # supporting tags have to handle unknown tags gracefully. + # + # @since 3.18.0 - proposed + 'tagSupport': NotRequired['CodeActionTagOptions'], }) """ The Client Capabilities of a {@link CodeActionRequest}. """ @@ -5697,6 +5896,11 @@ class TokenFormat(StrEnum): CodeLensClientCapabilities = TypedDict('CodeLensClientCapabilities', { # Whether code lens supports dynamic registration. 'dynamicRegistration': NotRequired[bool], + # Whether the client supports resolving additional code lens + # properties via a separate `codeLens/resolve` request. + # + # @since 3.18.0 + 'resolveSupport': NotRequired['ClientCodeLensResolveOptions'], }) """ The client capabilities of a {@link CodeLensRequest}. """ @@ -6160,6 +6364,18 @@ class TokenFormat(StrEnum): # # @since 3.17.0 'itemDefaults': NotRequired[List[str]], + # Specifies whether the client supports `CompletionList.applyKind` to + # indicate how supported values from `completionList.itemDefaults` + # and `completion` will be combined. + # + # If a client supports `applyKind` it must support it for all fields + # that it supports that are listed in `CompletionList.applyKind`. This + # means when clients add support for new/future fields in completion + # items the MUST also support merge for them if those fields are + # defined in `CompletionList.applyKind`. + # + # @since 3.18.0 + 'applyKindSupport': NotRequired[bool], }) """ The client supports the following `CompletionList` specific capabilities. @@ -6204,6 +6420,20 @@ class TokenFormat(StrEnum): """ @since 3.18.0 """ +CodeActionTagOptions = TypedDict('CodeActionTagOptions', { + # The tags supported by the client. + 'valueSet': List['CodeActionTag'], +}) +""" @since 3.18.0 - proposed """ + + +ClientCodeLensResolveOptions = TypedDict('ClientCodeLensResolveOptions', { + # The properties that a client can resolve lazily. + 'properties': List[str], +}) +""" @since 3.18.0 """ + + ClientFoldingRangeKindOptions = TypedDict('ClientFoldingRangeKindOptions', { # The folding range kind values the client supports. When this # property exists the client also guarantees that it will diff --git a/lsprotocol/lsp.json b/lsprotocol/lsp.json index 2351492..c291652 100644 --- a/lsprotocol/lsp.json +++ b/lsprotocol/lsp.json @@ -5,6 +5,7 @@ "requests": [ { "method": "textDocument/implementation", + "typeName": "ImplementationRequest", "result": { "kind": "or", "items": [ @@ -57,6 +58,7 @@ }, { "method": "textDocument/typeDefinition", + "typeName": "TypeDefinitionRequest", "result": { "kind": "or", "items": [ @@ -109,6 +111,7 @@ }, { "method": "workspace/workspaceFolders", + "typeName": "WorkspaceFoldersRequest", "result": { "kind": "or", "items": [ @@ -130,6 +133,7 @@ }, { "method": "workspace/configuration", + "typeName": "ConfigurationRequest", "result": { "kind": "array", "element": { @@ -146,6 +150,7 @@ }, { "method": "textDocument/documentColor", + "typeName": "DocumentColorRequest", "result": { "kind": "array", "element": { @@ -173,6 +178,7 @@ }, { "method": "textDocument/colorPresentation", + "typeName": "ColorPresentationRequest", "result": { "kind": "array", "element": { @@ -209,6 +215,7 @@ }, { "method": "textDocument/foldingRange", + "typeName": "FoldingRangeRequest", "result": { "kind": "or", "items": [ @@ -245,6 +252,7 @@ }, { "method": "workspace/foldingRange/refresh", + "typeName": "FoldingRangeRefreshRequest", "result": { "kind": "base", "name": "null" @@ -256,6 +264,7 @@ }, { "method": "textDocument/declaration", + "typeName": "DeclarationRequest", "result": { "kind": "or", "items": [ @@ -308,6 +317,7 @@ }, { "method": "textDocument/selectionRange", + "typeName": "SelectionRangeRequest", "result": { "kind": "or", "items": [ @@ -344,6 +354,7 @@ }, { "method": "window/workDoneProgress/create", + "typeName": "WorkDoneProgressCreateRequest", "result": { "kind": "base", "name": "null" @@ -357,6 +368,7 @@ }, { "method": "textDocument/prepareCallHierarchy", + "typeName": "CallHierarchyPrepareRequest", "result": { "kind": "or", "items": [ @@ -387,6 +399,7 @@ }, { "method": "callHierarchy/incomingCalls", + "typeName": "CallHierarchyIncomingCallsRequest", "result": { "kind": "or", "items": [ @@ -420,6 +433,7 @@ }, { "method": "callHierarchy/outgoingCalls", + "typeName": "CallHierarchyOutgoingCallsRequest", "result": { "kind": "or", "items": [ @@ -453,6 +467,7 @@ }, { "method": "textDocument/semanticTokens/full", + "typeName": "SemanticTokensRequest", "result": { "kind": "or", "items": [ @@ -485,6 +500,7 @@ }, { "method": "textDocument/semanticTokens/full/delta", + "typeName": "SemanticTokensDeltaRequest", "result": { "kind": "or", "items": [ @@ -530,6 +546,7 @@ }, { "method": "textDocument/semanticTokens/range", + "typeName": "SemanticTokensRangeRequest", "result": { "kind": "or", "items": [ @@ -558,6 +575,7 @@ }, { "method": "workspace/semanticTokens/refresh", + "typeName": "SemanticTokensRefreshRequest", "result": { "kind": "base", "name": "null" @@ -568,6 +586,7 @@ }, { "method": "window/showDocument", + "typeName": "ShowDocumentRequest", "result": { "kind": "reference", "name": "ShowDocumentResult" @@ -582,6 +601,7 @@ }, { "method": "textDocument/linkedEditingRange", + "typeName": "LinkedEditingRangeRequest", "result": { "kind": "or", "items": [ @@ -609,6 +629,7 @@ }, { "method": "workspace/willCreateFiles", + "typeName": "WillCreateFilesRequest", "result": { "kind": "or", "items": [ @@ -636,6 +657,7 @@ }, { "method": "workspace/willRenameFiles", + "typeName": "WillRenameFilesRequest", "result": { "kind": "or", "items": [ @@ -663,6 +685,7 @@ }, { "method": "workspace/willDeleteFiles", + "typeName": "WillDeleteFilesRequest", "result": { "kind": "or", "items": [ @@ -690,6 +713,7 @@ }, { "method": "textDocument/moniker", + "typeName": "MonikerRequest", "result": { "kind": "or", "items": [ @@ -726,6 +750,7 @@ }, { "method": "textDocument/prepareTypeHierarchy", + "typeName": "TypeHierarchyPrepareRequest", "result": { "kind": "or", "items": [ @@ -756,6 +781,7 @@ }, { "method": "typeHierarchy/supertypes", + "typeName": "TypeHierarchySupertypesRequest", "result": { "kind": "or", "items": [ @@ -789,6 +815,7 @@ }, { "method": "typeHierarchy/subtypes", + "typeName": "TypeHierarchySubtypesRequest", "result": { "kind": "or", "items": [ @@ -822,6 +849,7 @@ }, { "method": "textDocument/inlineValue", + "typeName": "InlineValueRequest", "result": { "kind": "or", "items": [ @@ -859,6 +887,7 @@ }, { "method": "workspace/inlineValue/refresh", + "typeName": "InlineValueRefreshRequest", "result": { "kind": "base", "name": "null" @@ -869,6 +898,7 @@ }, { "method": "textDocument/inlayHint", + "typeName": "InlayHintRequest", "result": { "kind": "or", "items": [ @@ -906,6 +936,7 @@ }, { "method": "inlayHint/resolve", + "typeName": "InlayHintResolveRequest", "result": { "kind": "reference", "name": "InlayHint" @@ -920,6 +951,7 @@ }, { "method": "workspace/inlayHint/refresh", + "typeName": "InlayHintRefreshRequest", "result": { "kind": "base", "name": "null" @@ -930,6 +962,7 @@ }, { "method": "textDocument/diagnostic", + "typeName": "DocumentDiagnosticRequest", "result": { "kind": "reference", "name": "DocumentDiagnosticReport" @@ -956,6 +989,7 @@ }, { "method": "workspace/diagnostic", + "typeName": "WorkspaceDiagnosticRequest", "result": { "kind": "reference", "name": "WorkspaceDiagnosticReport" @@ -978,6 +1012,7 @@ }, { "method": "workspace/diagnostic/refresh", + "typeName": "DiagnosticRefreshRequest", "result": { "kind": "base", "name": "null" @@ -988,6 +1023,7 @@ }, { "method": "textDocument/inlineCompletion", + "typeName": "InlineCompletionRequest", "result": { "kind": "or", "items": [ @@ -1028,8 +1064,45 @@ "since": "3.18.0", "proposed": true }, + { + "method": "workspace/textDocumentContent", + "typeName": "TextDocumentContentRequest", + "result": { + "kind": "reference", + "name": "TextDocumentContentResult" + }, + "messageDirection": "clientToServer", + "params": { + "kind": "reference", + "name": "TextDocumentContentParams" + }, + "registrationOptions": { + "kind": "reference", + "name": "TextDocumentContentRegistrationOptions" + }, + "documentation": "The `workspace/textDocumentContent` request is sent from the client to the\nserver to request the content of a text document.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, + { + "method": "workspace/textDocumentContent/refresh", + "typeName": "TextDocumentContentRefreshRequest", + "result": { + "kind": "base", + "name": "null" + }, + "messageDirection": "serverToClient", + "params": { + "kind": "reference", + "name": "TextDocumentContentRefreshParams" + }, + "documentation": "The `workspace/textDocumentContent` request is sent from the server to the client to refresh\nthe content of a specific text document.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, { "method": "client/registerCapability", + "typeName": "RegistrationRequest", "result": { "kind": "base", "name": "null" @@ -1043,6 +1116,7 @@ }, { "method": "client/unregisterCapability", + "typeName": "UnregistrationRequest", "result": { "kind": "base", "name": "null" @@ -1056,6 +1130,7 @@ }, { "method": "initialize", + "typeName": "InitializeRequest", "result": { "kind": "reference", "name": "InitializeResult" @@ -1073,6 +1148,7 @@ }, { "method": "shutdown", + "typeName": "ShutdownRequest", "result": { "kind": "base", "name": "null" @@ -1082,6 +1158,7 @@ }, { "method": "window/showMessageRequest", + "typeName": "ShowMessageRequest", "result": { "kind": "or", "items": [ @@ -1104,6 +1181,7 @@ }, { "method": "textDocument/willSaveWaitUntil", + "typeName": "WillSaveTextDocumentWaitUntilRequest", "result": { "kind": "or", "items": [ @@ -1133,6 +1211,7 @@ }, { "method": "textDocument/completion", + "typeName": "CompletionRequest", "result": { "kind": "or", "items": [ @@ -1173,6 +1252,7 @@ }, { "method": "completionItem/resolve", + "typeName": "CompletionResolveRequest", "result": { "kind": "reference", "name": "CompletionItem" @@ -1186,6 +1266,7 @@ }, { "method": "textDocument/hover", + "typeName": "HoverRequest", "result": { "kind": "or", "items": [ @@ -1212,6 +1293,7 @@ }, { "method": "textDocument/signatureHelp", + "typeName": "SignatureHelpRequest", "result": { "kind": "or", "items": [ @@ -1237,6 +1319,7 @@ }, { "method": "textDocument/definition", + "typeName": "DefinitionRequest", "result": { "kind": "or", "items": [ @@ -1289,6 +1372,7 @@ }, { "method": "textDocument/references", + "typeName": "ReferencesRequest", "result": { "kind": "or", "items": [ @@ -1325,6 +1409,7 @@ }, { "method": "textDocument/documentHighlight", + "typeName": "DocumentHighlightRequest", "result": { "kind": "or", "items": [ @@ -1361,6 +1446,7 @@ }, { "method": "textDocument/documentSymbol", + "typeName": "DocumentSymbolRequest", "result": { "kind": "or", "items": [ @@ -1416,6 +1502,7 @@ }, { "method": "textDocument/codeAction", + "typeName": "CodeActionRequest", "result": { "kind": "or", "items": [ @@ -1470,6 +1557,7 @@ }, { "method": "codeAction/resolve", + "typeName": "CodeActionResolveRequest", "result": { "kind": "reference", "name": "CodeAction" @@ -1483,6 +1571,7 @@ }, { "method": "workspace/symbol", + "typeName": "WorkspaceSymbolRequest", "result": { "kind": "or", "items": [ @@ -1539,6 +1628,7 @@ }, { "method": "workspaceSymbol/resolve", + "typeName": "WorkspaceSymbolResolveRequest", "result": { "kind": "reference", "name": "WorkspaceSymbol" @@ -1553,6 +1643,7 @@ }, { "method": "textDocument/codeLens", + "typeName": "CodeLensRequest", "result": { "kind": "or", "items": [ @@ -1589,6 +1680,7 @@ }, { "method": "codeLens/resolve", + "typeName": "CodeLensResolveRequest", "result": { "kind": "reference", "name": "CodeLens" @@ -1602,6 +1694,7 @@ }, { "method": "workspace/codeLens/refresh", + "typeName": "CodeLensRefreshRequest", "result": { "kind": "base", "name": "null" @@ -1612,6 +1705,7 @@ }, { "method": "textDocument/documentLink", + "typeName": "DocumentLinkRequest", "result": { "kind": "or", "items": [ @@ -1648,6 +1742,7 @@ }, { "method": "documentLink/resolve", + "typeName": "DocumentLinkResolveRequest", "result": { "kind": "reference", "name": "DocumentLink" @@ -1661,6 +1756,7 @@ }, { "method": "textDocument/formatting", + "typeName": "DocumentFormattingRequest", "result": { "kind": "or", "items": [ @@ -1690,6 +1786,7 @@ }, { "method": "textDocument/rangeFormatting", + "typeName": "DocumentRangeFormattingRequest", "result": { "kind": "or", "items": [ @@ -1719,6 +1816,7 @@ }, { "method": "textDocument/rangesFormatting", + "typeName": "DocumentRangesFormattingRequest", "result": { "kind": "or", "items": [ @@ -1750,6 +1848,7 @@ }, { "method": "textDocument/onTypeFormatting", + "typeName": "DocumentOnTypeFormattingRequest", "result": { "kind": "or", "items": [ @@ -1779,6 +1878,7 @@ }, { "method": "textDocument/rename", + "typeName": "RenameRequest", "result": { "kind": "or", "items": [ @@ -1805,6 +1905,7 @@ }, { "method": "textDocument/prepareRename", + "typeName": "PrepareRenameRequest", "result": { "kind": "or", "items": [ @@ -1828,6 +1929,7 @@ }, { "method": "workspace/executeCommand", + "typeName": "ExecuteCommandRequest", "result": { "kind": "or", "items": [ @@ -1854,6 +1956,7 @@ }, { "method": "workspace/applyEdit", + "typeName": "ApplyWorkspaceEditRequest", "result": { "kind": "reference", "name": "ApplyWorkspaceEditResult" @@ -1869,6 +1972,7 @@ "notifications": [ { "method": "workspace/didChangeWorkspaceFolders", + "typeName": "DidChangeWorkspaceFoldersNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1878,6 +1982,7 @@ }, { "method": "window/workDoneProgress/cancel", + "typeName": "WorkDoneProgressCancelNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1887,6 +1992,7 @@ }, { "method": "workspace/didCreateFiles", + "typeName": "DidCreateFilesNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1901,6 +2007,7 @@ }, { "method": "workspace/didRenameFiles", + "typeName": "DidRenameFilesNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1915,6 +2022,7 @@ }, { "method": "workspace/didDeleteFiles", + "typeName": "DidDeleteFilesNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1929,6 +2037,7 @@ }, { "method": "notebookDocument/didOpen", + "typeName": "DidOpenNotebookDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1944,6 +2053,7 @@ }, { "method": "notebookDocument/didChange", + "typeName": "DidChangeNotebookDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1957,6 +2067,7 @@ }, { "method": "notebookDocument/didSave", + "typeName": "DidSaveNotebookDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1972,6 +2083,7 @@ }, { "method": "notebookDocument/didClose", + "typeName": "DidCloseNotebookDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1987,6 +2099,7 @@ }, { "method": "initialized", + "typeName": "InitializedNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -1996,11 +2109,13 @@ }, { "method": "exit", + "typeName": "ExitNotification", "messageDirection": "clientToServer", "documentation": "The exit event is sent from the client to the server to\nask the server to exit its process." }, { "method": "workspace/didChangeConfiguration", + "typeName": "DidChangeConfigurationNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2014,6 +2129,7 @@ }, { "method": "window/showMessage", + "typeName": "ShowMessageNotification", "messageDirection": "serverToClient", "params": { "kind": "reference", @@ -2023,6 +2139,7 @@ }, { "method": "window/logMessage", + "typeName": "LogMessageNotification", "messageDirection": "serverToClient", "params": { "kind": "reference", @@ -2032,6 +2149,7 @@ }, { "method": "telemetry/event", + "typeName": "TelemetryEventNotification", "messageDirection": "serverToClient", "params": { "kind": "reference", @@ -2041,6 +2159,7 @@ }, { "method": "textDocument/didOpen", + "typeName": "DidOpenTextDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2054,6 +2173,7 @@ }, { "method": "textDocument/didChange", + "typeName": "DidChangeTextDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2067,6 +2187,7 @@ }, { "method": "textDocument/didClose", + "typeName": "DidCloseTextDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2080,6 +2201,7 @@ }, { "method": "textDocument/didSave", + "typeName": "DidSaveTextDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2093,6 +2215,7 @@ }, { "method": "textDocument/willSave", + "typeName": "WillSaveTextDocumentNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2106,6 +2229,7 @@ }, { "method": "workspace/didChangeWatchedFiles", + "typeName": "DidChangeWatchedFilesNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2119,6 +2243,7 @@ }, { "method": "textDocument/publishDiagnostics", + "typeName": "PublishDiagnosticsNotification", "messageDirection": "serverToClient", "params": { "kind": "reference", @@ -2128,6 +2253,7 @@ }, { "method": "$/setTrace", + "typeName": "SetTraceNotification", "messageDirection": "clientToServer", "params": { "kind": "reference", @@ -2136,6 +2262,7 @@ }, { "method": "$/logTrace", + "typeName": "LogTraceNotification", "messageDirection": "serverToClient", "params": { "kind": "reference", @@ -2144,6 +2271,7 @@ }, { "method": "$/cancelRequest", + "typeName": "CancelNotification", "messageDirection": "both", "params": { "kind": "reference", @@ -2152,6 +2280,7 @@ }, { "method": "$/progress", + "typeName": "ProgressNotification", "messageDirection": "both", "params": { "kind": "reference", @@ -4275,6 +4404,73 @@ "since": "3.18.0", "proposed": true }, + { + "name": "TextDocumentContentParams", + "properties": [ + { + "name": "uri", + "type": { + "kind": "base", + "name": "DocumentUri" + }, + "documentation": "The uri of the text document." + } + ], + "documentation": "Parameters for the `workspace/textDocumentContent` request.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, + { + "name": "TextDocumentContentResult", + "properties": [ + { + "name": "text", + "type": { + "kind": "base", + "name": "string" + }, + "documentation": "The text content of the text document. Please note, that the content of\nany subsequent open notifications for the text document might differ\nfrom the returned content due to whitespace and line ending\nnormalizations done on the client" + } + ], + "documentation": "Result of the `workspace/textDocumentContent` request.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, + { + "name": "TextDocumentContentRegistrationOptions", + "properties": [], + "extends": [ + { + "kind": "reference", + "name": "TextDocumentContentOptions" + } + ], + "mixins": [ + { + "kind": "reference", + "name": "StaticRegistrationOptions" + } + ], + "documentation": "Text document content provider registration options.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, + { + "name": "TextDocumentContentRefreshParams", + "properties": [ + { + "name": "uri", + "type": { + "kind": "base", + "name": "DocumentUri" + }, + "documentation": "The uri of the text document to refresh." + } + ], + "documentation": "Parameters for the `workspace/textDocumentContent/refresh` request.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, { "name": "RegistrationParams", "properties": [ @@ -4972,9 +5168,19 @@ "name": "CompletionItemDefaults" }, "optional": true, - "documentation": "In many cases the items of an actual completion result share the same\nvalue for properties like `commitCharacters` or the range of a text\nedit. A completion list can therefore define item defaults which will\nbe used if a completion item itself doesn't specify the value.\n\nIf a completion list specifies a default value and a completion item\nalso specifies a corresponding value the one from the item is used.\n\nServers are only allowed to return default values if the client\nsignals support for this via the `completionList.itemDefaults`\ncapability.\n\n@since 3.17.0", + "documentation": "In many cases the items of an actual completion result share the same\nvalue for properties like `commitCharacters` or the range of a text\nedit. A completion list can therefore define item defaults which will\nbe used if a completion item itself doesn't specify the value.\n\nIf a completion list specifies a default value and a completion item\nalso specifies a corresponding value, the rules for combining these are\ndefined by `applyKinds` (if the client supports it), defaulting to\n\"replace\".\n\nServers are only allowed to return default values if the client\nsignals support for this via the `completionList.itemDefaults`\ncapability.\n\n@since 3.17.0", "since": "3.17.0" }, + { + "name": "applyKind", + "type": { + "kind": "reference", + "name": "CompletionItemApplyKinds" + }, + "optional": true, + "documentation": "Specifies how fields from a completion item should be combined with those\nfrom `completionList.itemDefaults`.\n\nIf unspecified, all fields will be treated as \"replace\".\n\nIf a field's value is \"replace\", the value from a completion item (if\nprovided and not `null`) will always be used instead of the value from\n`completionItem.itemDefaults`.\n\nIf a field's value is \"merge\", the values will be merged using the rules\ndefined against each field below.\n\nServers are only allowed to return `applyKind` if the client\nsignals support for this via the `completionList.applyKindSupport`\ncapability.\n\n@since 3.18.0", + "since": "3.18.0" + }, { "name": "items", "type": { @@ -5616,6 +5822,19 @@ "optional": true, "documentation": "A data entry field that is preserved on a code action between\na `textDocument/codeAction` and a `codeAction/resolve` request.\n\n@since 3.16.0", "since": "3.16.0" + }, + { + "name": "tags", + "type": { + "kind": "array", + "element": { + "kind": "reference", + "name": "CodeActionTag" + } + }, + "optional": true, + "documentation": "Tags for this code action.\n\n@since 3.18.0 - proposed", + "since": "3.18.0 - proposed" } ], "documentation": "A code action represents a change that can be performed in code, e.g. to fix a problem or\nto refactor code.\n\nA CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed." @@ -5644,7 +5863,7 @@ "kind": "base", "name": "string" }, - "documentation": "A query string to filter symbols by. Clients may send an empty\nstring here to request all symbols." + "documentation": "A query string to filter symbols by. Clients may send an empty\nstring here to request all symbols.\n\nThe `query`-parameter should be interpreted in a *relaxed way* as editors\nwill apply their own highlighting and scoring on the results. A good rule\nof thumb is to match case-insensitive and to simply check that the\ncharacters of *query* appear in their order in a candidate symbol.\nServers shouldn't use prefix, substring, or similar strict matching." } ], "mixins": [ @@ -6696,7 +6915,7 @@ "kind": "base", "name": "uinteger" }, - "documentation": "Line position in a document (zero-based).\n\nIf a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.\nIf a line number is negative, it defaults to 0." + "documentation": "Line position in a document (zero-based)." }, { "name": "character", @@ -6704,7 +6923,7 @@ "kind": "base", "name": "uinteger" }, - "documentation": "Character offset on a line in a document (zero-based).\n\nThe meaning of this offset is determined by the negotiated\n`PositionEncodingKind`.\n\nIf the character value is greater than the line length it defaults back to the\nline length." + "documentation": "Character offset on a line in a document (zero-based).\n\nThe meaning of this offset is determined by the negotiated\n`PositionEncodingKind`." } ], "documentation": "Position in a text document expressed as zero-based line and character\noffset. Prior to 3.17 the offsets were always based on a UTF-16 string\nrepresentation. So a string of the form `a𐐀b` the character offset of the\ncharacter `a` is 0, the character offset of `𐐀` is 1 and the character\noffset of b is 3 since `𐐀` is represented using two code units in UTF-16.\nSince 3.17 clients and servers can agree on a different string encoding\nrepresentation (e.g. UTF-8). The client announces it's supported encoding\nvia the client capability [`general.positionEncodings`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#clientCapabilities).\nThe value is an array of position encodings the client supports, with\ndecreasing preference (e.g. the encoding at index `0` is the most preferred\none). To stay backwards compatible the only mandatory encoding is UTF-16\nrepresented via the string `utf-16`. The server can pick one of the\nencodings offered by the client and signals that encoding back to the\nclient via the initialize result's property\n[`capabilities.positionEncoding`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#serverCapabilities). If the string value\n`utf-16` is missing from the client's capability `general.positionEncodings`\nservers can safely assume that the client supports UTF-16. If the server\nomits the position encoding in its initialize result the encoding defaults\nto the string value `utf-16`. Implementation considerations: since the\nconversion from one encoding into another requires the content of the\nfile / line the conversion is best done where the file is read which is\nusually on the server side.\n\nPositions are line end character agnostic. So you can not specify a position\nthat denotes `\\r|\\n` or `\\n|` where `|` represents the character offset.\n\n@since 3.17.0 - support for negotiated position encoding.", @@ -6885,7 +7104,11 @@ } }, "documentation": "The edits to be applied.\n\n@since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a\nclient capability.\n\n@since 3.18.0 - support for SnippetTextEdit. This is guarded using a\nclient capability.", - "since": "3.18.0 - support for SnippetTextEdit. This is guarded using a\nclient capability." + "since": "3.18.0 - support for SnippetTextEdit. This is guarded using a\nclient capability.", + "sinceTags": [ + "3.16.0 - support for AnnotatedTextEdit. This is guarded using a\nclient capability.", + "3.18.0 - support for SnippetTextEdit. This is guarded using a\nclient capability." + ] } ], "documentation": "Describes textual changes on a text document. A TextDocumentEdit describes all changes\non a document version Si and after they are applied move the document to version Si+1.\nSo the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any\nkind of ordering. However the edits must be non overlapping." @@ -7782,6 +8005,25 @@ "since": "3.18.0", "proposed": true }, + { + "name": "TextDocumentContentOptions", + "properties": [ + { + "name": "schemes", + "type": { + "kind": "array", + "element": { + "kind": "base", + "name": "string" + } + }, + "documentation": "The schemes for which the server provides content." + } + ], + "documentation": "Text document content provider options.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, { "name": "Registration", "properties": [ @@ -8629,7 +8871,11 @@ } ], "documentation": "Information about the server\n\n@since 3.15.0\n@since 3.18.0 ServerInfo type name added.", - "since": "3.18.0 ServerInfo type name added." + "since": "3.18.0 ServerInfo type name added.", + "sinceTags": [ + "3.15.0", + "3.18.0 ServerInfo type name added." + ] }, { "name": "VersionedTextDocumentIdentifier", @@ -8729,7 +8975,7 @@ "name": "DiagnosticSeverity" }, "optional": true, - "documentation": "The diagnostic's severity. Can be omitted. If omitted it is up to the\nclient to interpret diagnostics as error, warning, info or hint." + "documentation": "The diagnostic's severity. To avoid interpretation mismatches when a\nserver is used with different clients it is highly recommended that servers\nalways provide a severity value." }, { "name": "code", @@ -8959,9 +9205,36 @@ "since": "3.17.0" } ], - "documentation": "In many cases the items of an actual completion result share the same\nvalue for properties like `commitCharacters` or the range of a text\nedit. A completion list can therefore define item defaults which will\nbe used if a completion item itself doesn't specify the value.\n\nIf a completion list specifies a default value and a completion item\nalso specifies a corresponding value the one from the item is used.\n\nServers are only allowed to return default values if the client\nsignals support for this via the `completionList.itemDefaults`\ncapability.\n\n@since 3.17.0", + "documentation": "In many cases the items of an actual completion result share the same\nvalue for properties like `commitCharacters` or the range of a text\nedit. A completion list can therefore define item defaults which will\nbe used if a completion item itself doesn't specify the value.\n\nIf a completion list specifies a default value and a completion item\nalso specifies a corresponding value, the rules for combining these are\ndefined by `applyKinds` (if the client supports it), defaulting to\n\"replace\".\n\nServers are only allowed to return default values if the client\nsignals support for this via the `completionList.itemDefaults`\ncapability.\n\n@since 3.17.0", "since": "3.17.0" }, + { + "name": "CompletionItemApplyKinds", + "properties": [ + { + "name": "commitCharacters", + "type": { + "kind": "reference", + "name": "ApplyKind" + }, + "optional": true, + "documentation": "Specifies whether commitCharacters on a completion will replace or be\nmerged with those in `completionList.itemDefaults.commitCharacters`.\n\nIf \"replace\", the commit characters from the completion item will\nalways be used unless not provided, in which case those from\n`completionList.itemDefaults.commitCharacters` will be used. An\nempty list can be used if a completion item does not have any commit\ncharacters and also should not use those from\n`completionList.itemDefaults.commitCharacters`.\n\nIf \"merge\" the commitCharacters for the completion will be the union\nof all values in both `completionList.itemDefaults.commitCharacters`\nand the completion's own `commitCharacters`.\n\n@since 3.18.0", + "since": "3.18.0" + }, + { + "name": "data", + "type": { + "kind": "reference", + "name": "ApplyKind" + }, + "optional": true, + "documentation": "Specifies whether the `data` field on a completion will replace or\nbe merged with data from `completionList.itemDefaults.data`.\n\nIf \"replace\", the data from the completion item will be used if\nprovided (and not `null`), otherwise\n`completionList.itemDefaults.data` will be used. An empty object can\nbe used if a completion item does not have any data but also should\nnot use the value from `completionList.itemDefaults.data`.\n\nIf \"merge\", a shallow merge will be performed between\n`completionList.itemDefaults.data` and the completion's own data\nusing the following rules:\n\n- If a completion's `data` field is not provided (or `null`), the\n entire `data` field from `completionList.itemDefaults.data` will be\n used as-is.\n- If a completion's `data` field is provided, each field will\n overwrite the field of the same name in\n `completionList.itemDefaults.data` but no merging of nested fields\n within that value will occur.\n\n@since 3.18.0", + "since": "3.18.0" + } + ], + "documentation": "Specifies how fields from a completion item should be combined with those\nfrom `completionList.itemDefaults`.\n\nIf unspecified, all fields will be treated as \"replace\".\n\nIf a field's value is \"replace\", the value from a completion item (if\nprovided and not `null`) will always be used instead of the value from\n`completionItem.itemDefaults`.\n\nIf a field's value is \"merge\", the values will be merged using the rules\ndefined against each field below.\n\nServers are only allowed to return `applyKind` if the client\nsignals support for this via the `completionList.applyKindSupport`\ncapability.\n\n@since 3.18.0", + "since": "3.18.0" + }, { "name": "CompletionOptions", "properties": [ @@ -10204,7 +10477,11 @@ } ], "documentation": "Information about the client\n\n@since 3.15.0\n@since 3.18.0 ClientInfo type name added.", - "since": "3.18.0 ClientInfo type name added." + "since": "3.18.0 ClientInfo type name added.", + "sinceTags": [ + "3.15.0", + "3.18.0 ClientInfo type name added." + ] }, { "name": "ClientCapabilities", @@ -10349,6 +10626,26 @@ "optional": true, "documentation": "The server is interested in notifications/requests for operations on files.\n\n@since 3.16.0", "since": "3.16.0" + }, + { + "name": "textDocumentContent", + "type": { + "kind": "or", + "items": [ + { + "kind": "reference", + "name": "TextDocumentContentOptions" + }, + { + "kind": "reference", + "name": "TextDocumentContentRegistrationOptions" + } + ] + }, + "optional": true, + "documentation": "The server supports the `workspace/textDocumentContent` request.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true } ], "documentation": "Defines workspace specific capabilities of the server.\n\n@since 3.18.0", @@ -10867,6 +11164,17 @@ "documentation": "Capabilities specific to the folding range requests scoped to the workspace.\n\n@since 3.18.0\n@proposed", "since": "3.18.0", "proposed": true + }, + { + "name": "textDocumentContent", + "type": { + "kind": "reference", + "name": "TextDocumentContentClientCapabilities" + }, + "optional": true, + "documentation": "Capabilities specific to the `workspace/textDocumentContent` request.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true } ], "documentation": "Workspace specific client capabilities." @@ -11421,11 +11729,12 @@ { "name": "pattern", "type": { - "kind": "base", - "name": "string" + "kind": "reference", + "name": "GlobPattern" }, "optional": true, - "documentation": "A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples." + "documentation": "A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.\n\n@since 3.18.0 - support for relative patterns.", + "since": "3.18.0 - support for relative patterns." } ], "documentation": "A document filter where `language` is required field.\n\n@since 3.18.0", @@ -11454,11 +11763,12 @@ { "name": "pattern", "type": { - "kind": "base", - "name": "string" + "kind": "reference", + "name": "GlobPattern" }, "optional": true, - "documentation": "A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples." + "documentation": "A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.\n\n@since 3.18.0 - support for relative patterns.", + "since": "3.18.0 - support for relative patterns." } ], "documentation": "A document filter where `scheme` is required field.\n\n@since 3.18.0", @@ -11488,10 +11798,11 @@ { "name": "pattern", "type": { - "kind": "base", - "name": "string" + "kind": "reference", + "name": "GlobPattern" }, - "documentation": "A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples." + "documentation": "A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.\n\n@since 3.18.0 - support for relative patterns.", + "since": "3.18.0 - support for relative patterns." } ], "documentation": "A document filter where `pattern` is required field.\n\n@since 3.18.0", @@ -11520,8 +11831,8 @@ { "name": "pattern", "type": { - "kind": "base", - "name": "string" + "kind": "reference", + "name": "GlobPattern" }, "optional": true, "documentation": "A glob pattern." @@ -11553,8 +11864,8 @@ { "name": "pattern", "type": { - "kind": "base", - "name": "string" + "kind": "reference", + "name": "GlobPattern" }, "optional": true, "documentation": "A glob pattern." @@ -11587,8 +11898,8 @@ { "name": "pattern", "type": { - "kind": "base", - "name": "string" + "kind": "reference", + "name": "GlobPattern" }, "documentation": "A glob pattern." } @@ -11976,6 +12287,23 @@ "since": "3.18.0", "proposed": true }, + { + "name": "TextDocumentContentClientCapabilities", + "properties": [ + { + "name": "dynamicRegistration", + "type": { + "kind": "base", + "name": "boolean" + }, + "optional": true, + "documentation": "Text document content provider supports dynamic registration." + } + ], + "documentation": "Client capabilities for a text document content provider.\n\n@since 3.18.0\n@proposed", + "since": "3.18.0", + "proposed": true + }, { "name": "TextDocumentSyncClientCapabilities", "properties": [ @@ -12403,6 +12731,16 @@ "documentation": "Whether the client supports documentation for a class of\ncode actions.\n\n@since 3.18.0\n@proposed", "since": "3.18.0", "proposed": true + }, + { + "name": "tagSupport", + "type": { + "kind": "reference", + "name": "CodeActionTagOptions" + }, + "optional": true, + "documentation": "Client supports the tag property on a code action. Clients\nsupporting tags have to handle unknown tags gracefully.\n\n@since 3.18.0 - proposed", + "since": "3.18.0 - proposed" } ], "documentation": "The Client Capabilities of a {@link CodeActionRequest}." @@ -12418,6 +12756,16 @@ }, "optional": true, "documentation": "Whether code lens supports dynamic registration." + }, + { + "name": "resolveSupport", + "type": { + "kind": "reference", + "name": "ClientCodeLensResolveOptions" + }, + "optional": true, + "documentation": "Whether the client supports resolving additional code lens\nproperties via a separate `codeLens/resolve` request.\n\n@since 3.18.0", + "since": "3.18.0" } ], "documentation": "The client capabilities of a {@link CodeLensRequest}." @@ -13249,6 +13597,16 @@ "optional": true, "documentation": "The client supports the following itemDefaults on\na completion list.\n\nThe value lists the supported property names of the\n`CompletionList.itemDefaults` object. If omitted\nno properties are supported.\n\n@since 3.17.0", "since": "3.17.0" + }, + { + "name": "applyKindSupport", + "type": { + "kind": "base", + "name": "boolean" + }, + "optional": true, + "documentation": "Specifies whether the client supports `CompletionList.applyKind` to\nindicate how supported values from `completionList.itemDefaults`\nand `completion` will be combined.\n\nIf a client supports `applyKind` it must support it for all fields\nthat it supports that are listed in `CompletionList.applyKind`. This\nmeans when clients add support for new/future fields in completion\nitems the MUST also support merge for them if those fields are\ndefined in `CompletionList.applyKind`.\n\n@since 3.18.0", + "since": "3.18.0" } ], "documentation": "The client supports the following `CompletionList` specific\ncapabilities.\n\n@since 3.17.0", @@ -13336,6 +13694,42 @@ "documentation": "@since 3.18.0", "since": "3.18.0" }, + { + "name": "CodeActionTagOptions", + "properties": [ + { + "name": "valueSet", + "type": { + "kind": "array", + "element": { + "kind": "reference", + "name": "CodeActionTag" + } + }, + "documentation": "The tags supported by the client." + } + ], + "documentation": "@since 3.18.0 - proposed", + "since": "3.18.0 - proposed" + }, + { + "name": "ClientCodeLensResolveOptions", + "properties": [ + { + "name": "properties", + "type": { + "kind": "array", + "element": { + "kind": "base", + "name": "string" + } + }, + "documentation": "The properties that a client can resolve lazily." + } + ], + "documentation": "@since 3.18.0", + "since": "3.18.0" + }, { "name": "ClientFoldingRangeKindOptions", "properties": [ @@ -13721,6 +14115,12 @@ "value": "decorator", "documentation": "@since 3.17.0", "since": "3.17.0" + }, + { + "name": "label", + "value": "label", + "documentation": "@since 3.18.0", + "since": "3.18.0" } ], "supportsCustomValues": true, @@ -13867,7 +14267,7 @@ { "name": "RequestCancelled", "value": -32800, - "documentation": "The client has canceled a request and a server as detected\nthe cancel." + "documentation": "The client has canceled a request and a server has detected\nthe cancel." } ], "supportsCustomValues": true @@ -14460,6 +14860,22 @@ "supportsCustomValues": true, "documentation": "A set of predefined code action kinds" }, + { + "name": "CodeActionTag", + "type": { + "kind": "base", + "name": "uinteger" + }, + "values": [ + { + "name": "LLMGenerated", + "value": 1, + "documentation": "Marks the code action as LLM-generated." + } + ], + "documentation": "Code action tags are extra annotations that tweak the behavior of a code action.\n\n@since 3.18.0 - proposed", + "since": "3.18.0 - proposed" + }, { "name": "TraceValue", "type": { @@ -14945,6 +15361,27 @@ ], "documentation": "How a completion was triggered" }, + { + "name": "ApplyKind", + "type": { + "kind": "base", + "name": "string" + }, + "values": [ + { + "name": "Replace", + "value": "replace", + "documentation": "The value from the individual item (if provided and not `null`) will be\nused instead of the default." + }, + { + "name": "Merge", + "value": "merge", + "documentation": "The value from the item will be merged with the default.\n\nThe specific rules for mergeing values are defined against each field\nthat supports merging." + } + ], + "documentation": "Defines how values from a set of defaults and an individual item will be\nmerged.\n\n@since 3.18.0", + "since": "3.18.0" + }, { "name": "SignatureHelpTriggerKind", "type": { diff --git a/lsprotocol/lsp.schema.json b/lsprotocol/lsp.schema.json index 2d8f47d..d4a80da 100644 --- a/lsprotocol/lsp.schema.json +++ b/lsprotocol/lsp.schema.json @@ -114,6 +114,13 @@ "description": "Since when (release number) this enumeration is available. Is undefined if not known.", "type": "string" }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" + }, "supportsCustomValues": { "description": "Whether the enumeration supports custom values (e.g. values which are not part of the set defined in `values`). If omitted no custom values are supported.", "type": "boolean" @@ -161,6 +168,13 @@ "description": "Since when (release number) this enumeration entry is available. Is undefined if not known.", "type": "string" }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" + }, "value": { "description": "The value.", "type": [ @@ -361,7 +375,7 @@ "description": "The direction in which this notification is sent in the protocol." }, "method": { - "description": "The request's method name.", + "description": "The notifications's method name.", "type": "string" }, "params": { @@ -383,7 +397,7 @@ "type": "boolean" }, "registrationMethod": { - "description": "Optional a dynamic registration method if it different from the request's method.", + "description": "Optional a dynamic registration method if it different from the notifications's method.", "type": "string" }, "registrationOptions": { @@ -393,6 +407,17 @@ "since": { "description": "Since when (release number) this notification is available. Is undefined if not known.", "type": "string" + }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" + }, + "typeName": { + "description": "The type name of the notifications if any.", + "type": "string" } }, "required": [ @@ -450,6 +475,13 @@ "description": "Since when (release number) this property is available. Is undefined if not known.", "type": "string" }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" + }, "type": { "$ref": "#/definitions/Type", "description": "The type of the property" @@ -540,6 +572,17 @@ "since": { "description": "Since when (release number) this request is available. Is undefined if not known.", "type": "string" + }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" + }, + "typeName": { + "description": "The type name of the request if any.", + "type": "string" } }, "required": [ @@ -611,6 +654,13 @@ "since": { "description": "Since when (release number) this structure is available. Is undefined if not known.", "type": "string" + }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ @@ -645,6 +695,13 @@ "since": { "description": "Since when (release number) this structure is available. Is undefined if not known.", "type": "string" + }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ @@ -752,6 +809,13 @@ "description": "Since when (release number) this structure is available. Is undefined if not known.", "type": "string" }, + "sinceTags": { + "description": "All since tags in case there was more than one tag. Is undefined if not known.", + "items": { + "type": "string" + }, + "type": "array" + }, "type": { "$ref": "#/definitions/Type", "description": "The aliased type."