List<T> (@NotNull DocumentEvent e) { checkMax(true); List<IntervalNode<T>> affected = new SmartList<>(); int moveStart = e.getMoveOffset(); int moveEnd = moveStart + e.getNewLength(); collectNodesToRetarget(getRoot(), moveStart, moveEnd, affected); if (!affected.isEmpty()) { return updateAffectedNodes(e, e.getOffset() - e.getMoveOffset(), affected); } return Collections.emptyList(); }