I have installed the Visual Studio Code extensions for Rust:
I want to run my project and I don't understand where to click.
I tried clicking Run Task, Run build task, Configure Default build task, but nothing reasonable happens.
Using the integrated terminal
Shortcut to run the integrated terminal: Ctrl +
` (Ctrl + backtick)
Run the following command in the integrated terminal:
cargo run
Notes: Open the Code editor from your project folder ( code .
command inside project folder terminal, or in GUI mode: right-click inside project folder and select Open With Code
) then press Ctrl +
` ( Ctrl + backtick ) to open integrated terminal, then enter: cargo run
Using Tasks
Shortcut to run the Task: Ctrl + Shift + B
Add cargo run
as a default Task: add .vscode/tasks.json
file to your project as follows, to use cargo run
to run the project, change the contents of .vscode/tasks.json
as follows:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "cargo run",
"type": "shell",
"command": "cargo",
"args": ["run"],
// "args": ["run", "--release", "--", "arg1"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Now press Ctrl + Shift + B
to run the Task, or Press Ctrl + Shift + P
and select Tasks: Run Build Task
from the Command Palette.
You may add arguments like the comment above e.g.: "args": ["run", "--release", "--", "arg1"],
(if your app requires it).
(You may open the Command Palette with Ctrl + Shift + P
and type in Configure Default Build Task
and press Enter
to select it. Then select Rust: cargo build
or Others
. This generates a tasks.json
file in your workspace .vscode
folder).
Using Code Runner
Install Code Runner extension, then open the source file then you will have a play button in the top right corner to click, or use default shortcut: Ctrl+Alt+N
(You may change the shortcut from: File>Preferences>Keyboard Shortcuts
and enter code-runner.run
in the search box).
Note: To run the command inside terminal You may set code-runner.runInTerminal
to true
from File>Preferences>Settings
(or press Ctrl+,
), then enter code-runner.runInTerminal
in the search box.
Edit: This runs only open file e.g.: rustc main.rs
. You may edit the code-runner.executorMap
to change the command from:
"rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
to:
"rust": "cargo run",
So the Code Runner runs the cargo run
command each time you click the Play button (or pressing keyboard shortcut):
From menu: File>Preferences>Settings
(or press Ctrl+,
) then inside search box, enter:code-runner.executorMap
then click Edit in Settings.json
then edit "code-runner.executorMap": and change "rust":"cd $dir && rustc $fileName && $dir$fileNameWithoutExt"
to "rust": "cargo run"
.
Or simply add 3 following lines to VSCode settings JSON (settings.json
file):
"code-runner.executorMap": {
"rust": "cargo run # $fileName"
}
Using Code Runner custom command
You may set the custom command to run: "code-runner.customCommand": "cargo run"
Menu: File>Preferences>Settings
(or press Ctrl+,
) then inside search box, enter customCommand
and set the custom command to run: cargo run
.
You may change Shortcut to this command for ease of use: From Menu select: File>Preferences>Keyboard Shortcuts
, then inside search box enter: customCommand
, then add/change keybinding e.g. press: Ctrl+L Ctrl+R
Using the rust-lang.rust
extension
You may install this extension from the command line using:
code --install-extension rust-lang.rust
The plugin uses tasks: You may press Ctrl + Shift + B
then select options presented, for now, there are only two options:
cargo check
cargo build
So you need to use the cargo run
Task presented above (tasks.json
file).
Using the vscode-rust
extension
Install with Ctrl+P and type "ext install vscode-rust". Run with Ctrl+Shift+P, type "cargo" then select "Cargo:Run".
Edit: You may add Shortcut to this command for ease of use:
From Menu select: File>Preferences>Keyboard Shortcuts
, then inside search box enter: Cargo:Run
, then add keybinding e.g. press: Ctrl+L Ctrl+R
, and if you are using this extension in non RLS mode to run Cargo command in terminal: you may set "rust.executeCargoCommandInTerminal": true
in File>Preferences>Settings
menu (or press Ctrl+,
) then enter executeCargoCommandInTerminal
inside search box.
Unfortunately there isn't a good solution at the moment. Basically you have to add a task to tasks.json
, which begins like this:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "cargo",
"subcommand": "check",
"problemMatcher": [
"$rustc"
]
},
{
"type": "cargo",
"subcommand": "build",
"problemMatcher": [
"$rustc"
]
}
]
}
A.R. suggested adding another identical entry but with "subcommand": "run"
but it doesn't work. You get this error:
Error: The cargo task detection didn't contribute a task for the following configuration:
{
"type": "cargo",
"subcommand": "run",
"problemMatcher": [
"$rustc"
]
}
The task will be ignored.
Instead you can add a "type": "shell"
task. However this still isn't perfect because for some reason adding that task means cargo check
and cargo build
don't show up when you press Ctrl-Shift-B at all.
My solution is just to change those to shell tasks too, so your entire tasks.json
is:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cargo check",
"command": "cargo",
"args": [
"check"
],
"problemMatcher": [
"$rustc"
],
"group": "build"
},
{
"type": "shell",
"label": "cargo build",
"command": "cargo",
"args": [
"build"
],
"problemMatcher": [
"$rustc"
],
"group": "build"
},
{
"type": "shell",
"label": "cargo run",
"command": "cargo",
"args": [
"run"
],
"problemMatcher": [
"$rustc"
],
"group": "build"
}
]
}
I was able to get this working using the VSC extension, Rust (rls), using a modified version of AR's post:
"tasks": [
{
"type": "shell",
"label": "cargo run",
"command": "wsl",
"args": [
"--",
"~/.cargo/bin/cargo",
"run"
],
"problemMatcher": [
"$rustc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
If you want to run a Rust application in Visual Studio Code with command line arguments, you can configure your task in this way:
{
"label":"Run With Arguments",
"type":"process",
"command":"cargo",
"group":"none",
"args":[
"run",
{
"value":"--",
"quoting":"weak"
},
{
"value":"--argumentOne=\"Something\"",
"quoting":"weak"
},
{
"value":"--argumentTwo=\"Something\"",
"quoting":"weak"
}
]
}
With the addition of "--"
and weak quoting, you can pass arguments to your application.
来源:https://stackoverflow.com/questions/46885292/how-to-launch-a-rust-application-from-visual-studio-code