extension/src: reload package symbol for only go file and file scheme Skip vscode message for package symbol command due to high frequency. For golang/vscode-go#3681 Change-Id: If4e0749d7123d17292a9f7266e73c65c8bde332c Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/649258 Reviewed-by: Robert Findley <rfindley@google.com> Auto-Submit: Hongxiang Jiang <hxjiang@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> kokoro-CI: kokoro <noreply+kokoro@google.com>
diff --git a/extension/src/goPackageOutline.ts b/extension/src/goPackageOutline.ts index 115610b..486f61f 100644 --- a/extension/src/goPackageOutline.ts +++ b/extension/src/goPackageOutline.ts
@@ -34,7 +34,7 @@ constructor(ctx: vscode.ExtensionContext) { this.reload(vscode.window.activeTextEditor?.document); let previousVersion: number | undefined; - // Reload package symbol data on saving document with changes + // Reload package symbol data on saving active document with changes. ctx.subscriptions.push( vscode.workspace.onDidSaveTextDocument((d) => { if (d.uri === vscode.window.activeTextEditor?.document.uri) { @@ -45,12 +45,9 @@ } }) ); - // Reload package symbol data when switching active file + // Reload package symbol data when switching active file. ctx.subscriptions.push( vscode.window.onDidChangeActiveTextEditor((e) => { - if (!e?.document?.fileName.endsWith('.go')) { - return; - } this.reload(e?.document); }) ); @@ -105,7 +102,7 @@ } async reload(e?: vscode.TextDocument) { - if (!e) { + if (e?.languageId !== 'go' || e?.uri?.scheme !== 'file') { this.result = undefined; this.activeDocument = undefined; return;
diff --git a/extension/src/language/goLanguageServer.ts b/extension/src/language/goLanguageServer.ts index 5945ff9..97bc0cb 100644 --- a/extension/src/language/goLanguageServer.ts +++ b/extension/src/language/goLanguageServer.ts
@@ -590,6 +590,10 @@ return res; } catch (e) { + // Suppress error messages for frequently triggered commands. + if (command === 'gopls.package_symbols') { + return null; + } // TODO: how to print ${e} reliably??? const answer = await vscode.window.showErrorMessage( `Command '${command}' failed: ${e}.`,