File tree Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Original file line number Diff line number Diff line change @@ -1363,6 +1363,7 @@ impl HirDisplay for Type {
1363
1363
}
1364
1364
1365
1365
/// For IDE only
1366
+ #[ derive( Debug ) ]
1366
1367
pub enum ScopeDef {
1367
1368
ModuleDef ( ModuleDef ) ,
1368
1369
MacroDef ( MacroDef ) ,
Original file line number Diff line number Diff line change @@ -297,6 +297,41 @@ mod tests {
297
297
) ;
298
298
}
299
299
300
+ #[ test]
301
+ fn completes_bindings_from_for_with_in_prefix ( ) {
302
+ assert_debug_snapshot ! (
303
+ do_reference_completion(
304
+ r"
305
+ fn test() {
306
+ for index in &[1, 2, 3] {
307
+ let t = in<|>
308
+ }
309
+ }
310
+ "
311
+ ) ,
312
+ @r###"
313
+ [
314
+ CompletionItem {
315
+ label: "index",
316
+ source_range: 107..107,
317
+ delete: 107..107,
318
+ insert: "index",
319
+ kind: Binding,
320
+ },
321
+ CompletionItem {
322
+ label: "test()",
323
+ source_range: 107..107,
324
+ delete: 107..107,
325
+ insert: "test()$0",
326
+ kind: Function,
327
+ lookup: "test",
328
+ detail: "fn test()",
329
+ },
330
+ ]
331
+ "###
332
+ ) ;
333
+ }
334
+
300
335
#[ test]
301
336
fn completes_generic_params ( ) {
302
337
assert_debug_snapshot ! (
Original file line number Diff line number Diff line change @@ -169,7 +169,16 @@ impl<'a> CompletionContext<'a> {
169
169
match self . token . kind ( ) {
170
170
// workaroud when completion is triggered by trigger characters.
171
171
IDENT => self . original_token . text_range ( ) ,
172
- _ => TextRange :: empty ( self . offset ) ,
172
+ _ => {
173
+ // If we haven't characters between keyword and our cursor we take the keyword start range to edit
174
+ if self . token . kind ( ) . is_keyword ( )
175
+ && self . offset == self . original_token . text_range ( ) . end ( )
176
+ {
177
+ TextRange :: empty ( self . original_token . text_range ( ) . start ( ) )
178
+ } else {
179
+ TextRange :: empty ( self . offset )
180
+ }
181
+ }
173
182
}
174
183
}
175
184
You can’t perform that action at this time.
0 commit comments