Commit graph

516 commits

Author SHA1 Message Date
Isobel Redelmeier b116fe9be0
Fix: Handle empty checkOnSave/target values
This fixes a regression introduced by #13290, in which failing to set
`checkOnSave/target` (or `checkOnSave/targets`) would lead to an invalid
config.
2022-11-21 16:40:32 -05:00
Max Gautier ebbc5492f5 Fix typo on 'configuration' anchor
https://rust-analyzer.github.io/manual.html#_configuration lands you at
the start of the page, while
https://rust-analyzer.github.io/manual.html#configuration correctly puts
you at the correct anchor
2022-11-20 12:47:28 +01:00
Alexis (Poliorcetics) Bourget 0d4737adb6 feat: Support passing multiple targets to cargo (for Rust 1.64.0+) 2022-11-11 14:36:07 +01:00
bors b0e56ef5e8 Auto merge of #13545 - Veykril:adjustment-hints, r=Veykril
Generalize reborrow hints as adjustment hints

Like reborrow hints, these are still mainly useful for teaching/learning

![image](https://user-images.githubusercontent.com/3757771/200073606-b5cd3b95-a9ad-454d-a3c4-d4d89bf45928.png)
2022-11-07 14:38:59 +00:00
Laurențiu Nicola cff7ab1308 Fix typos 2022-11-07 12:54:12 +02:00
Rongjian Zhang 935eb3f634
docs: fix adoc links 2022-11-06 01:33:57 +08:00
Lukas Wirth d841ad116a Fix up adjustment hints configurations 2022-11-04 22:59:07 +01:00
Rongjian Zhang 08c2b4557b docs: add crates section to the manual 2022-11-03 13:17:06 +08:00
bors af1f48deab Auto merge of #13359 - feniljain:feat-must-use-option, r=Veykril
feat: add config for inserting must_use in `generate_enum_as_method`

Should fix #13312

Didn't add a test because I was not sure on how to add test for a specific configuration option, tried to look for the usages for other `AssistConfig` variants but couldn't find any in `tests`. If there is a way to test this, do point me towards it.

I tried to extract the formatting string as a common `template_string` and only have if-else for that, but it didn't compile :(

Also it seems these tests are failing:

```
test config::tests::generate_config_documentation ... FAILED
test config::tests::generate_package_json_config ... FAILED
```

Can you also point me to how to correct these 😅  ( I guess there is some command to automatically generate these? )
2022-11-02 10:50:08 +00:00
feniljain 4bf9b9b003 refactor: remove repetitive string interpolation and doc changes 2022-10-24 21:12:31 +05:30
feniljain c4bdb8e516 feat: add config for inserting must_use in generate_enum_as_method 2022-10-24 13:18:24 +05:30
Lukas Wirth 0f8904ec9c Implement invocation location config 2022-10-22 23:33:03 +02:00
Lukas Wirth 46732369f4 Remove simplistic interpolation for manifest-path 2022-10-19 23:53:00 +02:00
Lukas Wirth 7db50294a3 {manifest-path} interpolation 2022-10-19 23:21:34 +02:00
Lukas Wirth 4a287d2525 Implement invocation strategy config for checkOnSave
Note that due to how cargo works, none of the modes currently work for r-a
2022-10-19 23:21:34 +02:00
Lukas Wirth 7e2c41dbd6 Implement invocation strategy config for build scripts 2022-10-19 23:21:29 +02:00
dvdsk 76be44eed5
Update manual now stable can be installed with rustup
`rustup` can now install `rust-analyzer` for the stable tool-chain. This commit removes the note that `rustup` can only install for the nightly branch and adjusts the command.

I also added a note on how to find the path to the `rust-analyzer` binary when installed using `rustup`, and suggestions on how to work around it not being placed in `~/.cargo/bin`.

I thought it would be ideal to point everyone to use `rustup run stable rust-analyzer` to start `rust-analyzer`. That would make it trivial to switch to nightly however I could not get this to work in `nvim` therefore I left it as a suggestion at the end.
2022-10-10 19:00:47 +02:00
Lukas Wirth 5424c51158 Add config for supplying sysroot path 2022-10-01 21:17:06 +02:00
Lukas Wirth a6c067c06d Simplify 2022-09-19 17:31:08 +02:00
bors 11bf2e7ffb Auto merge of #13058 - dpaoliello:extraenv, r=Veykril
Add a new configuration settings to set env vars when running cargo, rustc, etc. commands: cargo.extraEnv and checkOnSave.extraEnv

It can be extremely useful to be able to set environment variables when rust-analyzer is running various cargo or rustc commands (such as `cargo check`, `cargo --print cfg` or `cargo metadata`): users may want to set custom `RUSTFLAGS`, change `PATH` to use a custom toolchain or set a different `CARGO_HOME`.

There is the existing `server.extraEnv` setting that allows env vars to be set when the rust-analyzer server is launched, but using this as the recommended mechanism to also configure cargo/rust has some drawbacks:
- It convolutes configuring the rust-analyzer server with configuring cargo/rustc (one may want to change the `PATH` for cargo/rustc without affecting the rust-analyzer server).
- The name `server.extraEnv` doesn't indicate that cargo/rustc will be affected but renaming it to `cargo.extraEnv` doesn't indicate that the rust-analyzer server would be affected.
- To make the setting useful, it needs to be dynamically reloaded without requiring that the entire extension is reloaded. It might be possible to do this, but it would require the client communicating to the server what the overwritten env vars were at first launch, which isn't easy to do.

This change adds two new configuration settings: `cargo.extraEnv` and `checkOnSave.extraEnv` that can be used to change the environment for the rust-analyzer server after launch (thus affecting any process that rust-analyzer invokes) and the `cargo check` command respectively. `cargo.extraEnv` supports dynamic changes by keeping track of the pre-change values of environment variables, thus it can undo changes made previously before applying the new configuration (and then requesting a workspace reload).
2022-09-18 17:43:46 +00:00
Daniel Paoliello c407cc554e Add cargo.extraEnv setting 2022-09-13 11:29:14 -07:00
bors dbb8fedf8b Auto merge of #13221 - mdx97:mdx97/annotations-above-whole-item, r=Veykril
Allow configuration of annotation location.

I've added the ability to configure where lens annotations render relevant to the item they describe. Previously, these would render directly above the line the item is declared on. Now, there is the ability to render these annotations above the entire item (including doc comments, and attributes).

The names of the config options are up for debate, I did what seemed best to me but if anyone has better ideas let me know.

This is my first contribution so if I've missed anything please let me know.

Here's a preview of what the new option looks like:

<img width="577" alt="Screen Shot 2022-09-11 at 10 39 51 PM" src="https://user-images.githubusercontent.com/33100798/189570298-b4fcbf9c-ee49-4b79-aae6-1037ae4f26af.png">

closes https://github.com/rust-lang/rust-analyzer/issues/13218
2022-09-13 15:09:53 +00:00
Lukas Wirth a8ecaa1979 Restructure find_path into a separate functions for modules and non-module items
Also renames `prefer_core` imports config to `prefer_no_std` and changes the behavior of no_std path searching by preferring `core` paths `over` alloc
2022-09-13 15:15:27 +02:00
Mathew Horner f57c15f3e9 Address comments and fix build. 2022-09-12 16:34:13 -05:00
bors e38dfe5536 Auto merge of #13186 - enomado:master, r=Veykril
Filter imports on find-all-references

Attempt to #13184
2022-09-12 12:09:57 +00:00
Mathew Horner 8a2803d9ae Allow configuration of annotation location.
Previously, annotations would only appear above the name of an item (function signature, struct declaration, etc).

Now, rust-analyzer can be configured to show annotations either above the name or above the whole item (including doc comments and attributes).
2022-09-11 22:40:33 -05:00
Lukas Wirth 7d19971666 Add config to unconditionally prefer core imports over std
Fixes https://github.com/rust-lang/rust-analyzer/issues/12979
2022-09-09 20:04:56 +02:00
Stanislav f7f4792f4f fixes 2022-09-09 20:58:06 +03:00
Stanislav 773f9b38e3 fix. round 4 2022-09-09 01:19:34 +03:00
Stanislav ab0b64b26c fix comment round 3 2022-09-08 22:55:04 +03:00
Jonas Schievink 0cc1a89e08 Add a short blurb about VS Code Live Share to the manual 2022-08-23 16:47:26 +02:00
Lukas Wirth eadc2673c0 Regen docs 2022-08-23 14:05:56 +02:00
Ralf Jung 4af9829dcf document interaction of checkOnSave.overrideCommand and multiple linked projects 2022-08-19 08:57:22 -04:00
Jonas Schievink 7fb7c248c7 Add .enable suffix 2022-08-16 18:12:15 +02:00
Jonas Schievink 0616cee92b Add a setting for keyword hover popups 2022-08-16 16:51:40 +02:00
Jonas Schievink bd7dfac5eb Fix r-a spelling in some places 2022-08-01 13:47:09 +02:00
TonalidadeHidrica 195ceea910 Fix obsolete diagnostics.experimental.enable 2022-07-11 16:37:46 +09:00
TonalidadeHidrica 6e5571608b Fix obsolete loadOutDirsFromCheck configs 2022-07-11 16:36:36 +09:00
TonalidadeHidrica eaebead296 Fix config keys regarding imports in docs 2022-07-11 15:43:25 +09:00
Jonas Schievink 6c6ae965ba Update remaining GitHub URLs 2022-07-08 15:44:49 +02:00
Florian Diebold ccf854bc2e Improve documentation for buildScripts.overrideCommand / checkOnSave.overrideCommand 2022-07-04 18:51:18 +02:00
harpsword 55509548e8 fix: add an option to show inlay hint for return type of closures without block 2022-05-28 22:12:30 +08:00
Joël Kuijper f872b61c56
typo: missing comma 2022-05-26 20:12:43 +02:00
Lukas Wirth f02c915eb5 internal: Make autoclosing angle brackets configurable, disabled by default 2022-05-25 12:42:07 +02:00
andylizi 2b1c1a934c
feat: hide type inlay hints for initializations of closures 2022-05-20 17:42:56 +08:00
Equinox 7197042ac4 remove duplicate 'to' in cachePriming.numThreads option description 2022-05-20 02:05:48 +12:00
Jonas Schievink 867a7dc7a0 Show inlay hints after a } to indicate the closed item 2022-05-16 14:55:47 +02:00
bors 1dc25e51a0 Auto merge of #12253 - Veykril:bm, r=Veykril
feat: Add binding mode inlay hints

![image](https://user-images.githubusercontent.com/3757771/168427387-2f299438-a0cc-496b-a9a5-d689ef6a2b55.png)
2022-05-16 11:16:22 +00:00
Lukas Wirth 977f0ba968 Update package.json 2022-05-14 15:18:18 +02:00
Lukas Wirth 622defb373 internal: Make VSCode config more GUI edit friendly 2022-05-14 13:53:41 +02:00