Skip to content

lspeasy / core/src / DisposableStore

Class: DisposableStore

Defined in: packages/core/src/utils/disposable.ts:51

Collects multiple Disposable instances and releases them together.

Remarks

Ideal for managing handler registrations on a server that should all be torn down when a document is closed or a feature is disabled. Once dispose() is called on the store, any further add() calls immediately dispose the item rather than storing it.

Use When

You register multiple handlers (hover, completion, definition) that share the same lifetime — collect them all into one store and dispose the store on shutdown or feature toggle.

Example

ts
import { DisposableStore } from '@lspeasy/core';
import { LSPServer } from '@lspeasy/server';

const server = new LSPServer();
const disposables = new DisposableStore();

disposables.add(server.onRequest('textDocument/hover', handleHover));
disposables.add(server.onRequest('textDocument/completion', handleCompletion));

// Later — unregister all handlers at once
disposables.dispose();

Implements

Constructors

Constructor

ts
new DisposableStore(): DisposableStore;

Returns

DisposableStore

Methods

add()

ts
add<T>(disposable): T;

Defined in: packages/core/src/utils/disposable.ts:62

Add a disposable to the store.

Type Parameters

Type Parameter
T extends Disposable

Parameters

ParameterTypeDescription
disposableTThe resource to track. If the store is already disposed, disposable.dispose() is called immediately.

Returns

T

The same disposable passed in, for fluent chaining.


clear()

ts
clear(): void;

Defined in: packages/core/src/utils/disposable.ts:102

Clear all disposables without disposing them

Returns

void


dispose()

ts
dispose(): void;

Defined in: packages/core/src/utils/disposable.ts:74

Dispose all resources in the store

Returns

void

Implementation of

Disposable.dispose


isDisposed()

ts
isDisposed(): boolean;

Defined in: packages/core/src/utils/disposable.ts:95

Check if store is disposed

Returns

boolean

Released under the MIT License.