insertAfter method
Inserts node after after, or at the start if after is null.
A non-null after must be in this list, possibly inside groups,
and node is inserted into the same group.
If node is already in a list, it's moved.
Inserting node next to itself does nothing.
Throws a StateError before changing anything if
after isn't in this list or if this list is inside node.
Implementation
void insertAfter(ChildNode node, {ChildNode? after}) {
if (_prepareInsert(node, after) case final list?) {
list._link(node, after, after == null ? list._first : after._next);
}
}