Uh oh!
There was an error while loading. Please reload this page.
fix(tui): enable OSC 8 hyperlink detection for tree-sitter markdown - #15011
fix(tui): enable OSC 8 hyperlink detection for tree-sitter markdown#15011mugnimaestra wants to merge 1 commit into
Conversation
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
mugnimaestra
commented
Feb 25, 2026
Closing — this is a trivial 2-line consumer change that can be done after the upstream opentui fix ships. No need to keep this open. |
@mugnimaestra The upstream dependency (anomalyco/opentui#736) has been merged. Can this PR be reopened now? |
e1e813d to
119e071CompareAdd detectLinks from @opentui/core as onChunks callback on the markdown code renderable. This enables OSC 8 hyperlink sequences for URLs in tree-sitter rendered markdown, making Cmd/Ctrl+Click work correctly for wrapped links. Depends on anomalyco/opentui#736
119e071 to
5104b3cComparemugnimaestra
commented
Mar 31, 2026
Hey @kuitos — good call! Reopened and rebased against latest |
This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window. Feel free to open a new pull request that follows our guidelines. |
kuitos
commented
Apr 1, 2026
might need to recreate the pr now😂 @mugnimaestra |
Summary
Enables OSC 8 hyperlink sequences for URLs rendered via the tree-sitter markdown path, making Cmd/Ctrl+Click work correctly for wrapped links in terminal emulators.
Closes#14966
Changes
detectLinksfrom@opentui/coreonChunks={detectLinks}to the markdown<code>renderable inTextPartThis is a 2-line change that wires up the new
onChunkshook added in anomalyco/opentui#736.Dependencies
@opentui/corerelease that exportsdetectLinks.How It Works
treeSitterToTextChunkscreates styled text chunks (no link info)detectLinks(our new hook) runs post-processing: scans highlights for URL scopes, setschunk.link = { url }on matching chunkslinksetTesting