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

Issue 1676: Don't eat up the last newline in a multi-line replacement (#1777)

cvzakharchenko 6 месяцев назад
Родитель
Сommit
8db75266d0
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      packages/opencode/src/tool/edit.ts

+ 4 - 1
packages/opencode/src/tool/edit.ts

@@ -188,7 +188,10 @@ export const LineTrimmedReplacer: Replacer = function* (content, find) {
 
       let matchEndIndex = matchStartIndex
       for (let k = 0; k < searchLines.length; k++) {
-        matchEndIndex += originalLines[i + k].length + 1
+        matchEndIndex += originalLines[i + k].length
+        if (k < searchLines.length - 1) {
+          matchEndIndex += 1 // Add newline character except for the last line
+        }
       }
 
       yield content.substring(matchStartIndex, matchEndIndex)