void (int startOffset, int endOffset) { assertBounds(startOffset, endOffset); assertWriteAccess(); if (startOffset == endOffset) return; RangeMarker marker = getRangeGuard(startOffset, endOffset); if (marker != null) { throwGuardedFragment(marker, startOffset, myText.subSequence(startOffset, endOffset), ""); } ImmutableCharSequence newText = myText.delete(startOffset, endOffset); ImmutableCharSequence oldString = myText.subtext(startOffset, endOffset); updateText(newText, startOffset, oldString, "", false, LocalTimeCounter.currentTime(), startOffset, endOffset - startOffset, startOffset); }