aboutsummaryrefslogtreecommitdiff
path: root/crates/completion/src/presentation.rs
diff options
context:
space:
mode:
authorIgor Aleksanov <[email protected]>2020-10-25 08:26:38 +0000
committerIgor Aleksanov <[email protected]>2020-10-25 08:26:38 +0000
commitf731d910cbfe36bbdfa3a3f1415d5c48c4a79238 (patch)
treecc221d5bad05e1b6dc8e30f876b29d274b05e827 /crates/completion/src/presentation.rs
parent19c10672023ead0c1d64486154b6c4145b649568 (diff)
Move Completions structure definition into completions module
Diffstat (limited to 'crates/completion/src/presentation.rs')
-rw-r--r--crates/completion/src/presentation.rs21
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) {