aboutsummaryrefslogtreecommitdiff
path: root/editors/code/README.md
blob: 67df34f7eb133c389e48817c6bd378b62838ea47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# 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

[<img src="https://user-images.githubusercontent.com/1711539/58105231-cf306900-7bee-11e9-83d8-9f1102e59d29.png" alt="Ferrous Systems" width="300">](https://ferrous-systems.com/)
- [Mozilla](https://www.mozilla.org/en-US/)
- [Embark Studios](https://embark-studios.com/)
- [freiheit.com](https://www.freiheit.com)



## 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

[code completion]: https://rust-analyzer.github.io/manual.html#magic-completions
[imports insertion]: https://rust-analyzer.github.io/manual.html#auto-import
[go to definition]: https://rust-analyzer.github.io/manual.html#go-to-definition
[implementation]: https://rust-analyzer.github.io/manual.html#go-to-implementation
[type definition]: https://rust-analyzer.github.io/manual.html#go-to-type-definition
[find all references]: https://rust-analyzer.github.io/manual.html#find-all-references
[workspace symbol search]: https://rust-analyzer.github.io/manual.html#workspace-symbol
[rename]: https://rust-analyzer.github.io/manual.html#rename
[types and documentation on hover]: https://rust-analyzer.github.io/manual.html#hover
[inlay hints]: https://rust-analyzer.github.io/manual.html#inlay-hints
[semantic syntax highlighting]: https://rust-analyzer.github.io/manual.html#semantic-syntax-highlighting
[assist(code actions)]: https://rust-analyzer.github.io/manual.html#assists-code-actions



[manual]: https://rust-analyzer.github.io/manual.html

## Quick start
1. Install [rustup] the rust toolchain
2. Install the [rust-analyzer extension]

[rustup]: https://rustup.rs
[rust-analyzer extension]: https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer

## 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.