src/goExplorer.ts: add handler registrations to disposables
The handler regsitrations in the go explorer must be added
to subscriptions so they'll be removed when the extension is
deactivated.
Change-Id: I4f0bd6542f3a1fe486336f4334f437aa6c7d850c
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/406298
Run-TryBot: Jamal Carvalho <jamal@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
diff --git a/src/goExplorer.ts b/src/goExplorer.ts
index 8423cc6..52fdbc3 100644
--- a/src/goExplorer.ts
+++ b/src/goExplorer.ts
@@ -22,17 +22,19 @@
private activeFolder?: vscode.WorkspaceFolder;
private activeDocument?: vscode.TextDocument;
- static setup({ subscriptions }: vscode.ExtensionContext) {
- const provider = new this();
+ static setup(ctx: vscode.ExtensionContext) {
+ const provider = new this(ctx);
const {
window: { registerTreeDataProvider },
commands: { registerCommand, executeCommand }
} = vscode;
- subscriptions.push(registerTreeDataProvider('go.explorer', provider));
- subscriptions.push(registerCommand('go.explorer.refresh', () => provider.update(true)));
- subscriptions.push(registerCommand('go.explorer.open', (item) => provider.open(item)));
- subscriptions.push(registerCommand('go.workspace.editEnv', (item) => provider.editEnv(item)));
- subscriptions.push(registerCommand('go.workspace.resetEnv', (item) => provider.resetEnv(item)));
+ ctx.subscriptions.push(
+ registerTreeDataProvider('go.explorer', provider),
+ registerCommand('go.explorer.refresh', () => provider.update(true)),
+ registerCommand('go.explorer.open', (item) => provider.open(item)),
+ registerCommand('go.workspace.editEnv', (item) => provider.editEnv(item)),
+ registerCommand('go.workspace.resetEnv', (item) => provider.resetEnv(item))
+ );
executeCommand('setContext', 'go.showExplorer', true);
return provider;
}
@@ -40,16 +42,18 @@
private _onDidChangeTreeData = new vscode.EventEmitter<vscode.TreeItem | void>();
readonly onDidChangeTreeData = this._onDidChangeTreeData.event;
- constructor() {
+ constructor(ctx: vscode.ExtensionContext) {
this.update();
- vscode.window.onDidChangeActiveTextEditor(() => this.update());
- vscode.workspace.onDidChangeWorkspaceFolders(() => this.update());
- vscode.workspace.onDidChangeConfiguration(() => this.update(true));
- vscode.workspace.onDidCloseTextDocument((doc) => {
- if (!this.activeFolder) {
- this.goEnvCache.delete(vscodeUri.Utils.dirname(doc.uri).toString());
- }
- });
+ ctx.subscriptions.push(
+ vscode.window.onDidChangeActiveTextEditor(() => this.update()),
+ vscode.workspace.onDidChangeWorkspaceFolders(() => this.update()),
+ vscode.workspace.onDidChangeConfiguration(() => this.update(true)),
+ vscode.workspace.onDidCloseTextDocument((doc) => {
+ if (!this.activeFolder) {
+ this.goEnvCache.delete(vscodeUri.Utils.dirname(doc.uri).toString());
+ }
+ })
+ );
}
getTreeItem(element: vscode.TreeItem) {