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