Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/run.ts')
-rw-r--r--editors/code/src/run.ts15
1 files changed, 13 insertions, 2 deletions
diff --git a/editors/code/src/run.ts b/editors/code/src/run.ts
index c893d39055..8d468141d5 100644
--- a/editors/code/src/run.ts
+++ b/editors/code/src/run.ts
@@ -5,8 +5,9 @@ import * as tasks from "./tasks";
import type { CtxInit } from "./ctx";
import { makeDebugConfig } from "./debug";
-import type { Config, RunnableEnvCfg } from "./config";
+import type { Config, RunnableEnvCfg, RunnableEnvCfgItem } from "./config";
import { unwrapUndefinable } from "./undefinable";
+import { string } from "vscode-languageclient/lib/common/utils/is";
const quickPickButtons = [
{ iconPath: new vscode.ThemeIcon("save"), tooltip: "Save as a launch.json configuration." },
@@ -112,11 +113,21 @@ export function prepareEnv(
}
Object.assign(env, process.env as { [key: string]: string });
+ const platform = process.platform;
+
+ const checkPlatform = (it: RunnableEnvCfgItem) => {
+ if (it.platform) {
+ const platforms = Array.isArray(it.platform) ? it.platform : [it.platform];
+ return platforms.indexOf(platform) >= 0;
+ }
+ return true;
+ };
if (runnableEnvCfg) {
if (Array.isArray(runnableEnvCfg)) {
for (const it of runnableEnvCfg) {
- if (!it.mask || new RegExp(it.mask).test(runnable.label)) {
+ const masked = !it.mask || new RegExp(it.mask).test(runnable.label);
+ if (masked && checkPlatform(it)) {
Object.assign(env, it.env);
}
}