Rust for Visual Studio Code (Latest: 0.19.1)
This extension adds advanced language support for the Rust language to VS Code, including:
- Autocompletion (using
- Go To Definition (using
- Go To Symbol (using
- Format (using
- Linter checkOnSave is experimental
- Linting can be done via checkWith is experimental
check. This is the default. Runs rust compiler but skips codegen pass.
check-lib. As above, but is limited only to library if project has library + multiple binaries
cargo-clippy is installed
- Cargo tasks (Open Command Pallete and they will be there)
First, you will need to install Visual Studio Code
1.0 or newer. In the command pallete (
Install Extension and choose
Then, you need to install Racer (instructions and source code here). Please, note that we only support latest versions of
Also, you need to install Rustfmt (instructions and source code here)
And last step is downloading Rust language source files from here.
The following Visual Studio Code settings are available for the RustyCode extension. These can be set in user preferences or workspace settings (
"rust.racerPath": null, // Specifies path to Racer binary if it's not in PATH
"rust.rustLangSrcPath": null, // Specifies path to /src directory of local copy of Rust sources
"rust.rustfmtPath": null, // Specifies path to Rustfmt binary if it's not in PATH
"rust.rustsymPath": null, // Specifies path to Rustsym binary if it's not in PATH
"rust.cargoPath": null, // Specifies path to Cargo binary if it's not in PATH
"rust.cargoHomePath": null, // Path to Cargo home directory, mostly needed for racer. Needed only if using custom rust installation.
"rust.cargoEnv": null, // Specifies custom variables to set when running cargo. Useful for crates which use env vars in their build.rs (like openssl-sys).
"rust.formatOnSave": false, // Turn on/off autoformatting file on save (EXPERIMENTAL)
"rust.checkOnSave": false, // Turn on/off `cargo check` project on save (EXPERIMENTAL)
"rust.checkWith": "build", // Specifies the linter to use. (EXPERIMENTAL)
"rust.useJsonErrors": false, // Enable the use of JSON errors (requires Rust 1.7+). Note: This is an unstable feature of Rust and is still in the process of being stablised
"rust.useNewErrorFormat": false, // "Use the new Rust error format (RUST_NEW_ERROR_FORMAT=true). Note: This flag is mutually exclusive with `useJsonErrors`.
Building and Debugging the Extension
You can set up a development enviroment for debugging the extension during extension development.
First make sure you do not have the extension installed in
~/.vscode/extensions. Then clone the repo somewhere else on your machine, run
npm install and open a development instance of Code.
rm -rf ~/.vscode/extensions/RustyCode
git clone https://github.com/saviorisdead/RustyCode
npm run-script compile
You can now go to the Debug viewlet and select
Launch Extension then hit run (
If you make edits in the extension
.ts files, just reload (
[Extension Development Host] instance of Code to load in the new extension code. The debugging instance will automatically reattach.