aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/dev/architecture.md2
-rw-r--r--docs/dev/style.md7
-rw-r--r--docs/user/.gitignore1
-rw-r--r--docs/user/manual.adoc20
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
428It's easy to see all the things that trigger rust-analyzer processing, together with their performance 428It's easy to see all the things that trigger rust-analyzer processing, together with their performance
429 429
430rust-analyzer includes a simple hierarchical profiler (`hprof`). 430rust-analyzer includes a simple hierarchical profiler (`hprof`).
431It is enabled with `RA_PROFILE='*>50` env var (log all (`*`) actions which take more than `50` ms) and produces output like: 431It 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```
43485ms - handle_completion 43485ms - 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.
175Panic messages in the logs from the `#[should_panic]` tests are confusing. 175Panic messages in the logs from the `#[should_panic]` tests are confusing.
176 176
177## `#[ignore]`
178
179Do not `#[ignore]` tests.
180If 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
179Express function preconditions in types and force the caller to provide them (rather than checking in callee): 186Express 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
206The `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
206Note this excellent https://robert.kra.hn/posts/2021-02-07_rust-with-emacs/[guide] from https://github.com/rksm[@rksm]. 215Note 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
612rust-analyzer itself doesn't access the network. 621== Privacy
613The VS Code plugin doesn't access the network unless the nightly channel is selected in the settings. 622
614In that case, the plugin uses the GitHub API to check for and download updates. 623The 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.
624If enabled (the default), build scripts and procedural macros can do anything.
625
626The 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
628Any 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