diff options
-rw-r--r-- | docs/user/readme.adoc | 37 |
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 | ||
16 | At its core, rust-analyzer is a *library* for semantic analysis of Rust code as it changes over time. | 16 | At its core, rust-analyzer is a *library* for semantic analysis of Rust code as it changes over time. |
17 | This manual focuses on a specific usage of the library -- the implementation of | 17 | This manual focuses on a specific usage of the library -- running it as part of a server that implements the |
18 | https://microsoft.github.io/language-server-protocol/[Language Server Protocol]. | 18 | https://microsoft.github.io/language-server-protocol/[Language Server Protocol] (LSP). |
19 | 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. | 19 | The 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 | ||
21 | To improve this document, send a pull request against | 21 | To improve this document, send a pull request against |
22 | https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc[this file]. | 22 | https://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 | |||
26 | In theory, one should be able to just install the server binary and have it automatically work with any editor. | 26 | In theory, one should be able to just install the server binary and have it automatically work with any editor. |
27 | We are not there yet, so some editor specific setup is required. | 27 | We are not there yet, so some editor specific setup is required. |
28 | 28 | ||
29 | Additionally, rust-analyzer needs sources of the standard library. | 29 | Additionally, rust-analyzer needs the sources of the standard library. |
30 | If the source code is not present, rust-analyzer will attempt to install it automatically. | 30 | If the source code is not present, rust-analyzer will attempt to install it automatically. |
31 | 31 | ||
32 | To add the sources manually, run the following command: | 32 | To 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 | ||
40 | This is the best supported editor at the moment. | 40 | This is the best supported editor at the moment. |
41 | rust-analyzer plugin for VS Code is maintained | 41 | The rust-analyzer plugin for VS Code is maintained |
42 | https://github.com/rust-analyzer/rust-analyzer/tree/master/editors/code[in tree]. | 42 | https://github.com/rust-analyzer/rust-analyzer/tree/master/editors/code[in tree]. |
43 | 43 | ||
44 | You can install the latest release of the plugin from | 44 | You 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 | ||
77 | You 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. | 77 | You 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 | ||
79 | If 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`: | 79 | If 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 | ||
113 | Other editors generally require `rust-analyzer` binary to be in `$PATH`. | 113 | Other editors generally require the `rust-analyzer` binary to be in `$PATH`. |
114 | You can download the pre-built binary from | 114 | You 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`. |
115 | https://github.com/rust-analyzer/rust-analyzer/releases[releases] | 115 | |
116 | page, or you can install it from source using the following command: | 116 | Alternatively, 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): | 125 | The `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 | ||
186 | Prerequisites: | 186 | Prerequisites: You have installed the <<language-server-binary,`rust-analyzer` binary>>. |
187 | |||
188 | You also need the `LSP` package. To install it: | ||
189 | |||
190 | 1. 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 | ||
193 | 2. In the command palette, run `Package control: Install package`, and in the list that pops up, type `LSP` and press enter. | ||
194 | |||
195 | Finally, 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. | 197 | If 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 | ||
190 | Invoke 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) | 199 | If 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 | ||