deleteImmutable method

Rope deleteImmutable(
  1. int start,
  2. int end
)

Creates a new Rope with text deleted between start and end (immutable)

Implementation

Rope deleteImmutable(int start, int end) {
  if (start < 0 || end < start || end > _length) {
    throw RangeError('Invalid range: [$start, $end) for length $_length');
  }
  if (start == end) return Rope._fromNode(_root, _length);

  final first = _split(_root, start);
  final second = _split(first.right, end - start);
  final newRoot = _concat(first.left, second.right);
  return Rope._fromNode(newRoot, _length - (end - start));
}