From: Ruben Beltran del Rio Date: Mon, 4 Mar 2024 16:24:12 +0000 (+0100) Subject: Add calendar tools X-Git-Url: https://git.r.bdr.sh/rbdr/dotfiles/commitdiff_plain/cd4c8b13ab7c0c9a455efdc7bd262aa1a6e715a7?ds=inline Add calendar tools --- diff --git a/config/nvim/init.lua b/config/nvim/init.lua index d414215..7243f4a 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -108,4 +108,4 @@ require('plugins') require('treesitter_config') require('lsp') require('dap_config') -require('brain') +require('calendar_tools') diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index 83dd80b..a233e4e 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -6,6 +6,7 @@ "gemini.vim": { "branch": "master", "commit": "c9efb59c97b71c28d4678c79fd21fbdd3a69d196" }, "lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" }, "neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" }, + "nota.nvim": { "branch": "main", "commit": "9e9e89d8556ecafa6b11ab21aa9ffab550f7f3ad" }, "nvim-dap": { "branch": "master", "commit": "fc880e82059eb21c0fa896be60146e5f17680648" }, "nvim-dap-ui": { "branch": "master", "commit": "9720eb5fa2f41988e8770f973cd11b76dd568a5d" }, "nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" }, diff --git a/config/nvim/lua/calendar_tools.lua b/config/nvim/lua/calendar_tools.lua new file mode 100644 index 0000000..2f8c602 --- /dev/null +++ b/config/nvim/lua/calendar_tools.lua @@ -0,0 +1,29 @@ +local function insert_agenda() + local clipboard_content = vim.fn.getreg('+') + + if not clipboard_content or clipboard_content == '' then + vim.api.nvim_err_writeln('This feature requires optional dependency fzf-lua') + end + + clipboard_content = clipboard_content:match('\n(.*)') + + local parts = vim.split(clipboard_content, '---', {plain = true, trimempty = true}) + + local agenda_text = {'# Agenda', ''} + for _, part in ipairs(parts) do + local trimmed_part = part:match('^%s*(.-)%s*$') + local lines = vim.split(trimmed_part, '\n', {trimempty = true}) + + if #lines >= 2 then + local date = lines[1] + local title = lines[2] + + table.insert(agenda_text, '[' .. date .. '] ' .. title) + end + end + local line = vim.api.nvim_win_get_cursor(0)[1] + vim.api.nvim_buf_set_lines(0, line, line, false, agenda_text) +end + +vim.api.nvim_create_user_command('InsertAgendaFromClipboard', insert_agenda, { nargs = 0 }) +vim.api.nvim_set_keymap('n', 'ia', 'InsertAgendaFromClipboard', { noremap = true, silent = true }) diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index 20cb89e..4bbcc15 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -70,5 +70,7 @@ require('lazy').setup({ -- Tools 'vim-scripts/LargeFile', 'tpope/vim-fugitive', - 'milkypostman/vim-togglelist' + 'milkypostman/vim-togglelist', + + 'https://git.sr.ht/~rbdr/nota.nvim' })