aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/completion/complete_scope.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_scope.rs')
-rw-r--r--crates/ra_ide_api/src/completion/complete_scope.rs57
1 files changed, 33 insertions, 24 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs
index 3488d6480..44514ab2b 100644
--- a/crates/ra_ide_api/src/completion/complete_scope.rs
+++ b/crates/ra_ide_api/src/completion/complete_scope.rs
@@ -6,29 +6,15 @@ pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) {
6 } 6 }
7 let names = ctx.resolver.all_names(); 7 let names = ctx.resolver.all_names();
8 8
9 // let module_scope = module.scope(ctx.db); 9 names.into_iter().for_each(|(name, res)| {
10 names 10 CompletionItem::new(
11 .into_iter() 11 CompletionKind::Reference,
12 // FIXME check tests 12 ctx.source_range(),
13 // .filter(|(_name, res)| { 13 name.to_string(),
14 // // For cases like `use self::foo<|>` don't suggest foo itself. 14 )
15 // match res.import { 15 .from_resolution(ctx, &res)
16 // None => true, 16 .add_to(acc)
17 // Some(import) => { 17 });
18 // let source = module.import_source(ctx.db, import);
19 // !source.syntax().range().is_subrange(&ctx.leaf.range())
20 // }
21 // }
22 // })
23 .for_each(|(name, res)| {
24 CompletionItem::new(
25 CompletionKind::Reference,
26 ctx.source_range(),
27 name.to_string(),
28 )
29 .from_resolution(ctx, &res)
30 .add_to(acc)
31 });
32} 18}
33 19
34#[cfg(test)] 20#[cfg(test)]
@@ -87,6 +73,30 @@ mod tests {
87 } 73 }
88 74
89 #[test] 75 #[test]
76 fn completes_generic_params() {
77 check_reference_completion(
78 "generic_params",
79 r"
80 fn quux<T>() {
81 <|>
82 }
83 ",
84 );
85 }
86
87 #[test]
88 fn completes_generic_params_in_struct() {
89 check_reference_completion(
90 "generic_params_in_struct",
91 r"
92 struct X<T> {
93 x: <|>
94 }
95 ",
96 );
97 }
98
99 #[test]
90 fn completes_module_items() { 100 fn completes_module_items() {
91 check_reference_completion( 101 check_reference_completion(
92 "module_items", 102 "module_items",
@@ -145,5 +155,4 @@ mod tests {
145 fn completes_self_in_methods() { 155 fn completes_self_in_methods() {
146 check_reference_completion("self_in_methods", r"impl S { fn foo(&self) { <|> } }") 156 check_reference_completion("self_in_methods", r"impl S { fn foo(&self) { <|> } }")
147 } 157 }
148
149} 158}