diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2024-03-04 17:24:12 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2024-03-04 17:24:12 +0100 |
| commit | cd4c8b13ab7c0c9a455efdc7bd262aa1a6e715a7 (patch) | |
| tree | f33034baa7d9e00f4262be2f8b14ba2c1b1716dd /config/nvim/lua | |
| parent | fc82060a6f1fbdffb4e394c812ee5fd71ad4deb4 (diff) | |
Add calendar tools
Diffstat (limited to 'config/nvim/lua')
| -rw-r--r-- | config/nvim/lua/calendar_tools.lua | 29 | ||||
| -rw-r--r-- | config/nvim/lua/plugins.lua | 4 |
2 files changed, 32 insertions, 1 deletions
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', '<leader>ia', '<cmd>InsertAgendaFromClipboard<CR>', { 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' }) |