diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-05-17 13:40:32 +0200 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-05-17 13:40:32 +0200 |
| commit | 5d0b19942d55dea5f30b2f1a58864cbec6522ba8 (patch) | |
| tree | ce14181a3fdd654cc1e8ea79b8601d058ac060b3 /.config/nvim/after | |
| parent | abc9c89088a483437d39f80a200a1cb52484eee7 (diff) | |
| download | dotfiles-5d0b19942d55dea5f30b2f1a58864cbec6522ba8.tar.gz dotfiles-5d0b19942d55dea5f30b2f1a58864cbec6522ba8.zip | |
feat(nvim): add commands to check/uncheck markdown checklist items
Diffstat (limited to '.config/nvim/after')
| -rw-r--r-- | .config/nvim/after/ftplugin/markdown.lua | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/.config/nvim/after/ftplugin/markdown.lua b/.config/nvim/after/ftplugin/markdown.lua index d0513b6..935d9ac 100644 --- a/.config/nvim/after/ftplugin/markdown.lua +++ b/.config/nvim/after/ftplugin/markdown.lua @@ -75,3 +75,33 @@ vim.api.nvim_set_hl(0, "@markup.link.label.markdown_inline", { underline = true, vim.b.autoformat = true vim.b.format_func = format + +local function check_checklist_item() + local line = vim.api.nvim_get_current_line() + if line:match("^%s*%- %[ %] ") == nil then + return + end + local edited_line = line:gsub("%[ %]", "[X]", 1) + edited_line = edited_line:gsub("^(%s*%- %[X%] )(.*)", "%1~%2~", 1) + local start = vim.api.nvim_win_get_cursor(0)[1] - 1 + vim.api.nvim_buf_set_lines(0, start, start + 1, false, { edited_line }) +end + +local function uncheck_checklist_item() + local line = vim.api.nvim_get_current_line() + if line:match("^%s*%- %[X%] ") == nil then + return + end + local edited_line = line:gsub("%[X%]", "[ ]", 1) + edited_line = edited_line:gsub("~", "", 2) + local start = vim.api.nvim_win_get_cursor(0)[1] - 1 + vim.api.nvim_buf_set_lines(0, start, start + 1, false, { edited_line }) +end + +vim.api.nvim_buf_create_user_command(0, "MarkdownListCheck", check_checklist_item, { desc = "Check checklist item" }) +vim.api.nvim_buf_create_user_command( + 0, + "MarkdownListUncheck", + uncheck_checklist_item, + { desc = "Uncheck checklist item" } +) |
