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}.`,