How to launch a Rust application from Visual Studio Code?

Using the integrated terminal

Run the following command in the integrated terminal:

cargo run

TLDR:
Install rust-analyzer and Native debugger based on LLDB extensions, then use the Run menu (then see the terminal for the result/output):

enter image description here

You may install these extensions using the terminal commands (and then restart the vscode):

# apt install musl lldb libssl-dev
code --install-extension vadimcn.vscode-lldb
code --install-extension rust-lang.rust-analyzer
code --install-extension bungcip.better-toml

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 rust-lang.rust-analyzer
# 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).


kalitaalexey’s ‘Rust’ extension was previously another option but was removed from the Visual Studio Code Marketplace by 2021, and was last updated in 2017.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)