fix: handle Windows CRLF line endings in CLI file edits #5344
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #5340 - Addresses PR review feedback about hardcoded newline characters not working correctly on Windows systems that use CRLF (
\r\n) line endings.Problem
The original fix for CLI file duplication (#5340) used hardcoded
"\n"characters which don't work correctly on Windows:"\n"only, CRLF files leave\rat end of lines, causing incorrect byte offset calculations"\n"doesn't preserve the original file's EOL styleSolution
VSCode.ts Changes
content.replace(/\r\n/g, "\n")SearchReplaceTool.ts,EditFileTool.ts, and 88+ other locationsDiffViewProvider.ts Changes
content.includes("\r\n") ? "\r\n" : "\n"pattern when adding trailing newlinesTesting
VSCode.applyEdit.spec.tsfor CRLF handlingDiffViewProvider.spec.tsfor CRLF preservation in CLI mode