summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--after/ftplugin/markdown.lua25
-rw-r--r--lua/config/plugins/notes.lua25
2 files changed, 37 insertions, 13 deletions
diff --git a/after/ftplugin/markdown.lua b/after/ftplugin/markdown.lua
new file mode 100644
index 0000000..8fbe798
--- /dev/null
+++ b/after/ftplugin/markdown.lua
@@ -0,0 +1,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
diff --git a/lua/config/plugins/notes.lua b/lua/config/plugins/notes.lua
index 57d5d24..a76271e 100644
--- a/lua/config/plugins/notes.lua
+++ b/lua/config/plugins/notes.lua
@@ -16,21 +16,19 @@ return {
},
})
- local opts = { noremap = true, silent = false }
+ vim.keymap.set("n", "<Leader>zn", "<CMD>ZkNew { title = vim.fn.input('Title: ') }<CR>",
+ { noremap = true, silent = false, desc = "Create a new note after asking for its title." })
- -- Create a new note after asking for its title.
- vim.api.nvim_set_keymap("n", "<leader>zn", "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>", opts)
+ vim.keymap.set("n", "<Leader>zo", "<CMD>ZkNotes { sort = { 'modified' } }<CR>",
+ { noremap = true, silent = false, desc = "Open notes." })
+ vim.keymap.set("n", "<Leader>zt", "<CMD>ZkTags<CR>",
+ { noremap = true, silent = false, desc = "Open notes associated with the selected tags." })
- -- Open notes.
- vim.api.nvim_set_keymap("n", "<leader>zo", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>", opts)
- -- Open notes associated with the selected tags.
- vim.api.nvim_set_keymap("n", "<leader>zt", "<Cmd>ZkTags<CR>", opts)
-
- -- Search for the notes matching a given query.
- vim.api.nvim_set_keymap("n", "<leader>zf",
- "<Cmd>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>", opts)
- -- Search for the notes matching the current visual selection.
- vim.api.nvim_set_keymap("v", "<leader>zf", ":'<,'>ZkMatch<CR>", opts)
+ vim.keymap.set("n", "<Leader>zf",
+ "<CMD>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>",
+ { noremap = true, silent = false, desc = "Search for the notes matching a given query." })
+ vim.keymap.set("v", "<Leader>zf", ":'<,'>ZkMatch<CR>",
+ { noremap = true, silent = false, desc = "Search for the notes matching the current visual selection." })
end
},
@@ -46,6 +44,7 @@ return {
position = "right",
width = "block",
border = "thick",
+ language_pad = 1,
min_width = min_width,
left_pad = 1,
right_pad = 1,