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
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
new DisposableStore(): DisposableStore;Returns
DisposableStore
Methods
add()
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
| Parameter | Type | Description |
|---|---|---|
disposable | T | The 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()
clear(): void;Defined in: packages/core/src/utils/disposable.ts:102
Clear all disposables without disposing them
Returns
void
dispose()
dispose(): void;Defined in: packages/core/src/utils/disposable.ts:74
Dispose all resources in the store
Returns
void
Implementation of
isDisposed()
isDisposed(): boolean;Defined in: packages/core/src/utils/disposable.ts:95
Check if store is disposed
Returns
boolean