-
Notifications
You must be signed in to change notification settings - Fork 4
Home
- Metadata (how-to's and recipes)
Since render-markdown is purely visual and doesn't modify buffer content, this minimizes interaction with checkmate. However, the following behavior may be desirable by users:
- Disable
checkmate.nvim
's todo markers (checkboxes) to allowrender-markdown.nvim
to correctly parse the raw Markdown and render them accordingly (via conceal) - Disable
render-markdown.nvim
's checkbox rendering to prevent any unexpected interaction withcheckmate.nvim
(though this may not even be necessary if you are using custom, Unicode todo markers in checkmate—these aren't parsed/identified by render-markdown).
To 'disable' checkmate's todo markers (checkboxes), a current workaround is to simply set the todo_markers
to regular Markdown, such as:
-- checkmate.Config
todo_markers = {
unchecked = "[ ]",
checked = "[x]",
},
In the future, this behavior will be more explicit via the config (more testing is needed).
This behavior is still being explored and tested; please submit bugs/issues with this approach.
To use checkmate.nvim
's native rendering and if you encounter issues with render-markdown.nvim
, you can disable the render-markdown checkboxes and allow checkmate to fully handle this styling:
require('render-markdown').setup({
checkbox = {
enabled = false
}
})
You can easily use checkmate with a scratch
buffer via the following strategy:
Within the snacks opts setup a keymap, or call Snacks.scratch.open()
however you prefer:
keys = {
{
"<leader>T.",
function()
-- Can implement your own logic for saving files by cwd, project, git branch, etc.
local data = vim.fn.stdpath("data")
local root = data .. "/snacks/todo"
vim.fn.mkdir(root, "p")
local file = root .. "/todo.md" -- IMPORTANT: must match checkmate `files` pattern
---@diagnostic disable-next-line: missing-fields
Snacks.scratch.open({
ft = "markdown",
file = file,
})
end,
desc = "Toggle Scratch Todo",
},
}
The critical piece is that the filename must the files
patten matcher in checkmate's config.
You could also use the default Snacks file naming logic and just ensure the checkmate
files
pattern includes that file. Snacks.scratch seems to save files with.markdown
extension, so this could be one way.
Persistent undo: Disabled for Checkmate-managed buffers. Checkmate keeps Unicode in the buffer but saves Markdown to disk; Neovim only restores undo histories that match the exact file bytes, so cross-session undo would be inconsistent. Normal in-session undo/redo works as expected. This is simply a limitation of Checkmate's design.