File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -80,7 +80,7 @@ export async function buildCargoTask(
80
80
throwOnError : boolean = false
81
81
) : Promise < vscode . Task > {
82
82
83
- let exec : vscode . ShellExecution | undefined = undefined ;
83
+ let exec : vscode . ProcessExecution | vscode . ShellExecution | undefined = undefined ;
84
84
85
85
if ( customRunner ) {
86
86
const runnerCommand = `${ customRunner } .buildShellExecution` ;
@@ -105,13 +105,13 @@ export async function buildCargoTask(
105
105
106
106
if ( ! exec ) {
107
107
// Check whether we must use a user-defined substitute for cargo.
108
- const cargoCommand = definition . overrideCargo ? definition . overrideCargo : toolchain . cargoPath ( ) ;
108
+ // Split on spaces to allow overrides like "wrapper cargo".
109
+ const overrideCargo = definition . overrideCargo ?? definition . overrideCargo ;
110
+ const cargoCommand = overrideCargo ?. split ( " " ) ?? [ toolchain . cargoPath ( ) ] ;
109
111
110
- // Prepare the whole command as one line. It is required if user has provided override command which contains spaces,
111
- // for example "wrapper cargo". Without manual preparation the overridden command will be quoted and fail to execute.
112
- const fullCommand = [ cargoCommand , ...args ] . join ( " " ) ;
112
+ const fullCommand = [ ...cargoCommand , ...args ] ;
113
113
114
- exec = new vscode . ShellExecution ( fullCommand , definition ) ;
114
+ exec = new vscode . ProcessExecution ( fullCommand [ 0 ] , fullCommand . slice ( 1 ) , definition ) ;
115
115
}
116
116
117
117
return new vscode . Task (
You can’t perform that action at this time.
0 commit comments