05fc97e31b
8955: feature: Support standalone Rust files r=matklad a=SomeoneToIgnore ![standalone](https://user-images.githubusercontent.com/2690773/119277037-0b579380-bc26-11eb-8d77-20d46ab4916a.gif) Closes https://github.com/rust-analyzer/rust-analyzer/issues/6388 Caveats: * I've decided to support multiple detached files in the code (anticipating the scratch files), but I found no way to open multiple files in VSCode at once: running `code *.rs` makes the plugin to register in the `vscode.workspace.textDocuments` only the first file, while code actually displays all files later. Apparently what happens is the same as when you have VSCode open at some workplace already and then run `code some_other_file.rs`: it gets opened in the same workspace of the same VSCode with no server to support it. If there's a way to override it, I'd appreciate the pointer. * No way to toggle inlay hints, since the setting is updated for the workspace (which does not exist for a single file opened) > [2021-05-24 00:22:49.100] [exthost] [error] Error: Unable to write to Workspace Settings because no workspace is opened. Please open a workspace first and try again. * No runners/lens to run or check the code are implemented for this mode. In theory, we can detect `rustc`, run it on a file and run the resulting binary, but not sure if worth doing it at this stage. Otherwise imports, hints, completion and other features work. Co-authored-by: Kirill Bulatov <mail4score@gmail.com> |
||
---|---|---|
.. | ||
src | ||
tests | ||
.eslintignore | ||
.eslintrc.js | ||
.gitignore | ||
.vscodeignore | ||
icon.png | ||
language-configuration.json | ||
package-lock.json | ||
package.json | ||
ra_syntax_tree.tmGrammar.json | ||
README.md | ||
rollup.config.js | ||
tsconfig.json |
rust-analyzer
Provides support for rust-analyzer: novel LSP server for the Rust programming language.
Note the extension may cause conflicts with the official Rust extension. It is recommended to disable the Rust extension when using the rust-analyzer extension.
Note the project is in alpha status: it is already useful in practice, but can't be considered stable.
Sponsor
Work on rust-analyzer is sponsored by
If you want to sponsor:
Features
- code completion, imports insertion
- go to definition, implementation, type definition
- find all references, workspace symbol search, rename
- types and documentation on hover
- inlay hints
- semantic syntax highlighting
- a lot of assist(code actions)
- apply suggestions from errors
- ... and many more, checkout the manual to see them all
Quick start
- Install rustup
- Install the rust-analyzer extension
Configuration
This extension provides configurations through VSCode's configuration settings. All the configurations are under rust-analyzer.*
.
See https://rust-analyzer.github.io/manual.html#vs-code-2 for more information on VSCode specific configurations.
Communication
For usage and troubleshooting requests, please use "IDEs and Editors" category of the Rust forum:
https://users.rust-lang.org/c/ide/14
Documentation
See https://rust-analyzer.github.io/ for more information.