summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoradamdotdevin <[email protected]>2025-07-16 04:44:38 -0500
committeradamdotdevin <[email protected]>2025-07-16 06:09:27 -0500
commita39136a2a0af543c7233d37a2d9594a5bb8c1fe8 (patch)
treecc7565d9eedb9f93482d0f82a890983110075e38
parent9f5b59f3362cdfe42173cdf38bcba3ba6b935b94 (diff)
downloadopencode-a39136a2a0af543c7233d37a2d9594a5bb8c1fe8.tar.gz
opencode-a39136a2a0af543c7233d37a2d9594a5bb8c1fe8.zip
fix(tui): render attachments in user messages in accent color
-rw-r--r--packages/tui/internal/components/chat/message.go15
-rw-r--r--packages/tui/internal/tui/tui.go4
2 files changed, 16 insertions, 3 deletions
diff --git a/packages/tui/internal/components/chat/message.go b/packages/tui/internal/components/chat/message.go
index ab4e7d014..db8a43268 100644
--- a/packages/tui/internal/components/chat/message.go
+++ b/packages/tui/internal/components/chat/message.go
@@ -9,6 +9,7 @@ import (
"github.com/charmbracelet/lipgloss/v2"
"github.com/charmbracelet/lipgloss/v2/compat"
+ "github.com/charmbracelet/x/ansi"
"github.com/sst/opencode-sdk-go"
"github.com/sst/opencode/internal/app"
"github.com/sst/opencode/internal/components/diff"
@@ -193,8 +194,18 @@ func renderText(
content = util.ToMarkdown(text, width, backgroundColor)
case opencode.UserMessage:
ts = time.UnixMilli(int64(casted.Time.Created))
- messageStyle := styles.NewStyle().Background(backgroundColor).Width(width - 6)
- content = messageStyle.Render(text)
+ base := styles.NewStyle().Foreground(t.Text()).Background(backgroundColor)
+ words := strings.Fields(text)
+ for i, word := range words {
+ if strings.HasPrefix(word, "@") {
+ words[i] = base.Foreground(t.Secondary()).Render(word + " ")
+ } else {
+ words[i] = base.Render(word + " ")
+ }
+ }
+ text = strings.Join(words, "")
+ text = ansi.WordwrapWc(text, width-6, " -")
+ content = base.Width(width - 6).Render(text)
}
timestamp := ts.
diff --git a/packages/tui/internal/tui/tui.go b/packages/tui/internal/tui/tui.go
index de1c6df2d..3227b4950 100644
--- a/packages/tui/internal/tui/tui.go
+++ b/packages/tui/internal/tui/tui.go
@@ -1117,7 +1117,9 @@ func formatConversationToMarkdown(messages []app.Message) string {
continue
}
- builder.WriteString(fmt.Sprintf("**%s** (*%s*)\n\n", role, timestamp.Format("2006-01-02 15:04:05")))
+ builder.WriteString(
+ fmt.Sprintf("**%s** (*%s*)\n\n", role, timestamp.Format("2006-01-02 15:04:05")),
+ )
for _, part := range msg.Parts {
switch p := part.(type) {