void (int offset) { assert !myReverseIteration && myCaretData == NULL_CARET_DATA && // we need only this case at the moment, this can be relaxed if needed offset >= myInitialStartOffset && offset <= myStartOffset && !DocumentUtil.isInsideSurrogatePair(myDocument, offset); if (offset == myStartOffset) return; if (myHighlighterIterator != null) { while (myHighlighterIterator.getStart() > offset) myHighlighterIterator.retreat(); } myCurrentHighlighters.clear(); myDoc.retreat(offset); myView.retreat(offset); myEndOffset = offset; advance(); }