|
|
- 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
|