From f49a20176b8f18bc464451bc3da769c181388752 Mon Sep 17 00:00:00 2001 From: Robert GΓΌnzler Date: Wed, 21 Sep 2022 18:55:48 +0200 Subject: vim: markdown, conceal and toggle checkbox --- .vim/after/ftplugin/markdown.lua | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to '.vim/after/ftplugin/markdown.lua') diff --git a/.vim/after/ftplugin/markdown.lua b/.vim/after/ftplugin/markdown.lua index 1b299e2..d07e131 100644 --- a/.vim/after/ftplugin/markdown.lua +++ b/.vim/after/ftplugin/markdown.lua @@ -1,17 +1,35 @@ require('spell') vim.opt.foldlevel = 1 --- vim.fn.matchadd('Conceal', '\\[ \\]', 0, -1, { conceal = '☐' }) --- vim.fn.matchadd('Conceal', '\\[x\\]', 0, -1, { conceal = 'β˜‘' }) --- vim.fn.matchadd('Conceal', '\\[-\\]', 0, -1, { conceal = 'β˜’' }) --- vim.fn.matchadd('Conceal', '\\[\\]', 0, -1, { conceal = 'πŸž•' }) +vim.fn.matchadd('Conceal', '- \\[ \\]\\&- \\zs\\[ ', 0, -1, { conceal = '☐ ' }) +-- vim.fn.matchadd('Conceal', '\\[x\\]', 0, -1, { conceal = 'β˜‘ ' }) +-- vim.fn.matchadd('Conceal', '\\[-\\]', 0, -1, { conceal = 'β˜’ ' }) +vim.fn.matchadd('Conceal', '- \\[x\\]\\&- \\zs\\[x', 0, -1, { conceal = 'πŸž• ' }) +vim.fn.matchadd('Conceal', '- \\[[ x]\\zs\\]', 0, -1, { conceal = ' ' }) vim.keymap.set('n', 'Markdown_OpenUrlUnderCursor', - function() require('misc').open_under_cursor('url-launcher') end, -) + function() require('misc').open_under_cursor('url-launcher') end) vim.keymap.set('n', 'l', require('misc').link_preview, {desc='link preview'}) +local function toggle_checkbox() + local ln, n = vim.api.nvim_get_current_line(), 0 + ln, n = string.gsub(ln, '%[ %]', '[x]', 1) + if n > 0 then goto set_line end + ln, n = string.gsub(ln, '%[x%]', '[ ]', 1) + if n > 0 then goto set_line end + ln, n = string.gsub(ln, 'TODO', 'DONE', 1) + if n > 0 then goto set_line end + ln, n = string.gsub(ln, 'DONE', 'TODO', 1) + if n > 0 then goto set_line end + +::set_line:: + vim.api.nvim_set_current_line(ln) +end +vim.keymap.set('n', '', toggle_checkbox, {desc='toggle checkbox'}) +vim.keymap.set('n', '', toggle_checkbox, {desc='toggle checkbox'}) +vim.keymap.set('i', '', toggle_checkbox, {desc='toggle checkbox'}) + -- vim.keymap.set('n', 'zn', function() require('zk').new() end) -- vim.keymap.set('n', 'zi', function() require('zk').index() end) -- vim.cmd [[ command! -nargs=* ZettelkastenNew lua require('zk').new(nil, ) ]] -- cgit 1.4.1