Laurențiu Nicola
3e358a6827
⬆️ rust-analyzer
2022-08-30 14:51:24 +03:00
Laurențiu Nicola
31519bb394
⬆️ rust-analyzer
2022-08-23 10:05:52 +03:00
Laurențiu Nicola
8231fee466
⬆️ rust-analyzer
2022-08-16 11:24:50 +03:00
Laurențiu Nicola
9d2cb42a41
⬆️ rust-analyzer
2022-08-02 09:05:16 +03:00
Amos Wenger
a1f1b95d00
Merge commit 'e36a20c24f35a4cee82bbdc600289104c9237c22' into ra-sync-and-pms-component
2022-07-26 11:53:50 +02:00
Dorian Scheidt
13c83f90ac
fix: Don't add braces to 'if' completion in match guard position
...
When the cursor is in a match arm, but before the fat arrow (=>) token, don't
add braces when autocompleting "if".
fixes #12823
2022-07-23 12:25:02 -05:00
Amos Wenger
7e285e1ef5
Run cargo fmt
2022-07-20 15:06:15 +02:00
Amos Wenger
816f7fe12a
Run cargo fix --edition-idioms
2022-07-20 15:02:08 +02:00
Amos Wenger
23d25a3094
Enable extra warnings required by rust-lang/rust
2022-07-20 15:00:17 +02:00
bors
f3e9b38e26
Auto merge of #12646 - lowr:fix/11897, r=lowr
...
fix: escape receiver texts in completion
This PR fixes #11897 by escaping '\\' and '$' in the text of the receiver position expression. See [here](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#snippet_syntax ) for the specification of the snippet syntax (especially [this section](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#grammar ) discusses escaping).
Although not all occurrences of '\\' and '$' have to be replaced, I chose to replace all as that's simpler and easier to understand. There *are* more clever ways to implement it, but I thought they were premature optimization for the time being (maybe I should put FIXME notes?).
2022-07-20 10:51:31 +00:00
Ryo Yoshida
cfc52adc65
Add comments
2022-07-20 19:11:14 +09:00
bors
0e7135615f
Auto merge of #12800 - hi-rustin:rustin-patch-issue-12717, r=hi-rustin
...
Find original as node before compute ref match
part of https://github.com/rust-lang/rust-analyzer/issues/12717
2022-07-20 00:17:09 +00:00
Amos Wenger
1b416473a3
Upgrade to expect-test@1.4.0
...
cf. https://github.com/rust-analyzer/expect-test/issues/33
cf. https://github.com/rust-lang/rust/pull/99444#issuecomment-1188844202
2022-07-19 13:00:45 +02:00
hi-rustin
15016bc09f
Find original as node before compute ref match
...
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-07-18 23:24:19 +08:00
iDawer
a0fd58bbbe
Check for local IDs belong to same definition
2022-07-17 11:43:08 +05:00
bors
96481b7786
Auto merge of #12773 - Veykril:self-compl, r=Veykril
...
fix: Improve self param completion applicability
Fixes https://github.com/rust-lang/rust-analyzer/issues/9522
2022-07-16 10:28:52 +00:00
Lukas Wirth
b96f8f18b0
fix: Improve self param completion applicability
2022-07-16 12:28:41 +02:00
Lukas Wirth
7ff6c36716
fix: Don't show qualified path completions for private items
2022-07-15 13:30:43 +02:00
bors
5af3ef527c
Auto merge of #12735 - feniljain:fix-completions, r=feniljain
...
fix(completion): `super::` completion at crate root and module depth aware
- should close #12439
- Suggest super according to the depth in tree
2022-07-14 11:53:29 +00:00
feniljain
4cbde4ed8f
fix(completion): super::
completion at crate root and module depth
...
aware
2022-07-14 17:07:43 +05:30
TonalidadeHidrica
e3bde579c4
Fix obsolete completion.snippets
config
2022-07-11 17:00:40 +09:00
TonalidadeHidrica
eaebead296
Fix config keys regarding imports in docs
2022-07-11 15:43:25 +09:00
Jonas Schievink
6c6ae965ba
Update remaining GitHub URLs
2022-07-08 15:44:49 +02:00
Hongxu Xu
3248601a03
fix default type param value position
2022-07-07 07:28:55 +08:00
Hongxu Xu
0360ed53cf
check arg_idx >= n_params only if arg_idx >= n_required_params
2022-07-07 00:54:46 +08:00
Hongxu Xu
75fb3de310
Handle generic args per arg index
...
Add more test cases for generic args
2022-07-07 00:45:22 +08:00
Hongxu Xu
0f2eba54db
Show only assoc type args in the correct arg pos
2022-07-06 22:58:27 +08:00
Hongxu Xu
441e659aa1
Complete associated type only in trait generic arg
...
Fix tidy check does not work for marks in multiline
2022-07-05 21:48:28 +08:00
Laurențiu Nicola
791f2a0bec
Bump smallvec
2022-07-03 10:09:35 +03:00
bors
d101439c77
Auto merge of #12627 - yue4u:fix/struct-variant-patterns, r=Veykril
...
fix: complete enum variants as patterns in pattern path
close #12593
2022-07-02 17:18:24 +00:00
bors
d4b79ad77b
Auto merge of #12678 - Veykril:flyimport, r=Veykril
...
fix: Trigger flyimport completions in item lists again
Fixes https://github.com/rust-lang/rust-analyzer/issues/12656
2022-07-02 14:20:36 +00:00
Lukas Wirth
cd42b20ce3
fix: Trigger flyimport completions in item lists again
2022-07-02 16:20:26 +02:00
yue4u
ea7ea7079c
fix: escape for enum variant
2022-07-02 23:17:29 +09:00
yue4u
622b516c74
fix: variants rendering in pattern path
2022-07-02 20:31:24 +09:00
bors
994f3cf74d
Auto merge of #12636 - xuhongxu96:fix-12148, r=Veykril
...
complete raw identifier with "r#" prefix
Fix #12148
Escape Names and Paths used in `insert_text`/`insert_snippet` while rendering the completion items.
2022-07-01 14:55:51 +00:00
Lukas Wirth
531e152390
fix: Simplify macro statement expansion handling
2022-07-01 14:49:30 +02:00
Ryo Yoshida
80cc0ef1bc
Fix typo
2022-06-27 23:20:26 +09:00
Ryo Yoshida
393a18b8ce
fix: escape receiver texts in format string completion
2022-06-27 23:20:23 +09:00
Ryo Yoshida
491e6eaf9e
fix: escape ${receiver} when completing with custom snippets
2022-06-27 23:20:17 +09:00
bors
9eaf96c9ea
Auto merge of #12643 - Veykril:macro-compl, r=Veykril
...
fix: Fix completions for locals not working properly inside macro calls
2022-06-27 12:40:46 +00:00
Lukas Wirth
bdbffdd463
fix: Fix completions for locals not working properly inside macro calls
2022-06-27 14:39:44 +02:00
bors
4c3954682d
Auto merge of #12635 - antogilbert:tgt_feat, r=Veykril
...
Correct target_feature completion
I changed the `target_feature` to match the description given in #12616 .
2022-06-27 12:28:36 +00:00
Manas
7f1fac7c26
fix: deduplicate cfg completions
...
cfg completions are duplicated if they are set with multiple values.
This patch deduplicates them.
2022-06-27 16:17:06 +05:30
Antonello Palazzi
bef89e95e7
Udate unit tests
2022-06-27 09:04:42 +01:00
Hongxu Xu
f536766efb
complete raw identifier with "r#" prefix
2022-06-26 14:45:30 +08:00
Antonello Palazzi
e4e2a46773
Correct target_feature completion
2022-06-26 00:50:41 +01:00
yue4u
472ae16bfb
fix: completes non exhaustive variant within the defining crate
2022-06-24 00:00:51 +09:00
Lukas Wirth
7a0774defa
internal: Simplify some completions
2022-06-20 21:55:33 +02:00
Lukas Wirth
8b078986dc
Reimplement auto-ref completions for fields
2022-06-20 20:22:51 +02:00
Lukas Wirth
46d22719fc
Remove pattern rendering hack
2022-06-20 20:16:40 +02:00
Lukas Wirth
06ee4d6222
fix: Fix auto-ref completions inserting into wrong locations
2022-06-20 18:59:57 +02:00
Lukas Wirth
1f028403cd
fix: Don't trigger pattern completions when typing a wildcard pattern
2022-06-20 18:03:09 +02:00
Lukas Wirth
6e9c963348
internal: Lift out IdentContext from CompletionContext
2022-06-20 17:41:04 +02:00
Lukas Wirth
bcf10cde13
internal: Remove previous_token
field from CompletionContext
2022-06-20 15:07:48 +02:00
Lukas Wirth
90483321ee
Remove some usages of Completions::add_resolution
2022-06-20 14:47:30 +02:00
Lukas Wirth
7685245282
Even more completion context filtering
2022-06-20 14:23:46 +02:00
Lukas Wirth
ce5859e387
Lift out PathKind variant fields into structs
2022-06-20 13:29:13 +02:00
Lukas Wirth
5c69df93df
Split remaining completion calls on the context kinds
2022-06-20 13:17:30 +02:00
Lukas Wirth
f271b18129
Consider walking up macro expansions when searching for surrounding entities in completion analysis
2022-06-18 11:19:36 +02:00
Lukas Wirth
c1446a2743
Move CompletionContext::impl_def
into corresponding entities
2022-06-18 10:45:53 +02:00
Lukas Wirth
83e8f3ac30
Move CompletionContext::incomplete_let
into PathKind::Expr
2022-06-18 10:19:04 +02:00
Lukas Wirth
7369e5120d
Move CompletionContext::function_def
into PathKind::Expr
2022-06-18 09:54:03 +02:00
Lukas Wirth
309ecdd71c
internal: NameRefKind classification is not optional
2022-06-18 08:58:47 +02:00
Lukas Wirth
0665428b4e
minor: Simplify
2022-06-18 01:15:08 +02:00
Lukas Wirth
173bb10a76
internal: Split flyimport into its 3 applicable contexts
2022-06-18 00:47:28 +02:00
Lukas Wirth
00fdb4a3d8
Only run completion functions if their corresponding context is active
2022-06-17 23:36:39 +02:00
Lukas Wirth
d97a8ee865
Remove superfluous early returns
2022-06-17 17:49:25 +02:00
Lukas Wirth
85b68b1f7d
Inline PathQualifierCtx
2022-06-17 17:27:12 +02:00
Lukas Wirth
d6f161ffa9
internal: Collapse lift is_infer_qualifier into Qualified
variant
2022-06-17 17:15:29 +02:00
Lukas Wirth
2f2ea77d88
Move existing_derives into PathKind::Derive
2022-06-17 16:56:21 +02:00
Lukas Wirth
531060f103
internal: Collapse completion ctx path qualifier and is_absolute_path into enum
2022-06-17 16:36:22 +02:00
Lukas Wirth
85363d18e8
Simplify
2022-06-17 16:22:51 +02:00
Lukas Wirth
f35a9a1dcc
Split out tests
2022-06-17 15:19:09 +02:00
Lukas Wirth
a2537e591a
Split completion context module into definitions and analysis parts
2022-06-17 15:16:20 +02:00
Lukas Wirth
f201a40492
Remove ImmediateLocation in favor of PathKind::Type
2022-06-17 15:09:48 +02:00
Lukas Wirth
6b246292ca
Move more ImmediateLocation::TypeAnnotation into PathKind::Type
2022-06-17 11:31:36 +02:00
Lukas Wirth
6e07b17f69
Introduce NameRefKind for completions
2022-06-17 10:45:19 +02:00
bors
7322a982f9
Auto merge of #12554 - XFFXFF:fix_11959, r=Veykril
...
fix: local items should not be completed in parent signature
fixes #11959
> We get a Bar completion for the following snippet which is wrong as the item is not visible in that position.
> ``` rust
> fn foo() -> $0 {
> struct Bar;
> }
> ```
I investigated the problem and found that the scope of the cursor offset, also `CompletionContext.scope` is the body of the function
2022-06-16 12:48:33 +00:00
XFFXFF
6df969f5f4
the offset used for the completion cursor should always be relative to the original file and not to the marco file
2022-06-16 20:34:37 +08:00
XFFXFF
fbf8e12234
the scope of the return type is not the body of the function
2022-06-16 16:24:18 +08:00
Hongxu Xu
534d71a852
disable private editable in TEST_CONFIG by default
...
adjust test_visibility_filter test case
2022-06-16 08:52:57 +08:00
Hongxu Xu
ded412d56b
implement inherited_visibility in collector
2022-06-14 23:23:15 +08:00
Hongxu Xu
d7eebd9706
add test cases to complete fn generated by macro in pub trait
2022-06-14 21:41:09 +08:00
bors
9ef01d0895
Auto merge of #12490 - yue4u:fix/show-enum-in-fresh-use-tree, r=Veykril
...
fix: complete non-std enum at the start of `use` completions
close : #12421
2022-06-10 20:33:17 +00:00
bors
0bbead9fa0
Auto merge of #12473 - yue4u:fix/no-enum-parens-in-use, r=Veykril
...
fix: avoid adding enum parens in use path
close #12420
2022-06-10 20:03:29 +00:00
Lukas Wirth
76ae5434fa
internal: Bump Dependencies
2022-06-10 17:30:02 +02:00
yue4u
2942863709
feat: append :: after
2022-06-09 16:45:46 +09:00
yue4u
55bc693356
fix: show non-std enum in a fresh use tree completion
2022-06-08 20:55:16 +09:00
Lukas Wirth
0be31d945e
fix: Fix trait impl completions using wrong insert position
2022-06-05 20:29:36 +02:00
yue4u
11693dad88
fix: avoid adding enum parens in use
2022-06-06 01:34:01 +09:00
Lukas Wirth
a2a74bf278
Remove some of the unnecessary helpfer functions from CompletionContext
2022-06-03 20:49:25 +02:00
Lukas Wirth
a0c1816e3a
Simplify
2022-06-03 19:55:30 +02:00
Lukas Wirth
98c0578f15
Move trait_impl completion analysis into CompletionContext
2022-06-03 19:49:02 +02:00
Lukas Wirth
2a60b8452e
Deduplicate
2022-06-03 16:33:37 +02:00
Lukas Wirth
522f66545f
Remove prev-sibling completion machinery
2022-06-03 16:25:37 +02:00
Lukas Wirth
6550a241fb
More precise where keyword completions
2022-06-03 16:11:26 +02:00
Lukas Wirth
c522669f00
Remove dead code
2022-06-03 15:46:17 +02:00
Lukas Wirth
c5dcc77b40
Fix visibility mods not being completed for field defs
2022-06-03 15:42:28 +02:00
Lukas Wirth
519ac81b57
internal: Move most remaining keyword completions to item list completions
2022-06-03 15:15:21 +02:00
Lukas Wirth
1234d8647f
minor: Remove unused code
2022-05-31 20:21:50 +02:00
Lukas Wirth
0327df224b
More precise completion filtering
2022-05-30 16:01:17 +02:00
Lukas Wirth
ea594c4c44
Use char for trigger character
2022-05-30 14:17:58 +02:00
yue4u
1b5f0462ed
fix: visibility completion
2022-05-30 00:06:48 +09:00
Lukas Wirth
86d1d9067e
fix: Insert whitespace into trait-impl completions when coming from macros
2022-05-24 22:56:33 +02:00
Lukas Wirth
6f006b7524
Simplify
2022-05-24 21:58:47 +02:00
Lukas Wirth
6a8b8a6039
internal: Refactor our record pat/expr handling in completion context
2022-05-24 13:24:36 +02:00
Lukas Wirth
697ade6f8d
internal: Simplify DotAccess representation in completions
2022-05-24 11:54:50 +02:00
Lukas Wirth
2aa22730f1
fix: Fix completions not working after attributes
2022-05-23 17:22:48 +02:00
Lukas Wirth
018975b041
fix: Fix incorrect expected type in completions for match arms
2022-05-19 12:33:25 +02:00
Lukas Wirth
3577c44dee
fix: Fix fill-arguments completions not working
2022-05-13 19:52:44 +02:00
Jonas Schievink
0831f3123b
Fix tests
2022-05-13 15:54:46 +02:00
Jonas Schievink
9bd11459ba
Revert "Auto merge of #12149 - jonas-schievink:literally-just-a-literal, r=jonas-schievink"
...
This reverts commit cc9ae2b89e
, reversing
changes made to 7dfd1cb572
.
2022-05-13 15:08:14 +02:00
bors
254bfdd2c3
Auto merge of #12204 - Veykril:completions, r=Veykril
...
internal: Move keyword expressions to expr completions module
2022-05-10 13:08:27 +00:00
Lukas Wirth
b2abe1bca1
Move keyword expressions to expr completions module
2022-05-10 15:00:58 +02:00
bors
4a4e9c0ae0
Auto merge of #12203 - Veykril:completions, r=Veykril
...
internal: Simplify
2022-05-10 12:36:46 +00:00
Lukas Wirth
40bb8006cd
Don't parse files in module completion
2022-05-10 14:31:43 +02:00
Lukas Wirth
26fef97d59
Simplify
2022-05-10 14:31:28 +02:00
Jonas Schievink
5a2398d775
Don't show assoc. type binding completions when invalid
2022-05-09 18:12:12 +02:00
Jonas Schievink
2156815f12
Make completion work too
2022-05-09 17:39:13 +02:00
bors
3d2d209638
Auto merge of #11983 - jhpratt:remove-rustc_deprecated, r=lnicola
...
Remove handling of `#[rustc_deprecated]`
This should be merged along with rust-lang/rust#95960 .
Because the attribute still exists in rustc, I've left the definition here. With that said, any use of it is an error, so I've removed any handling of `#[rustc_deprecated]`.
2022-05-09 08:33:18 +00:00
Lukas Wirth
a0fc649269
fix unreachable pub
2022-05-07 15:50:01 +02:00
Lukas Wirth
44c3cc100b
Merge the different identifier contexts into one enum
2022-05-07 15:06:59 +02:00
Lukas Wirth
99fa37d6e3
Split namelike into the corresponding completion contexts
2022-05-07 14:16:03 +02:00
Lukas Wirth
6a045c7029
Introduce NameRefContext
2022-05-07 13:46:43 +02:00
Lukas Wirth
1dc83f5a90
minor: Move inferred type completions
2022-05-07 12:59:26 +02:00
Lukas Wirth
0ce620686c
fix: Fix snippets triggering where they shouldn't
2022-05-06 15:44:41 +02:00
Lukas Wirth
582f99d293
internal: Improve completion tests by checking that the offset is included in the source_range of items
2022-05-06 13:11:50 +02:00
Lukas Wirth
57a9915c1f
internal: completion PathKind is not optional
2022-05-06 12:04:41 +02:00
bors
dd3f5e0993
Auto merge of #12168 - Veykril:completion-rev, r=Veykril
...
internal: Remove unqualified_path completions module
2022-05-05 20:22:30 +00:00
Lukas Wirth
0c4e23b8ef
internal: Remove unqualified_path completions module
2022-05-05 22:21:42 +02:00
Jonas Schievink
90bd99f1bb
Add completion test
2022-05-05 16:28:59 +02:00
Jonas Schievink
2d5d16f18c
Remove ast::Literal::token
2022-05-05 16:27:35 +02:00
Lukas Wirth
16d2e79b50
internal: Remove unqualified_path completions module
2022-05-05 15:50:40 +02:00
Lukas Wirth
25d133e3b8
internal: Lift out item list path completions from (un)qualified_path
2022-05-05 12:20:18 +02:00
Lukas Wirth
5280e08c13
minor: Sort ide-completions test outputs for less disruptive diffs
2022-05-05 10:53:20 +02:00
Lukas Wirth
8b092ec337
internal: Lift out macro bang property from PathKind enum
2022-05-05 10:51:02 +02:00
Jacob Pratt
3c376e5be8
Remove handling of #[rustc_deprecated]
2022-05-04 22:25:58 -04:00
rainy-me
f3e3abfb98
feat: provide self in record literal completion
2022-05-01 21:01:28 +09:00
Peh
1f011fa4a3
style: rename crates to kebab case
2022-05-01 10:48:58 +00:00