bors[bot]
efa84cd08d
Merge #9106
...
9106: feat: goto definition on an impl fn goes to that fn in the trait r=lf- a=lf-
e.g. if you have a trait T and `impl T for S` for some struct, if you
goto definition on some function name inside the impl, it will go to the
definition of that function inside the `trait T` block, rather than the
current behaviour of not going anywhere at all.
![ra goto def trait the other way](https://user-images.githubusercontent.com/6652840/120403989-39aa3280-c2fa-11eb-9359-639346878acd.gif )
Co-authored-by: Jade <software@lfcode.ca>
2021-06-07 04:52:38 +00:00
Jade
34ce05781f
feat: goto def on impl items also goes to the defn in the trait
...
It was trivial to extend this to associated consts/associated types and
I just didn't think of it.
2021-06-06 21:52:00 -07:00
Jade
8a57c73640
feat: goto definition on an impl fn goes to that fn in the trait
...
e.g. if you have a trait T and `impl T for S` for some struct, if you
goto definition on some function name inside the impl, it will go to the
definition of that function inside the `trait T` block, rather than the
current behaviour of not going anywhere at all.
2021-06-06 21:51:17 -07:00
Lukas Wirth
e475bcdcc6
Simplify CompletionContext by introducing a path CallKind enum
2021-06-06 20:02:26 +02:00
Jonas Schievink
8d87f9b298
Handle attribute macros in descend_into_macros
2021-06-06 17:03:37 +02:00
bors[bot]
13da28cc2b
Merge #9155
...
9155: internal: replace attribute with equivalent whitespace r=jonas-schievink a=jonas-schievink
This is needed to that the `TokenMap` we create contains offsets that match the source. Currently the offsets don't match because the attribute is removed, shifting all subsequent token offsets by the attribute's text length.
Currently this fix has no visible effect because we don't remap tokens in attribute macros.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-06-06 14:50:06 +00:00
Jonas Schievink
1d5c60ff54
Replace attribute with equivalent whitespace
...
This is needed to that the `TokenMap` we create contains offsets that
match the source.
2021-06-06 16:48:13 +02:00
Joshua Warner
9b74dd0c04
fmt
2021-06-05 17:09:56 -07:00
Milo
42e5e5b458
fix
2021-06-06 00:21:50 +01:00
Milo
ab57c25d1e
when you click status bar icon it now restarts server
2021-06-06 00:17:16 +01:00
Joshua Warner
18f796a728
Refactor to be just one assist
2021-06-05 15:29:29 -07:00
bors[bot]
d616a6a456
Merge #9149
...
9149: feat: Support goto-definition for include macros input path r=Veykril a=Veykril
![0l6l9iWPNE](https://user-images.githubusercontent.com/3757771/120891155-3fa85800-c607-11eb-9b20-7ac330dceb4b.gif )
Fixes #5871
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-05 19:26:33 +00:00
bors[bot]
b68407fab8
Merge #9150
...
9150: Unescape generated clippy lints r=lnicola a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-05 18:16:57 +00:00
bors[bot]
ad9234fef2
Merge #9140
...
9140: feat: Render documentation for derive completion r=Veykril a=Veykril
![eEzGiq2wNa](https://user-images.githubusercontent.com/3757771/120847308-9c5a3300-c573-11eb-958d-e0f22f4757ed.gif )
Nothing fancy as all the std derives aren't really documented though maybe some 3rd party crates document them equally to their trait counterparts.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-05 17:23:40 +00:00
Lukas Wirth
fc06058a76
Unescape generated clippy lints
2021-06-05 19:14:53 +02:00
Lukas Wirth
5391f9c63c
Support goto-definition for include macro paths
2021-06-05 19:04:50 +02:00
bors[bot]
5092d8c1ae
Merge #9147
...
9147: internal: enable proc macros and build scripts in cli r=flodiebold a=lnicola
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-06-05 12:29:52 +00:00
Laurențiu Nicola
18484365e6
Enable proc macros and build scripts by default in CLI
2021-06-05 15:20:41 +03:00
bors[bot]
4c54ec1c3c
Merge #9148
...
9148: minor: Prevent renaming of aliases on usages r=Veykril a=Veykril
Otherwise trying to rename a usage that goes through an alias will still rename the aliased item instead, cc https://github.com/rust-analyzer/rust-analyzer/issues/5671
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-05 11:16:46 +00:00
Lukas Wirth
d30f2d43db
Prevent renaming of aliases on usages
2021-06-05 13:15:07 +02:00
bors[bot]
fec00f4e13
Merge #9146
...
9146: minor: Fix incorrect list nesting in format_like feature description r=Veykril a=Veykril
bors r+
Closes #6261
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-05 10:44:36 +00:00
Lukas Wirth
abc941d2c8
Fix incorrect list nesting in format_like feature description
2021-06-05 12:43:45 +02:00
bors[bot]
15fe4e42bb
Merge #9145
...
9145: internal: Enable attribute macro expansion in `analysis-stats` r=flodiebold a=flodiebold
Before:
```
> $ rust-analyzer -q analysis-stats --with-proc-macro --load-output-dirs .
Database loaded: 19.08s, 277minstr
crates: 34, mods: 688, decls: 13202, fns: 10412
Item Collection: 16.21s, 76ginstr
exprs: 290580, ??ty: 2508 (0%), ?ty: 1814 (0%), !ty: 947
Inference: 27.46s, 108ginstr
Total: 43.67s, 184ginstr
```
After:
```
> $ ./target/release/rust-analyzer -q analysis-stats --with-proc-macro --load-output-dirs .
Database loaded: 1.09s, 277minstr
crates: 34, mods: 688, decls: 14790, fns: 11006
Item Collection: 18.20s, 78ginstr
exprs: 297826, ??ty: 493 (0%), ?ty: 558 (0%), !ty: 342
Inference: 28.34s, 111ginstr
Total: 46.54s, 190ginstr
```
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2021-06-05 09:32:40 +00:00
Florian Diebold
d174b919dc
Enable attribute macro expansion in analysis-stats
...
Before:
```
> $ rust-analyzer -q analysis-stats --with-proc-macro --load-output-dirs .
Database loaded: 19.08s, 277minstr
crates: 34, mods: 688, decls: 13202, fns: 10412
Item Collection: 16.21s, 76ginstr
exprs: 290580, ??ty: 2508 (0%), ?ty: 1814 (0%), !ty: 947
Inference: 27.46s, 108ginstr
Total: 43.67s, 184ginstr
```
After:
```
> $ ./target/release/rust-analyzer -q analysis-stats --with-proc-macro --load-output-dirs .
Database loaded: 1.09s, 277minstr
crates: 34, mods: 688, decls: 14790, fns: 11006
Item Collection: 18.20s, 78ginstr
exprs: 297826, ??ty: 493 (0%), ?ty: 558 (0%), !ty: 342
Inference: 28.34s, 111ginstr
Total: 46.54s, 190ginstr
```
2021-06-05 11:29:24 +02:00
Joshua Warner
ca9ffba047
Add assist for converting a tuple enum variant to a named variant
2021-06-04 21:48:32 -07:00
Lukas Wirth
544eca10d6
Complete third-party attributes
2021-06-04 21:07:19 +02:00
Lukas Wirth
7524850831
Render documentation for derive completion
2021-06-04 20:58:12 +02:00
bors[bot]
d647568db1
Merge #9141
...
9141: fix: Don't inline mutable locals in 'inline_local_variable' r=Veykril a=Veykril
Fixes #9139
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-04 18:44:22 +00:00
Lukas Wirth
1bd04d9064
Don't inline mutable locals in 'inline_local_variable'
2021-06-04 20:43:48 +02:00
bors[bot]
98395f29a4
Merge #9138
...
9138: feat: Implement hover for lints r=Veykril a=Veykril
fixes https://github.com/rust-analyzer/rust-analyzer/issues/8857 , fixes https://github.com/rust-analyzer/rust-analyzer/issues/3941
![URXBanNxYe](https://user-images.githubusercontent.com/3757771/120830905-4bd8da80-c55f-11eb-9f55-ff5a321726fa.gif )
We also generate the default lints(and lint groups 🎉 ) instead now by invoking `rustc -W help` and parsing the output from that.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-04 17:45:37 +00:00
Lukas Wirth
ae1c63fcdd
Exclude crates/ide_db/src/helpers/generated_lints.rs
from tidy::check_todo
2021-06-04 19:45:10 +02:00
Lukas Wirth
0c89f38378
Replace -
with _
in generated lint names
2021-06-04 19:10:52 +02:00
Lukas Wirth
0b9ba4977e
Generate default lint groups
2021-06-04 18:55:08 +02:00
Lukas Wirth
343df88ac7
Generate default lint completions
2021-06-04 18:35:19 +02:00
Lukas Wirth
5d17b6a687
Implement hover for lints
2021-06-04 17:03:18 +02:00
bors[bot]
92d91050c4
Merge #9137
...
9137: fix: fix incorrect "unresolved import" error when using derive helpers r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9133
cursed bug
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-06-04 14:51:39 +00:00
Jonas Schievink
20de86d014
Return ReachedFixedPoint::No
when resolving derive helper
2021-06-04 16:50:35 +02:00
bors[bot]
dceec3eb80
Merge #9136
...
9136: feat: Add function references hover action r=Veykril a=Veykril
![image](https://user-images.githubusercontent.com/3757771/120811670-8422ed80-c54c-11eb-87f5-dd65c1f8ef7d.png )
This is off by default as this can slow down hover messages significantly for very big projects I believe.
Fixes #6590
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-04 13:55:49 +00:00
Lukas Wirth
07394316ff
Add function references hover action
2021-06-04 15:54:55 +02:00
bors[bot]
cd46255d7e
Merge #9135
...
9135: Reorganize inlay_hints tests r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-04 12:10:21 +00:00
Lukas Wirth
5f1fac44c5
Cleanup parameter_hint_heuristics inlay hints test
2021-06-04 14:09:20 +02:00
Lukas Wirth
b0f6d8868c
Reorganize inlay_hints tests
2021-06-04 13:47:39 +02:00
bors[bot]
14153671ca
Merge #9128
...
9128: feat: expand procedural attribute macros r=jonas-schievink a=jonas-schievink
This adds experimental support for attribute macros. They can be enabled by setting `rust-analyzer.experimental.procAttrMacros` to `true`.
Known issues:
* Tokens aren't remapped, presumably because we edit the input syntax tree (this causes IDE features to not work inside items with attribute macros on them)
* Macro errors aren't reported correctly
Closes https://github.com/rust-analyzer/rust-analyzer/issues/8971
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8964 / https://github.com/la10736/rstest/issues/120
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/2984
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/5412
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/6029
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/6687
https://github.com/rust-analyzer/rust-analyzer/issues/6740 is still not fixed – we now expand `#[proc_macro_hack]`, but fail to expand the resulting `proc_macro_call!()` macro.
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-06-03 16:17:25 +00:00
Jonas Schievink
17565f4dea
Set enable_proc_attr_macros in hir_ty TestDB
2021-06-03 18:11:33 +02:00
Jonas Schievink
d1c4d28eed
Update list of built-in attributes
2021-06-03 18:09:21 +02:00
Jonas Schievink
9fdb8f9037
Make it opt-in
2021-06-03 18:09:21 +02:00
Jonas Schievink
e5a2c6596d
Expand procedural attribute macros
2021-06-03 18:09:21 +02:00
bors[bot]
7f9c4a59d9
Merge #9130
...
9130: Prefix/suffix parameter inlay hint hiding heuristic is more strict r=Veykril a=Veykril
Instead of just plainly checking prefix/suffix of the argument string to the parameter name we only check for prefixes and suffixes if they are split apart via an underscore meaning, with the argument `foo`, it will be hidden for the parameter name `foo_bar` but not for `foobar`.
bors r+
Closes https://github.com/rust-analyzer/rust-analyzer/issues/8878
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-03 14:26:07 +00:00
Lukas Wirth
cc762c30df
Prefix/suffix parameter inlay hint hiding heuristic is more strict
2021-06-03 16:22:24 +02:00
bors[bot]
1dbdac8f51
Merge #9129
...
9129: NFC: remove redundant clones (clippy::perf) r=Veykril a=matthiaskrgr
Co-authored-by: Matthias Krüger <matthias.krueger@famsik.de>
2021-06-03 13:45:17 +00:00