28 lines · typescript
1import * as vscode from "vscode";2 3/**4 * This class provides a simple wrapper around vscode.Disposable that allows5 * for registering additional disposables.6 */7export class DisposableContext implements vscode.Disposable {8 private _disposables: vscode.Disposable[] = [];9 10 constructor() {}11 12 public dispose() {13 for (const disposable of this._disposables) {14 disposable.dispose();15 }16 this._disposables = [];17 }18 19 /**20 * Push an additional disposable to the context.21 *22 * @param disposable The disposable to register.23 */24 public pushSubscription(...disposable: vscode.Disposable[]) {25 this._disposables.push(...disposable);26 }27}28