diff options
Diffstat (limited to 'crates/ra_analysis/src/completion/reference_completion.rs')
-rw-r--r-- | crates/ra_analysis/src/completion/reference_completion.rs | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/crates/ra_analysis/src/completion/reference_completion.rs b/crates/ra_analysis/src/completion/reference_completion.rs index 23052295c..f9f01a642 100644 --- a/crates/ra_analysis/src/completion/reference_completion.rs +++ b/crates/ra_analysis/src/completion/reference_completion.rs | |||
@@ -39,25 +39,19 @@ pub(super) fn completions( | |||
39 | } | 39 | } |
40 | 40 | ||
41 | let module_scope = module.scope(db)?; | 41 | let module_scope = module.scope(db)?; |
42 | acc.extend( | 42 | module_scope |
43 | module_scope | 43 | .entries() |
44 | .entries() | 44 | .filter(|(_name, res)| { |
45 | .filter(|(_name, res)| { | 45 | // Don't expose this item |
46 | // Don't expose this item | 46 | match res.import { |
47 | match res.import { | 47 | None => true, |
48 | None => true, | 48 | Some(import) => { |
49 | Some(import) => { | 49 | let range = import.range(db, module.source().file_id()); |
50 | let range = import.range(db, module.source().file_id()); | 50 | !range.is_subrange(&name_ref.syntax().range()) |
51 | !range.is_subrange(&name_ref.syntax().range()) | ||
52 | } | ||
53 | } | 51 | } |
54 | }) | 52 | } |
55 | .map(|(name, _res)| CompletionItem { | 53 | }) |
56 | label: name.to_string(), | 54 | .for_each(|(name, _res)| CompletionItem::new(name.to_string()).add_to(acc)); |
57 | lookup: None, | ||
58 | snippet: None, | ||
59 | }), | ||
60 | ); | ||
61 | } | 55 | } |
62 | NameRefKind::Path(path) => complete_path(acc, db, module, path)?, | 56 | NameRefKind::Path(path) => complete_path(acc, db, module, path)?, |
63 | NameRefKind::BareIdentInMod => { | 57 | NameRefKind::BareIdentInMod => { |