Lucas
1 month ago
1 changed files with 50 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||
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 = {} |
|||
|
|||
local live_multigrep = function(opts) |
|||
opts = opts or {} |
|||
opts.cwd = opts.cwd or vim.uv.cwd() |
|||
|
|||
local finder = finders.new_async_job { |
|||
command_generator = function(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" }, |
|||
} |
|||
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 |
|||
|
|||
M.setup = function() vim.keymap.set("n", "<space>fg", live_multigrep, { desc = "Find using multigrep" }) end |
|||
|
|||
return M |
Loading…
Reference in new issue