about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvxpm <viniciusximenespm@gmail.com>2023-09-03 23:41:13 -0300
committervxpm <viniciusximenespm@gmail.com>2023-09-08 22:03:42 -0300
commit6afa5b0ba28c46905c0d0ac3022d4e1af0f1de36 (patch)
tree59b770711bb4c28b0e0a8e236f1f14576086a95a
parent23ffda1a97726ccdb70e43910ae4363f3e5b8448 (diff)
downloadrust-6afa5b0ba28c46905c0d0ac3022d4e1af0f1de36.tar.gz
rust-6afa5b0ba28c46905c0d0ac3022d4e1af0f1de36.zip
better handling of spaces & newlines
-rw-r--r--crates/ide-completion/src/render/function.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/crates/ide-completion/src/render/function.rs b/crates/ide-completion/src/render/function.rs
index 1672826f330..dd7de72190d 100644
--- a/crates/ide-completion/src/render/function.rs
+++ b/crates/ide-completion/src/render/function.rs
@@ -241,7 +241,18 @@ fn ref_of_param(ctx: &CompletionContext<'_>, arg: &str, ty: &hir::Type) -> &'sta
 
 fn detail(db: &dyn HirDatabase, func: hir::Function, full_function_signature: bool) -> String {
     if full_function_signature {
-        return format!("{}", func.display(db)).replace("\n", " ");
+        let signature = format!("{}", func.display(db));
+        let mut singleline = String::with_capacity(signature.len());
+
+        for segment in signature.split_whitespace() {
+            if !singleline.is_empty() {
+                singleline.push(' ');
+            }
+
+            singleline.push_str(segment);
+        }
+
+        return singleline;
     }
 
     let mut ret_ty = func.ret_type(db);