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.