aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/markdown_oxide.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lsp/markdown_oxide.lua')
-rw-r--r--.config/nvim/lsp/markdown_oxide.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/.config/nvim/lsp/markdown_oxide.lua b/.config/nvim/lsp/markdown_oxide.lua
new file mode 100644
index 0000000..cb61d23
--- /dev/null
+++ b/.config/nvim/lsp/markdown_oxide.lua
@@ -0,0 +1,37 @@
+---@brief
+---
+--- https://github.com/Feel-ix-343/markdown-oxide
+---
+--- Editor Agnostic PKM: you bring the text editor and we
+--- bring the PKM.
+---
+--- Inspired by and compatible with Obsidian.
+---
+--- Check the readme to see how to properly setup.
+
+---@param client vim.lsp.Client
+---@param bufnr integer
+---@param cmd string
+local function command_factory(client, bufnr, cmd)
+ return client:exec_cmd({
+ title = ('Markdown-Oxide-%s'):format(cmd),
+ command = 'jump',
+ arguments = { cmd },
+ }, { bufnr = bufnr })
+end
+
+---@type vim.lsp.Config
+return {
+ root_markers = { '.git', '.obsidian', '.moxide.toml' },
+ filetypes = { 'markdown' },
+ cmd = { 'markdown-oxide' },
+ on_attach = function(client, bufnr)
+ for _, cmd in ipairs({ 'today', 'tomorrow', 'yesterday' }) do
+ vim.api.nvim_buf_create_user_command(bufnr, 'Lsp' .. ('%s'):format(cmd:gsub('^%l', string.upper)), function()
+ command_factory(client, bufnr, cmd)
+ end, {
+ desc = ('Open %s daily note'):format(cmd),
+ })
+ end
+ end,
+}