aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/completion/complete_dot.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_dot.rs')
-rw-r--r--crates/ra_ide_api/src/completion/complete_dot.rs24
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 @@
1use hir::{Ty, AdtDef, Docs}; 1use hir::{Ty, AdtDef};
2 2
3use crate::completion::{CompletionContext, Completions, CompletionItem, CompletionItemKind}; 3use crate::completion::{CompletionContext, Completions, CompletionItem, CompletionItemKind, CompletionKind};
4use 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).
7pub(super) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) { 6pub(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 _ => {}