Overlapping diagnostics in @codemirror/lint produce two differently coloured squigly lines.

Hi, for our particular use case we have cases where we get two diagnostics within the same range, one of them has severity “warning” and the other has severity “error”:

We need both of them to show up on hover, but we only want the highest severity (“error” in this case) to produce the squiggly line.

I found the function markerFilter in the CodeMirror documentation, however this seems to also remove the hover entry for the removed diagnostics.

How can I make sure that both diagnostics still produce (separate) entries in the hover menu, but only the marker for the highest severity one shows up graphically in the editor?

The decoration logic didn’t really anticipate overlapping diagnostics. But I guess some types of linters will generate those. Attached patch overhauls the way the decorations are modeled.