telescope: replace line_grep with advanced_grep
This commit is contained in:
@@ -26,7 +26,8 @@ return {
|
|||||||
'node_modules',
|
'node_modules',
|
||||||
'galaxy-roles',
|
'galaxy-roles',
|
||||||
'galaxy-collections',
|
'galaxy-collections',
|
||||||
'.git/',
|
'.git',
|
||||||
|
'.terraform',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
extensions = {
|
extensions = {
|
||||||
@@ -45,9 +46,9 @@ return {
|
|||||||
prev = '<S-Tab>'
|
prev = '<S-Tab>'
|
||||||
},
|
},
|
||||||
tabs = {
|
tabs = {
|
||||||
{ name = 'Files', tele_func = builtin.find_files, tele_opts = { no_ignore = true, hidden = true } },
|
{ name = 'Files', tele_func = builtin.find_files, tele_opts = { no_ignore = true, hidden = true } },
|
||||||
{ name = 'Grep', tele_func = builtin.live_grep },
|
{ name = 'Advanced Grep', tele_func = require('crentist.telescope.advanced_grep').advanced_grep },
|
||||||
{ name = 'Buffers', tele_func = builtin.buffers },
|
{ name = 'Buffers', tele_func = builtin.buffers },
|
||||||
},
|
},
|
||||||
append_tabs = { -- append_tabs will add the provided tabs to the default ones
|
append_tabs = { -- append_tabs will add the provided tabs to the default ones
|
||||||
{
|
{
|
||||||
@@ -57,6 +58,13 @@ return {
|
|||||||
return vim.fn.isdirectory('.git') == 1
|
return vim.fn.isdirectory('.git') == 1
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'Stash',
|
||||||
|
builtin.git_stash,
|
||||||
|
available = function()
|
||||||
|
return vim.fn.isdirectory('.git') == 1
|
||||||
|
end
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
54
lua/crentist/telescope/advanced_grep.lua
Normal file
54
lua/crentist/telescope/advanced_grep.lua
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
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 advanced_grep = 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
|
||||||
|
|
||||||
|
return vim.iter({ args, { "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case" } })
|
||||||
|
:flatten()
|
||||||
|
:totable()
|
||||||
|
end,
|
||||||
|
entry_maker = make_entry.gen_from_vimgrep(opts),
|
||||||
|
cwd = opts.cwd,
|
||||||
|
})
|
||||||
|
|
||||||
|
pickers.new(opts, {
|
||||||
|
debounce = 100,
|
||||||
|
prompt_title = "Advanced Grep",
|
||||||
|
finder = finder,
|
||||||
|
previewer = conf.grep_previewer(opts),
|
||||||
|
sorter = require("telescope.sorters").empty(),
|
||||||
|
}):find()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
M.advanced_grep = advanced_grep
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
||||||
Reference in New Issue
Block a user