void (@NotNull DocumentEvent e) { if (!isValid()) return; RangeMarkerTree.RMNode<RangeMarkerEx> node = myNode; long newRange = node == null ? -1 : applyChange(e, node.toScalarRange(), isGreedyToLeft(), isGreedyToRight(), isStickingToRight()); if (newRange == -1) { invalidate(); } else { node.setRange(newRange); } }