mirror of
https://github.com/hazemKrimi/config.nvim.git
synced 2026-05-01 18:20:26 +00:00
Live grep with file patterns
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
require 'core.options'
|
require 'config.options'
|
||||||
require 'core.keymaps'
|
require 'config.keymaps'
|
||||||
require 'core.autocommands'
|
require 'config.autocommands'
|
||||||
|
|
||||||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ vim.keymap.set({ 'n', 'v' }, '<Space>', '<Nop>', { silent = true })
|
|||||||
|
|
||||||
local opts = { noremap = true, silent = true }
|
local opts = { noremap = true, silent = true }
|
||||||
|
|
||||||
-- Delete single character without copying into register
|
|
||||||
vim.keymap.set('n', 'x', '"_x', opts)
|
|
||||||
|
|
||||||
-- Improvement to up and down movements
|
-- Improvement to up and down movements
|
||||||
vim.keymap.set('n', '<C-d>', '<C-d>zz', opts)
|
vim.keymap.set('n', '<C-d>', '<C-d>zz', opts)
|
||||||
vim.keymap.set('n', '<C-u>', '<C-u>zz', opts)
|
vim.keymap.set('n', '<C-u>', '<C-u>zz', opts)
|
||||||
@@ -37,9 +34,6 @@ vim.keymap.set('n', '<leader>lw', '<cmd>set wrap!<CR>', opts)
|
|||||||
vim.keymap.set('v', '<', '<gv', opts)
|
vim.keymap.set('v', '<', '<gv', opts)
|
||||||
vim.keymap.set('v', '>', '>gv', opts)
|
vim.keymap.set('v', '>', '>gv', opts)
|
||||||
|
|
||||||
-- Keep last yanked when pasting
|
|
||||||
vim.keymap.set('v', 'p', '"_dP', opts)
|
|
||||||
|
|
||||||
-- Diagnostic keymaps
|
-- Diagnostic keymaps
|
||||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
|
||||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
|
||||||
@@ -86,7 +86,6 @@ return {
|
|||||||
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
|
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
|
||||||
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
|
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
|
||||||
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
|
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
|
||||||
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
|
|
||||||
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
|
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||||
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
|
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
|
||||||
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
||||||
@@ -109,5 +108,53 @@ return {
|
|||||||
prompt_title = 'Live Grep in Open Files',
|
prompt_title = 'Live Grep in Open Files',
|
||||||
}
|
}
|
||||||
end, { desc = '[S]earch [/] in Open Files' })
|
end, { desc = '[S]earch [/] in Open Files' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>sg', function(opts)
|
||||||
|
local pickers = require "telescope.pickers"
|
||||||
|
local finders = require "telescope.finders"
|
||||||
|
local make_entry = require "telescope.make_entry"
|
||||||
|
local conf = require "telescope.config".values
|
||||||
|
|
||||||
|
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, { desc = '[S]earch by [G]rep' })
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user