diff --git a/dot_config/nvim/after/queries/markdown/injections.scm b/dot_config/nvim/after/queries/markdown/injections.scm new file mode 100644 index 0000000..61daa31 --- /dev/null +++ b/dot_config/nvim/after/queries/markdown/injections.scm @@ -0,0 +1,29 @@ +; Override nvim-treesitter's markdown injections to avoid #set-lang-from-info-string! +; which crashes on Neovim 0.12 due to changed match table API (captures are now lists). +; Uses Neovim's native @injection.language capture instead. + +(fenced_code_block + (info_string + (language) @injection.language) + (code_fence_content) @injection.content) + +((html_block) @injection.content + (#set! injection.language "html") + (#set! injection.combined) + (#set! injection.include-children)) + +((minus_metadata) @injection.content + (#set! injection.language "yaml") + (#offset! @injection.content 1 0 -1 0) + (#set! injection.include-children)) + +((plus_metadata) @injection.content + (#set! injection.language "toml") + (#offset! @injection.content 1 0 -1 0) + (#set! injection.include-children)) + +([ + (inline) + (pipe_table_cell) +] @injection.content + (#set! injection.language "markdown_inline"))