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