Add docs to struct fields

This commit is contained in:
Jeremy A. Kolb 2019-01-25 14:29:56 -05:00
parent 55906341a6
commit 7a0bc2dd64
6 changed files with 26 additions and 8 deletions

View file

@ -1,4 +1,4 @@
use hir::{Ty, AdtDef};
use hir::{Ty, AdtDef, Docs};
use crate::completion::{CompletionContext, Completions, CompletionItem, CompletionItemKind};
use crate::completion::completion_item::CompletionKind;
@ -38,6 +38,7 @@ fn complete_fields(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty)
)
.kind(CompletionItemKind::Field)
.detail(field.ty(ctx.db).subst(substs).to_string())
.set_documentation(field.docs(ctx.db))
.add_to(acc);
}
}
@ -107,7 +108,10 @@ mod tests {
check_ref_completion(
"struct_field_completion_self",
r"
struct A { the_field: (u32,) }
struct A {
/// This is the_field
the_field: (u32,)
}
impl A {
fn foo(self) {
self.<|>

View file

@ -1,5 +1,5 @@
---
created: "2019-01-23T13:19:23.501297515+00:00"
created: "2019-01-25T19:27:09.519688600+00:00"
creator: insta@0.5.2
expression: kind_completions
source: crates/ra_ide_api/src/completion/completion_item.rs
@ -14,11 +14,15 @@ source: crates/ra_ide_api/src/completion/completion_item.rs
detail: Some(
"(u32,)"
),
documentation: None,
documentation: Some(
Documentation(
"This is the_field"
)
),
lookup: None,
insert_text: None,
insert_text_format: PlainText,
source_range: [121; 121),
source_range: [187; 187),
text_edit: None
},
CompletionItem {
@ -36,7 +40,7 @@ source: crates/ra_ide_api/src/completion/completion_item.rs
"foo()$0"
),
insert_text_format: Snippet,
source_range: [121; 121),
source_range: [187; 187),
text_edit: None
}
]