Files
dotfiles-modules/homemanager/neovim/lua/plugins/spec/telescope-picker/multi_grep.lua
2025-10-14 12:29:46 +02:00

51 lines
1.1 KiB
Lua

local M = {}
M.multi_grep = function(opts)
local pickers = require("telescope.pickers")
local finders = require("telescope.finders")
local conf = require("telescope.config").values
local make_entry = require "telescope.make_entry"
opts = opts or {}
opts.cwd = opts.cwd or vim.fn.getcwd()
local finder = finders.new_async_job {
command_generator = function(prompt)
if not prompt or prompt == "" then
return nil
end
local segments = vim.split(prompt, " ")
local args = { "rg" }
if segments[1] then
table.insert(args, "-e")
table.insert(args, segments[1])
end
if segments[2] then
table.insert(args, "-g")
table.insert(args, segments[2])
end
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({}, {
debounce = 100,
prompt_title = "Multi Grep",
finder = finder,
previewer = conf.grep_previewer(opts),
sorter = require("telescope.sorters").empty(),
}):find()
end
M.multi_grep()
return M