@Override
  public void deleteString(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);
  }
@Override
  public void deleteString(int startOffset, int endOffset)