aboutsummaryrefslogtreecommitdiff
path: root/docs/user/readme.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/user/readme.adoc')
-rw-r--r--docs/user/readme.adoc19
1 files changed, 9 insertions, 10 deletions
diff --git a/docs/user/readme.adoc b/docs/user/readme.adoc
index 74fda0abe..f1386a8f9 100644
--- a/docs/user/readme.adoc
+++ b/docs/user/readme.adoc
@@ -6,10 +6,10 @@
6 6
7// Master copy of this document lives in the https://github.com/rust-analyzer/rust-analyzer repository 7// Master copy of this document lives in the https://github.com/rust-analyzer/rust-analyzer repository
8 8
9At it's core, rust-analyzer is a *library* for semantic analysis of the Rust code as it changes over time. 9At its core, rust-analyzer is a *library* for semantic analysis of Rust code as it changes over time.
10This manual focuses on a specific usage of the library -- the implementation of 10This manual focuses on a specific usage of the library -- the implementation of
11https://microsoft.github.io/language-server-protocol/[Language Server Protocol]. 11https://microsoft.github.io/language-server-protocol/[Language Server Protocol].
12LSP allows various code editors, like VS Code, Emacs or Vim, to implement semantic feature like completion or goto definition by talking to an external language server process. 12LSP 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.
13 13
14To improve this document, send a pull request against 14To improve this document, send a pull request against
15https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc[this file]. 15https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc[this file].
@@ -36,10 +36,9 @@ https://github.com/rust-analyzer/rust-analyzer/tree/master/editors/code[in tree]
36 36
37You can install the latest release of the plugin from 37You can install the latest release of the plugin from
38https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer[the marketplace]. 38https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer[the marketplace].
39By default, the plugin will download the matching version of the server as well. 39By default, the plugin will prompt you to download the matching version of the server as well:
40 40
41// FIXME: update the image (its text has changed) 41image::https://user-images.githubusercontent.com/9021944/75067008-17502500-54ba-11ea-835a-f92aac50e866.png[]
42image::https://user-images.githubusercontent.com/36276403/74103174-a40df100-4b52-11ea-81f4-372c70797924.png[]
43 42
44The server binary is stored in `~/.config/Code/User/globalStorage/matklad.rust-analyzer`. 43The server binary is stored in `~/.config/Code/User/globalStorage/matklad.rust-analyzer`.
45 44
@@ -60,7 +59,7 @@ $ cargo xtask install
60---- 59----
61 60
62You'll need Cargo, nodejs and npm for this. 61You'll need Cargo, nodejs and npm for this.
63To make VS Code use the freshly build server, add this to the settings: 62To make VS Code use the freshly built server, add this to the settings:
64 63
65[source,json] 64[source,json]
66---- 65----
@@ -72,7 +71,7 @@ Note that installing via `xtask install` does not work for VS Code Remote, inste
72=== Language Server Binary 71=== Language Server Binary
73 72
74Other editors generally require `rust-analyzer` binary to be in `$PATH`. 73Other editors generally require `rust-analyzer` binary to be in `$PATH`.
75You can download pre-build binary from 74You can download the pre-built binary from
76https://github.com/rust-analyzer/rust-analyzer/releases[releases] 75https://github.com/rust-analyzer/rust-analyzer/releases[releases]
77page, or you can install it from source using the following command: 76page, or you can install it from source using the following command:
78 77
@@ -85,7 +84,7 @@ $ cargo xtask install --server
85 84
86Emacs support is maintained https://github.com/emacs-lsp/lsp-mode/blob/master/lsp-rust.el[upstream]. 85Emacs support is maintained https://github.com/emacs-lsp/lsp-mode/blob/master/lsp-rust.el[upstream].
87 86
881. Install recent version of `emacs-lsp` package by following the instructions https://github.com/emacs-lsp/lsp-mode[here]. 871. Install the most recent version of `emacs-lsp` package by following the instructions https://github.com/emacs-lsp/lsp-mode[here].
892. Set `lsp-rust-server` to `'rust-analyzer`. 882. Set `lsp-rust-server` to `'rust-analyzer`.
903. Run `lsp` in a Rust buffer. 893. Run `lsp` in a Rust buffer.
914. (Optionally) bind commands like `lsp-rust-analyzer-join-lines`, `lsp-extend-selection` and `lsp-rust-analyzer-expand-macro` to keys. 904. (Optionally) bind commands like `lsp-rust-analyzer-join-lines`, `lsp-extend-selection` and `lsp-rust-analyzer-expand-macro` to keys.
@@ -112,7 +111,7 @@ The are several LSP client implementations for vim:
112 https://github.com/autozimu/LanguageClient-neovim[here] 111 https://github.com/autozimu/LanguageClient-neovim[here]
113 * The github project wiki has extra tips on configuration 112 * The github project wiki has extra tips on configuration
114 113
1152. Configure by adding this to your vim/neovim config file (replacing the existing rust specific line if it exists): 1142. Configure by adding this to your vim/neovim config file (replacing the existing Rust-specific line if it exists):
116+ 115+
117[source,vim] 116[source,vim]
118---- 117----
@@ -123,7 +122,7 @@ let g:LanguageClient_serverCommands = {
123 122
124==== nvim-lsp 123==== nvim-lsp
125 124
126NeoVim 0.5 (not yet released) has built in language server support. 125NeoVim 0.5 (not yet released) has built-in language server support.
127For a quick start configuration of rust-analyzer, use https://github.com/neovim/nvim-lsp#rust_analyzer[neovim/nvim-lsp]. 126For a quick start configuration of rust-analyzer, use https://github.com/neovim/nvim-lsp#rust_analyzer[neovim/nvim-lsp].
128Once `neovim/nvim-lsp` is installed, use `lua require'nvim_lsp'.rust_analyzer.setup({})` in your `init.vim`. 127Once `neovim/nvim-lsp` is installed, use `lua require'nvim_lsp'.rust_analyzer.setup({})` in your `init.vim`.
129 128