diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/dev/architecture.md | 2 | ||||
-rw-r--r-- | docs/dev/style.md | 7 | ||||
-rw-r--r-- | docs/user/.gitignore | 1 | ||||
-rw-r--r-- | docs/user/manual.adoc | 20 |
4 files changed, 26 insertions, 4 deletions
diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index 3de1b99a5..721c555ab 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md | |||
@@ -428,7 +428,7 @@ Rather than spawning futures or scheduling callbacks (open), the event loop acce | |||
428 | It's easy to see all the things that trigger rust-analyzer processing, together with their performance | 428 | It's easy to see all the things that trigger rust-analyzer processing, together with their performance |
429 | 429 | ||
430 | rust-analyzer includes a simple hierarchical profiler (`hprof`). | 430 | rust-analyzer includes a simple hierarchical profiler (`hprof`). |
431 | It is enabled with `RA_PROFILE='*>50` env var (log all (`*`) actions which take more than `50` ms) and produces output like: | 431 | It is enabled with `RA_PROFILE='*>50'` env var (log all (`*`) actions which take more than `50` ms) and produces output like: |
432 | 432 | ||
433 | ``` | 433 | ``` |
434 | 85ms - handle_completion | 434 | 85ms - handle_completion |
diff --git a/docs/dev/style.md b/docs/dev/style.md index 96dd684b3..84485ea28 100644 --- a/docs/dev/style.md +++ b/docs/dev/style.md | |||
@@ -174,6 +174,13 @@ Instead, explicitly check for `None`, `Err`, etc. | |||
174 | `rust-analyzer` is not a library, we don't need to test for API misuse, and we have to handle any user input without panics. | 174 | `rust-analyzer` is not a library, we don't need to test for API misuse, and we have to handle any user input without panics. |
175 | Panic messages in the logs from the `#[should_panic]` tests are confusing. | 175 | Panic messages in the logs from the `#[should_panic]` tests are confusing. |
176 | 176 | ||
177 | ## `#[ignore]` | ||
178 | |||
179 | Do not `#[ignore]` tests. | ||
180 | If the test currently does not work, assert the wrong behavior and add a fixme explaining why it is wrong. | ||
181 | |||
182 | **Rationale:** noticing when the behavior is fixed, making sure that even the wrong behavior is acceptable (ie, not a panic). | ||
183 | |||
177 | ## Function Preconditions | 184 | ## Function Preconditions |
178 | 185 | ||
179 | Express function preconditions in types and force the caller to provide them (rather than checking in callee): | 186 | Express function preconditions in types and force the caller to provide them (rather than checking in callee): |
diff --git a/docs/user/.gitignore b/docs/user/.gitignore new file mode 100644 index 000000000..c32b1bcec --- /dev/null +++ b/docs/user/.gitignore | |||
@@ -0,0 +1 @@ | |||
manual.html | |||
diff --git a/docs/user/manual.adoc b/docs/user/manual.adoc index 9a8d76700..816e094c2 100644 --- a/docs/user/manual.adoc +++ b/docs/user/manual.adoc | |||
@@ -201,6 +201,15 @@ $ eselect repository enable guru && emaint sync -r guru | |||
201 | $ emerge rust-analyzer-bin | 201 | $ emerge rust-analyzer-bin |
202 | ---- | 202 | ---- |
203 | 203 | ||
204 | ==== macOS | ||
205 | |||
206 | The `rust-analyzer` binary can be installed via https://brew.sh/[Homebrew]. | ||
207 | |||
208 | [source,bash] | ||
209 | ---- | ||
210 | $ brew install rust-analyzer | ||
211 | ---- | ||
212 | |||
204 | === Emacs | 213 | === Emacs |
205 | 214 | ||
206 | Note this excellent https://robert.kra.hn/posts/2021-02-07_rust-with-emacs/[guide] from https://github.com/rksm[@rksm]. | 215 | Note this excellent https://robert.kra.hn/posts/2021-02-07_rust-with-emacs/[guide] from https://github.com/rksm[@rksm]. |
@@ -609,9 +618,14 @@ Here is a **non-exhaustive** list of ways to make rust-analyzer execute arbitrar | |||
609 | * VS Code plugin reads configuration from project directory, and that can be used to override paths to various executables, like `rustfmt` or `rust-analyzer` itself. | 618 | * VS Code plugin reads configuration from project directory, and that can be used to override paths to various executables, like `rustfmt` or `rust-analyzer` itself. |
610 | * rust-analyzer's syntax trees library uses a lot of `unsafe` and hasn't been properly audited for memory safety. | 619 | * rust-analyzer's syntax trees library uses a lot of `unsafe` and hasn't been properly audited for memory safety. |
611 | 620 | ||
612 | rust-analyzer itself doesn't access the network. | 621 | == Privacy |
613 | The VS Code plugin doesn't access the network unless the nightly channel is selected in the settings. | 622 | |
614 | In that case, the plugin uses the GitHub API to check for and download updates. | 623 | The LSP server performs no network access in itself, but runs `cargo metadata` which will update or download the crate registry and the source code of the project dependencies. |
624 | If enabled (the default), build scripts and procedural macros can do anything. | ||
625 | |||
626 | The Code extension automatically connects to GitHub to download updated LSP binaries and, if the nightly channel is selected, to perform update checks using the GitHub API. For `rust-analyzer` developers, using `cargo xtask release` uses the same API to put together the release notes. | ||
627 | |||
628 | Any other editor plugins are not under the control of the `rust-analyzer` developers. For any privacy concerns, you should check with their respective developers. | ||
615 | 629 | ||
616 | == Features | 630 | == Features |
617 | 631 | ||