Describe the bug
Description of what the bug is.
After editing Configuration: code-runner.executorMap from:
"rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
to:
"rust": "cargo run",
When clicking play button, code-runner command runs:
cargo run "c:\ar\rs\sors\src\main.rs"
The correct command is:
cargo run
note: without extra arguments.
if you put any thing after cargo run it will be used as user program argument, so the correct way to run is just cargo run.
To Reproduce
Steps to reproduce the behavior:
and run this file "main.rs" (prints arguments list):
use std::env;
fn main() {
for argument in env::args() {
println!(" {}", argument);
}
}
output is:
cargo run "c:\ar\rs\sors\src\main.rs"
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running target\debug\sors.exe c:\ar\rs\sors\src\main.rs
target\debug\sors.exe
c:\ar\rs\sors\src\main.rs
Expected behavior
cargo run
Thank you.
a workaround is using "code-runner.customCommand" to set custom command, but that is not by language
@aramazani
On Windows you can use such config:
"code-runner.executorMap": {
"rust": "cargo run && echo $fileName > nul"
}
By using variable in string, code-runner will not inject filename.
Thanks, I'm using this for Linux now:
"code-runner.executorMap": {
"rust": "cargo run # $fileName",
},
I had this issue as well; for me, just ending the line with a comment works, which allows the rest of the line to be ignored by the shell:
cargo run # "path/to/main.rs"
This works on Windows with PowerShell as integrated terminal, and should work on bash/zsh/fish as well.
@formulahendry If you can add a $empty that put nothing in the command line. That will be awesome!
谢谢,我现在æ£åœ¨Linux上使用它:
"code-runner.executorMap": { "rust": "cargo run # $fileName", },
It;s OK, thank you.
Most helpful comment
Thanks, I'm using this for Linux now: