style: omit leading fade on leftmost tab

This commit is contained in:
Valdemar Lorenzen
2026-10-12 10:47:41 +02:00
parent 9dd6a666d0
commit 393791ab7e
2 changed files with 7 additions and 5 deletions
+6 -4
View File
@@ -1041,8 +1041,10 @@ fn draw_tab_bar(frame: &mut Frame, editor: &Editor, area: Rect) -> Rect {
let active = editor.tab_index();
let mut first = active;
let padding = u16::from(bar.width > 1);
let fade = usize::from(bar.width) >= labels[active].width() + usize::from(padding) + 6;
let mut width = labels[active].width() + usize::from(padding) + if fade { 6 } else { 0 };
let fade_width = if active == 0 { 3 } else { 6 };
let fade = usize::from(bar.width) >= labels[active].width() + usize::from(padding) + fade_width;
let mut width =
labels[active].width() + usize::from(padding) + if fade { fade_width } else { 0 };
while first > 0 && width + labels[first - 1].width() <= usize::from(bar.width) {
first -= 1;
width += labels[first].width();
@@ -1051,7 +1053,7 @@ fn draw_tab_bar(frame: &mut Frame, editor: &Editor, area: Rect) -> Rect {
let mut x = bar.x + padding;
for (index, label) in labels.iter().enumerate().skip(first) {
let decorated = index == active && fade;
let width = (label.width() + if decorated { 6 } else { 0 })
let width = (label.width() + if decorated { fade_width } else { 0 })
.min(usize::from(bar.right() - x)) as u16;
let highlight = Style::default()
.fg(Color::Black)
@@ -1060,7 +1062,7 @@ fn draw_tab_bar(frame: &mut Frame, editor: &Editor, area: Rect) -> Rect {
let edge = Style::default().fg(Color::Cyan);
let line = if decorated {
Line::from(vec![
Span::styled("░▒▓", edge),
Span::styled(if index == 0 { "" } else { "░▒▓" }, edge),
Span::styled(label.as_str(), highlight),
Span::styled("▓▒░", edge),
])