1import * as vscode from "vscode"; 2 3/** 4 * This class provides a simple wrapper around vscode.Disposable that allows 5 * 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