Support 'runnables' options in the vs code extension

This commit is contained in:
Igor Aleksanov 2020-09-05 16:21:14 +03:00
parent 4a1b4b23bb
commit 5b26629a4d
5 changed files with 31 additions and 2 deletions

View file

@ -13,6 +13,7 @@ export interface CargoTaskDefinition extends vscode.TaskDefinition {
args?: string[];
cwd?: string;
env?: { [key: string]: string };
overrideCargo?: string;
}
class CargoTaskProvider implements vscode.TaskProvider {
@ -98,7 +99,14 @@ export async function buildCargoTask(
}
if (!exec) {
exec = new vscode.ShellExecution(toolchain.cargoPath(), args, definition);
// Check whether we must use a user-defined substitute for cargo.
const cargoCommand = definition.overrideCargo ? definition.overrideCargo : toolchain.cargoPath();
// Prepare the whole command as one line. It is required if user has provided override command which contains spaces,
// for example "wrapper cargo". Without manual preparation the overridden command will be quoted and fail to execute.
const fullCommand = [cargoCommand, ...args].join(" ");
exec = new vscode.ShellExecution(fullCommand, definition);
}
return new vscode.Task(