Closed ribru17 closed 11 months ago
This was a tricky one. I ended up needing to use some private methods in treesitter to get the correct behavior, but it should be working now
Thanks so much, it works like a charm, and I've noticed a significant performance improvement for the injected formatter on large md
files. Awesome!
Neovim version (nvim -v)
NVIM v0.9.4 Build type: Release LuaJIT 2.1.1699392533
Operating system/version
Arch Linux 6.6.1-arch1-1
Add the debug logs
log_level = vim.log.levels.DEBUG
and pasted the log contents below.Log file
Log file: /home/rileyb/.local/state/nvim/conform.log ~
Formatters for this buffer: prettierd ready (markdown, html, css) injected ready (markdown)
Other formatters: clang_format ready (cpp, c) deno_fmt ready (javascript, typescript, javascriptreact, typescriptreact, json, jsonc) stylua ready (luau, lua)
Describe the bug
Basically, Markdown comments are treated like HTML injections by the Tree-sitter parser and I believe this causes some issues with the formatter now. This has only started since e2b889e26586acf30dda7b4a5c3f1a063bc18f18. At least with
prettierd
as an HTML formatter, the Markdown comments will cause paragraphs above them to be joined on the same line with the paragraphs above them (example shown below).Steps To Reproduce
nvim -u repro.lua example.md
:lua require('conform').format()
Expected Behavior
Expected file formatting:
Actual formatting:
Minimal example file
example.md
Minimal init.lua
Additional context
This only occurs when the
injected
formatter is also used with a Markdown file, and a formatter is used for HTML files (I have only tested withprettierd
). I have observed this issue withprettierd
as well asdeno_fmt
as a Markdown formatter.