diff options
author | Igor Aleksanov <[email protected]> | 2020-10-25 08:26:38 +0000 |
---|---|---|
committer | Igor Aleksanov <[email protected]> | 2020-10-25 08:26:38 +0000 |
commit | f731d910cbfe36bbdfa3a3f1415d5c48c4a79238 (patch) | |
tree | cc221d5bad05e1b6dc8e30f876b29d274b05e827 /crates/completion/src/presentation.rs | |
parent | 19c10672023ead0c1d64486154b6c4145b649568 (diff) |
Move Completions structure definition into completions module
Diffstat (limited to 'crates/completion/src/presentation.rs')
-rw-r--r-- | crates/completion/src/presentation.rs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/crates/completion/src/presentation.rs b/crates/completion/src/presentation.rs index 38bb8fa3e..17584f734 100644 --- a/crates/completion/src/presentation.rs +++ b/crates/completion/src/presentation.rs | |||
@@ -57,7 +57,8 @@ impl Completions { | |||
57 | let kind = match resolution { | 57 | let kind = match resolution { |
58 | ScopeDef::ModuleDef(Module(..)) => CompletionItemKind::Module, | 58 | ScopeDef::ModuleDef(Module(..)) => CompletionItemKind::Module, |
59 | ScopeDef::ModuleDef(Function(func)) => { | 59 | ScopeDef::ModuleDef(Function(func)) => { |
60 | return self.add_function(ctx, *func, Some(local_name)); | 60 | self.add_function(ctx, *func, Some(local_name)); |
61 | return; | ||
61 | } | 62 | } |
62 | ScopeDef::ModuleDef(Adt(hir::Adt::Struct(_))) => CompletionItemKind::Struct, | 63 | ScopeDef::ModuleDef(Adt(hir::Adt::Struct(_))) => CompletionItemKind::Struct, |
63 | // FIXME: add CompletionItemKind::Union | 64 | // FIXME: add CompletionItemKind::Union |
@@ -65,7 +66,8 @@ impl Completions { | |||
65 | ScopeDef::ModuleDef(Adt(hir::Adt::Enum(_))) => CompletionItemKind::Enum, | 66 | ScopeDef::ModuleDef(Adt(hir::Adt::Enum(_))) => CompletionItemKind::Enum, |
66 | 67 | ||
67 | ScopeDef::ModuleDef(EnumVariant(var)) => { | 68 | ScopeDef::ModuleDef(EnumVariant(var)) => { |
68 | return self.add_enum_variant(ctx, *var, Some(local_name)); | 69 | self.add_enum_variant(ctx, *var, Some(local_name)); |
70 | return; | ||
69 | } | 71 | } |
70 | ScopeDef::ModuleDef(Const(..)) => CompletionItemKind::Const, | 72 | ScopeDef::ModuleDef(Const(..)) => CompletionItemKind::Const, |
71 | ScopeDef::ModuleDef(Static(..)) => CompletionItemKind::Static, | 73 | ScopeDef::ModuleDef(Static(..)) => CompletionItemKind::Static, |
@@ -77,13 +79,14 @@ impl Completions { | |||
77 | // (does this need its own kind?) | 79 | // (does this need its own kind?) |
78 | ScopeDef::AdtSelfType(..) | ScopeDef::ImplSelfType(..) => CompletionItemKind::TypeParam, | 80 | ScopeDef::AdtSelfType(..) | ScopeDef::ImplSelfType(..) => CompletionItemKind::TypeParam, |
79 | ScopeDef::MacroDef(mac) => { | 81 | ScopeDef::MacroDef(mac) => { |
80 | return self.add_macro(ctx, Some(local_name), *mac); | 82 | self.add_macro(ctx, Some(local_name), *mac); |
83 | return; | ||
81 | } | 84 | } |
82 | ScopeDef::Unknown => { | 85 | ScopeDef::Unknown => { |
83 | return self.add( | 86 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), local_name) |
84 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), local_name) | 87 | .kind(CompletionItemKind::UnresolvedReference) |
85 | .kind(CompletionItemKind::UnresolvedReference), | 88 | .add_to(self); |
86 | ); | 89 | return; |
87 | } | 90 | } |
88 | }; | 91 | }; |
89 | 92 | ||
@@ -189,7 +192,7 @@ impl Completions { | |||
189 | } | 192 | } |
190 | }; | 193 | }; |
191 | 194 | ||
192 | self.add(builder); | 195 | self.add(builder.build()); |
193 | } | 196 | } |
194 | 197 | ||
195 | pub(crate) fn add_function( | 198 | pub(crate) fn add_function( |
@@ -241,7 +244,7 @@ impl Completions { | |||
241 | 244 | ||
242 | builder = builder.add_call_parens(ctx, name, Params::Named(params)); | 245 | builder = builder.add_call_parens(ctx, name, Params::Named(params)); |
243 | 246 | ||
244 | self.add(builder) | 247 | self.add(builder.build()) |
245 | } | 248 | } |
246 | 249 | ||
247 | pub(crate) fn add_const(&mut self, ctx: &CompletionContext, constant: hir::Const) { | 250 | pub(crate) fn add_const(&mut self, ctx: &CompletionContext, constant: hir::Const) { |