349
let reverseOperations: IReverseSingleEditOperation[] | null = null;
350
if (computeUndoEdits) {
352
>
let reverseRangeDeltaOffset = 0;
353
>
reverseOperations = [];
354
>
for (let i = 0; i < operations.length; i++) {
355
>
const op = operations[i];
356
>
const reverseRange = reverseRanges[i];
357
>
const bufferText = this.getValueInRange(op.range);
358
>
const reverseRangeOffset = op.rangeOffset + reverseRangeDeltaOffset;
359
>
reverseRangeDeltaOffset += (op.text.length - bufferText.length);
360
>
361
>
reverseOperations[i] = {
362
>
sortIndex: op.sortIndex,
363
>
identifier: op.identifier,
364
>
range: reverseRange,
365
>
text: bufferText,
366
>
textChange: new TextChange(op.rangeOffset, bufferText, reverseRangeOffset, op.text)
367
>
};
368
>
}
369
>
370
>
// Can only sort reverse operations when the order is not significant
371
>
if (!hasTouchingRanges) {
372
reverseOperations.sort((a, b) => a.sortIndex - b.sortIndex);
373
}
375
376