diff --git a/internal/tui/absorb.go b/internal/tui/absorb.go index dab374d..2a46b41 100644 --- a/internal/tui/absorb.go +++ b/internal/tui/absorb.go @@ -130,7 +130,8 @@ func renderAbsorbSource(e *db.Entity, maxWidth int) string { line := fmt.Sprintf("%s %s%s", glyph, body, tags) if maxWidth > 0 && len(stripAnsi(line)) > maxWidth { - body = truncate(body, maxWidth-6) + overhead := len(stripAnsi(line)) - len([]rune(body)) + body = truncate(body, maxWidth-overhead) line = fmt.Sprintf("%s %s%s", glyph, body, tags) } diff --git a/internal/tui/cards.go b/internal/tui/cards.go index ed38dfb..442d13d 100644 --- a/internal/tui/cards.go +++ b/internal/tui/cards.go @@ -340,7 +340,8 @@ func renderCard(e *db.Entity, maxWidth int) string { line := fmt.Sprintf("%s %s%s%s%s", glyph, body, affordStr, extraStr, useStr) if maxWidth > 0 && len(stripAnsi(line)) > maxWidth { - body = truncate(body, maxWidth-8) + overhead := len(stripAnsi(line)) - len([]rune(body)) + body = truncate(body, maxWidth-overhead) line = fmt.Sprintf("%s %s%s%s%s", glyph, body, affordStr, extraStr, useStr) } diff --git a/internal/tui/list.go b/internal/tui/list.go index 696912c..87192df 100644 --- a/internal/tui/list.go +++ b/internal/tui/list.go @@ -231,7 +231,8 @@ func renderEntity(e *db.Entity, maxWidth int) string { line := fmt.Sprintf("%s %s%s", glyph, body, extraStr) if maxWidth > 0 && len(stripAnsi(line)) > maxWidth { - body = truncate(body, maxWidth-6) + overhead := len(stripAnsi(line)) - len([]rune(body)) + body = truncate(body, maxWidth-overhead) line = fmt.Sprintf("%s %s%s", glyph, body, extraStr) }