aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/dev/architecture.md11
-rw-r--r--docs/dev/lsp-extensions.md20
-rw-r--r--docs/dev/style.md2
-rw-r--r--docs/user/generated_config.adoc324
-rw-r--r--docs/user/manual.adoc2
5 files changed, 284 insertions, 75 deletions
diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md
index ead12616e..fb991133a 100644
--- a/docs/dev/architecture.md
+++ b/docs/dev/architecture.md
@@ -46,7 +46,7 @@ This is *the* entry point, but it front-loads a lot of complexity, so its fine t
46 46
47`crates/rust-analyzer/src/handlers.rs` implements all LSP requests and is a great place to start if you are already familiar with LSP. 47`crates/rust-analyzer/src/handlers.rs` implements all LSP requests and is a great place to start if you are already familiar with LSP.
48 48
49`Analysis` and `AnalysisHost` types define the main API. 49`Analysis` and `AnalysisHost` types define the main API for consumers of IDE services.
50 50
51## Code Map 51## Code Map
52 52
@@ -97,13 +97,13 @@ See [RFC](https://github.com/rust-lang/rfcs/pull/2256) and [./syntax.md](./synta
97 97
98- [rowan](https://github.com/rust-analyzer/rowan) library is used for constructing syntax trees. 98- [rowan](https://github.com/rust-analyzer/rowan) library is used for constructing syntax trees.
99- `ast` provides a type safe API on top of the raw `rowan` tree. 99- `ast` provides a type safe API on top of the raw `rowan` tree.
100- `ungrammar` description of the grammar, which is used to generate `syntax_kinds` and `ast` modules, using `cargo xtask codegen` command. 100- `ungrammar` description of the grammar, which is used to generate `syntax_kinds` and `ast` modules, using `cargo test -p xtask` command.
101 101
102Tests for ra_syntax are mostly data-driven. 102Tests for ra_syntax are mostly data-driven.
103`test_data/parser` contains subdirectories with a bunch of `.rs` (test vectors) and `.txt` files with corresponding syntax trees. 103`test_data/parser` contains subdirectories with a bunch of `.rs` (test vectors) and `.txt` files with corresponding syntax trees.
104During testing, we check `.rs` against `.txt`. 104During testing, we check `.rs` against `.txt`.
105If the `.txt` file is missing, it is created (this is how you update tests). 105If the `.txt` file is missing, it is created (this is how you update tests).
106Additionally, running `cargo xtask codegen` will walk the grammar module and collect all `// test test_name` comments into files inside `test_data/parser/inline` directory. 106Additionally, running the xtask test suite with `cargo test -p xtask` will walk the grammar module and collect all `// test test_name` comments into files inside `test_data/parser/inline` directory.
107 107
108To update test data, run with `UPDATE_EXPECT` variable: 108To update test data, run with `UPDATE_EXPECT` variable:
109 109
@@ -111,7 +111,7 @@ To update test data, run with `UPDATE_EXPECT` variable:
111env UPDATE_EXPECT=1 cargo qt 111env UPDATE_EXPECT=1 cargo qt
112``` 112```
113 113
114After adding a new inline test you need to run `cargo xtest codegen` and also update the test data as described above. 114After adding a new inline test you need to run `cargo test -p xtask` and also update the test data as described above.
115 115
116Note [`api_walkthrough`](https://github.com/rust-analyzer/rust-analyzer/blob/2fb6af89eb794f775de60b82afe56b6f986c2a40/crates/ra_syntax/src/lib.rs#L190-L348) 116Note [`api_walkthrough`](https://github.com/rust-analyzer/rust-analyzer/blob/2fb6af89eb794f775de60b82afe56b6f986c2a40/crates/ra_syntax/src/lib.rs#L190-L348)
117in particular: it shows off various methods of working with syntax tree. 117in particular: it shows off various methods of working with syntax tree.
@@ -308,9 +308,8 @@ This sections talks about the things which are everywhere and nowhere in particu
308### Code generation 308### Code generation
309 309
310Some of the components of this repository are generated through automatic processes. 310Some of the components of this repository are generated through automatic processes.
311`cargo xtask codegen` runs all generation tasks. 311Generated code is updated automatically on `cargo test`.
312Generated code is generally committed to the git repository. 312Generated code is generally committed to the git repository.
313There are tests to check that the generated code is fresh.
314 313
315In particular, we generate: 314In particular, we generate:
316 315
diff --git a/docs/dev/lsp-extensions.md b/docs/dev/lsp-extensions.md
index 164c8482e..dd3ecc18d 100644
--- a/docs/dev/lsp-extensions.md
+++ b/docs/dev/lsp-extensions.md
@@ -39,7 +39,7 @@ If a language client does not know about `rust-analyzer`'s configuration options
39 39
40**Issue:** https://github.com/microsoft/language-server-protocol/issues/724 40**Issue:** https://github.com/microsoft/language-server-protocol/issues/724
41 41
42**Client Capability:** `{ "snippetTextEdit": boolean }` 42**Experimental Client Capability:** `{ "snippetTextEdit": boolean }`
43 43
44If this capability is set, `WorkspaceEdit`s returned from `codeAction` requests might contain `SnippetTextEdit`s instead of usual `TextEdit`s: 44If this capability is set, `WorkspaceEdit`s returned from `codeAction` requests might contain `SnippetTextEdit`s instead of usual `TextEdit`s:
45 45
@@ -72,7 +72,7 @@ At the moment, rust-analyzer guarantees that only a single edit will have `Inser
72 72
73**Issue:** https://github.com/microsoft/language-server-protocol/issues/994 73**Issue:** https://github.com/microsoft/language-server-protocol/issues/994
74 74
75**Client Capability:** `{ "codeActionGroup": boolean }` 75**Experimental Client Capability:** `{ "codeActionGroup": boolean }`
76 76
77If this capability is set, `CodeAction` returned from the server contain an additional field, `group`: 77If this capability is set, `CodeAction` returned from the server contain an additional field, `group`:
78 78
@@ -119,7 +119,7 @@ Invoking code action at this position will yield two code actions for importing
119 119
120**Issue:** https://github.com/microsoft/language-server-protocol/issues/1002 120**Issue:** https://github.com/microsoft/language-server-protocol/issues/1002
121 121
122**Server Capability:** `{ "parentModule": boolean }` 122**Experimental Server Capability:** `{ "parentModule": boolean }`
123 123
124This request is sent from client to server to handle "Goto Parent Module" editor action. 124This request is sent from client to server to handle "Goto Parent Module" editor action.
125 125
@@ -153,7 +153,7 @@ mod foo;
153 153
154**Issue:** https://github.com/microsoft/language-server-protocol/issues/992 154**Issue:** https://github.com/microsoft/language-server-protocol/issues/992
155 155
156**Server Capability:** `{ "joinLines": boolean }` 156**Experimental Server Capability:** `{ "joinLines": boolean }`
157 157
158This request is sent from client to server to handle "Join Lines" editor action. 158This request is sent from client to server to handle "Join Lines" editor action.
159 159
@@ -200,7 +200,7 @@ fn main() {
200 200
201**Issue:** https://github.com/microsoft/language-server-protocol/issues/1001 201**Issue:** https://github.com/microsoft/language-server-protocol/issues/1001
202 202
203**Server Capability:** `{ "onEnter": boolean }` 203**Experimental Server Capability:** `{ "onEnter": boolean }`
204 204
205This request is sent from client to server to handle <kbd>Enter</kbd> keypress. 205This request is sent from client to server to handle <kbd>Enter</kbd> keypress.
206 206
@@ -251,7 +251,7 @@ As proper cursor positioning is raison-d'etat for `onEnter`, it uses `SnippetTex
251 251
252## Structural Search Replace (SSR) 252## Structural Search Replace (SSR)
253 253
254**Server Capability:** `{ "ssr": boolean }` 254**Experimental Server Capability:** `{ "ssr": boolean }`
255 255
256This request is sent from client to server to handle structural search replace -- automated syntax tree based transformation of the source. 256This request is sent from client to server to handle structural search replace -- automated syntax tree based transformation of the source.
257 257
@@ -293,7 +293,7 @@ SSR with query `foo($a, $b) ==>> ($a).foo($b)` will transform, eg `foo(y + 5, z)
293 293
294**Issue:** https://github.com/microsoft/language-server-protocol/issues/999 294**Issue:** https://github.com/microsoft/language-server-protocol/issues/999
295 295
296**Server Capability:** `{ "matchingBrace": boolean }` 296**Experimental Server Capability:** `{ "matchingBrace": boolean }`
297 297
298This request is sent from client to server to handle "Matching Brace" editor action. 298This request is sent from client to server to handle "Matching Brace" editor action.
299 299
@@ -338,7 +338,7 @@ Moreover, it would be cool if editors didn't need to implement even basic langua
338 338
339**Issue:** https://github.com/microsoft/language-server-protocol/issues/944 339**Issue:** https://github.com/microsoft/language-server-protocol/issues/944
340 340
341**Server Capability:** `{ "runnables": { "kinds": string[] } }` 341**Experimental Server Capability:** `{ "runnables": { "kinds": string[] } }`
342 342
343This request is sent from client to server to get the list of things that can be run (tests, binaries, `cargo check -p`). 343This request is sent from client to server to get the list of things that can be run (tests, binaries, `cargo check -p`).
344 344
@@ -421,7 +421,7 @@ Reloads project information (that is, re-executes `cargo metadata`).
421 421
422## Status Notification 422## Status Notification
423 423
424**Client Capability:** `{ "statusNotification": boolean }` 424**Experimental Client Capability:** `{ "statusNotification": boolean }`
425 425
426**Method:** `rust-analyzer/status` 426**Method:** `rust-analyzer/status`
427 427
@@ -519,7 +519,7 @@ interface InlayHint {
519 519
520## Hover Actions 520## Hover Actions
521 521
522**Client Capability:** `{ "hoverActions": boolean }` 522**Experimental Client Capability:** `{ "hoverActions": boolean }`
523 523
524If this capability is set, `Hover` request returned from the server might contain an additional field, `actions`: 524If this capability is set, `Hover` request returned from the server might contain an additional field, `actions`:
525 525
diff --git a/docs/dev/style.md b/docs/dev/style.md
index 93ad98f20..46bd8b9b2 100644
--- a/docs/dev/style.md
+++ b/docs/dev/style.md
@@ -145,7 +145,7 @@ Formatting ensures that you can use your editor's "number of selected characters
145## Marked Tests 145## Marked Tests
146 146
147Use 147Use
148[`mark::hit! / mark::check!`](https://github.com/rust-analyzer/rust-analyzer/blob/71fe719dd5247ed8615641d9303d7ca1aa201c2f/crates/test_utils/src/mark.rs) 148[`cov_mark::hit! / cov_mark::check!`](https://github.com/matklad/cov-mark)
149when testing specific conditions. 149when testing specific conditions.
150Do not place several marks into a single test or condition. 150Do not place several marks into a single test or condition.
151Do not reuse marks between several tests. 151Do not reuse marks between several tests.
diff --git a/docs/user/generated_config.adoc b/docs/user/generated_config.adoc
index 1dbf2a611..042ba2d54 100644
--- a/docs/user/generated_config.adoc
+++ b/docs/user/generated_config.adoc
@@ -1,112 +1,322 @@
1[[rust-analyzer.assist.importMergeBehavior]]rust-analyzer.assist.importMergeBehavior (default: `"full"`):: 1[[rust-analyzer.assist.importMergeBehavior]]rust-analyzer.assist.importMergeBehavior (default: `"full"`)::
2 The strategy to use when inserting new imports or merging imports. 2+
3--
4The strategy to use when inserting new imports or merging imports.
5--
3[[rust-analyzer.assist.importPrefix]]rust-analyzer.assist.importPrefix (default: `"plain"`):: 6[[rust-analyzer.assist.importPrefix]]rust-analyzer.assist.importPrefix (default: `"plain"`)::
4 The path structure for newly inserted paths to use. 7+
8--
9The path structure for newly inserted paths to use.
10--
11[[rust-analyzer.assist.importGroup]]rust-analyzer.assist.importGroup (default: `true`)::
12+
13--
14Group inserted imports by the [following order](https://rust-analyzer.github.io/manual.html#auto-import). Groups are separated by newlines.
15--
5[[rust-analyzer.callInfo.full]]rust-analyzer.callInfo.full (default: `true`):: 16[[rust-analyzer.callInfo.full]]rust-analyzer.callInfo.full (default: `true`)::
6 Show function name and docs in parameter hints. 17+
18--
19Show function name and docs in parameter hints.
20--
7[[rust-analyzer.cargo.autoreload]]rust-analyzer.cargo.autoreload (default: `true`):: 21[[rust-analyzer.cargo.autoreload]]rust-analyzer.cargo.autoreload (default: `true`)::
8 Automatically refresh project info via `cargo metadata` on `Cargo.toml` changes. 22+
23--
24Automatically refresh project info via `cargo metadata` on
25`Cargo.toml` changes.
26--
9[[rust-analyzer.cargo.allFeatures]]rust-analyzer.cargo.allFeatures (default: `false`):: 27[[rust-analyzer.cargo.allFeatures]]rust-analyzer.cargo.allFeatures (default: `false`)::
10 Activate all available features (`--all-features`). 28+
29--
30Activate all available features (`--all-features`).
31--
11[[rust-analyzer.cargo.features]]rust-analyzer.cargo.features (default: `[]`):: 32[[rust-analyzer.cargo.features]]rust-analyzer.cargo.features (default: `[]`)::
12 List of features to activate. 33+
13[[rust-analyzer.cargo.runBuildScripts]]rust-analyzer.cargo.runBuildScripts (default: `false`):: 34--
14 Run build scripts (`build.rs`) for more precise code analysis. 35List of features to activate.
36--
37[[rust-analyzer.cargo.runBuildScripts]]rust-analyzer.cargo.runBuildScripts (default: `true`)::
38+
39--
40Run build scripts (`build.rs`) for more precise code analysis.
41--
15[[rust-analyzer.cargo.noDefaultFeatures]]rust-analyzer.cargo.noDefaultFeatures (default: `false`):: 42[[rust-analyzer.cargo.noDefaultFeatures]]rust-analyzer.cargo.noDefaultFeatures (default: `false`)::
16 Do not activate the `default` feature. 43+
44--
45Do not activate the `default` feature.
46--
17[[rust-analyzer.cargo.target]]rust-analyzer.cargo.target (default: `null`):: 47[[rust-analyzer.cargo.target]]rust-analyzer.cargo.target (default: `null`)::
18 Compilation target (target triple). 48+
49--
50Compilation target (target triple).
51--
19[[rust-analyzer.cargo.noSysroot]]rust-analyzer.cargo.noSysroot (default: `false`):: 52[[rust-analyzer.cargo.noSysroot]]rust-analyzer.cargo.noSysroot (default: `false`)::
20 Internal config for debugging, disables loading of sysroot crates. 53+
54--
55Internal config for debugging, disables loading of sysroot crates.
56--
21[[rust-analyzer.checkOnSave.enable]]rust-analyzer.checkOnSave.enable (default: `true`):: 57[[rust-analyzer.checkOnSave.enable]]rust-analyzer.checkOnSave.enable (default: `true`)::
22 Run specified `cargo check` command for diagnostics on save. 58+
59--
60Run specified `cargo check` command for diagnostics on save.
61--
23[[rust-analyzer.checkOnSave.allFeatures]]rust-analyzer.checkOnSave.allFeatures (default: `null`):: 62[[rust-analyzer.checkOnSave.allFeatures]]rust-analyzer.checkOnSave.allFeatures (default: `null`)::
24 Check with all features (`--all-features`). Defaults to `#rust-analyzer.cargo.allFeatures#`. 63+
64--
65Check with all features (`--all-features`).
66Defaults to `#rust-analyzer.cargo.allFeatures#`.
67--
25[[rust-analyzer.checkOnSave.allTargets]]rust-analyzer.checkOnSave.allTargets (default: `true`):: 68[[rust-analyzer.checkOnSave.allTargets]]rust-analyzer.checkOnSave.allTargets (default: `true`)::
26 Check all targets and tests (`--all-targets`). 69+
70--
71Check all targets and tests (`--all-targets`).
72--
27[[rust-analyzer.checkOnSave.command]]rust-analyzer.checkOnSave.command (default: `"check"`):: 73[[rust-analyzer.checkOnSave.command]]rust-analyzer.checkOnSave.command (default: `"check"`)::
28 Cargo command to use for `cargo check`. 74+
75--
76Cargo command to use for `cargo check`.
77--
29[[rust-analyzer.checkOnSave.noDefaultFeatures]]rust-analyzer.checkOnSave.noDefaultFeatures (default: `null`):: 78[[rust-analyzer.checkOnSave.noDefaultFeatures]]rust-analyzer.checkOnSave.noDefaultFeatures (default: `null`)::
30 Do not activate the `default` feature. 79+
80--
81Do not activate the `default` feature.
82--
31[[rust-analyzer.checkOnSave.target]]rust-analyzer.checkOnSave.target (default: `null`):: 83[[rust-analyzer.checkOnSave.target]]rust-analyzer.checkOnSave.target (default: `null`)::
32 Check for a specific target. Defaults to `#rust-analyzer.cargo.target#`. 84+
85--
86Check for a specific target. Defaults to
87`#rust-analyzer.cargo.target#`.
88--
33[[rust-analyzer.checkOnSave.extraArgs]]rust-analyzer.checkOnSave.extraArgs (default: `[]`):: 89[[rust-analyzer.checkOnSave.extraArgs]]rust-analyzer.checkOnSave.extraArgs (default: `[]`)::
34 Extra arguments for `cargo check`. 90+
91--
92Extra arguments for `cargo check`.
93--
35[[rust-analyzer.checkOnSave.features]]rust-analyzer.checkOnSave.features (default: `null`):: 94[[rust-analyzer.checkOnSave.features]]rust-analyzer.checkOnSave.features (default: `null`)::
36 List of features to activate. Defaults to `#rust-analyzer.cargo.features#`. 95+
96--
97List of features to activate. Defaults to
98`#rust-analyzer.cargo.features#`.
99--
37[[rust-analyzer.checkOnSave.overrideCommand]]rust-analyzer.checkOnSave.overrideCommand (default: `null`):: 100[[rust-analyzer.checkOnSave.overrideCommand]]rust-analyzer.checkOnSave.overrideCommand (default: `null`)::
38 Advanced option, fully override the command rust-analyzer uses for checking. The command should include `--message-format=json` or similar option. 101+
102--
103Advanced option, fully override the command rust-analyzer uses for
104checking. The command should include `--message-format=json` or
105similar option.
106--
39[[rust-analyzer.completion.addCallArgumentSnippets]]rust-analyzer.completion.addCallArgumentSnippets (default: `true`):: 107[[rust-analyzer.completion.addCallArgumentSnippets]]rust-analyzer.completion.addCallArgumentSnippets (default: `true`)::
40 Whether to add argument snippets when completing functions. 108+
109--
110Whether to add argument snippets when completing functions.
111--
41[[rust-analyzer.completion.addCallParenthesis]]rust-analyzer.completion.addCallParenthesis (default: `true`):: 112[[rust-analyzer.completion.addCallParenthesis]]rust-analyzer.completion.addCallParenthesis (default: `true`)::
42 Whether to add parenthesis when completing functions. 113+
114--
115Whether to add parenthesis when completing functions.
116--
43[[rust-analyzer.completion.postfix.enable]]rust-analyzer.completion.postfix.enable (default: `true`):: 117[[rust-analyzer.completion.postfix.enable]]rust-analyzer.completion.postfix.enable (default: `true`)::
44 Whether to show postfix snippets like `dbg`, `if`, `not`, etc. 118+
119--
120Whether to show postfix snippets like `dbg`, `if`, `not`, etc.
121--
45[[rust-analyzer.completion.autoimport.enable]]rust-analyzer.completion.autoimport.enable (default: `true`):: 122[[rust-analyzer.completion.autoimport.enable]]rust-analyzer.completion.autoimport.enable (default: `true`)::
46 Toggles the additional completions that automatically add imports when completed. Note that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled. 123+
124--
125Toggles the additional completions that automatically add imports when completed.
126Note that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled.
127--
47[[rust-analyzer.diagnostics.enable]]rust-analyzer.diagnostics.enable (default: `true`):: 128[[rust-analyzer.diagnostics.enable]]rust-analyzer.diagnostics.enable (default: `true`)::
48 Whether to show native rust-analyzer diagnostics. 129+
130--
131Whether to show native rust-analyzer diagnostics.
132--
49[[rust-analyzer.diagnostics.enableExperimental]]rust-analyzer.diagnostics.enableExperimental (default: `true`):: 133[[rust-analyzer.diagnostics.enableExperimental]]rust-analyzer.diagnostics.enableExperimental (default: `true`)::
50 Whether to show experimental rust-analyzer diagnostics that might have more false positives than usual. 134+
135--
136Whether to show experimental rust-analyzer diagnostics that might
137have more false positives than usual.
138--
51[[rust-analyzer.diagnostics.disabled]]rust-analyzer.diagnostics.disabled (default: `[]`):: 139[[rust-analyzer.diagnostics.disabled]]rust-analyzer.diagnostics.disabled (default: `[]`)::
52 List of rust-analyzer diagnostics to disable. 140+
141--
142List of rust-analyzer diagnostics to disable.
143--
53[[rust-analyzer.diagnostics.warningsAsHint]]rust-analyzer.diagnostics.warningsAsHint (default: `[]`):: 144[[rust-analyzer.diagnostics.warningsAsHint]]rust-analyzer.diagnostics.warningsAsHint (default: `[]`)::
54 List of warnings that should be displayed with info severity.\n\nThe warnings will be indicated by a blue squiggly underline in code and a blue icon in the `Problems Panel`. 145+
146--
147List of warnings that should be displayed with info severity.
148
149The warnings will be indicated by a blue squiggly underline in code
150and a blue icon in the `Problems Panel`.
151--
55[[rust-analyzer.diagnostics.warningsAsInfo]]rust-analyzer.diagnostics.warningsAsInfo (default: `[]`):: 152[[rust-analyzer.diagnostics.warningsAsInfo]]rust-analyzer.diagnostics.warningsAsInfo (default: `[]`)::
56 List of warnings that should be displayed with hint severity.\n\nThe warnings will be indicated by faded text or three dots in code and will not show up in the `Problems Panel`. 153+
154--
155List of warnings that should be displayed with hint severity.
156
157The warnings will be indicated by faded text or three dots in code
158and will not show up in the `Problems Panel`.
159--
57[[rust-analyzer.files.watcher]]rust-analyzer.files.watcher (default: `"client"`):: 160[[rust-analyzer.files.watcher]]rust-analyzer.files.watcher (default: `"client"`)::
58 Controls file watching implementation. 161+
162--
163Controls file watching implementation.
164--
59[[rust-analyzer.files.excludeDirs]]rust-analyzer.files.excludeDirs (default: `[]`):: 165[[rust-analyzer.files.excludeDirs]]rust-analyzer.files.excludeDirs (default: `[]`)::
60 These directories will be ignored by rust-analyzer. 166+
167--
168These directories will be ignored by rust-analyzer.
169--
61[[rust-analyzer.hoverActions.debug]]rust-analyzer.hoverActions.debug (default: `true`):: 170[[rust-analyzer.hoverActions.debug]]rust-analyzer.hoverActions.debug (default: `true`)::
62 Whether to show `Debug` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set. 171+
172--
173Whether to show `Debug` action. Only applies when
174`#rust-analyzer.hoverActions.enable#` is set.
175--
63[[rust-analyzer.hoverActions.enable]]rust-analyzer.hoverActions.enable (default: `true`):: 176[[rust-analyzer.hoverActions.enable]]rust-analyzer.hoverActions.enable (default: `true`)::
64 Whether to show HoverActions in Rust files. 177+
178--
179Whether to show HoverActions in Rust files.
180--
65[[rust-analyzer.hoverActions.gotoTypeDef]]rust-analyzer.hoverActions.gotoTypeDef (default: `true`):: 181[[rust-analyzer.hoverActions.gotoTypeDef]]rust-analyzer.hoverActions.gotoTypeDef (default: `true`)::
66 Whether to show `Go to Type Definition` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set. 182+
183--
184Whether to show `Go to Type Definition` action. Only applies when
185`#rust-analyzer.hoverActions.enable#` is set.
186--
67[[rust-analyzer.hoverActions.implementations]]rust-analyzer.hoverActions.implementations (default: `true`):: 187[[rust-analyzer.hoverActions.implementations]]rust-analyzer.hoverActions.implementations (default: `true`)::
68 Whether to show `Implementations` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set. 188+
189--
190Whether to show `Implementations` action. Only applies when
191`#rust-analyzer.hoverActions.enable#` is set.
192--
69[[rust-analyzer.hoverActions.run]]rust-analyzer.hoverActions.run (default: `true`):: 193[[rust-analyzer.hoverActions.run]]rust-analyzer.hoverActions.run (default: `true`)::
70 Whether to show `Run` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set. 194+
195--
196Whether to show `Run` action. Only applies when
197`#rust-analyzer.hoverActions.enable#` is set.
198--
71[[rust-analyzer.hoverActions.linksInHover]]rust-analyzer.hoverActions.linksInHover (default: `true`):: 199[[rust-analyzer.hoverActions.linksInHover]]rust-analyzer.hoverActions.linksInHover (default: `true`)::
72 Use markdown syntax for links in hover. 200+
201--
202Use markdown syntax for links in hover.
203--
73[[rust-analyzer.inlayHints.chainingHints]]rust-analyzer.inlayHints.chainingHints (default: `true`):: 204[[rust-analyzer.inlayHints.chainingHints]]rust-analyzer.inlayHints.chainingHints (default: `true`)::
74 Whether to show inlay type hints for method chains. 205+
206--
207Whether to show inlay type hints for method chains.
208--
75[[rust-analyzer.inlayHints.maxLength]]rust-analyzer.inlayHints.maxLength (default: `null`):: 209[[rust-analyzer.inlayHints.maxLength]]rust-analyzer.inlayHints.maxLength (default: `null`)::
76 Maximum length for inlay hints. Default is unlimited. 210+
211--
212Maximum length for inlay hints. Default is unlimited.
213--
77[[rust-analyzer.inlayHints.parameterHints]]rust-analyzer.inlayHints.parameterHints (default: `true`):: 214[[rust-analyzer.inlayHints.parameterHints]]rust-analyzer.inlayHints.parameterHints (default: `true`)::
78 Whether to show function parameter name inlay hints at the call site. 215+
216--
217Whether to show function parameter name inlay hints at the call
218site.
219--
79[[rust-analyzer.inlayHints.typeHints]]rust-analyzer.inlayHints.typeHints (default: `true`):: 220[[rust-analyzer.inlayHints.typeHints]]rust-analyzer.inlayHints.typeHints (default: `true`)::
80 Whether to show inlay type hints for variables. 221+
222--
223Whether to show inlay type hints for variables.
224--
81[[rust-analyzer.lens.debug]]rust-analyzer.lens.debug (default: `true`):: 225[[rust-analyzer.lens.debug]]rust-analyzer.lens.debug (default: `true`)::
82 Whether to show `Debug` lens. Only applies when `#rust-analyzer.lens.enable#` is set. 226+
227--
228Whether to show `Debug` lens. Only applies when
229`#rust-analyzer.lens.enable#` is set.
230--
83[[rust-analyzer.lens.enable]]rust-analyzer.lens.enable (default: `true`):: 231[[rust-analyzer.lens.enable]]rust-analyzer.lens.enable (default: `true`)::
84 Whether to show CodeLens in Rust files. 232+
233--
234Whether to show CodeLens in Rust files.
235--
85[[rust-analyzer.lens.implementations]]rust-analyzer.lens.implementations (default: `true`):: 236[[rust-analyzer.lens.implementations]]rust-analyzer.lens.implementations (default: `true`)::
86 Whether to show `Implementations` lens. Only applies when `#rust-analyzer.lens.enable#` is set. 237+
238--
239Whether to show `Implementations` lens. Only applies when
240`#rust-analyzer.lens.enable#` is set.
241--
87[[rust-analyzer.lens.run]]rust-analyzer.lens.run (default: `true`):: 242[[rust-analyzer.lens.run]]rust-analyzer.lens.run (default: `true`)::
88 Whether to show `Run` lens. Only applies when `#rust-analyzer.lens.enable#` is set. 243+
244--
245Whether to show `Run` lens. Only applies when
246`#rust-analyzer.lens.enable#` is set.
247--
89[[rust-analyzer.lens.methodReferences]]rust-analyzer.lens.methodReferences (default: `false`):: 248[[rust-analyzer.lens.methodReferences]]rust-analyzer.lens.methodReferences (default: `false`)::
90 Whether to show `Method References` lens. Only applies when `#rust-analyzer.lens.enable#` is set. 249+
250--
251Whether to show `Method References` lens. Only applies when
252`#rust-analyzer.lens.enable#` is set.
253--
91[[rust-analyzer.lens.references]]rust-analyzer.lens.references (default: `false`):: 254[[rust-analyzer.lens.references]]rust-analyzer.lens.references (default: `false`)::
92 Whether to show `References` lens. Only applies when `#rust-analyzer.lens.enable#` is set. 255+
256--
257Whether to show `References` lens. Only applies when
258`#rust-analyzer.lens.enable#` is set.
259--
93[[rust-analyzer.linkedProjects]]rust-analyzer.linkedProjects (default: `[]`):: 260[[rust-analyzer.linkedProjects]]rust-analyzer.linkedProjects (default: `[]`)::
94 Disable project auto-discovery in favor of explicitly specified set of projects.\n\nElements must be paths pointing to `Cargo.toml`, `rust-project.json`, or JSON objects in `rust-project.json` format. 261+
262--
263Disable project auto-discovery in favor of explicitly specified set
264of projects.
265
266Elements must be paths pointing to `Cargo.toml`,
267`rust-project.json`, or JSON objects in `rust-project.json` format.
268--
95[[rust-analyzer.lruCapacity]]rust-analyzer.lruCapacity (default: `null`):: 269[[rust-analyzer.lruCapacity]]rust-analyzer.lruCapacity (default: `null`)::
96 Number of syntax trees rust-analyzer keeps in memory. Defaults to 128. 270+
271--
272Number of syntax trees rust-analyzer keeps in memory. Defaults to 128.
273--
97[[rust-analyzer.notifications.cargoTomlNotFound]]rust-analyzer.notifications.cargoTomlNotFound (default: `true`):: 274[[rust-analyzer.notifications.cargoTomlNotFound]]rust-analyzer.notifications.cargoTomlNotFound (default: `true`)::
98 Whether to show `can't find Cargo.toml` error message. 275+
276--
277Whether to show `can't find Cargo.toml` error message.
278--
99[[rust-analyzer.procMacro.enable]]rust-analyzer.procMacro.enable (default: `false`):: 279[[rust-analyzer.procMacro.enable]]rust-analyzer.procMacro.enable (default: `false`)::
100 Enable support for procedural macros, implies `#rust-analyzer.cargo.runBuildScripts#`. 280+
281--
282Enable support for procedural macros, implies `#rust-analyzer.cargo.runBuildScripts#`.
283--
101[[rust-analyzer.procMacro.server]]rust-analyzer.procMacro.server (default: `null`):: 284[[rust-analyzer.procMacro.server]]rust-analyzer.procMacro.server (default: `null`)::
102 Internal config, path to proc-macro server executable (typically, this is rust-analyzer itself, but we override this in tests). 285+
286--
287Internal config, path to proc-macro server executable (typically,
288this is rust-analyzer itself, but we override this in tests).
289--
103[[rust-analyzer.runnables.overrideCargo]]rust-analyzer.runnables.overrideCargo (default: `null`):: 290[[rust-analyzer.runnables.overrideCargo]]rust-analyzer.runnables.overrideCargo (default: `null`)::
104 Command to be executed instead of 'cargo' for runnables. 291+
292--
293Command to be executed instead of 'cargo' for runnables.
294--
105[[rust-analyzer.runnables.cargoExtraArgs]]rust-analyzer.runnables.cargoExtraArgs (default: `[]`):: 295[[rust-analyzer.runnables.cargoExtraArgs]]rust-analyzer.runnables.cargoExtraArgs (default: `[]`)::
106 Additional arguments to be passed to cargo for runnables such as tests or binaries.\nFor example, it may be `--release`. 296+
297--
298Additional arguments to be passed to cargo for runnables such as
299tests or binaries. For example, it may be `--release`.
300--
107[[rust-analyzer.rustcSource]]rust-analyzer.rustcSource (default: `null`):: 301[[rust-analyzer.rustcSource]]rust-analyzer.rustcSource (default: `null`)::
108 Path to the rust compiler sources, for usage in rustc_private projects, or "discover" to try to automatically find it. 302+
303--
304Path to the Cargo.toml of the rust compiler workspace, for usage in rustc_private
305projects, or "discover" to try to automatically find it.
306
307Any project which uses rust-analyzer with the rustcPrivate
308crates must set `[package.metadata.rust-analyzer] rustc_private=true` to use it.
309
310This option is not reloaded automatically; you must restart rust-analyzer for it to take effect.
311--
109[[rust-analyzer.rustfmt.extraArgs]]rust-analyzer.rustfmt.extraArgs (default: `[]`):: 312[[rust-analyzer.rustfmt.extraArgs]]rust-analyzer.rustfmt.extraArgs (default: `[]`)::
110 Additional arguments to `rustfmt`. 313+
314--
315Additional arguments to `rustfmt`.
316--
111[[rust-analyzer.rustfmt.overrideCommand]]rust-analyzer.rustfmt.overrideCommand (default: `null`):: 317[[rust-analyzer.rustfmt.overrideCommand]]rust-analyzer.rustfmt.overrideCommand (default: `null`)::
112 Advanced option, fully override the command rust-analyzer uses for formatting. 318+
319--
320Advanced option, fully override the command rust-analyzer uses for
321formatting.
322--
diff --git a/docs/user/manual.adoc b/docs/user/manual.adoc
index 4f2217546..f4c37353c 100644
--- a/docs/user/manual.adoc
+++ b/docs/user/manual.adoc
@@ -19,7 +19,7 @@ The LSP allows various code editors, like VS Code, Emacs or Vim, to implement se
19To improve this document, send a pull request: + 19To improve this document, send a pull request: +
20https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/manual.adoc[https://github.com/rust-analyzer/.../manual.adoc] 20https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/manual.adoc[https://github.com/rust-analyzer/.../manual.adoc]
21 21
22The manual is written in https://asciidoc.org[AsciiDoc] and includes some extra files which are generated from the source code. Run `cargo test` and `cargo xtask codegen` to create these and then `asciidoctor manual.adoc` to create an HTML copy. 22The manual is written in https://asciidoc.org[AsciiDoc] and includes some extra files which are generated from the source code. Run `cargo test` and `cargo test -p xtask` to create these and then `asciidoctor manual.adoc` to create an HTML copy.
23 23
24==== 24====
25 25