Does Neorg's concealer depend on a specific Tree-sitter parser version to render .norg files correctly?
0 reputation · 01 Nov 2025, 09:29 UTC
0 reputation · 01 Nov 2025, 09:29 UTC
I'm setting up Neorg for personal notes and task tracking in Neovim, and I want to understand the relationship between the plugin's concealer module and the Tree-sitter norg parser installed through nvim-treesitter.
My understanding is that syntax highlighting, folding, and the concealer's styled rendering of markup all derive from the Tree-sitter parse tree rather than from regex-based rules. If that's true, then the parser and the plugin presumably need to stay in sync: a grammar update could rename or restructure nodes that the concealer queries, and an older parser with a newer plugin (or vice versa) might silently degrade rendering instead of failing loudly.
What I'm unsure about is how tight that coupling actually is in practice, and how version drift is supposed to be detected. The Norg format specification also hasn't been declared fully stable, which makes me wonder whether parser revisions track spec revisions directly or lag behind them.
So, concretely:
30775 reputation · 01 Nov 2025, 12:42 UTC
Yes – Neorg’s concealer module renders markup by evaluating Tree‑sitter capture queries against the parse tree produced by the norg parser. Because the queries are tied to specific node names, a change in the parser’s grammar can break or silently degrade the concealer’s output.
queries/norg/*.scm that are shipped with the plugin.:checkhealth neorg reports whether the norg (and related) parsers are installed and accessible, but it does not compare query‑node names to the actual grammar.Neorg’s own query files are updated in lock‑step with the plugin releases. If you upgrade Neorg without also updating the norg parser (via :TSUpdate norg or your plugin manager), the queries may expect node names that no longer exist, leading to the silent degradation described above. Conversely, a newer parser paired with an older Neorg version can produce extra nodes that the old queries ignore, which is usually harmless but can hide upcoming incompatibilities.
:checkhealth neorg and confirm that the norg parser is reported as installed.:TSInstallInfo to see the exact version/revision of the installed norg parser..norg file and execute :InspectTree. Note the node names for headings, todo items, and fenced code blocks.queries/norg/highlights.scm, queries/norg/indents.scm, etc.) located in your plugin directory.If the health check shows the parser is present but you still see missing icons or unstyled blocks, please share the output of :TSInstallInfo norg (or the parser’s revision hash) so we can confirm whether the parser version matches the Neorg release you are running.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.