aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | Merge #9160bors[bot]2021-06-071-2/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9160: internal: make `Documentation::new` non-generic r=lnicola a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | | | Make Documentation::new non-genericLaurențiu Nicola2021-06-071-2/+2
|/ / / / / /
* | | | | | Merge #9157bors[bot]2021-06-071-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9157: minor: Use HTTPS for clippy lint JSON r=lnicola a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | | | Use HTTPS for clippy lint JSONLaurențiu Nicola2021-06-071-1/+1
|/ / / / / /
* | | | | | Merge #9106bors[bot]2021-06-072-7/+91
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | | feat: goto def on impl items also goes to the defn in the traitJade2021-06-071-18/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was trivial to extend this to associated consts/associated types and I just didn't think of it.
| * | | | | feat: goto definition on an impl fn goes to that fn in the traitJade2021-06-072-7/+53
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge #9155bors[bot]2021-06-061-2/+4
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | Replace attribute with equivalent whitespaceJonas Schievink2021-06-061-2/+4
|/ / / / | | | | | | | | | | | | | | | | This is needed to that the `TokenMap` we create contains offsets that match the source.
* | | | Merge #9149bors[bot]2021-06-051-3/+49
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | Support goto-definition for include macro pathsLukas Wirth2021-06-051-3/+49
| | | | |
* | | | | Merge #9150bors[bot]2021-06-052-314/+731
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9150: Unescape generated clippy lints r=lnicola a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Unescape generated clippy lintsLukas Wirth2021-06-052-314/+731
| | | | |
* | | | | Merge #9140bors[bot]2021-06-054-40/+75
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | Complete third-party attributesLukas Wirth2021-06-041-0/+19
| | | | |
| * | | | Render documentation for derive completionLukas Wirth2021-06-043-40/+56
| |/ / /
* | | | Merge #9147bors[bot]2021-06-054-22/+21
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9147: internal: enable proc macros and build scripts in cli r=flodiebold a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | Enable proc macros and build scripts by default in CLILaurențiu Nicola2021-06-054-22/+21
| | | | |
* | | | | Merge #9148bors[bot]2021-06-051-1/+32
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | Prevent renaming of aliases on usagesLukas Wirth2021-06-051-1/+32
| |/ / /
* | | | Merge #9146bors[bot]2021-06-051-9/+9
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9146: minor: Fix incorrect list nesting in format_like feature description r=Veykril a=Veykril bors r+ Closes #6261 Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Fix incorrect list nesting in format_like feature descriptionLukas Wirth2021-06-051-9/+9
| |/ / /
* | | | Merge #9145bors[bot]2021-06-051-0/+3
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | Enable attribute macro expansion in `analysis-stats`Florian Diebold2021-06-051-0/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ```
* | | Merge #9141bors[bot]2021-06-041-0/+17
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 9141: fix: Don't inline mutable locals in 'inline_local_variable' r=Veykril a=Veykril Fixes #9139 Co-authored-by: Lukas Wirth <[email protected]>
| * | Don't inline mutable locals in 'inline_local_variable'Lukas Wirth2021-06-041-0/+17
|/ /
* | Merge #9138bors[bot]2021-06-048-3473/+4064
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | Exclude `crates/ide_db/src/helpers/generated_lints.rs` from `tidy::check_todo`Lukas Wirth2021-06-041-3/+5
| | |
| * | Replace `-` with `_` in generated lint namesLukas Wirth2021-06-043-150/+151
| | |
| * | Generate default lint groupsLukas Wirth2021-06-042-9/+53
| | |
| * | Generate default lint completionsLukas Wirth2021-06-047-777/+1130
| | |
| * | Implement hover for lintsLukas Wirth2021-06-045-2835/+3026
| | |
* | | Merge #9137bors[bot]2021-06-041-0/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | Return `ReachedFixedPoint::No` when resolving derive helperJonas Schievink2021-06-041-0/+1
| | | |
* | | | Merge #9136bors[bot]2021-06-046-1/+75
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | Add function references hover actionLukas Wirth2021-06-046-1/+75
|/ / /
* | | Merge #9135bors[bot]2021-06-041-540/+492
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 9135: Reorganize inlay_hints tests r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | Cleanup parameter_hint_heuristics inlay hints testLukas Wirth2021-06-041-87/+68
| | |
| * | Reorganize inlay_hints testsLukas Wirth2021-06-041-522/+493
|/ /
* | Merge #9128bors[bot]2021-06-0317-35/+234
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | Set enable_proc_attr_macros in hir_ty TestDBJonas Schievink2021-06-031-1/+9
| | |
| * | Update list of built-in attributesJonas Schievink2021-06-031-16/+22
| | |
| * | Make it opt-inJonas Schievink2021-06-039-4/+44
| | |
| * | Expand procedural attribute macrosJonas Schievink2021-06-037-14/+159
|/ /
* | Merge #9130bors[bot]2021-06-031-70/+57
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | Prefix/suffix parameter inlay hint hiding heuristic is more strictLukas Wirth2021-06-031-70/+57
| | |
* | | Merge #9129bors[bot]2021-06-035-5/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9129: NFC: remove redundant clones (clippy::perf) r=Veykril a=matthiaskrgr Co-authored-by: Matthias Krüger <[email protected]>
| * | | NFC: remove redundant clones (clippy::perf)Matthias Krüger2021-06-035-5/+5
|/ / /
* | | Merge #9127bors[bot]2021-06-032-4/+43
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9127: internal: make variant fields inherit the enum's visibility in the ItemTree r=jonas-schievink a=jonas-schievink No observable changes from what I can tell, but this is "more correct". bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | ItemTree: make variant fields inherit the enum's visibilityJonas Schievink2021-06-032-4/+43
| | | |