Lukas Wirth
bad4e48672
Set up a search scope when searching for mbe macro references
2021-03-23 11:32:10 +01:00
Aleksey Kladov
45a8f37b6a
Compute more mathematically well-rounded notion of transitive deps
...
By including the crate itself, we make the resulting set closed with
respect to `transitve_reveres_dependencies` operation, as it becomes a
proper transitive closure. This just feels more proper and mathy.
And, indeed, this actually allows us to simplify call sites somewhat.
2021-03-23 12:49:55 +03:00
Aleksey Kladov
9cbf09ec4f
rewrite merge use trees assist to use muatable syntax trees
...
changelog internal
2021-03-22 20:47:46 +03:00
Edwin Cheng
7784cadc3d
Reexport PrefixKind to remove deps to hir
2021-03-22 13:39:13 +08:00
Kirill Bulatov
b17d99c070
Fix the profile string
2021-03-21 11:45:37 +02:00
Kirill Bulatov
eaa4fcbbde
Less reallocations
2021-03-21 11:45:37 +02:00
Kirill Bulatov
ec731e19df
Use smart case in flyimport items lookup
2021-03-21 11:45:37 +02:00
bors[bot]
09412d85fc
Merge #8123
...
8123: Do not display unqualified assoc item completions r=SomeoneToIgnore a=SomeoneToIgnore
Part of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/autoimport.20weirdness
Removes all flyimport completions for any unqualified associated type, effectively reverting https://github.com/rust-analyzer/rust-analyzer/pull/8095
I've explained the reasoning in the corresponding FIXME and open to discussions.
As an alternative way, we could add yet another parameter in the method that's used by the `qualify_path` and enable it for the qualify assists only.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2021-03-21 09:37:08 +00:00
Lukas Wirth
38048c35d8
Don't use an untyped String for ActiveParam tracking
2021-03-20 23:22:09 +01:00
Kirill Bulatov
56a7d246d5
Disable unqualified assoc items completion for now
2021-03-20 23:08:44 +02:00
Kirill Bulatov
879432452d
Docs
2021-03-20 22:55:34 +02:00
Kirill Bulatov
a631108d2d
Do not query item search by name eagerly
2021-03-20 22:33:54 +02:00
Kirill Bulatov
81961dc035
Do not propose assoc items without qualifiers
2021-03-20 22:18:43 +02:00
Lukas Wirth
34464ede3f
Fix associated items not being appended to paths in import_assets
2021-03-18 21:36:52 +01:00
Jonas Schievink
5fbb97a0f0
Rename item_tree
query to file_item_tree
2021-03-18 01:53:37 +01:00
Lukas Wirth
5734b347dd
Fix incorrect newline emission in Attrs::docs
2021-03-17 17:00:08 +01:00
Matthias Krüger
ff5f90d8ae
use simpler .map(|x| y) instead of .and_then(|x| Some(y)) for Options. (clippy::bind_instead_of_map)
2021-03-17 02:36:29 +01:00
Matthias Krüger
966c23f529
avoid converting types into themselves via .into() (clippy::useless-conversion)
...
example: let x: String = String::from("hello world").into();
2021-03-17 01:27:56 +01:00
bors[bot]
979e788957
Merge #8034
...
8034: Implement Crate::transitive_reverse_dependencies r=matklad a=Veykril
changelog internal Implement Crate::transitive_reverse_dependencies
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-16 14:54:12 +00:00
Aleksey Kladov
f5a81ec468
Upgrade rowan
...
Notably, new rowan comes with support for mutable syntax trees.
2021-03-16 16:10:49 +03:00
Lukas Wirth
e97cd709cd
Implement Crate::transitive_reverse_dependencies
2021-03-15 18:28:31 +01:00
Laurențiu Nicola
88cee24c6c
Enable thread-local coverage marks
2021-03-15 16:02:50 +02:00
Lukas Wirth
41745f48d5
move Semantics::visit_file_defs to ide_db::helpers
2021-03-15 12:18:52 +01:00
bors[bot]
5138baf2ac
Merge #8021 #8022
...
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 <lukastw97@gmail.com>
Co-authored-by: Matthias Krüger <matthias.krueger@famsik.de>
2021-03-15 10:05:49 +00:00
Aleksey Kladov
5dcdf2ceee
Move code to the appropriate layer
...
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.
2021-03-15 12:55:27 +03:00
Lukas Wirth
9763d9e8c4
Enable searching for builtin types
2021-03-15 09:32:06 +01:00
ivan770
7d48e04f31
Introduce StructureNodeKind
2021-03-14 19:00:41 +02:00
ivan770
71a97a2d8c
Provide regions in file structure
2021-03-14 18:53:37 +02:00
bors[bot]
7accf6bc37
Merge #7799
...
7799: Related tests r=matklad a=vsrs
![tests](https://user-images.githubusercontent.com/62505555/109397453-a9013680-7947-11eb-8b11-ac03079f7645.gif )
This adds an ability to look for tests for the item under the cursor: function, constant, data type, etc
The LSP part is bound to change. But the feature itself already works and I'm looking for a feedback :)
Co-authored-by: vsrs <vit@conrlab.com>
2021-03-13 13:50:35 +00:00
vsrs
daa2637486
Apply review suggestions
2021-03-11 17:39:41 +03:00
Aleksey Kladov
842d8ad9c8
Compilation speed
2021-03-09 22:30:58 +03:00
Kirill Bulatov
778deb38fe
Better strip turbofishes
2021-03-08 23:59:39 +02:00
Kirill Bulatov
5168ab16e1
Add rustdocs and use better names
2021-03-08 23:59:37 +02:00
Kirill Bulatov
dccbb38d2e
Less lifetines: derive SemanticsScope in place
2021-03-08 23:59:20 +02:00
Kirill Bulatov
84c575a212
Restrict fuzzy qualifiers for now
2021-03-08 23:59:20 +02:00
Kirill Bulatov
5b7d928075
Enforce the located imports' order
2021-03-08 23:59:20 +02:00
Kirill Bulatov
24a5d3b19d
Fix the completion labels and tests
2021-03-08 23:59:20 +02:00
Kirill Bulatov
33c83e72b9
Work towards better import labels
2021-03-08 23:59:20 +02:00
Kirill Bulatov
4d4ac1d4fa
Profile import_assets better
2021-03-08 23:59:20 +02:00
Kirill Bulatov
e214c3a6bd
Simplify
2021-03-08 23:59:20 +02:00
Kirill Bulatov
e74c55bb4a
Refactor the import location
2021-03-08 23:59:20 +02:00
Kirill Bulatov
89d410cef5
Do not propose already imported imports
2021-03-08 23:59:20 +02:00
Kirill Bulatov
9482353fa8
Properly handle turbofishes in qualifiers
2021-03-08 23:59:20 +02:00
Kirill Bulatov
d386481fac
Fix some tests
2021-03-08 23:59:20 +02:00
Kirill Bulatov
582cee2cdf
Return more data about located imports
2021-03-08 23:59:18 +02:00
Kirill Bulatov
309421c117
Draft the qualifier import resolution
2021-03-08 23:58:48 +02:00
Kirill Bulatov
c395c3311d
Filter out path items by the qualifier
2021-03-08 23:58:33 +02:00
Kirill Bulatov
f08c0cdd2a
Simplify
2021-03-08 23:58:33 +02:00
Kirill Bulatov
7584260b9a
Find the code to change
2021-03-08 23:58:33 +02:00
Kirill Bulatov
005bc49d74
Test and initial refactoring
2021-03-08 23:58:32 +02:00
Laurențiu Nicola
fc9eed4836
Use upstream cov-mark
2021-03-08 22:19:44 +02:00
asv
96fc01a30b
Make group imports configurable
2021-03-07 10:15:17 +02:00
Lukas Wirth
8d305680e6
Show docs on hover for keywords and primitives
2021-03-02 14:41:01 +01:00
Vincent Esche
c4e2f32d73
Fixed remaining references to AnalysisChange
(now: Change
)
...
(The type was renamed/moved in 8716c4cec3
)
2021-02-28 12:57:41 +01:00
vsrs
5d23d8bc29
Add runnables::related_tests
2021-02-27 18:00:17 +03:00
lbrande
9db970ee08
De Morgan's Law assist now correctly inverts <, <=, >, >=.
2021-02-24 11:58:37 +01:00
Lukas Wirth
9e8f4d31a4
Pickup ConstReference patterns in FindUsages
2021-02-23 23:31:53 +01:00
Lukas Wirth
e52bdc55ef
Implement ast::AstNode for NameLike and move it to node_ext
2021-02-16 19:27:08 +01:00
Jonas Schievink
50d18eb0a6
Use cfg(target_arch)
instead of a Cargo feature
...
Not that WASM works right now anyways...
2021-02-16 18:50:06 +01:00
bors[bot]
c9672a0539
Merge #7657
...
7657: utf8 r=matklad a=matklad
- Prepare for utf-8 offsets
- reduce code duplication in tests
- Make utf8 default, implement utf16 in terms of it
- Make it easy to add additional context for offset conversion
- Implement utf8 offsets
closes #7453
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-02-16 16:34:22 +00:00
Aleksey Kladov
95209aa3f8
Make utf8 default, implement utf16 in terms of it
2021-02-16 19:17:32 +03:00
Aleksey Kladov
00cc778c8c
reduce code duplication in tests
2021-02-16 19:17:32 +03:00
Aleksey Kladov
2cb4ac9eb4
Prepare for utf-8 offsets
2021-02-16 19:17:32 +03:00
kjeremy
f9bb398cc5
Fix a few clippy::perf warnings
2021-02-16 10:55:34 -05:00
Lukas Wirth
403a63d2b4
Don't classify attribute macros as their path unless it's a function with the proc_macro_attribute attribute
2021-02-13 22:11:31 +01:00
Lukas Wirth
c5be0b2589
Use NameLike in FileReference directly as its not exported from ide anymore
2021-02-12 18:58:29 +01:00
Lukas Wirth
d644728d82
Refactor reference searching to work with the ast
2021-02-12 18:58:28 +01:00
Jonas Schievink
5d99ba1d9a
Make ModPath
's representation private
2021-02-04 20:49:24 +01:00
Aleksey Kladov
d35bda6429
Make always-assert crate reusable
2021-01-26 22:13:42 +03:00
bors[bot]
3a5cd6bbc6
Merge #7406
...
7406: if_let_match: don't assume happy path r=matklad a=bugadani
Closes #7392
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2021-01-26 12:12:45 +00:00
Lukas Wirth
a872ebf81f
Support unions in symbol search
2021-01-24 01:32:52 +01:00
Dániel Buga
24f0cd8293
replace_if_let_with_match: don't assume sad pattern
2021-01-22 23:29:51 +01:00
bors[bot]
0c37b3a0fc
Merge #7353
...
7353: Add LifetimeParam and ConstParam to CompletionItemKind r=matklad a=Veykril
Adds `LifetimeParam` and `ConstParam` to `CompletionItemKind` and maps them both to `TypeParam` in the protocol conversion as there are no equivalents, so nothing really changes there.
`ConstParam` could be mapped to `Const` I guess but I'm split on whether that would be better?
Additions were solely inspired by (the single) test output for const params.
Also sorts the variants of `CompletionItemKind` and its to_proto match.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-22 15:31:47 +00:00
Jonas Schievink
896dfacfc4
Add name resolution query for block expressions
2021-01-21 15:22:17 +01:00
Jonas Schievink
82146737ac
Treat BlockExpr as a potential module origin
2021-01-20 20:05:48 +01:00
Lukas Wirth
f2cb7dbcb7
Partially unify SymbolKind and CompletionItemKind
2021-01-20 18:39:46 +01:00
Jonas Schievink
0587b99fde
Make public DefMap fields private
2021-01-20 15:41:18 +01:00
Lukas Wirth
563a175fdb
Move SymbolKind to ide_db
2021-01-20 15:25:34 +01:00
Aleksey Kladov
46b4f89c92
.
2021-01-20 01:56:11 +03:00
bors[bot]
342bf41022
Merge #7297 #7338
...
7297: Propose trait associated items and autoimport traits on completion r=matklad a=SomeoneToIgnore
![trait_imports](https://user-images.githubusercontent.com/2690773/104819998-6faeb480-583a-11eb-8b45-b7351b51b90e.gif )
Closes #7248
7338: Parse `impl const Trait` r=Veykril a=Veykril
Closes #7313
bors r+
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-18 19:40:11 +00:00
bors[bot]
9daba961f2
Merge #7291
...
7291: Wrap remaining self/super/crate in Name{Ref} r=matklad a=Veykril
That should be the remaining special casing for `self` 🎉
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-18 16:13:06 +00:00
bors[bot]
9eb37fbdeb
Merge #7292
...
7292: Swap assert_eq_text\!(expected, actual) r=matklad a=u5surf
Fixes #7283
Swap assert_eq_text parameters in the order (expected, actual)
Co-authored-by: yugo-horie <u5.horie@gmail.com>
2021-01-18 10:12:54 +00:00
Kirill Bulatov
09c11054a1
Do trait solving in batch
2021-01-17 02:57:38 +02:00
Kirill Bulatov
68626e4ef5
Draft the working completion
2021-01-17 02:57:34 +02:00
Kirill Bulatov
db335a1bbf
Add flyimport completion for trait assoc items
2021-01-16 20:44:12 +02:00
Kirill Bulatov
6742f38e49
Share import_assets and related entities
2021-01-16 19:33:36 +02:00
yugo-horie
f273995a25
Swap assert_eq_text\!(expected, actual)
2021-01-16 13:30:26 +09:00
Lukas Wirth
98718e0544
Wrap remaining self/super/crate in Name{Ref}
2021-01-15 22:18:43 +01:00
unexge
a3a722de9f
Add Unmerge Use assist
2021-01-15 22:14:51 +03:00
Lukas Wirth
cb863390f2
Handle self/super/crate in PathSegment as NameRef
2021-01-15 19:21:23 +01:00
Lukas Wirth
d5095329a1
Phase out SourceFileEdits in favour of a plain HashMap
2021-01-14 22:43:36 +01:00
Lukas Wirth
f51457a643
Group file source edits by FileId
2021-01-14 18:35:22 +01:00
bors[bot]
39167b97d8
Merge #7260
...
7260: Render Fn* trait objects and impl types as rust does r=matklad a=Veykril
Also fixes raw ptr impl types being rendered ambiguously with multiple predicates.
This moves out the `FamousDefs::Fixture` into its own file as well, cause I figured it is big enough to get its own file at this point + we also get highlighting this way when editing it.
Fixes #3012
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-14 09:07:15 +00:00
Lukas Wirth
3d6480bc31
Render Fn* trait objects and impl types as rust does
2021-01-13 13:29:47 +01:00
Lukas Wirth
e9e3ab549d
Move FamousDefs fixture out into its own file
2021-01-12 17:26:08 +01:00
Lukas Wirth
aff9102afb
Rename FileReferences -> UsageSearchResult
2021-01-12 15:56:24 +01:00
Lukas Wirth
2c1777a2e2
Ensure uniqueness of file ids in reference search via hashmap
2021-01-12 15:51:02 +01:00
Lukas Wirth
fbdb32adfc
Group references by FileId
2021-01-12 01:03:04 +01:00
bors[bot]
607b9ea160
Merge #7218
...
7218: Fix typos r=Veykril a=regexident
Apart from the very last commit on this PR (which fixes a public type's name) all changes are non-breaking.
Co-authored-by: Vincent Esche <regexident@gmail.com>
2021-01-10 18:16:29 +00:00
Lukas Wirth
b795128dde
Use hir::GenericParam in ide_db::Definition instead of relisting all 3
2021-01-10 12:33:47 +01:00