void (@NotNull List<FindResult> occurrences, @NotNull Editor editor, @Nullable FindModel findModel, boolean toChangeSelection, @Nullable TextRange next, int stamp) { if (stamp < myLastUpdatedStamp){ return; } myLastUpdatedStamp = stamp; if (editor != getEditor() || myDisposed || editor.isDisposed()) { return; } setUpdating(false); myOccurrences = occurrences; TextRange oldCursorRange = myCursor; myOccurrences.sort(Comparator.comparingInt(TextRange::getStartOffset)); myFindModel = findModel; myDocumentTimestamp = myEditor.getDocument().getModificationStamp(); updateCursor(oldCursorRange, next); updateExcluded(); notifyChanged(); if (myCursor == null || !myCursor.equals(oldCursorRange)) { if (toChangeSelection) { updateSelection(true, true, true); } notifyCursorMoved(); } notifyUpdateFinished(); Direction dir = myPendingSearch; if (dir != null && next == null) { if (dir == Direction.DOWN) { nextOccurrence(false); } else { prevOccurrence(false); } } myPendingSearch = null; }