diff options
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_dot.rs')
-rw-r--r-- | crates/ra_ide_api/src/completion/complete_dot.rs | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index 20fa323ce..c9099bcd7 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs | |||
@@ -1,7 +1,6 @@ | |||
1 | use hir::{Ty, AdtDef, Docs}; | 1 | use hir::{Ty, AdtDef}; |
2 | 2 | ||
3 | use crate::completion::{CompletionContext, Completions, CompletionItem, CompletionItemKind}; | 3 | use crate::completion::{CompletionContext, Completions, CompletionItem, CompletionItemKind, CompletionKind}; |
4 | use crate::completion::completion_item::CompletionKind; | ||
5 | 4 | ||
6 | /// Complete dot accesses, i.e. fields or methods (currently only fields). | 5 | /// Complete dot accesses, i.e. fields or methods (currently only fields). |
7 | pub(super) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) { | 6 | pub(super) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) { |
@@ -29,15 +28,7 @@ fn complete_fields(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty) | |||
29 | match def_id { | 28 | match def_id { |
30 | AdtDef::Struct(s) => { | 29 | AdtDef::Struct(s) => { |
31 | for field in s.fields(ctx.db) { | 30 | for field in s.fields(ctx.db) { |
32 | CompletionItem::new( | 31 | acc.add_field(CompletionKind::Reference, ctx, field, substs); |
33 | CompletionKind::Reference, | ||
34 | ctx.source_range(), | ||
35 | field.name(ctx.db).to_string(), | ||
36 | ) | ||
37 | .kind(CompletionItemKind::Field) | ||
38 | .detail(field.ty(ctx.db).subst(substs).to_string()) | ||
39 | .set_documentation(field.docs(ctx.db)) | ||
40 | .add_to(acc); | ||
41 | } | 32 | } |
42 | } | 33 | } |
43 | 34 | ||
@@ -47,14 +38,7 @@ fn complete_fields(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty) | |||
47 | } | 38 | } |
48 | Ty::Tuple(fields) => { | 39 | Ty::Tuple(fields) => { |
49 | for (i, ty) in fields.iter().enumerate() { | 40 | for (i, ty) in fields.iter().enumerate() { |
50 | CompletionItem::new( | 41 | acc.add_pos_field(CompletionKind::Reference, ctx, i, ty); |
51 | CompletionKind::Reference, | ||
52 | ctx.source_range(), | ||
53 | i.to_string(), | ||
54 | ) | ||
55 | .kind(CompletionItemKind::Field) | ||
56 | .detail(ty.to_string()) | ||
57 | .add_to(acc); | ||
58 | } | 42 | } |
59 | } | 43 | } |
60 | _ => {} | 44 | _ => {} |