Просмотр исходного кода

fix(tui): attachment highlighting issues in messages (#1534)

Yihui Khuu 6 месяцев назад
Родитель
Сommit
8ad83f71a9
1 измененных файлов с 18 добавлено и 6 удалено
  1. 18 6
      packages/tui/internal/components/chat/message.go

+ 18 - 6
packages/tui/internal/components/chat/message.go

@@ -217,15 +217,27 @@ func renderText(
 		base := styles.NewStyle().Foreground(t.Text()).Background(backgroundColor)
 		text = ansi.WordwrapWc(text, width-6, " -")
 
-		// Build list of attachment filenames for highlighting
+		var result strings.Builder
+		lastEnd := int64(0)
+
+		// Apply highlighting to filenames and base style to rest of text
 		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))
+			highlight := base.Foreground(t.Secondary())
+			start, end := filePart.Source.Text.Start, filePart.Source.Text.End
+
+			if start > lastEnd {
+				result.WriteString(base.Render(text[lastEnd:start]))
+			}
+			result.WriteString(highlight.Render(text[start:end]))
+
+			lastEnd = end
+		}
+
+		if lastEnd < int64(len(text)) {
+			result.WriteString(base.Render(text[lastEnd:]))
 		}
 
-		content = base.Width(width - 6).Render(text)
+		content = base.Width(width - 6).Render(result.String())
 	}
 
 	timestamp := ts.