fn collect_edits(tokens: &[Token], edits: &mut Vec<TextEdit>)Expand description
For every paren-expression (a, b, …, z) (i.e. ( not preceded by an
identifier / keyword / closing bracket), emit one edit removing
a, b, …, so only z remains inside the parens.
Nested paren-expressions with their own commas ((a, (b, c), d)) emit
only the outermost edit — the inner edit would overlap the outer
and get dropped by apply_edits’s overlap guard, leaving inner
rewrites half-done. Tracking absorbed-children per paren state keeps
the outer edit clean.