diff --git a/crates/language_tools/src/lsp_button.rs b/crates/language_tools/src/lsp_button.rs index 180b858d7eabac5e4c6c33a3d5e9129c6c38c063..65a0ea0de119be733cfaf0a998e84f6e2dfaf73c 100644 --- a/crates/language_tools/src/lsp_button.rs +++ b/crates/language_tools/src/lsp_button.rs @@ -270,7 +270,15 @@ impl LanguageServerState { .get(&server_info.id) .and_then(|version| version.clone()); - let metadata_label = match (&server_version, &message) { + let truncated_message = message.as_ref().and_then(|message| { + message + .lines() + .filter(|line| !line.trim().is_empty()) + .map(SharedString::new) + .next() + }); + + let metadata_label = match (&server_version, &truncated_message) { (None, None) => None, (Some(version), None) => Some(SharedString::from(format!("v{}", version.as_ref()))), (None, Some(message)) => Some(message.clone()), @@ -492,7 +500,7 @@ impl LanguageServerState { .id("metadata-container") .ml_neg_1() .gap_1() - .max_w_56() + .max_w(rems(164.)) .child( Icon::new(IconName::Circle) .color(status_color) @@ -516,7 +524,6 @@ impl LanguageServerState { .color(Color::Muted) .truncate(), ) - .tooltip(Tooltip::text(metadata.clone())) }) .into_any_element() }