@@ -10,7 +10,6 @@ import (
"os"
"path/filepath"
"strings"
- "unicode/utf8"
"charm.land/fantasy"
"github.com/charmbracelet/crush/internal/csync"
@@ -164,12 +163,12 @@ func NewViewTool(lspClients *csync.Map[string, *lsp.Client], permissions permiss
return fantasy.NewImageResponse([]byte(encoded), mimeType), nil
}
- // Read the file content
- content, lineCount, err := readTextFile(filePath, params.Offset, params.Limit)
- isValidUt8 := utf8.ValidString(content)
- if !isValidUt8 {
- return fantasy.NewTextErrorResponse("File content is not valid UTF-8"), nil
+ // Check if it's a text file before reading.
+ if !isTextFile(filePath) {
+ return fantasy.NewTextErrorResponse("File appears to not be a text file"), nil
}
+
+ content, lineCount, err := readTextFile(filePath, params.Offset, params.Limit)
if err != nil {
return fantasy.ToolResponse{}, fmt.Errorf("error reading file: %w", err)
}