From 4ffd99c2ec62fd3cbc9f9e0673d92c6a2a4f12b1 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Mon, 15 Jun 2026 04:56:03 +0300 Subject: fix: keep auto tab labels compact --- src/workspace.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/workspace.rs') diff --git a/src/workspace.rs b/src/workspace.rs index 02e9e9a6..8216001b 100644 --- a/src/workspace.rs +++ b/src/workspace.rs @@ -423,7 +423,16 @@ impl Workspace { } pub fn active_tab_display_name(&self) -> Option { - self.active_tab().map(Tab::display_name) + self.tab_display_name(self.active_tab) + } + + pub fn tab_display_name(&self, tab_idx: usize) -> Option { + let tab = self.tabs.get(tab_idx)?; + Some( + tab.custom_name + .clone() + .unwrap_or_else(|| (tab_idx + 1).to_string()), + ) } pub fn switch_tab(&mut self, idx: usize) { @@ -1581,8 +1590,10 @@ mod tests { assert!(ws.move_tab(0, ws.tabs.len())); - let labels: Vec<_> = ws.tabs.iter().map(|tab| tab.display_name()).collect(); - assert_eq!(labels, vec!["foo", "3", "1"]); + let labels: Vec<_> = (0..ws.tabs.len()) + .map(|tab_idx| ws.tab_display_name(tab_idx).unwrap()) + .collect(); + assert_eq!(labels, vec!["foo", "2", "3"]); assert_eq!(ws.tabs[0].custom_name.as_deref(), Some("foo")); assert!(ws.tabs[1].custom_name.is_none()); assert!(ws.tabs[2].custom_name.is_none()); -- cgit v1.2.3