summaryrefslogtreecommitdiff
path: root/after/ftplugin/markdown.lua
blob: 8fbe7980eba4f7b794c4811473a7ee92f3abc6a3 (plain)
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
if require("zk.util").notebook_root(vim.fn.expand("%:p")) ~= nil then
  vim.keymap.set("n", "<CR>", vim.lsp.buf.definition,
    { buffer = true, noremap = true, silent = false, desc = "Open the link under the caret." })

  -- Create a new note in the same directory as the current buffer, using the current selection for title.
  vim.keymap.set("v", "<Leader>zn", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }<CR>",
    { buffer = true, noremap = true, silent = false, desc = "Create a new note using the current selection for title." })

  -- Create a new note in the same directory as the current buffer,
  -- using the current selection for note content and asking for its title.
  vim.keymap.set("v", "<Leader>zN",
    ":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>",
    { buffer = true, noremap = true, silent = false, desc = "Create a new note using the current selection for contents." })

  vim.keymap.set("n", "<Leader>zb", "<CMD>ZkBacklinks<CR>",
    { buffer = true, noremap = true, silent = false, desc = "Open notes linking to the current buffer." })

  -- Alternative for backlinks using pure LSP and showing the source context.
  -- The results will appear in the quickfix list.
  vim.keymap.set("n", "<Leader>zB", vim.lsp.buf.references,
    { buffer = true, noremap = true, silent = false, desc = "Open notes linking to the current buffer with LSP." })

  vim.keymap.set("n", "<Leader>zl", "<CMD>ZkLinks<CR>",
    { buffer = true, noremap = true, silent = false, desc = "Open notes linked by the current buffer." })
end