diff options
Diffstat (limited to 'docs/user/readme.adoc')
-rw-r--r-- | docs/user/readme.adoc | 19 |
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 | ||
9 | At it's core, rust-analyzer is a *library* for semantic analysis of the Rust code as it changes over time. | 9 | At its core, rust-analyzer is a *library* for semantic analysis of Rust code as it changes over time. |
10 | This manual focuses on a specific usage of the library -- the implementation of | 10 | This manual focuses on a specific usage of the library -- the implementation of |
11 | https://microsoft.github.io/language-server-protocol/[Language Server Protocol]. | 11 | https://microsoft.github.io/language-server-protocol/[Language Server Protocol]. |
12 | LSP 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. | 12 | 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. |
13 | 13 | ||
14 | To improve this document, send a pull request against | 14 | To improve this document, send a pull request against |
15 | https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/readme.adoc[this file]. | 15 | https://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 | ||
37 | You can install the latest release of the plugin from | 37 | You can install the latest release of the plugin from |
38 | https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer[the marketplace]. | 38 | https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer[the marketplace]. |
39 | By default, the plugin will download the matching version of the server as well. | 39 | By 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) | 41 | image::https://user-images.githubusercontent.com/9021944/75067008-17502500-54ba-11ea-835a-f92aac50e866.png[] |
42 | image::https://user-images.githubusercontent.com/36276403/74103174-a40df100-4b52-11ea-81f4-372c70797924.png[] | ||
43 | 42 | ||
44 | The server binary is stored in `~/.config/Code/User/globalStorage/matklad.rust-analyzer`. | 43 | The 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 | ||
62 | You'll need Cargo, nodejs and npm for this. | 61 | You'll need Cargo, nodejs and npm for this. |
63 | To make VS Code use the freshly build server, add this to the settings: | 62 | To 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 | ||
74 | Other editors generally require `rust-analyzer` binary to be in `$PATH`. | 73 | Other editors generally require `rust-analyzer` binary to be in `$PATH`. |
75 | You can download pre-build binary from | 74 | You can download the pre-built binary from |
76 | https://github.com/rust-analyzer/rust-analyzer/releases[releases] | 75 | https://github.com/rust-analyzer/rust-analyzer/releases[releases] |
77 | page, or you can install it from source using the following command: | 76 | page, or you can install it from source using the following command: |
78 | 77 | ||
@@ -85,7 +84,7 @@ $ cargo xtask install --server | |||
85 | 84 | ||
86 | Emacs support is maintained https://github.com/emacs-lsp/lsp-mode/blob/master/lsp-rust.el[upstream]. | 85 | Emacs support is maintained https://github.com/emacs-lsp/lsp-mode/blob/master/lsp-rust.el[upstream]. |
87 | 86 | ||
88 | 1. Install recent version of `emacs-lsp` package by following the instructions https://github.com/emacs-lsp/lsp-mode[here]. | 87 | 1. Install the most recent version of `emacs-lsp` package by following the instructions https://github.com/emacs-lsp/lsp-mode[here]. |
89 | 2. Set `lsp-rust-server` to `'rust-analyzer`. | 88 | 2. Set `lsp-rust-server` to `'rust-analyzer`. |
90 | 3. Run `lsp` in a Rust buffer. | 89 | 3. Run `lsp` in a Rust buffer. |
91 | 4. (Optionally) bind commands like `lsp-rust-analyzer-join-lines`, `lsp-extend-selection` and `lsp-rust-analyzer-expand-macro` to keys. | 90 | 4. (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 | ||
115 | 2. Configure by adding this to your vim/neovim config file (replacing the existing rust specific line if it exists): | 114 | 2. 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 | ||
126 | NeoVim 0.5 (not yet released) has built in language server support. | 125 | NeoVim 0.5 (not yet released) has built-in language server support. |
127 | For a quick start configuration of rust-analyzer, use https://github.com/neovim/nvim-lsp#rust_analyzer[neovim/nvim-lsp]. | 126 | For a quick start configuration of rust-analyzer, use https://github.com/neovim/nvim-lsp#rust_analyzer[neovim/nvim-lsp]. |
128 | Once `neovim/nvim-lsp` is installed, use `lua require'nvim_lsp'.rust_analyzer.setup({})` in your `init.vim`. | 127 | Once `neovim/nvim-lsp` is installed, use `lua require'nvim_lsp'.rust_analyzer.setup({})` in your `init.vim`. |
129 | 128 | ||