summary refs log tree commit diff
path: root/.vim/after/ftplugin/markdown.lua
blob: d07e131be66da530a20eaefa3222ec9caef269b3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require('spell')
vim.opt.foldlevel = 1

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', '<Plug>Markdown_OpenUrlUnderCursor',
  function() require('misc').open_under_cursor('url-launcher') end)

vim.keymap.set('n', '<localleader>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', '<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('n', '<leader>zn', function() require('zk').new() end)
-- vim.keymap.set('n', '<leader>zi', function() require('zk').index() end)
-- vim.cmd [[ command! -nargs=* ZettelkastenNew lua require('zk').new(nil, <f-args>) ]]

vim.keymap.set('n', 'gt', function()
  require('telescope._extensions.todo-comments').exports.todo {cwd=vim.env.ZK_NOTEBOOK_DIR}
end, {desc='show zk todos'})