commit 4decd894790d00c0ccd85fbbf5b6a136c49b8347
parent cfa72af4a87b41f7643b09306a42ccea258bbba2
Author: Chris Bracken <chris@bracken.jp>
Date: Wed, 27 May 2026 14:05:22 +0900
nvim: add markdown-oxide plugin
Configure <leader>dn to jump to daily note.
Diffstat:
3 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua
@@ -100,3 +100,12 @@ vim.keymap.set('n', '<leader>n', function()
opt.number = false
end
end)
+
+-- Open today's daily note unconditionally.
+vim.keymap.set('n', '<leader>dn', function()
+ local notes_dir = vim.g.notes_dir or "~/Developer/Notes"
+ local today = os.date("%Y-%m-%d")
+ local path = vim.fn.expand(notes_dir .. "/" .. today .. ".md")
+ vim.cmd("edit " .. vim.fn.fnameescape(path))
+end, { desc = "Open today's daily note", noremap = true, silent = true })
+
diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua
@@ -52,3 +52,7 @@ vim.api.nvim_create_autocmd({ "WinEnter", "BufEnter", "WinLeave", "BufLeave" },
vim.opt_local.cursorline = enable_cursorline
end
})
+
+-- Global notes directory path.
+vim.g.notes_dir = '~/Developer/notes'
+
diff --git a/.config/nvim/lua/plugins/languages.lua b/.config/nvim/lua/plugins/languages.lua
@@ -89,6 +89,12 @@ return {
if vim.fn.executable('basedpyright-langserver') == 1 then
vim.lsp.enable('basedpyright')
end
+ if vim.fn.executable('markdown-oxide') == 1 then
+ vim.lsp.config('markdown_oxide', {
+ capabilities = vim.lsp.protocol.make_client_capabilities()
+ })
+ vim.lsp.enable('markdown_oxide')
+ end
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
@@ -111,6 +117,18 @@ return {
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
opts.desc = "Format buffer"
vim.keymap.set("n", "<leader>F", vim.lsp.buf.format, opts)
+
+ -- Setup markdown-oxide daily note command if attached.
+ if client and client.name == "markdown_oxide" then
+ vim.api.nvim_buf_create_user_command(ev.buf, "Daily", function(args)
+ local input = args.args
+ local arguments = {}
+ if input ~= "" then
+ arguments = { input }
+ end
+ client:exec_cmd({ command = "jump", arguments = arguments }, { bufnr = ev.buf })
+ end, { desc = "Open daily note", nargs = "*" })
+ end
end,
})
end,