Skip to content

lspeasy / core/src / clientSupportsNotification

Function: clientSupportsNotification()

ts
function clientSupportsNotification<M, T>(method, capabilities): capabilities is T & ConditionalSimplifyDeep<UnionToIntersection<{ [P in "window.showMessage" | "textDocument.publishDiagnostics"]: { [KeyType in string | number | symbol]: PickDeepObject<ClientCapabilities, P>[KeyType] } }[ClientCapabilityForNotification<M>]>, NonRecursiveType | ReadonlyMap<unknown, unknown> | WeakMap<WeakKey, unknown> | ReadonlySet<unknown> | WeakSet<WeakKey>, object>;

Defined in: packages/core/src/protocol/capabilities.ts:143

Type-guarding predicate that narrows capabilities to include the specific client capability key required for the given server-to-client notification method.

Type Parameters

Type Parameter
M extends | "textDocument/publishDiagnostics" | "window/showMessage" | "window/logMessage" | "$/cancelRequest" | "$/progress" | "$/logTrace" | "telemetry/event"
T extends Partial<ClientCapabilities>

Parameters

ParameterTypeDescription
methodMThe LSP notification method string (e.g. 'window/logMessage').
capabilitiesTThe ClientCapabilities object to test.

Returns

capabilities is T & ConditionalSimplifyDeep<UnionToIntersection<{ [P in "window.showMessage" | "textDocument.publishDiagnostics"]: { [KeyType in string | number | symbol]: PickDeepObject<ClientCapabilities, P>[KeyType] } }[ClientCapabilityForNotification<M>]>, NonRecursiveType | ReadonlyMap<unknown, unknown> | WeakMap<WeakKey, unknown> | ReadonlySet<unknown> | WeakSet<WeakKey>, object>

true when the client has declared support for the method.

Released under the MIT License.