Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/tasks.ts')
-rw-r--r--editors/code/src/tasks.ts10
1 files changed, 8 insertions, 2 deletions
diff --git a/editors/code/src/tasks.ts b/editors/code/src/tasks.ts
index 730ec6d1e9..eb0748a704 100644
--- a/editors/code/src/tasks.ts
+++ b/editors/code/src/tasks.ts
@@ -1,6 +1,7 @@
import * as vscode from "vscode";
import type { Config } from "./config";
import * as toolchain from "./toolchain";
+import { Env } from "./util";
// This ends up as the `type` key in tasks.json. RLS also uses `cargo` and
// our configuration should be compatible with it so use the same key.
@@ -117,8 +118,8 @@ export async function buildRustTask(
export async function targetToExecution(
definition: TaskDefinition,
options?: {
- env?: { [key: string]: string };
cwd?: string;
+ env?: Env;
},
cargo?: string,
): Promise<vscode.ProcessExecution | vscode.ShellExecution> {
@@ -131,7 +132,12 @@ export async function targetToExecution(
command = definition.command;
args = definition.args || [];
}
- return new vscode.ProcessExecution(command, args, options);
+ return new vscode.ProcessExecution(command, args, {
+ cwd: options?.cwd,
+ env: Object.fromEntries(
+ Object.entries(options?.env ?? {}).map(([key, value]) => [key, value ?? ""]),
+ ),
+ });
}
export function activateTaskProvider(config: Config): vscode.Disposable {