Iterating over all atomicRanges widgets

While I was setting up a minimal example in the playground, I had realized that it was mistake.
I was checking DOMElement of point decorations widgets, while during update/construction, but it is immediately available, since toDOM is delayed.

These are all related to the discussion An efficient way of decorating all parenthesis in a line - #4 by JerryI

This method

const rangeSets = view.state.facet(EditorView.atomicRanges).map((f)=>f(view))

in the end works perfectly combined with iterating over the existing syntax tree. I just defer the measurements of the DOM element offsetHeight, when they are available.

The result is fantastic!
it all also works nicely for the nested editors as well

Thanks for such efficient and robust architecture of CodeMirror 6. I bet it would not be possible with any other modular editor on the market :slight_smile: