diff options
Diffstat (limited to '.vim/after')
| -rw-r--r-- | .vim/after/ftplugin/markdown.lua | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/.vim/after/ftplugin/markdown.lua b/.vim/after/ftplugin/markdown.lua index d07e131..49dbcee 100644 --- a/.vim/after/ftplugin/markdown.lua +++ b/.vim/after/ftplugin/markdown.lua @@ -1,5 +1,6 @@ require('spell') -vim.opt.foldlevel = 1 +vim.opt_local.foldenable = false +vim.opt_local.foldlevel = 1 vim.fn.matchadd('Conceal', '- \\[ \\]\\&- \\zs\\[ ', 0, -1, { conceal = '☐ ' }) -- vim.fn.matchadd('Conceal', '\\[x\\]', 0, -1, { conceal = '☑ ' }) @@ -27,8 +28,7 @@ local function toggle_checkbox() vim.api.nvim_set_current_line(ln) end vim.keymap.set('n', '<space><space>', toggle_checkbox, {desc='toggle checkbox'}) -vim.keymap.set('n', '<tab><tab>', toggle_checkbox, {desc='toggle checkbox'}) -vim.keymap.set('i', '<c-tab>', toggle_checkbox, {desc='toggle checkbox'}) +vim.keymap.set('i', '<c-space>', toggle_checkbox, {desc='toggle checkbox'}) -- vim.keymap.set('n', '<leader>zn', function() require('zk').new() end) -- vim.keymap.set('n', '<leader>zi', function() require('zk').index() end) @@ -37,3 +37,21 @@ vim.keymap.set('i', '<c-tab>', toggle_checkbox, {desc='toggle checkbox'}) vim.keymap.set('n', 'gt', function() require('telescope._extensions.todo-comments').exports.todo {cwd=vim.env.ZK_NOTEBOOK_DIR} end, {desc='show zk todos'}) + +vim.keymap.set('n', 'o', function() + local cursor = vim.api.nvim_win_get_cursor(0) + -- need to decrement the row number here, to account for 0 indexing + local node = vim.treesitter.get_node_at_pos(0, cursor[1]-1, cursor[2], {}) + while node do + if node:type() == 'list_item' then + vim.api.nvim_buf_set_lines(0, cursor[1], cursor[1], false, { + vim.treesitter.get_node_text(node:child(0), 0, {}) + }) + vim.api.nvim_feedkeys('jA', 'n', false) + return + end + node = node:parent() + end + + vim.api.nvim_feedkeys('o', 'n', false) +end, {desc='smart-o'}) |