Skip to content

lspeasy / core/src / hasClientCapability

Function: hasClientCapability()

ts
function hasClientCapability<K, T>(capabilities, capability): capabilities is T & ConditionalSimplifyDeep<UnionToIntersection<{ [P in InternalPaths<Required<ClientCapabilities>, { bracketNotation: false; depth: number; leavesOnly: false; maxRecursionDepth: 5 }, 0>]: { [KeyType in string | number | symbol]: PickDeepObject<ClientCapabilities, P>[KeyType] } }[K]>, NonRecursiveType | ReadonlyMap<unknown, unknown> | WeakMap<WeakKey, unknown> | ReadonlySet<unknown> | WeakSet<WeakKey>, object>;

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

Type-guarding predicate that narrows capabilities to confirm a specific client capability is enabled at a deep dot-notation path.

Type Parameters

Type Parameter
K extends InternalPaths<Required<ClientCapabilities>, { bracketNotation: false; depth: number; leavesOnly: false; maxRecursionDepth: 5; }, 0>
T extends Partial<ClientCapabilities>

Parameters

ParameterTypeDescription
capabilitiesTThe client capabilities to check.
capabilityKDot-notation path of the capability (e.g. 'window.workDoneProgress').

Returns

capabilities is T & ConditionalSimplifyDeep<UnionToIntersection<{ [P in InternalPaths<Required<ClientCapabilities>, { bracketNotation: false; depth: number; leavesOnly: false; maxRecursionDepth: 5 }, 0>]: { [KeyType in string | number | symbol]: PickDeepObject<ClientCapabilities, P>[KeyType] } }[K]>, NonRecursiveType | ReadonlyMap<unknown, unknown> | WeakMap<WeakKey, unknown> | ReadonlySet<unknown> | WeakSet<WeakKey>, object>

true when the capability at the given path is truthy.

Released under the MIT License.