Change summary
internal/ui/chat/messages.go | 7 ++++++-
internal/ui/chat/tools.go | 19 +++++++++++--------
internal/ui/chat/user.go | 12 +++++++++---
3 files changed, 26 insertions(+), 12 deletions(-)
Detailed changes
@@ -221,7 +221,12 @@ func (a *AssistantInfoItem) RawRender(width int) string {
// Render implements MessageItem.
func (a *AssistantInfoItem) Render(width int) string {
- return a.sty.Chat.Message.SectionHeader.Render(a.RawRender(width))
+ prefix := a.sty.Chat.Message.SectionHeader.Render()
+ lines := strings.Split(a.RawRender(width), "\n")
+ for i, line := range lines {
+ lines[i] = prefix + line
+ }
+ return strings.Join(lines, "\n")
}
func (a *AssistantInfoItem) renderContent(width int) string {
@@ -321,16 +321,19 @@ func (t *baseToolMessageItem) RawRender(width int) string {
// Render renders the tool message item at the given width.
func (t *baseToolMessageItem) Render(width int) string {
- style := t.sty.Chat.Message.ToolCallBlurred
- if t.focused {
- style = t.sty.Chat.Message.ToolCallFocused
- }
-
+ var prefix string
if t.isCompact {
- style = t.sty.Chat.Message.ToolCallCompact
+ prefix = t.sty.Chat.Message.ToolCallCompact.Render()
+ } else if t.focused {
+ prefix = t.sty.Chat.Message.ToolCallFocused.Render()
+ } else {
+ prefix = t.sty.Chat.Message.ToolCallBlurred.Render()
}
-
- return style.Render(t.RawRender(width))
+ lines := strings.Split(t.RawRender(width), "\n")
+ for i, ln := range lines {
+ lines[i] = prefix + ln
+ }
+ return strings.Join(lines, "\n")
}
// ToolCall returns the tool call associated with this message item.
@@ -70,11 +70,17 @@ func (m *UserMessageItem) RawRender(width int) string {
// Render implements MessageItem.
func (m *UserMessageItem) Render(width int) string {
- style := m.sty.Chat.Message.UserBlurred
+ var prefix string
if m.focused {
- style = m.sty.Chat.Message.UserFocused
+ prefix = m.sty.Chat.Message.UserFocused.Render()
+ } else {
+ prefix = m.sty.Chat.Message.UserBlurred.Render()
+ }
+ lines := strings.Split(m.RawRender(width), "\n")
+ for i, line := range lines {
+ lines[i] = prefix + line
}
- return style.Render(m.RawRender(width))
+ return strings.Join(lines, "\n")
}
// ID implements MessageItem.