aboutsummaryrefslogtreecommitdiff
path: root/crates/ide
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge #8083bors[bot]2021-03-182-10/+28
|\ \ | | | | | | | | | | | | | | | | | | | | | 8083: Track source file IDs in source mapping of Attrs r=jonas-schievink a=Veykril Fixes the panics/incorrect injection highlighting of outline module declarations until we figure out a nicer source mapping strategy for attributes. Co-authored-by: Lukas Wirth <[email protected]>
| * | Track source file IDs in source mapping of AttrsLukas Wirth2021-03-182-10/+28
| |/
* | Add test for goto def on proc macro invocationJonas Schievink2021-03-181-0/+17
| |
* | Store an `AstId` for procedural macrosJonas Schievink2021-03-182-6/+16
|/
* Semantic highlight intradoclinks in documentationLukas Wirth2021-03-1714-45/+120
|
* Merge #8069bors[bot]2021-03-173-28/+72
|\ | | | | | | | | | | | | | | | | 8069: Inject highlight into block doc comments r=Veykril a=Veykril bors r+ Closes https://github.com/rust-analyzer/rust-analyzer/issues/6873 Co-authored-by: Lukas Wirth <[email protected]>
| * Inject highlight into block doc commentsLukas Wirth2021-03-173-28/+72
| |
* | Check whether cursor is on and not between intra doc links in goto_definitionLukas Wirth2021-03-171-8/+14
|/
* Fix incorrect newline emission in Attrs::docsLukas Wirth2021-03-171-4/+22
|
* Better handling of block doc commentsLukas Wirth2021-03-173-7/+83
|
* Merge #8059bors[bot]2021-03-174-17/+154
|\ | | | | | | | | | | | | | | 8059: Move doc-comment highlight injection from AST to HIR r=matklad,jonas-schievink a=Veykril Fixes #5016 Co-authored-by: Lukas Wirth <[email protected]>
| * Remove quadratic attr source lookupLukas Wirth2021-03-171-1/+2
| |
| * Properly handle doc attributes in doc-comment highlight injectionLukas Wirth2021-03-163-6/+76
| |
| * Replace trait object boxing with extra AttrsOwnerNodeLukas Wirth2021-03-161-19/+48
| |
| * Move doc-comment highlight injection from AST to HIRLukas Wirth2021-03-162-15/+52
| |
* | don't clone types that are copy (clippy::clone_on_copy)Matthias Krüger2021-03-173-4/+4
| |
* | avoid converting types into themselves via .into() (clippy::useless-conversion)Matthias Krüger2021-03-171-1/+1
| | | | | | | | example: let x: String = String::from("hello world").into();
* | Merge #8055bors[bot]2021-03-161-14/+4
|\ \ | |/ |/| | | | | | | | | | | 8055: Implement HirDisplay for some more types r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Implement HirDisplay for some more typesLukas Wirth2021-03-161-14/+4
| |
* | Merge #8053bors[bot]2021-03-163-145/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | 8053: Remove ShortLabel r=Veykril a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Remove ShortLabelLukas Wirth2021-03-163-145/+16
| |/
* | Merge #8034bors[bot]2021-03-161-0/+23
|\ \ | |/ |/| | | | | | | | | | | 8034: Implement Crate::transitive_reverse_dependencies r=matklad a=Veykril changelog internal Implement Crate::transitive_reverse_dependencies Co-authored-by: Lukas Wirth <[email protected]>
| * Add new_source_root meta to test fixturesLukas Wirth2021-03-161-4/+4
| |
| * Implement Crate::transitive_reverse_dependenciesLukas Wirth2021-03-151-0/+23
| |
* | Merge #7498bors[bot]2021-03-1614-52/+65
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7498: Clone for update r=matklad a=matklad rowan counterpart https://github.com/rust-analyzer/rowan/pull/93 #6857 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Upgrade rowanAleksey Kladov2021-03-1614-52/+65
| | | | | | | | | | | | Notably, new rowan comes with support for mutable syntax trees.
| | |
| \ \
*-. \ \ Merge #7900 #8000bors[bot]2021-03-163-73/+124
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7900: show function params in completion detail r=matklad a=JoshMcguigan This resolves #7842 by updating the detail for function completions from `-> T` to `fn(T, U) -> V`. I added an expicit unit test for this, `ide_completion::render::fn_detail_includes_args_and_return_type`, which passes. Lots of other unit tests fail (~60 of them) due to this change, although I believe the failures are purely cosmetic (they were testing the exact format of this output). I'm happy to go update those tests, but before I do that I'd like to make sure this is in fact the format we want for the detail? edit - I realized `UPDATE_EXPECT=1 cargo test` automatically updates `expect!` tests. Big :+1: to whoever worked on that! So I'll go ahead and update all these tests soon. But I still would like to confirm `fn(T, U) -> V` is the desired content in the `detail` field. 8000: Use hir formatter for hover text r=matklad a=oxalica Fix #2765 , (should) fix #4665 Co-authored-by: Josh Mcguigan <[email protected]> Co-authored-by: oxalica <[email protected]>
| | * | Update testsoxalica2021-03-151-28/+57
| | | |
| | * | Clean usage of ShortLabeloxalica2021-03-152-7/+8
| | | |
| | * | Use hir formatter moreoxalica2021-03-151-42/+17
| | | |
| | * | Impl HirDisplay for function hover messageoxalica2021-03-151-1/+9
| | | |
| | * | Add test for hover of macro expanded functionoxalica2021-03-151-0/+38
| | |/
* | | Merge #8028bors[bot]2021-03-151-25/+54
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 8028: Return multiple modules in `parent_module` feature r=matklad a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Return multiple modules in `parent_module`Lukas Wirth2021-03-151-25/+54
| | |
* | | Merge #8029bors[bot]2021-03-151-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8029: Enable thread-local coverage marks r=JoshMcguigan a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | Enable thread-local coverage marksLaurențiu Nicola2021-03-151-1/+1
| | |
* | | Merge #8020bors[bot]2021-03-152-49/+83
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8020: Power up goto_implementation r=matklad a=Veykril by allowing it to be invoked on references of names, now showing all (trait) implementations of the given type in all crates instead of just the defining crate as well as including support for builtin types ![image](https://user-images.githubusercontent.com/3757771/111144403-52bb0700-8587-11eb-9205-7a2a5b8b75a3.png) Example screenshot of `impl`s of Box in `log`, `alloc`, `std` and the current crate. Before you had to invoke it on the definition where it would only show the `impls` in `alloc`. Co-authored-by: Lukas Wirth <[email protected]>
| * | Power up goto_implementationLukas Wirth2021-03-152-49/+83
| | | | | | | | | | | | | | | by allowing it to be invoked on references of names, showing all (trait) implementations of the given type in all crates including builtin types
* | | Merge #8015bors[bot]2021-03-152-67/+80
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8015: Introduce Semantics::visit_file_defs r=matklad a=Veykril See https://github.com/rust-analyzer/rust-analyzer/issues/3538#issuecomment-798920601 Co-authored-by: Lukas Wirth <[email protected]>
| * | | move Semantics::visit_file_defs to ide_db::helpersLukas Wirth2021-03-152-2/+4
| | | |
| * | | Introduce Semantics::visit_file_defsLukas Wirth2021-03-152-67/+78
| | | |
* | | | Goto definition works for `S { a: }` caseAleksey Kladov2021-03-151-0/+11
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What happens here is that we lower `: ` to a missing expression, and then correctly record that the corresponding field expression resolves to a specific field. Where we fail is in the mapping of syntax to this missing expression. Doing it via `ast_field.expr()` fails, as that expression is `None`. Instead, we go in the opposite direcition and ask each lowered field about its source. This works, but has wrong complexity `O(N)` and, really, the implementation is just too complex. We need some better management of data here.
| | |
| \ \
*-. \ \ Merge #8021 #8022bors[bot]2021-03-154-12/+24
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8021: Enable searching for builtin types r=matklad a=Veykril Not too sure how useful this is for reference search overall, but for completeness sake it should be there ![image](https://user-images.githubusercontent.com/3757771/111132711-f69db600-8579-11eb-8c90-22fd6862d11f.png) Also enables document highlighting for them. 8022: some clippy::performance fixes r=matklad a=matthiaskrgr use vec![] instead of Vec::new() + push() avoid redundant clones use chars instead of &str for single char patterns in ends_with() and starts_with() allocate some Vecs with capacity to avoid unnecessary resizing Co-authored-by: Lukas Wirth <[email protected]> Co-authored-by: Matthias Krüger <[email protected]>
| | * | | some clippy::performance fixesMatthias Krüger2021-03-152-4/+3
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | use vec![] instead of Vec::new() + push() avoid redundant clones use chars instead of &str for single char patterns in ends_with() and starts_with() allocate some Vecs with capacity to avoid unneccessary resizing
| * | / Enable searching for builtin typesLukas Wirth2021-03-152-8/+21
| | |/ | |/|
* | | Move code to the appropriate layerAleksey Kladov2021-03-153-5/+11
| | | | | | | | | | | | | | | | | | StructureNodeKind is a type which is specific to a particular feature, file_structure. It shouldn't be in the "code shared by all ide features" part.
* | | Merge #7975bors[bot]2021-03-152-48/+192
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7975: Provide regions in file structure r=ivan770 a=ivan770 Closes #7913 https://user-images.githubusercontent.com/14003886/110819163-96b3c080-8296-11eb-993e-a7cdb574a12d.mp4 Co-authored-by: ivan770 <[email protected]>
| * | Introduce StructureNodeKindivan7702021-03-143-49/+94
| | |
| * | Added region intersection testivan7702021-03-141-0/+53
| | |
| * | Shorten trim callivan7702021-03-141-1/+1
| | |