List<T> (@NotNull DocumentEvent e) { checkMax(true); incModCount(); List<IntervalNode<T>> affected = new SmartList<>(); int start = e.getOffset(); int oldLength = e.getOldLength(); int newLength = e.getNewLength(); collectAffectedMarkersAndShiftSubtrees(getRoot(), start, start + oldLength, newLength - oldLength, affected); checkMax(false); if (!affected.isEmpty()) { return updateAffectedNodes(e, 0, affected); } return Collections.emptyList(); }