if vim.g.loaded_pending then return end vim.g.loaded_pending = true vim.api.nvim_create_user_command('Pending', function(opts) require('pending').command(opts.args) end, { bar = true, nargs = '*', complete = function(arg_lead, cmd_line) local subcmds = { 'add', 'sync', 'archive', 'due', 'undo' } if not cmd_line:match('^Pending%s+%S') then return vim.tbl_filter(function(s) return s:find(arg_lead, 1, true) == 1 end, subcmds) end return {} end, }) vim.keymap.set('n', '(pending-open)', function() require('pending').open() end) vim.keymap.set('n', '(pending-close)', function() require('pending.buffer').close() end) vim.keymap.set('n', '(pending-toggle)', function() require('pending').toggle_complete() end) vim.keymap.set('n', '(pending-view)', function() require('pending.buffer').toggle_view() end) vim.keymap.set('n', '(pending-priority)', function() require('pending').toggle_priority() end) vim.keymap.set('n', '(pending-date)', function() require('pending').prompt_date() end) vim.keymap.set('n', '(pending-undo)', function() require('pending').undo_write() end) vim.keymap.set('n', '(pending-open-line)', function() require('pending.buffer').open_line(false) end) vim.keymap.set('n', '(pending-open-line-above)', function() require('pending.buffer').open_line(true) end) vim.keymap.set({ 'o', 'x' }, '(pending-a-task)', function() require('pending.textobj').a_task(vim.v.count1) end) vim.keymap.set({ 'o', 'x' }, '(pending-i-task)', function() require('pending.textobj').i_task(vim.v.count1) end) vim.keymap.set({ 'o', 'x' }, '(pending-a-category)', function() require('pending.textobj').a_category(vim.v.count1) end) vim.keymap.set({ 'o', 'x' }, '(pending-i-category)', function() require('pending.textobj').i_category(vim.v.count1) end) vim.keymap.set({ 'n', 'x', 'o' }, '(pending-next-header)', function() require('pending.textobj').next_header(vim.v.count1) end) vim.keymap.set({ 'n', 'x', 'o' }, '(pending-prev-header)', function() require('pending.textobj').prev_header(vim.v.count1) end) vim.keymap.set({ 'n', 'x', 'o' }, '(pending-next-task)', function() require('pending.textobj').next_task(vim.v.count1) end) vim.keymap.set({ 'n', 'x', 'o' }, '(pending-prev-task)', function() require('pending.textobj').prev_task(vim.v.count1) end)