neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim
Log | Files | Refs

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