@Override
  public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) {
    myBuffer = buffer;
    myDeletions = findAllDeletions(buffer, startOffset, endOffset);

    myCurrentDelta = 0;
    myTotalDelta = 0;
    if (myDeletions.isEmpty()) {
      super.start(buffer, startOffset, endOffset, initialState);
      return;
    }
    CharSequence newSequence = deleteIndents(buffer, startOffset, endOffset);

    super.start(newSequence, 0, newSequence.length(), initialState);

    myTotalDelta = startOffset;
    myCurrentDelIndex = 0;
    updateDeltas();
  }
@Override
  public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState)