Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to launch a Rust application from Visual Studio Code?

I have installed the Visual Studio Code extensions for Rust:

enter image description here

I want to run my project and I don't understand where to click.

enter image description here

I tried clicking Run Task, Run build task, Configure Default build task, but nothing reasonable happens.

like image 227
Stepan Yakovenko Avatar asked Oct 23 '17 08:10

Stepan Yakovenko


People also ask

How do I start Rust programming?

To start using Rust, download the installer, then run the program and follow the onscreen instructions. You may need to install the Visual Studio C++ Build tools when prompted to do so. If you are not on Windows see "Other Installation Methods".


1 Answers

Using the integrated terminal

Shortcut to run the integrated terminal: Ctrl + `
(Ctrl + backtick)
Then 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


TLDR: install rust-analyzer and Native debugger based on LLDB

Or install using terminal commands:

code --install-extension matklad.rust-analyzer code --install-extension vadimcn.vscode-lldb 

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/bin/cargo", // note: full path to the cargo             "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 the Native debugger based on LLDB

To Run the project:
Press Ctrl+F5 or select Run Without Debugging from the Run menu, and see the terminal window, for the result:

Native debugger based on LLDB

For the first time (only once), install the Native debugger based on LLDB, or install using the command line:

code --install-extension vadimcn.vscode-lldb 

Then inside your Visual Studio Code project: Press shortcut Ctrl+F5 then for the first time select LLDB then OK and Yes, or create .vscode/launch.json file like the following sample, inside your project folder (Also you may select create a launch.json file from Debug/Run panel too):

{     // Use IntelliSense to learn about possible attributes.     // Hover to view descriptions of existing attributes.     // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387     "version": "0.2.0",     "configurations": [         {             "type": "lldb",             "request": "launch",             "name": "Debug executable 'example'",             "cargo": {                 "args": [                     "build",                     "--bin=example",                     "--package=example"                 ],                 "filter": {                     "name": "example",                     "kind": "bin"                 }             },             "args": [                 // "user_arg1",                 // "user_arg2"             ],             "cwd": "${workspaceFolder}"         },         {             "type": "lldb",             "request": "launch",             "name": "Debug unit tests in executable 'example'",             "cargo": {                 "args": [                     "test",                     "--no-run",                     "--bin=example",                     "--package=example"                 ],                 "filter": {                     "name": "example",                     "kind": "bin"                 }             },             "args": [],             "cwd": "${workspaceFolder}"         }     ] } 

Notes:
I named the project example above.
You may uncomment above // "user_arg1", if you need args.


Using the rust-analyzer extension

Installation:

rustup component add rust-src code --install-extension matklad.rust-analyzer 

To run the code click on the gray Run text above fn main(): the gray Run text above main, image


Using the code-runner extension

Install the 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 the 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.

like image 177
wasmup Avatar answered Sep 23 '22 06:09

wasmup