Handle Windows line endings (#62)

This commit is contained in:
Matt Rubens
2024-12-10 20:24:51 -05:00
committed by GitHub
parent 6e1f6833b8
commit ba8bed90d8
7 changed files with 35 additions and 11 deletions

View File

@@ -70,10 +70,13 @@ Your search/replace content here
const [_, searchContent, replaceContent] = match;
// Split content into lines
const searchLines = searchContent.trim().split('\n');
const replaceLines = replaceContent.trim().split('\n');
const originalLines = originalContent.split('\n');
// Detect line ending from original content
const lineEnding = originalContent.includes('\r\n') ? '\r\n' : '\n';
// Split content into lines, handling both \n and \r\n
const searchLines = searchContent.trim().split(/\r?\n/);
const replaceLines = replaceContent.trim().split(/\r?\n/);
const originalLines = originalContent.split(/\r?\n/);
// Find the search content in the original
let matchIndex = -1;
@@ -166,6 +169,6 @@ Your search/replace content here
const beforeMatch = originalLines.slice(0, matchIndex);
const afterMatch = originalLines.slice(matchIndex + searchLines.length);
return [...beforeMatch, ...indentedReplace, ...afterMatch].join('\n');
return [...beforeMatch, ...indentedReplace, ...afterMatch].join(lineEnding);
}
}
}