386
387
public addRangeAndResize(range: OffsetRange, newLength: number): void {
389
>
while (!(idxFirstMightBeIntersecting >= this._ranges.length || range.start <= this._ranges[idxFirstMightBeIntersecting].endExclusive)) {
390
idxFirstMightBeIntersecting++;
391
}
393
>
while (!(idxFirstIsAfter >= this._ranges.length || range.endExclusive < this._ranges[idxFirstIsAfter].start)) {
394
idxFirstIsAfter++;
395
}
397
>
398
>
for (let i = idxFirstIsAfter; i < this._ranges.length; i++) {
399
this._ranges[i] = this._ranges[i].delta(delta);
400
}
402
>
if (idxFirstMightBeIntersecting === idxFirstIsAfter) {
403
const newRange = new OffsetRange(range.start, range.start + newLength);
404
if (!newRange.isEmpty) {
405
this._ranges.splice(idxFirstMightBeIntersecting, 0, newRange);
406
}
408
const start = Math.min(range.start, this._ranges[idxFirstMightBeIntersecting].start);
409
const endEx = Math.max(range.endExclusive, this._ranges[idxFirstIsAfter - 1].endExclusive);