Skip to content

Commit d8fbcb3

Browse files
committed
fix(churn): constrain name column and halve bar width to prevent overflow
1 parent a7841a7 commit d8fbcb3

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

internal/ui/tab_churn.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,35 @@ func (m Model) tabChurn() string {
1919
return b.String()
2020
}
2121

22+
// Name column: leave room for bar (bw/2) + stats (~14 chars) + padding
23+
nameCol := m.width - bw/2 - 20
24+
if nameCol < 15 {
25+
nameCol = 15
26+
}
27+
if nameCol > 36 {
28+
nameCol = 36
29+
}
30+
2231
maxChanges := s.Churn[0].Changes
2332
for i, e := range s.Churn {
2433
pct := 0.0
2534
if maxChanges > 0 {
2635
pct = float64(e.Changes) / float64(maxChanges) * 100
2736
}
28-
// Trim long paths to basename for narrow terminals
2937
name := e.File
30-
if len(name) > 40 {
38+
if len(name) > nameCol {
3139
name = "…" + filepath.Base(name)
40+
if len(name) > nameCol {
41+
name = name[len(name)-nameCol:]
42+
}
3243
}
3344
style := accentStyle
3445
if i == 0 {
3546
style = warnStyle
3647
}
37-
fmt.Fprintf(&b, " %-42s %s %s\n",
38-
name,
39-
bar(pct, bw),
48+
fmt.Fprintf(&b, " %-*s %s %s\n",
49+
nameCol, name,
50+
bar(pct, bw/2),
4051
style.Render(fmt.Sprintf("%d (%.1f%%)", e.Changes, e.Percent)),
4152
)
4253
}

0 commit comments

Comments
 (0)