From 344f63c6cadef985cea86b9ea16d9440ace54a6e Mon Sep 17 00:00:00 2001
From: "A. Teo Welton" <76081718+teowelton@users.noreply.github.com>
Date: Thu, 30 Oct 2025 04:47:44 -0600
Subject: [PATCH] Language: Fix minor C++ completion label formatting issue
(#41544)
Closes #39515
**Details:**
- Improved logic for formatting completion labels, as some (such as
`namespace`) were missing space characters.
- Added extra logic as per stale PR #39533
[comment](https://github.com/zed-industries/zed/pull/39533#issuecomment-3368549433)
ensuring that cases where extra spaces are not necessary (such as
functions) are not affected
- I will note, I was not able to figure out how to fix the coloring of
`namespace` within completion labels as mentioned in that comment, if
someone would provide me with direction I would be happy to look into
that too.
Previous:
Fixed:
Release Notes:
- Fixed minor issue where some `clangd` labels would be missing a space
in formatting
---
crates/languages/src/c.rs | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/crates/languages/src/c.rs b/crates/languages/src/c.rs
index 3463f45050..8e90cf8213 100644
--- a/crates/languages/src/c.rs
+++ b/crates/languages/src/c.rs
@@ -166,13 +166,24 @@ impl super::LspAdapter for CLspAdapter {
None => "",
};
- let label = completion
+ let mut label = completion
.label
.strip_prefix('•')
.unwrap_or(&completion.label)
.trim()
- .to_owned()
- + label_detail;
+ .to_owned();
+
+ if !label_detail.is_empty() {
+ let should_add_space = match completion.kind {
+ Some(lsp::CompletionItemKind::FUNCTION | lsp::CompletionItemKind::METHOD) => false,
+ _ => true,
+ };
+
+ if should_add_space && !label.ends_with(' ') && !label_detail.starts_with(' ') {
+ label.push(' ');
+ }
+ label.push_str(label_detail);
+ }
match completion.kind {
Some(lsp::CompletionItemKind::FIELD) if completion.detail.is_some() => {