81 lines
3.8 KiB
Markdown
81 lines
3.8 KiB
Markdown
|
[![Build Status](https://travis-ci.org/saviorisdead/RustyCode.svg)](https://travis-ci.org/saviorisdead/RustyCode)
|
||
|
|
||
|
# Rust for Visual Studio Code (Latest: 0.18.0)
|
||
|
|
||
|
[Changelog](https://github.com/saviorisdead/RustyCode/blob/master/CHANGELOG.md)
|
||
|
|
||
|
[Roadmap](https://github.com/saviorisdead/RustyCode/blob/master/ROADMAP.md)
|
||
|
|
||
|
This extension adds advanced language support for the Rust language to VS Code, including:
|
||
|
|
||
|
- Autocompletion (using `racer`)
|
||
|
- Go To Definition (using `racer`)
|
||
|
- Go To Symbol (using `rustsym`)
|
||
|
- Format (using `rustfmt`)
|
||
|
- 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
|
||
|
- `clippy` if `cargo-clippy` is installed
|
||
|
- `build`
|
||
|
- Cargo tasks (Open Command Pallete and they will be there)
|
||
|
- Snippets
|
||
|
|
||
|
|
||
|
### IDE Features
|
||
|
![IDE](https://github.com/saviorisdead/RustyCode/raw/master/images/ide_features.png)
|
||
|
|
||
|
## Using
|
||
|
|
||
|
First, you will need to install Visual Studio Code `1.0` or newer. In the command pallete (`cmd-shift-p`) select `Install Extension` and choose `RustyCode`.
|
||
|
|
||
|
Then, you need to install Racer (instructions and source code [here](https://github.com/phildawes/racer)). Please, note that we only support latest versions of `Racer`.
|
||
|
|
||
|
Also, you need to install Rustfmt (instructions and source code [here](https://github.com/rust-lang-nursery/rustfmt))
|
||
|
|
||
|
And last step is downloading Rust language source files from [here](https://github.com/rust-lang/rust).
|
||
|
|
||
|
### Options
|
||
|
|
||
|
The following Visual Studio Code settings are available for the RustyCode extension. These can be set in user preferences or workspace settings (`.vscode/settings.json`)
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"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.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
|
||
|
|
||
|
[Repository](https://github.com/saviorisdead/RustyCode)
|
||
|
|
||
|
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.
|
||
|
|
||
|
```bash
|
||
|
rm -rf ~/.vscode/extensions/RustyCode
|
||
|
cd ~
|
||
|
git clone https://github.com/saviorisdead/RustyCode
|
||
|
cd RustyCode
|
||
|
npm install
|
||
|
npm run-script compile
|
||
|
code .
|
||
|
```
|
||
|
|
||
|
You can now go to the Debug viewlet and select `Launch Extension` then hit run (`F5`).
|
||
|
If you make edits in the extension `.ts` files, just reload (`cmd-r`) the `[Extension Development Host]` instance of Code to load in the new extension code. The debugging instance will automatically reattach.
|
||
|
|
||
|
## License
|
||
|
[MIT](https://github.com/saviorisdead/RustyCode/blob/master/LICENSE)
|