From 437997872a8d831cbdcf0eb4d8b4f483cfeb05e2 Mon Sep 17 00:00:00 2001 From: Matt Low Date: Wed, 22 May 2024 16:57:38 +0000 Subject: [PATCH] Improve message wrapping behavior --- pkg/tui/chat.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/tui/chat.go b/pkg/tui/chat.go index 71f77cb..ec1830a 100644 --- a/pkg/tui/chat.go +++ b/pkg/tui/chat.go @@ -16,6 +16,7 @@ import ( tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/lipgloss" "github.com/muesli/reflow/wordwrap" + "github.com/muesli/reflow/wrap" "gopkg.in/yaml.v2" ) @@ -647,8 +648,11 @@ func (m *chatModel) renderMessage(i int) string { content := strings.TrimRight(sb.String(), "\n") if m.wrap { - wrapWidth := m.content.Width - messageStyle.GetHorizontalPadding() - 2 - content = wordwrap.String(content, wrapWidth) + wrapWidth := m.content.Width - messageStyle.GetHorizontalPadding() + // first we word-wrap text to slightly less than desired width (since + // wordwrap seems to have an off-by-1 issue), then hard wrap at + // desired with + content = wrap.String(wordwrap.String(content, wrapWidth-2), wrapWidth) } return messageStyle.Width(0).Render(content)