From 0265778e86f7e130a921ab6307cfdcc0ad953fe0 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 16 Jul 2020 21:32:20 +0200 Subject: Don't use function signature for Display --- crates/ra_ide/src/completion/complete_trait_impl.rs | 9 ++++----- crates/ra_ide/src/completion/presentation.rs | 6 ++++-- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'crates/ra_ide/src/completion') diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs index 90f5b1c25..05e605670 100644 --- a/crates/ra_ide/src/completion/complete_trait_impl.rs +++ b/crates/ra_ide/src/completion/complete_trait_impl.rs @@ -43,7 +43,7 @@ use crate::{ completion::{ CompletionContext, CompletionItem, CompletionItemKind, CompletionKind, Completions, }, - display::function_signature::FunctionSignature, + display::function_label, }; pub(crate) fn complete_trait_impl(acc: &mut Completions, ctx: &CompletionContext) { @@ -125,8 +125,6 @@ fn add_function_impl( ctx: &CompletionContext, func: hir::Function, ) { - let signature = FunctionSignature::from_hir(ctx.db, func); - let fn_name = func.name(ctx.db).to_string(); let label = if !func.params(ctx.db).is_empty() { @@ -146,13 +144,14 @@ fn add_function_impl( }; let range = TextRange::new(fn_def_node.text_range().start(), ctx.source_range().end()); + let function_decl = function_label(&func.source(ctx.db).value); match ctx.config.snippet_cap { Some(cap) => { - let snippet = format!("{} {{\n $0\n}}", signature); + let snippet = format!("{} {{\n $0\n}}", function_decl); builder.snippet_edit(cap, TextEdit::replace(range, snippet)) } None => { - let header = format!("{} {{", signature); + let header = format!("{} {{", function_decl); builder.text_edit(TextEdit::replace(range, header)) } } diff --git a/crates/ra_ide/src/completion/presentation.rs b/crates/ra_ide/src/completion/presentation.rs index e29b82017..160f2f319 100644 --- a/crates/ra_ide/src/completion/presentation.rs +++ b/crates/ra_ide/src/completion/presentation.rs @@ -11,7 +11,9 @@ use crate::{ completion_item::Builder, CompletionContext, CompletionItem, CompletionItemKind, CompletionKind, Completions, }, - display::{const_label, function_signature::FunctionSignature, macro_label, type_label}, + display::{ + const_label, function_label, function_signature::FunctionSignature, macro_label, type_label, + }, CompletionScore, RootDatabase, }; @@ -206,7 +208,7 @@ impl Completions { }) .set_documentation(func.docs(ctx.db)) .set_deprecated(is_deprecated(func, ctx.db)) - .detail(function_signature.to_string()); + .detail(function_label(&ast_node)); let params = function_signature .parameter_names -- cgit v1.2.3