Lukas Wirth
992965cd82
Return CallInfo for unclosed call expressions
2021-04-16 22:57:33 +02:00
Kirill Bulatov
739edfd5cf
Exclude inherent traits from flyimports
2021-04-16 11:13:17 +03:00
Kirill Bulatov
af8a6049a5
Profile trait solving for all invocations
2021-04-14 19:11:17 +03:00
jake
a624e2ea8d
Adds impl Deref assist
2021-04-11 00:42:05 -07:00
Jonas Schievink
035d84558c
Avoid O(n²) when constructing AttrSourceMap
2021-04-06 22:25:44 +02:00
unexge
8d4be829e0
Add convert tuple struct to named struct assist
2021-04-04 20:52:43 +03:00
unexge
d3a112d68c
Allow including Self
kw references to FindUsages
2021-04-04 20:48:31 +03:00
Graeme Coupar
ee03849017
Convert Into to From assist
...
This adds a "Convert Into to From" assist, useful since clippy has
recently started adding lints on every `Into`.
It covers converting the signature, and converting any `self`/`Self`
references within the body to the correct types.
It does assume that every instance of `Into` can be converted to a
`From`, which I _think_ is the case now. Let me know if there's
something I'm not thinking of and I can try and make it smarter.
2021-04-03 15:48:35 +01:00
bors[bot]
55d7d71590
Merge #8267
...
8267: Adding gifs and screenshots for features in manual r=matklad a=MozarellaMan
For #6539
This includes most of gif or screenshot examples of most items in the "Features" header. With the exceptions of:
- **On Typing Assists** - couldn't get it to work for a demo, I'm probably missing something?
- **Structural search and replace** - looked to be already a visual example of the feature
- **Workspace symbol** - wasn't sure how best to show this, all of the examples maybe? Also wasn't sure of the best code example to show it off
- **Semantic Syntax Highlighting** - seemed obvious enough to not need a screenshot, but I could easily add this
All the gifs/pngs are hosted in this [comment](https://github.com/rust-analyzer/rust-analyzer/issues/6539#issuecomment-809574840 ). Please let me know if any of them aren't suitable (and why) and I'll improve it! Or if you don't like the theme/font
Co-authored-by: Ayomide Bamidele <48062697+MozarellaMan@users.noreply.github.com>
2021-03-31 10:01:56 +00:00
Ayomide Bamidele
276022682b
Gifs and screenshots for features in manual
2021-03-31 00:08:10 +01:00
bors[bot]
fd7c454d51
Merge #8186
...
8186: Lower traits to `TraitRef` instead of `TypeRef` r=matklad a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-30 16:45:05 +00:00
Jonas Schievink
41c7448e12
Accurately classify assoc. types in paths
2021-03-30 02:09:17 +02:00
Lukas Wirth
c2a63b97a8
Rename target_ty to self_ty
2021-03-29 17:47:47 +02:00
bors[bot]
bb1d925dab
Merge #8212
...
8212: Basic support macro 2.0 r=jonas-schievink a=edwin0cheng
Turn out it is quite straight forward :)
r @jonas-schievink
![m2](https://user-images.githubusercontent.com/11014119/112712565-6eb99380-8f0b-11eb-88de-5d7f974dfe6d.png )
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-28 15:43:11 +00:00
Lukas Wirth
1ef55002c2
Cleanup ide_db imports
2021-03-27 21:51:00 +01:00
Edwin Cheng
4520002b63
Unleash macro 2.0 in hightlight and more
2021-03-27 14:42:49 +08:00
cynecx
5ff3299dd6
syntax: return owned string instead of leaking string
2021-03-26 18:30:59 +01:00
Jonas Schievink
4781479ab2
Sweep the new TraitEnvironmentQuery
2021-03-24 18:59:35 +01:00
Lukas Wirth
395183e0b7
Cleanup Definition::search_scope
2021-03-23 13:03:55 +01:00
Lukas Wirth
7c4eb66c1a
Merge hir::MacroDef::is_* into hir::MacroDef::kind
2021-03-23 11:32:14 +01:00
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