vscode: add gopls config file

This allows using VSCode and its derivatives to use our gopackagesdriver
to have working code intelligence with our Bazel build. It also
optimizes the VSCode file watcher to ignore lots of file changes in
Bazel symlinked output directories.

Change-Id: I1d36a31b5c58987d42f78a80ba8831761327d884
Reviewed-on: https://review.monogon.dev/c/monogon/+/3711
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..a7c7f66
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,26 @@
+{
+    "go.goroot": "${workspaceFolder}/bazel-${workspaceFolderBasename}/external/rules_go~~go_sdk~main___download_0/",
+    "go.toolsEnvVars": {
+        "GOPACKAGESDRIVER": "${workspaceFolder}/tools/gopackagesdriver"
+    },
+    "gopls": {
+        "formatting.local": "source.monogon.dev",
+        "build.directoryFilters": [
+            "-bazel-bin",
+            "-bazel-${workspaceFolderBasename}",
+            "-bazel-out",
+            "-bazel-testlogs",
+            "-.bazeldnf"
+        ],
+        "ui.semanticTokens": true,
+    },
+    "go.enableCodeLens": {
+        "runtest": false
+    },
+    "files.watcherExclude": {
+        "bazel-bin/**": true,
+        "bazel-${workspaceFolderBasename}/**": true,
+        "bazel-testlogs/**": true,
+        ".bazeldnf/**": true,
+    }
+}
\ No newline at end of file