From 66c4e3fe3e58a2489f9db3bbc696eed83c9864c0 Mon Sep 17 00:00:00 2001 From: Alvaro Parker Date: Sun, 17 Aug 2025 19:25:56 -0400 Subject: [PATCH] Trim branch for larger names --- crates/git_ui/src/stash_picker.rs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/crates/git_ui/src/stash_picker.rs b/crates/git_ui/src/stash_picker.rs index 7b6ef2a4e5..11caedf27d 100644 --- a/crates/git_ui/src/stash_picker.rs +++ b/crates/git_ui/src/stash_picker.rs @@ -440,16 +440,20 @@ impl PickerDelegate for StashListDelegate { let stash_name = HighlightedLabel::new(stash_message, positions).into_any_element(); - let stash_index_label = Label::new( - entry_match - .entry - .branch - .clone() - .unwrap_or_default() - .to_string(), - ) - .size(LabelSize::Small) - .color(Color::Muted); + let mut branch_name = entry_match.entry.branch.clone().unwrap_or_default(); + let max_branch_chars = ((max_width * 0.2) / normal_em) as usize; + if branch_name.len() > max_branch_chars && max_branch_chars > 1 { + let mut index = max_branch_chars - 1; + while !branch_name.is_char_boundary(index) && index != 0 { + index -= 1; + } + branch_name.truncate(index); + branch_name.push_str("…"); + } + + let stash_index_label = Label::new(branch_name) + .size(LabelSize::Small) + .color(Color::Muted); let tooltip_text = format!( "stash@{{{}}} created {}",