Commit Graph

14338 Commits

Author SHA1 Message Date
bors[bot]
fda022592b
Merge #7107
7107: add working dir to cargo metadata fail messages r=matklad a=lf-

Context: I was having an error in my workspace config that I couldn't figure out without this added output. In particular, I have a Code workspace with a docs folder and one of my top level crates [which each have their own custom target], which was picking up the Cargo workspace level Cargo.toml incorrectly [which in my project should not ever be used for the editor], and ultimately had to override it with `linkedProjects`.

Here's a sample of the changed output:

```
[INFO rust_analyzer::main_loop] handle_event(Workspaces([Err(Failed to read Cargo metadata from Cargo.toml file /home/jade/dev/mu/Cargo.toml, cargo 1.50.0-nightly (75d5d8cff 2020-12-22)

Caused by:
    0: Failed to run `cargo metadata --manifest-path /home/jade/dev/mu/Cargo.toml` in `/home/jade/dev/mu`
    1: Error during execution of `cargo metadata`: error: target path "../../riscv64imac-mu-shoo-elf.json" is not a valid file
       
       Caused by:
         No such file or directory (os error 2)
       ), Err(Failed to read Cargo metadata from Cargo.toml file /home/jade/dev/mu/shoo/Cargo.toml, cargo 1.50.0-nightly (75d5d8cff 2020-12-22)

Caused by:
    0: Failed to run `cargo metadata --manifest-path /home/jade/dev/mu/shoo/Cargo.toml` in `/home/jade/dev/mu/shoo`
    1: Error during execution of `cargo metadata`: error: target path "../../riscv64imac-mu-shoo-elf.json" is not a valid file
       
       Caused by:
         No such file or directory (os error 2)
       )]))
```

Co-authored-by: lf- <lf-@users.noreply.github.com>
2020-12-31 13:04:29 +00:00
lf-
27a0fd23d8 add working dir to cargo metadata fail messages 2020-12-31 04:42:59 -08:00
bors[bot]
53e2cdf18e
Merge #7055
7055: Install rustfmt if needed during formatting request r=matklad a=kinnison

In order to fix #6052 and to fix #4249 this PR installs `rustfmt` using `rustup` if `rustfmt --help` fails.

In theory we ought to memoise the attempts (both the `--help` and the installation) so that we don't keep retrying something which will fail (e.g. if nightly is missing rustfmt), but this is a first-pass for opinions.

In order to make it possible to notify the user of what happened, I added a facility for `GlobalStateSnapshot` to send *messages* to the client indicating what happened.  There may be a cleaner way to do this as well but I wasn't sure exactly what might be best given this is my first time in this codebase.

It may be worth, longer term, working with `rustup` to provide a way to detect a missing component binary since `rustup` returns `1` if `rustfmt` is not installed, which is not ideal.


Co-authored-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-12-31 11:21:23 +00:00
Daniel Silverstone
5ce420ac84
handle_formatting: Notice if rustfmt is missing and report
In an attempt to fix #6052 and #4249 this attempts to detect
if rustfmt is a rustup proxy which isn't installed, and reports
the error message to the user for them to fix.

In theory this ought to be memoised but for now it'll do as-is.

Future work might be to ask the user if they would like us to
trigger the installation (if possible).

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-12-31 10:25:51 +00:00
bors[bot]
558206f70e
Merge #7105
7105: Fix `==` in in format causes mismatched-arg-count r=edwin0cheng a=edwin0cheng

Fixes #7085 

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-31 10:04:19 +00:00
Edwin Cheng
74a557857b Fix == in in format causes mismatched-arg-count 2020-12-31 17:59:29 +08:00
bors[bot]
a90bc53df7
Merge #7104
7104: Remove some unneeded string allocations r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-31 09:14:22 +00:00
Lukas Wirth
816190c6f6 Remove some unneeded string allocations 2020-12-31 10:13:14 +01:00
bors[bot]
a9814fa9c0
Merge #7101
7101: Fix spacing bug in proc-macro TokenStream::to_string r=edwin0cheng a=edwin0cheng

bors r+

fixes #7100

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-31 05:37:08 +00:00
Edwin Cheng
1bd1830f50 Fix spacing in proc-macro tokens to_string 2020-12-31 13:36:19 +08:00
Nick Spain
4cc3a6d4fe Fix completion of Default struct update syntax
Previously the inserted text was always `..Default::default()` which ends up as `...Default::default()`
if `.` was typed. Now  checks if the current token is `.` and inserts `.Default::default()`
if it is, so `..Default::default()` is correctly completed.

Fixes #6969
2020-12-31 16:23:05 +11:00
bors[bot]
bed7be9ed9
Merge #7099
7099: Remove unused clones in mbe r=edwin0cheng a=edwin0cheng

bors r+

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-30 19:10:56 +00:00
Edwin Cheng
ede1b11741 Remove unused clones in mbe 2020-12-31 02:58:41 +08:00
bors[bot]
bf5301ce3b
Merge #7094
7094: Update crates r=kjeremy a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-12-30 15:42:05 +00:00
kjeremy
dc1396eec7 Update crates 2020-12-30 10:39:50 -05:00
bors[bot]
ca76a77791
Merge #7091
7091: Add an option for extra env vars in the Code extension r=lf- a=lf-

I was debugging some issues with the RA extension around getting `cargo check` to work and it was particularly frustrating to get the RA_LOG variable set on the server since I had to change it in a login file. This should make that easier.

Co-authored-by: lf- <lf-@users.noreply.github.com>
2020-12-30 12:55:26 +00:00
lf-
f7f6ac3554 Add an option for extra env vars in the Code extension 2020-12-30 04:51:07 -08:00
bors[bot]
efc76e2c88
Merge #7092
7092: Simplify r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-12-30 10:39:45 +00:00
Aleksey Kladov
0c3be014ec Simplify 2020-12-30 13:38:37 +03:00
bors[bot]
9d97532020
Merge #7090
7090: Allow spurious warning from rust-lang/rust#80501 r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-12-30 09:38:35 +00:00
Laurențiu Nicola
fbeccf0b9d Allow spurious warning from rust-lang/rust#80501 2020-12-30 11:37:52 +02:00
bors[bot]
e7d2b5888b
Merge #7088
7088: Smarter bracketed `use` diagnostic r=lnicola a=AdnoC

Closes https://github.com/rust-analyzer/rust-analyzer/issues/4531

Makes it so that if a bracketed use statement contains a comment inside the braces, no "Unnecessary braces in use statement" diagnostic is shown.

Co-authored-by: AdnoC <adam.r.cutler@gmail.com>
2020-12-30 07:45:33 +00:00
AdnoC
ddbf484acf indentation 2020-12-29 22:56:00 -07:00
AdnoC
58c1949a7b test for new behavior 2020-12-29 22:52:47 -07:00
AdnoC
6eeec5d75f Smarter bracketed use diagnostic 2020-12-29 22:46:34 -07:00
bors[bot]
848e817f60
Merge #7083
7083: Refactor mbe parsing code r=edwin0cheng a=edwin0cheng

Inspire by #5426 , this PR refactor out the parsing code such that it only parsed on `mbe::Rule`, but not on invocations. 

However, it just improve the overall performance unnoticeablely :( 

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-30 00:39:29 +00:00
Edwin Cheng
266b14d4b5 Refactor mbe parsing code 2020-12-30 02:51:06 +08:00
bors[bot]
386c447038
Merge #7070
7070: Use applySnippetWorkspaceEdit again for actions, allow it to create files r=matklad a=Veykril

Fixes #7037

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-29 16:14:18 +00:00
Lukas Wirth
689898e4f6 Apply text edits manually in vscode client 2020-12-29 15:43:17 +01:00
bors[bot]
343029fa9e
Merge #7077
7077: Avoid a couple of allocations r=Veykril a=lnicola

r? @Veykril 

TBH I'm not sure this is worth it, but the other `Query` was already taking a `String`.

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-12-29 13:15:07 +00:00
Laurențiu Nicola
42c24ff25f Avoid a couple of allocations 2020-12-29 14:35:49 +02:00
bors[bot]
ef1177c5b5
Merge #7064
7064: Ignore qualifiers when doing autoimport completions lookup r=lnicola a=SomeoneToIgnore

A follow-up of https://github.com/rust-analyzer/rust-analyzer/pull/6918#issuecomment-748511151 and the PR itself.

Tweaks the `import_map` query api to be more flexible with the ways to match against the import path and now fuzzy imports search in names only.
This had improved the completion speed for me locally in ~5 times for `fuzzy_completion` span time, but please recheck me here.

IMO we're fast and presice enough now, so I've added the modules back to the fuzzy search output.

Also tweaks the the expect tests to display functions explicitly, to avoid confusing "duplicate" results.

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-12-29 12:19:31 +00:00
bors[bot]
7b246a6a14
Merge #7076
7076: Properly parse path separators in format-like postfix r=Veykril a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-29 12:12:19 +00:00
Lukas Wirth
ddc25d87ca Properly parse path separators in format-like postfix 2020-12-29 13:10:35 +01:00
bors[bot]
bd18093740
Merge #7075
7075: format-postfix completion takes format instead of fmt r=lnicola a=Veykril

See https://github.com/rust-analyzer/rust-analyzer/issues/6843
this brings it back in line with the documentation

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-29 11:45:00 +00:00
Lukas Wirth
20bd4ddd4e format-postfix completion takes format instead of fmt 2020-12-29 12:28:46 +01:00
Kaelin Laundry
7b3b0bad1f Pass --all-targets to "cargo check" 2020-12-28 19:33:16 -08:00
Phil Ellison
077592a12f Initial implementation of view-hir command 2020-12-28 18:29:58 +00:00
Kirill Bulatov
77b4a1c5ef Tweak the fuzzy search limits 2020-12-28 16:37:51 +02:00
Kirill Bulatov
eecbb51cb3 Better display methods in expect tests 2020-12-28 16:13:37 +02:00
Kirill Bulatov
8600cf807e Add tests 2020-12-28 15:22:03 +02:00
Kirill Bulatov
e4c3f753d2 Add docs and optimisations 2020-12-28 15:09:39 +02:00
Kirill Bulatov
c4995cfbd5 Better query api and fuzzy search 2020-12-28 15:06:10 +02:00
Kirill Bulatov
0e48cd0c3c Draft the module exclusion in modules 2020-12-28 15:06:10 +02:00
bors[bot]
77ad203a71
Merge #7060
7060: Fix mbe fail to pass expr with attr r=edwin0cheng a=edwin0cheng

bors r+

Fixes #5896

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-28 12:34:19 +00:00
bors[bot]
99ec2f623d
Merge #7059
7059: Special case $_ in meta var instead of treat it as ident in mbe  r=lnicola a=edwin0cheng

In #6929, we treat '_' as an ident but rustc is only allow it in some special places (e.g. meta var in mbe , type, pat etc). 

This PR rollback that and we only make '$_' works in meta var matching. 

Fixes #7056 

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-28 12:26:55 +00:00
Edwin Cheng
877c251bef Fixed old failed test due to new fixes 2020-12-28 20:08:50 +08:00
Edwin Cheng
710407b11d Fix mbe fail to pass expr with attr 2020-12-28 19:53:00 +08:00
Edwin Cheng
b5c29af02a Special case underscore in mbe meta op 2020-12-28 18:51:43 +08:00
Edwin Cheng
b33453f844 Rollback 6929 2020-12-28 18:47:00 +08:00