Aiden Cline 6 месяцев назад
Родитель
Сommit
09074dc639

+ 9 - 12
packages/tui/internal/components/chat/message.go

@@ -182,6 +182,7 @@ func renderText(
 	showToolDetails bool,
 	width int,
 	extra string,
+	fileParts []opencode.FilePart,
 	toolCalls ...opencode.ToolPart,
 ) string {
 	t := theme.CurrentTheme()
@@ -197,19 +198,15 @@ func renderText(
 		ts = time.UnixMilli(int64(casted.Time.Created))
 		base := styles.NewStyle().Foreground(t.Text()).Background(backgroundColor)
 		text = ansi.WordwrapWc(text, width-6, " -")
-		lines := strings.Split(text, "\n")
-		for i, line := range lines {
-			words := strings.Fields(line)
-			for i, word := range words {
-				if strings.HasPrefix(word, "@") {
-					words[i] = base.Foreground(t.Secondary()).Render(word + " ")
-				} else {
-					words[i] = base.Render(word + " ")
-				}
-			}
-			lines[i] = strings.Join(words, "")
+
+		// Build list of attachment filenames for highlighting
+		for _, filePart := range fileParts {
+			atFilename := "@" + filePart.Filename
+			// Find and highlight complete @filename references
+			highlightStyle := base.Foreground(t.Secondary())
+			text = strings.ReplaceAll(text, atFilename, highlightStyle.Render(atFilename))
 		}
-		text = strings.Join(lines, "\n")
+
 		content = base.Width(width - 6).Render(text)
 	}
 

+ 3 - 0
packages/tui/internal/components/chat/messages.go

@@ -347,6 +347,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
 								m.showToolDetails,
 								width,
 								files,
+								fileParts,
 							)
 							content = lipgloss.PlaceHorizontal(
 								m.width,
@@ -424,6 +425,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
 									m.showToolDetails,
 									width,
 									"",
+									[]opencode.FilePart{},
 									toolCallParts...,
 								)
 								content = lipgloss.PlaceHorizontal(
@@ -443,6 +445,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
 								m.showToolDetails,
 								width,
 								"",
+								[]opencode.FilePart{},
 								toolCallParts...,
 							)
 							content = lipgloss.PlaceHorizontal(