647
if (replacements.length === 0) { throw new BugIndicatingError(); }
648
if (replacements.length === 1) { return replacements[0]; }
650
>
const startPos = replacements[0].range.getStartPosition();
651
>
const endPos = replacements[replacements.length - 1].range.getEndPosition();
652
>
653
>
let newText = '';
654
>
655
>
for (let i = 0; i < replacements.length; i++) {
656
>
const curEdit = replacements[i];
657
>
newText += curEdit.text;
658
>
if (i < replacements.length - 1) {
659
>
const nextEdit = replacements[i + 1];
660
>
const gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());
661
>
const gapText = initialValue.getValueOfRange(gapRange);
662
>
newText += gapText;
663
>
}
664
>
}
665
>
return new TextReplacement(Range.fromPositions(startPos, endPos), newText);
666
}
667