| @ -0,0 +1,59 @@ | |||||
| local pickers = require("telescope.pickers") | |||||
| local finders = require("telescope.finders") | |||||
| local make_entry = require("telescope.make_entry") | |||||
| local conf = require("telescope.config").values | |||||
| local M = {} | |||||
| M.live_multgrep = function (opts) | |||||
| opts = opts or {} | |||||
| opts.cwd = opts.cwd or vim.uv.cwd() | |||||
| local finder = finders.new_async_job({ | |||||
| command_generator = function (prompt) | |||||
| print(prompt) | |||||
| if not prompt or prompt == "" then | |||||
| return nil | |||||
| end | |||||
| local pieces = vim.split(prompt, " ") | |||||
| local args = { "rg" } | |||||
| if pieces[1] then | |||||
| table.insert(args, "-e") | |||||
| table.insert(args, pieces[1]) | |||||
| end | |||||
| if pieces[2] then | |||||
| table.insert(args, "-g") | |||||
| table.insert(args, pieces[2]) | |||||
| end | |||||
| ---@diagnostic disable-next-line: deprecated | |||||
| return vim.tbl_flatten({ | |||||
| args, | |||||
| { | |||||
| "--color=never", | |||||
| "--no-heading", | |||||
| "--with-filename", | |||||
| "--line-number", | |||||
| "--column", | |||||
| "--smart-case", | |||||
| "--hidden", | |||||
| } | |||||
| }) | |||||
| end, | |||||
| entry_maker = make_entry.gen_from_vimgrep(opts), | |||||
| cwd = opts.cwd | |||||
| }) | |||||
| pickers.new(opts, { | |||||
| debounce = 100, | |||||
| prompt_title = "Multi Grep", | |||||
| finder = finder, | |||||
| previewer = conf.grep_previewer(opts), | |||||
| sorter = require("telescope.sorters").empty(), | |||||
| }):find() | |||||
| end | |||||
| return M | |||||