aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/user/readme.adoc37
1 files changed, 23 insertions, 14 deletions
diff --git a/docs/user/readme.adoc b/docs/user/readme.adoc
index abd126340..7898ece0b 100644
--- a/docs/user/readme.adoc
+++ b/docs/user/readme.adoc
@@ -14,9 +14,9 @@
14// Master copy of this document lives in the https://github.com/rust-analyzer/rust-analyzer repository 14// Master copy of this document lives in the https://github.com/rust-analyzer/rust-analyzer repository
15 15
16At its core, rust-analyzer is a *library* for semantic analysis of Rust code as it changes over time. 16At its core, rust-analyzer is a *library* for semantic analysis of Rust code as it changes over time.
17This manual focuses on a specific usage of the library -- the implementation of 17This manual focuses on a specific usage of the library -- running it as part of a server that implements the
18https://microsoft.github.io/language-server-protocol/[Language Server Protocol]. 18https://microsoft.github.io/language-server-protocol/[Language Server Protocol] (LSP).
19LSP allows various code editors, like VS Code, Emacs or Vim, to implement semantic features like completion or goto definition by talking to an external language server process. 19The LSP allows various code editors, like VS Code, Emacs or Vim, to implement semantic features like completion or goto definition by talking to an external language server process.
20 20
21To improve this document, send a pull request against 21To improve this document, send a pull request against
22https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc[this file]. 22https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc[this file].
@@ -26,7 +26,7 @@ https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc
26In theory, one should be able to just install the server binary and have it automatically work with any editor. 26In theory, one should be able to just install the server binary and have it automatically work with any editor.
27We are not there yet, so some editor specific setup is required. 27We are not there yet, so some editor specific setup is required.
28 28
29Additionally, rust-analyzer needs sources of the standard library. 29Additionally, rust-analyzer needs the sources of the standard library.
30If the source code is not present, rust-analyzer will attempt to install it automatically. 30If the source code is not present, rust-analyzer will attempt to install it automatically.
31 31
32To add the sources manually, run the following command: 32To add the sources manually, run the following command:
@@ -38,7 +38,7 @@ $ rustup component add rust-src
38=== VS Code 38=== VS Code
39 39
40This is the best supported editor at the moment. 40This is the best supported editor at the moment.
41rust-analyzer plugin for VS Code is maintained 41The rust-analyzer plugin for VS Code is maintained
42https://github.com/rust-analyzer/rust-analyzer/tree/master/editors/code[in tree]. 42https://github.com/rust-analyzer/rust-analyzer/tree/master/editors/code[in tree].
43 43
44You can install the latest release of the plugin from 44You can install the latest release of the plugin from
@@ -74,7 +74,7 @@ We ship nightly releases for VS Code. To help us out with testing the newest cod
74{ "rust-analyzer.updates.channel": "nightly" } 74{ "rust-analyzer.updates.channel": "nightly" }
75---- 75----
76 76
77You will be prompted to install the `nightly` extension version. Just click `Download now` and from that moment you will get automatic updates each 24 hours. 77You will be prompted to install the `nightly` extension version. Just click `Download now` and from that moment you will get automatic updates every 24 hours.
78 78
79If you don't want to be asked for `Download now` every day when the new nightly version is released add the following to your `settings.json`: 79If you don't want to be asked for `Download now` every day when the new nightly version is released add the following to your `settings.json`:
80[source,json] 80[source,json]
@@ -110,10 +110,10 @@ Here are some useful self-diagnostic commands:
110 110
111=== Language Server Binary 111=== Language Server Binary
112 112
113Other editors generally require `rust-analyzer` binary to be in `$PATH`. 113Other editors generally require the `rust-analyzer` binary to be in `$PATH`.
114You can download the pre-built binary from 114You can download the pre-built binary from the https://github.com/rust-analyzer/rust-analyzer/releases[releases] page. Typically, you then need to rename the binary for your platform, e.g. `rust-analyzer-mac` if you're on Mac OS, to `rust-analzyer` and make it executable in addition to moving it into a directory in your `$PATH`.
115https://github.com/rust-analyzer/rust-analyzer/releases[releases] 115
116page, or you can install it from source using the following command: 116Alternatively, you can install it from source using the following command:
117 117
118[source,bash] 118[source,bash]
119---- 119----
@@ -122,7 +122,7 @@ $ cargo xtask install --server
122 122
123==== Arch Linux 123==== Arch Linux
124 124
125`rust-analyzer` binary can be installed from AUR (Arch User Repository): 125The `rust-analyzer` binary can be installed from AUR (Arch User Repository):
126 126
127- https://aur.archlinux.org/packages/rust-analyzer-bin[`rust-analyzer-bin`] (binary from GitHub releases) 127- https://aur.archlinux.org/packages/rust-analyzer-bin[`rust-analyzer-bin`] (binary from GitHub releases)
128- https://aur.archlinux.org/packages/rust-analyzer[`rust-analyzer`] (built from latest tagged source) 128- https://aur.archlinux.org/packages/rust-analyzer[`rust-analyzer`] (built from latest tagged source)
@@ -183,11 +183,20 @@ Once `neovim/nvim-lsp` is installed, use `+lua require'nvim_lsp'.rust_analyzer.s
183 183
184=== Sublime Text 3 184=== Sublime Text 3
185 185
186Prerequisites: 186Prerequisites: You have installed the <<language-server-binary,`rust-analyzer` binary>>.
187
188You also need the `LSP` package. To install it:
189
1901. If you've never installed a Sublime Text package, install Package Control:
191 * Open the command palette (Win/Linux: `ctrl+shift+p`, Mac: `cmd+shift+p`)
192 * Type `Install Package Control`, press enter
1932. In the command palette, run `Package control: Install package`, and in the list that pops up, type `LSP` and press enter.
194
195Finally, with your Rust project open, in the command palette, run `LSP: Enable Language Server In Project` or `LSP: Enable Language Server Globally`, then select `rust-analyzer` in the list that pops up enable to enable the rust-analyzer LSP. The latter means that rust-analzyer is enabled by default in Rust projects.
187 196
188`LSP` package. 197If it worked, you should see "rust-analzyer, Line X, Column Y" on the left side of the bottom bar, and after waiting a bit, functionality like tooltips on hovering over variables should become available.
189 198
190Invoke the command palette (`ctrl+shift+p`) and type LSP enable to locally/globally enable the rust-analyzer LSP (type LSP enable, then choose either locally or globally, then select rust-analyzer) 199If you get an error saying `No such file or directory: 'rust-analyzer'` even though the binary is on your `$PATH`, there is likely a problem where Sublime doesn't see the same `$PATH` as your shell, see https://github.com/rust-analyzer/rust-analyzer/issues/1811[this issue]. On Unix, if you installed Rust with `rustup`, moving the binary to `$HOME/.cargo/bin` should help.
191 200
192== Usage 201== Usage
193 202