Fix newline insertion bug in replace tool (#18595)

This commit is contained in:
Andrew Garrett
2026-02-09 17:37:53 +11:00
committed by GitHub
parent d45a45d565
commit 8cbe851339
2 changed files with 39 additions and 2 deletions
+2 -2
View File
@@ -167,7 +167,7 @@ async function calculateFlexibleReplacement(
if (isMatch) {
flexibleOccurrences++;
const firstLineInMatch = window[0];
const indentationMatch = firstLineInMatch.match(/^(\s*)/);
const indentationMatch = firstLineInMatch.match(/^([ \t]*)/);
const indentation = indentationMatch ? indentationMatch[1] : '';
const newBlockWithIndent = replaceLines.map(
(line: string) => `${indentation}${line}`,
@@ -229,7 +229,7 @@ async function calculateRegexReplacement(
// The final pattern captures leading whitespace (indentation) and then matches the token pattern.
// 'm' flag enables multi-line mode, so '^' matches the start of any line.
const finalPattern = `^(\\s*)${pattern}`;
const finalPattern = `^([ \t]*)${pattern}`;
const flexibleRegex = new RegExp(finalPattern, 'm');
const match = flexibleRegex.exec(currentContent);