about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJake Heinz <jh@discordapp.com>2022-05-24 02:59:19 +0000
committerJake Heinz <jh@discordapp.com>2022-05-24 03:00:29 +0000
commitd1aa6d32167be4b4916399f87520e3c3cea44aed (patch)
treeef37b2b3fdc2034032274496fbf76dbe6afcefc6
parent7be85a5b4a218ad0b39b63fac0283e4f4917378f (diff)
vscode: fix extraEnv handling numeric values
-rw-r--r--editors/code/package.json3
-rw-r--r--editors/code/src/config.ts5
2 files changed, 6 insertions, 2 deletions
diff --git a/editors/code/package.json b/editors/code/package.json
index f46c7ea92d3..1cbbe9ee71d 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -308,6 +308,9 @@
                         "null",
                         "object"
                     ],
+                    "additionalProperties": {
+                        "type": ["string", "number"]
+                    },
                     "default": null,
                     "markdownDescription": "Extra environment variables that will be passed to the rust-analyzer executable. Useful for passing e.g. `RA_LOG` for debugging."
                 },
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 592ebe0ce33..9d9392d2a5e 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -100,8 +100,9 @@ export class Config {
     get serverPath() {
         return this.get<null | string>("server.path") ?? this.get<null | string>("serverPath");
     }
-    get serverExtraEnv() {
-        return this.get<Env | null>("server.extraEnv") ?? {};
+    get serverExtraEnv(): Env {
+        const extraEnv = this.get<{[key: string]: string | number} | null>("server.extraEnv") ?? {};
+        return Object.fromEntries(Object.entries(extraEnv).map(([k, v]) => [k, typeof v !== "string" ? v.toString(): v]));
     }
     get traceExtension() {
         return this.get<boolean>("trace.extension");