]> git.r.bdr.sh - rbdr/dotfiles/commitdiff
Add calendar tools
authorRuben Beltran del Rio <redacted>
Mon, 4 Mar 2024 16:24:12 +0000 (17:24 +0100)
committerRuben Beltran del Rio <redacted>
Mon, 4 Mar 2024 16:24:12 +0000 (17:24 +0100)
config/nvim/init.lua
config/nvim/lazy-lock.json
config/nvim/lua/calendar_tools.lua [new file with mode: 0644]
config/nvim/lua/plugins.lua

index d414215b4ed346f5602461bcb3607c05998b7fcb..7243f4aa206a8ae86e012336d0f6b7ed3bb8ad8c 100644 (file)
@@ -108,4 +108,4 @@ require('plugins')
 require('treesitter_config')
 require('lsp')
 require('dap_config')
-require('brain')
+require('calendar_tools')
index 83dd80b98f2129ea3f0db4009655d19f1f4b685b..a233e4e1c1cac92b3434a65724bdaefefcb40365 100644 (file)
@@ -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 (file)
index 0000000..2f8c602
--- /dev/null
@@ -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', '<leader>ia', '<cmd>InsertAgendaFromClipboard<CR>', { noremap = true, silent = true })
index 20cb89ec27a2a60650a44ce2f908ded4a0429dfc..4bbcc15bbd9802ad328b86950629af1baefeb65b 100644 (file)
@@ -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'
 })