src/goLanguageServer: enable tmpl (go template) processing

And narrow the set of file extensions to match the current
gopls default (.tmpl and .gotmpl). We will keep working on
settings plumbing.

For golang/vscode-go#609

Change-Id: I8d613e52dc2eeecb072339d53624178a5ed01ecb
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/371914
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
Reviewed-by: Peter Weinberger <pjw@google.com>
Trust: Peter Weinberger <pjw@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef42039..92575ea 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,4 @@
-## v0.30.0 - 14 Dec, 2021
-
-<!-- TODO: Debug features -->
+## v0.30.0 - 16 Dec, 2021
 
 A list of all issues and changes can be found in the [v0.30.0 milestone](https://github.com/golang/vscode-go/milestone/40) and [commit history](https://github.com/golang/vscode-go/compare/v0.29.0...v0.30.0).
 
@@ -21,6 +19,7 @@
 	- Stop debugging when delve remote connection ends in `legacy` remote debugging. ([CL 366936](https://go-review.googlesource.com/c/vscode-go/+/366936/))
 	- Allow users to debug with older versions of `dlv-dap`. ([Issue 1814](https://github.com/golang/vscode-go/issues/1814))
 
+- Enabled Go template file processing. ([Issue 609](https://github.com/golang/vscode-go/issues/609)) By default, files with `.tmpl` and `.gotmpl` extension are treated as Go template files.
 - Include `Fuzz*` functions in Testing UI and adds test codelens. ([Issue 1794](https://github.com/golang/vscode-go/issues/1794)) <!-- CL 361935 -->
 - `gofumports` is pinned at `v0.1.1`. We plan to remove it from the recognized formatter tool list since [`gofumports` is officially deprecated](https://github.com/mvdan/gofumpt/releases/tag/v0.2.0) early next year.
 - Disabled separate linting if gopls's 'staticcheck' is enabled. ([Issue 1867](https://github.com/golang/vscode-go/issues/1867))
diff --git a/package.json b/package.json
index 5ace4d8..ec3b494 100644
--- a/package.json
+++ b/package.json
@@ -154,8 +154,9 @@
       },
       {
         "id": "tmpl",
-        "filenamePatterns": [
-          "*.*tmpl"
+        "extensions": [
+          ".tmpl",
+          ".gotmpl"
         ],
         "aliases": [
           "Go Template File"
diff --git a/src/goLanguageServer.ts b/src/goLanguageServer.ts
index 07d425d..43d5f8a 100644
--- a/src/goLanguageServer.ts
+++ b/src/goLanguageServer.ts
@@ -491,13 +491,10 @@
 		{ language: 'go', scheme: 'file' },
 		{ language: 'go.mod', scheme: 'file' },
 		{ language: 'go.sum', scheme: 'file' },
-		{ language: 'go.work', scheme: 'file' }
+		{ language: 'go.work', scheme: 'file' },
+		{ language: 'tmpl', scheme: 'file' }
 	];
 
-	// Let gopls know about .tmpl - this is experimental, so enable it only in the experimental mode now.
-	if (isInPreviewMode()) {
-		documentSelector.push({ language: 'tmpl', scheme: 'file' });
-	}
 	const c = new LanguageClient(
 		'go', // id
 		cfg.serverName, // name e.g. gopls