lspeasy / core/src / serverSupportsRequest
Function: serverSupportsRequest()
function serverSupportsRequest<M>(method, capabilities): capabilities is ServerCapabilities<any> & ConditionalSimplifyDeep<UnionToIntersection<{ [P in "codeActionProvider.resolveProvider" | "codeLensProvider.resolveProvider" | "completionProvider.resolveProvider" | "documentLinkProvider.resolveProvider" | "inlayHintProvider.resolveProvider" | "codeActionProvider" | "codeLensProvider" | "documentLinkProvider" | "inlayHintProvider" | "implementationProvider" | "typeDefinitionProvider" | "colorProvider" | "foldingRangeProvider" | "declarationProvider" | "selectionRangeProvider" | "callHierarchyProvider" | "semanticTokensProvider" | "semanticTokensProvider.full.delta" | "semanticTokensProvider.range" | "linkedEditingRangeProvider" | "monikerProvider" | "typeHierarchyProvider" | "inlineValueProvider" | "diagnosticProvider" | "textDocumentSync.willSaveWaitUntil" | "completionProvider" | "hoverProvider" | "signatureHelpProvider" | "definitionProvider" | "referencesProvider" | "documentHighlightProvider" | "documentSymbolProvider" | "documentFormattingProvider" | "documentRangeFormattingProvider" | "documentOnTypeFormattingProvider" | "renameProvider" | "renameProvider.prepareProvider" | "workspace.fileOperations.willCreate" | "workspace.fileOperations.willRename" | "workspace.fileOperations.willDelete" | "diagnosticProvider.workspaceDiagnostics" | "workspaceSymbolProvider" | "executeCommandProvider" | "workspaceSymbolProvider.resolveProvider"]: { [KeyType in string | number | symbol]: PickDeepObject<ServerCapabilities<any>, P>[KeyType] } }[ServerCapabilityForRequest<M>]>, NonRecursiveType | ReadonlyMap<unknown, unknown> | WeakMap<WeakKey, unknown> | ReadonlySet<unknown> | WeakSet<WeakKey>, object>;Defined in: packages/core/src/protocol/capabilities.ts:76
Type-guarding predicate that narrows capabilities to include the specific server capability key required for the given client-to-server request method.
Type Parameters
| Type Parameter |
|---|
M extends | "callHierarchy/incomingCalls" | "callHierarchy/outgoingCalls" | "codeAction/resolve" | "codeLens/resolve" | "completionItem/resolve" | "documentLink/resolve" | "inlayHint/resolve" | "initialize" | "shutdown" | "textDocument/codeAction" | "textDocument/codeLens" | "textDocument/documentLink" | "textDocument/inlayHint" | "textDocument/implementation" | "textDocument/typeDefinition" | "textDocument/documentColor" | "textDocument/colorPresentation" | "textDocument/foldingRange" | "textDocument/declaration" | "textDocument/selectionRange" | "textDocument/prepareCallHierarchy" | "textDocument/semanticTokens/full" | "textDocument/semanticTokens/full/delta" | "textDocument/semanticTokens/range" | "textDocument/linkedEditingRange" | "textDocument/moniker" | "textDocument/prepareTypeHierarchy" | "textDocument/inlineValue" | "textDocument/diagnostic" | "textDocument/willSaveWaitUntil" | "textDocument/completion" | "textDocument/hover" | "textDocument/signatureHelp" | "textDocument/definition" | "textDocument/references" | "textDocument/documentHighlight" | "textDocument/documentSymbol" | "textDocument/formatting" | "textDocument/rangeFormatting" | "textDocument/onTypeFormatting" | "textDocument/rename" | "textDocument/prepareRename" | "typeHierarchy/supertypes" | "typeHierarchy/subtypes" | "workspace/willCreateFiles" | "workspace/willRenameFiles" | "workspace/willDeleteFiles" | "workspace/diagnostic" | "workspace/symbol" | "workspace/executeCommand" | "workspaceSymbol/resolve" |
Parameters
| Parameter | Type | Description |
|---|---|---|
method | M | The LSP request method string (e.g. 'textDocument/hover'). |
capabilities | ServerCapabilities | The ServerCapabilities object to test. |
Returns
capabilities is ServerCapabilities<any> & ConditionalSimplifyDeep<UnionToIntersection<{ [P in "codeActionProvider.resolveProvider" | "codeLensProvider.resolveProvider" | "completionProvider.resolveProvider" | "documentLinkProvider.resolveProvider" | "inlayHintProvider.resolveProvider" | "codeActionProvider" | "codeLensProvider" | "documentLinkProvider" | "inlayHintProvider" | "implementationProvider" | "typeDefinitionProvider" | "colorProvider" | "foldingRangeProvider" | "declarationProvider" | "selectionRangeProvider" | "callHierarchyProvider" | "semanticTokensProvider" | "semanticTokensProvider.full.delta" | "semanticTokensProvider.range" | "linkedEditingRangeProvider" | "monikerProvider" | "typeHierarchyProvider" | "inlineValueProvider" | "diagnosticProvider" | "textDocumentSync.willSaveWaitUntil" | "completionProvider" | "hoverProvider" | "signatureHelpProvider" | "definitionProvider" | "referencesProvider" | "documentHighlightProvider" | "documentSymbolProvider" | "documentFormattingProvider" | "documentRangeFormattingProvider" | "documentOnTypeFormattingProvider" | "renameProvider" | "renameProvider.prepareProvider" | "workspace.fileOperations.willCreate" | "workspace.fileOperations.willRename" | "workspace.fileOperations.willDelete" | "diagnosticProvider.workspaceDiagnostics" | "workspaceSymbolProvider" | "executeCommandProvider" | "workspaceSymbolProvider.resolveProvider"]: { [KeyType in string | number | symbol]: PickDeepObject<ServerCapabilities<any>, P>[KeyType] } }[ServerCapabilityForRequest<M>]>, NonRecursiveType | ReadonlyMap<unknown, unknown> | WeakMap<WeakKey, unknown> | ReadonlySet<unknown> | WeakSet<WeakKey>, object>
true when the server has declared support for the method.