diff options
Diffstat (limited to '.vim/lua/telescope')
| -rw-r--r-- | .vim/lua/telescope/_extensions/jobs.lua | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/.vim/lua/telescope/_extensions/jobs.lua b/.vim/lua/telescope/_extensions/jobs.lua deleted file mode 100644 index be55a47..0000000 --- a/.vim/lua/telescope/_extensions/jobs.lua +++ /dev/null @@ -1,84 +0,0 @@ -local job = require('internal.job') - -local pickers = require('telescope.pickers') -local finders = require('telescope.finders') -local conf = require('telescope.config').values -local actions = require('telescope.actions') -local action_state = require('telescope.actions.state') -local entry_display = require('telescope.pickers.entry_display') - -local function job_entry_maker(_) - return function(j) - local displayer = entry_display.create({ - separator = ' ', - items = { - { width = 8 }, - { remaining = true }, - }, - }) - local make_display = function(e) - return displayer({ - { e.value.pid, 'TelescopeResultsNumber' }, - (e.value.command .. ' ' .. table.concat(e.value.args, ' ')), - }) - end - return { - value = j, - display = make_display, - ordinal = tostring(j.pid), - } - end -end - -local function list_jobs(opts) - local jobs = {} - for _, j in pairs(job.current_jobs) do - table.insert(jobs, j) - end - if #jobs == 0 then - vim.notify('no jobs') - return - end - - opts = vim.tbl_extend('force', { prompt_title = 'Jobs' }, opts or {}) - pickers - .new(opts, { - finder = finders.new_table({ - results = jobs, - entry_maker = job_entry_maker(opts), - }), - sorter = conf.generic_sorter(opts), - attach_mappings = function(prompt_bufnr, _) - actions.select_default:replace(function() - local entry = action_state.get_selected_entry() - if not entry then - return - end - actions.close(prompt_bufnr) - vim.ui.select( - { 'Terminate', 'Kill', 'Show', 'Cancel' }, - { prompt = 'Select an action:' }, - function(choice) - if choice == 'Cancel' then - return - elseif choice == 'Show' then - vim.fn.getqflist({ id = entry.value.pid }) - elseif choice == 'Kill' then - entry.value.handle:kill('sigkill') - elseif choice == 'Terminate' then - entry.value.handle:kill('sigterm') - end - end - ) - end) - return true - end, - }) - :find() -end - -return require('telescope').register_extension({ - exports = { - jobs = list_jobs, - }, -}) |