mail_address.lua (989B)
1 local M = {} 2 3 function M.mail_address(opts) 4 opts = opts or {} 5 6 local actions = require('telescope.actions') 7 local action_set = require('telescope.actions.set') 8 local action_state = require('telescope.actions.state') 9 local pickers = require('telescope.pickers') 10 local finders = require('telescope.finders') 11 local sorters = require('telescope.sorters') 12 13 pickers.new(opts, { 14 results_title = 'Adresses', 15 finder = finders.new_oneshot_job({ 'khard', 'email', '--parsable', '--remove-first-line' }, opts), 16 sorter = sorters.get_fuzzy_file(), 17 attach_mappings = function(_) 18 action_set.select:replace(function(prompt_bufnr, _) 19 local entry = action_state.get_selected_entry() 20 local mail, name = entry.value:match('([^\t]+)\t([^\t]+)') 21 actions.close(prompt_bufnr) 22 vim.fn.setreg('+', name .. ' <' .. mail .. '>') 23 vim.fn.setreg('*', name .. ' <' .. mail .. '>') 24 end) 25 return true 26 end, 27 }):find() 28 end 29 30 return M