Problem
quadraui ships compose/markdown.rs (2,147 lines) — render_markdown_to_styled, landed 2026-05-30 (quadraui#262).
grep -rn render_markdown_to_styled src/ → 0 uses.
vimcode hand-rolls ~350 lines of regex-based markdown:
src/render.rs:18140-18356 — md_inline_spans (217 lines, regex-based)
md_spans_to_styled (~81)
src/render.rs:1369 — markdown_rendered_to_quadraui_lines (~39)
md_links_to_quadraui_rich_text_links (~16)
Plus src/core/markdown.rs (760 lines, pulldown-cmark), consumed by src/core/engine/buffers.rs:453-561 and ext_panel.rs:631.
Scope — split by consumer
In scope: the hover-popup / RichTextPopup path. That is generic markdown rendering and belongs upstream.
Out of scope: the editor-buffer inline highlighter. src/render.rs:18142 documents that it "compensates for not having tree-sitter inline injection" — that is editor-specific and correctly placed. Do not remove it.
src/core/markdown.rs (pulldown-cmark) and compose/markdown.rs may not be functionally substitutable; verify feature parity before deleting anything, and if they diverge, report which and leave the local one.
Acceptance
- Black-box tests required, both backends: hover a symbol with markdown documentation, assert the rendered popup (bold, code spans, links) matches across backends.
- State in the PR that the new tests fail against unfixed
develop.
Problem
quadraui ships
compose/markdown.rs(2,147 lines) —render_markdown_to_styled, landed 2026-05-30 (quadraui#262).grep -rn render_markdown_to_styled src/→ 0 uses.vimcode hand-rolls ~350 lines of regex-based markdown:
src/render.rs:18140-18356—md_inline_spans(217 lines, regex-based)md_spans_to_styled(~81)src/render.rs:1369—markdown_rendered_to_quadraui_lines(~39)md_links_to_quadraui_rich_text_links(~16)Plus
src/core/markdown.rs(760 lines, pulldown-cmark), consumed bysrc/core/engine/buffers.rs:453-561andext_panel.rs:631.Scope — split by consumer
In scope: the hover-popup /
RichTextPopuppath. That is generic markdown rendering and belongs upstream.Out of scope: the editor-buffer inline highlighter.
src/render.rs:18142documents that it "compensates for not having tree-sitter inline injection" — that is editor-specific and correctly placed. Do not remove it.src/core/markdown.rs(pulldown-cmark) andcompose/markdown.rsmay not be functionally substitutable; verify feature parity before deleting anything, and if they diverge, report which and leave the local one.Acceptance
develop.