src/goLanguageServer: include .tmpl only in nightly mode.

In the follow up CL we will switch the main branch to use the experimental mode.
So, we will be able to test this feature with the dev version of the extension
built from the main branch.

Change-Id: I96e31dece152a3ee784058659dd6930d0bde1100
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/283639
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Peter Weinberger <pjw@google.com>
diff --git a/src/goLanguageServer.ts b/src/goLanguageServer.ts
index c977da4..aa7b70d 100644
--- a/src/goLanguageServer.ts
+++ b/src/goLanguageServer.ts
@@ -20,6 +20,7 @@
 	CompletionItemKind,
 	ConfigurationParams,
 	ConfigurationRequest,
+	DocumentSelector,
 	ErrorAction,
 	HandleDiagnosticsSignature,
 	InitializeError,
@@ -293,6 +294,28 @@
 // The returned language client need to be started before use.
 export async function buildLanguageClient(cfg: BuildLanguageClientOption): Promise<LanguageClient> {
 	const goplsWorkspaceConfig = await adjustGoplsWorkspaceConfiguration(cfg, getGoplsConfig(), 'gopls', undefined);
+
+	const documentSelector = [
+		// Filter out unsupported document types, e.g. vsls, git.
+		// https://docs.microsoft.com/en-us/visualstudio/liveshare/reference/extensions#visual-studio-code-1
+		//
+		// - files
+		{ language: 'go', scheme: 'file' },
+		{ language: 'go.mod', scheme: 'file' },
+		{ language: 'go.sum', scheme: 'file' },
+		// - unsaved files
+		{ language: 'go', scheme: 'untitled' },
+		{ language: 'go.mod', scheme: 'untitled' },
+		{ language: 'go.sum', scheme: 'untitled' },
+	];
+
+	// Let gopls know about .tmpl - this is experimental, so enable it only in the experimental mode now.
+	if (isNightly()) {
+		documentSelector.push(
+			{ language: 'tmpl', scheme: 'file' },
+			{ language: 'tmpl', scheme: 'untitled' });
+	}
+
 	const c = new LanguageClient(
 		'go',  // id
 		cfg.serverName,  // name e.g. gopls
@@ -303,21 +326,7 @@
 		},
 		{
 			initializationOptions: goplsWorkspaceConfig,
-			documentSelector: [
-				// Filter out unsupported document types, e.g. vsls, git.
-				// https://docs.microsoft.com/en-us/visualstudio/liveshare/reference/extensions#visual-studio-code-1
-				//
-				// - files
-				{ language: 'go', scheme: 'file' },
-				{ language: 'go.mod', scheme: 'file' },
-				{ language: 'go.sum', scheme: 'file' },
-				{ language: 'tmpl', scheme: 'file'},
-				// - unsaved files
-				{ language: 'go', scheme: 'untitled' },
-				{ language: 'go.mod', scheme: 'untitled' },
-				{ language: 'go.sum', scheme: 'untitled' },
-				{ language: 'tmpl', scheme: 'untitled'},
-			],
+			documentSelector,
 			uriConverters: {
 				// Apply file:/// scheme to all file paths.
 				code2Protocol: (uri: vscode.Uri): string =>