Skip to content

Commit 49d494c

Browse files
authored
Clarify rust-analyzer binary install
1 parent ef67e0a commit 49d494c

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

docs/user/readme.adoc

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc
2323

2424
== Installation
2525

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 <<rust-analyzer-language-server-binary,`rust-analyzer` binary>> and have it automatically work with any editor.
2727
We are not there yet, so some editor specific setup is required.
2828

2929
Additionally, rust-analyzer needs the sources of the standard library.
@@ -94,7 +94,8 @@ $ git clone https://github.com/rust-analyzer/rust-analyzer.git && cd rust-analyz
9494
$ cargo xtask install
9595
----
9696

97-
You'll need Cargo, nodejs and npm for this.
97+
You'll need Cargo, xtask, nodejs and npm for this.
98+
Cargo-xtask can be found at https://github.com/matklad/cargo-xtask
9899

99100
Note that installing via `xtask install` does not work for VS Code Remote, instead you'll need to install the `.vsix` manually.
100101

@@ -108,18 +109,29 @@ Here are some useful self-diagnostic commands:
108109
* To log all LSP requests, add `"rust-analyzer.trace.server": "verbose"` to the settings and look for `Server Trace` in the panel.
109110
* To enable client-side logging, add `"rust-analyzer.trace.extension": true` to the settings and open the `Console` tab of VS Code developer tools.
110111

111-
=== Language Server Binary
112+
=== rust-analyzer Language Server Binary
112113

113114
Other editors generally require the `rust-analyzer` binary to be in `$PATH`.
114115
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`.
115116

117+
On Linux to install the `rust-analyzer` binary into `~/.cargo/bin` which usually is already added to `$PATH`, this commands could be used
118+
119+
[source,bash]
120+
----
121+
$ curl -L https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-linux -o ~/.cargo/bin/rust-analyzer
122+
$ chmod +x ~/.cargo/bin/rust-analyzer
123+
----
124+
116125
Alternatively, you can install it from source using the following command:
117126

118127
[source,bash]
119128
----
129+
$ git clone https://github.com/rust-analyzer/rust-analyzer.git && cd rust-analyzer
120130
$ cargo xtask install --server
121131
----
122132

133+
Cargo-xtask can be found at https://github.com/matklad/cargo-xtask
134+
123135
If your editor can't find the binary even though the binary is on your `$PATH`, the likely explanation is that it doesn't see the same `$PATH` as the shell, see https://github.com/rust-analyzer/rust-analyzer/issues/1811[this issue]. On Unix, running the editor from a shell or changing the `.desktop` file to set the environment should help.
124136

125137
==== Arch Linux
@@ -139,15 +151,19 @@ $ yay -S rust-analyzer-bin
139151

140152
=== Emacs
141153

142-
Emacs support is maintained https://github.com/emacs-lsp/lsp-mode/blob/master/lsp-rust.el[upstream].
154+
Prerequisites: You have installed the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>>.
143155

144-
1. Install the most recent version of `emacs-lsp` package by following the instructions https://github.com/emacs-lsp/lsp-mode[here].
156+
Emacs support is maintained as part of the https://github.com/emacs-lsp/lsp-mode[Emacs-LSP] package in https://github.com/emacs-lsp/lsp-mode/blob/master/lsp-rust.el[lsp-rust.el].
157+
158+
1. Install the most recent version of `emacs-lsp` package by following the https://github.com/emacs-lsp/lsp-mode[Emacs-LSP instructions].
145159
2. Set `lsp-rust-server` to `'rust-analyzer`.
146160
3. Run `lsp` in a Rust buffer.
147161
4. (Optionally) bind commands like `lsp-rust-analyzer-join-lines`, `lsp-extend-selection` and `lsp-rust-analyzer-expand-macro` to keys.
148162

149163
=== Vim
150164

165+
Prerequisites: You have installed the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>>.
166+
151167
The are several LSP client implementations for vim:
152168

153169
==== coc-rust-analyzer
@@ -205,7 +221,7 @@ Once `neovim/nvim-lsp` is installed, use `+lua require'nvim_lsp'.rust_analyzer.s
205221

206222
=== Sublime Text 3
207223

208-
Prerequisites: You have installed the <<language-server-binary,`rust-analyzer` binary>>.
224+
Prerequisites: You have installed the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>>.
209225

210226
You also need the `LSP` package. To install it:
211227

@@ -218,7 +234,7 @@ Finally, with your Rust project open, in the command palette, run `LSP: Enable L
218234

219235
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.
220236

221-
If you get an error saying `No such file or directory: 'rust-analyzer'`, see the <<language-server-binary,section on installing the language server binary>>.
237+
If you get an error saying `No such file or directory: 'rust-analyzer'`, see the <<rust-analyzer-language-server-binary,`rust-analyzer` binary>> section on installing the language server binary.
222238

223239
== Usage
224240

0 commit comments

Comments
 (0)