Skip to content

Commit bec5459

Browse files
authored
Merge pull request #19447 from Natural-selection1/add_impl_for
add more completion about "impl"
2 parents 1d1771c + e3ec433 commit bec5459

File tree

6 files changed

+27
-0
lines changed

6 files changed

+27
-0
lines changed

crates/ide-completion/src/completions/item_list.rs

+2
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ fn add_keywords(acc: &mut Completions, ctx: &CompletionContext<'_>, kind: Option
114114
add_keyword("trait", "trait $1 {\n $0\n}");
115115
if no_vis_qualifiers {
116116
add_keyword("impl", "impl $1 {\n $0\n}");
117+
add_keyword("impl for", "impl $1 for $2 {\n $0\n}");
117118
}
118119
}
119120

@@ -144,6 +145,7 @@ fn add_keywords(acc: &mut Completions, ctx: &CompletionContext<'_>, kind: Option
144145
add_keyword("use", "use $0");
145146
if no_vis_qualifiers {
146147
add_keyword("impl", "impl $1 {\n $0\n}");
148+
add_keyword("impl for", "impl $1 for $2 {\n $0\n}");
147149
}
148150
}
149151

crates/ide-completion/src/completions/keyword.rs

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ mod tests {
5656
kw extern
5757
kw fn
5858
kw impl
59+
kw impl for
5960
kw trait
6061
"#]],
6162
);

crates/ide-completion/src/tests/expression.rs

+14
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ impl Unit {
171171
kw if
172172
kw if let
173173
kw impl
174+
kw impl for
174175
kw let
175176
kw letm
176177
kw loop
@@ -249,6 +250,7 @@ fn complete_in_block() {
249250
kw if
250251
kw if let
251252
kw impl
253+
kw impl for
252254
kw let
253255
kw letm
254256
kw loop
@@ -300,6 +302,7 @@ fn complete_after_if_expr() {
300302
kw if
301303
kw if let
302304
kw impl
305+
kw impl for
303306
kw let
304307
kw letm
305308
kw loop
@@ -375,6 +378,7 @@ fn completes_in_loop_ctx() {
375378
kw if
376379
kw if let
377380
kw impl
381+
kw impl for
378382
kw let
379383
kw letm
380384
kw loop
@@ -961,6 +965,7 @@ fn foo() { if foo {} $0 }
961965
kw if
962966
kw if let
963967
kw impl
968+
kw impl for
964969
kw let
965970
kw letm
966971
kw loop
@@ -1003,6 +1008,7 @@ fn foo() { if foo {} el$0 }
10031008
kw if
10041009
kw if let
10051010
kw impl
1011+
kw impl for
10061012
kw let
10071013
kw letm
10081014
kw loop
@@ -1095,6 +1101,7 @@ fn foo() { if foo {} $0 let x = 92; }
10951101
kw if
10961102
kw if let
10971103
kw impl
1104+
kw impl for
10981105
kw let
10991106
kw letm
11001107
kw loop
@@ -1137,6 +1144,7 @@ fn foo() { if foo {} el$0 let x = 92; }
11371144
kw if
11381145
kw if let
11391146
kw impl
1147+
kw impl for
11401148
kw let
11411149
kw letm
11421150
kw loop
@@ -1179,6 +1187,7 @@ fn foo() { if foo {} el$0 { let x = 92; } }
11791187
kw if
11801188
kw if let
11811189
kw impl
1190+
kw impl for
11821191
kw let
11831192
kw letm
11841193
kw loop
@@ -1231,6 +1240,7 @@ pub struct UnstableThisShouldNotBeListed;
12311240
kw if
12321241
kw if let
12331242
kw impl
1243+
kw impl for
12341244
kw let
12351245
kw letm
12361246
kw loop
@@ -1285,6 +1295,7 @@ pub struct UnstableButWeAreOnNightlyAnyway;
12851295
kw if
12861296
kw if let
12871297
kw impl
1298+
kw impl for
12881299
kw let
12891300
kw letm
12901301
kw loop
@@ -1529,6 +1540,7 @@ fn main() {
15291540
kw if
15301541
kw if let
15311542
kw impl
1543+
kw impl for
15321544
kw let
15331545
kw letm
15341546
kw loop
@@ -2001,6 +2013,7 @@ fn bar() {
20012013
kw if
20022014
kw if let
20032015
kw impl
2016+
kw impl for
20042017
kw let
20052018
kw letm
20062019
kw loop
@@ -2073,6 +2086,7 @@ fn foo() {
20732086
kw if
20742087
kw if let
20752088
kw impl
2089+
kw impl for
20762090
kw let
20772091
kw letm
20782092
kw loop

crates/ide-completion/src/tests/item.rs

+1
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ fn bar() {
284284
kw if
285285
kw if let
286286
kw impl
287+
kw impl for
287288
kw let
288289
kw letm
289290
kw loop

crates/ide-completion/src/tests/item_list.rs

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ fn in_mod_item_list() {
1616
kw extern
1717
kw fn
1818
kw impl
19+
kw impl for
1920
kw mod
2021
kw pub
2122
kw pub(crate)
@@ -50,6 +51,7 @@ fn in_source_file_item_list() {
5051
kw extern
5152
kw fn
5253
kw impl
54+
kw impl for
5355
kw mod
5456
kw pub
5557
kw pub(crate)
@@ -83,6 +85,7 @@ fn in_item_list_after_attr() {
8385
kw extern
8486
kw fn
8587
kw impl
88+
kw impl for
8689
kw mod
8790
kw pub
8891
kw pub(crate)
@@ -122,6 +125,7 @@ fn after_unsafe_token() {
122125
kw extern
123126
kw fn
124127
kw impl
128+
kw impl for
125129
kw trait
126130
"#]],
127131
);
@@ -385,6 +389,7 @@ fn after_unit_struct() {
385389
kw extern
386390
kw fn
387391
kw impl
392+
kw impl for
388393
kw mod
389394
kw pub
390395
kw pub(crate)

crates/ide-completion/src/tests/special.rs

+4
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,7 @@ fn here_we_go() {
10081008
kw if
10091009
kw if let
10101010
kw impl
1011+
kw impl for
10111012
kw let
10121013
kw letm
10131014
kw loop
@@ -1059,6 +1060,7 @@ fn here_we_go() {
10591060
kw if
10601061
kw if let
10611062
kw impl
1063+
kw impl for
10621064
kw let
10631065
kw letm
10641066
kw loop
@@ -1184,6 +1186,7 @@ fn bar() { qu$0 }
11841186
kw if
11851187
kw if let
11861188
kw impl
1189+
kw impl for
11871190
kw let
11881191
kw letm
11891192
kw loop
@@ -1441,6 +1444,7 @@ fn foo() {
14411444
kw if
14421445
kw if let
14431446
kw impl
1447+
kw impl for
14441448
kw let
14451449
kw letm
14461450
kw loop

0 commit comments

Comments
 (0)