summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorAotrix <[email protected]>2025-02-14 19:03:43 +0100
committerAotrix <[email protected]>2025-02-14 19:03:43 +0100
commit71c818f815fea72227d0eca0c104cdc4ff98d4c8 (patch)
tree052cd8886f4761e5c857833746522b5577fd3636 /lua
parent3a4725f3d8b12a03a7c6136f2324e62004ce7766 (diff)
added multigrep
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim_settings/remap.lua8
-rw-r--r--lua/telescope/multigrep.lua53
2 files changed, 56 insertions, 5 deletions
diff --git a/lua/nvim_settings/remap.lua b/lua/nvim_settings/remap.lua
index 8a0f213..538a69a 100644
--- a/lua/nvim_settings/remap.lua
+++ b/lua/nvim_settings/remap.lua
@@ -16,8 +16,6 @@ vim.keymap.set("n", "<leader>Y", [["+Y]])
vim.keymap.set("n", "<leader>pv", function() require("telescope").extensions.file_browser.file_browser() end)
vim.keymap.set("n", "<leader>pf", function() require("telescope.builtin").find_files() end)
-vim.keymap.set("n", "<leader>pg", function() require("telescope").extensions.live_grep_args.live_grep_args() end)
--- vim.keymap.set("n", "<leader>s", function() require("telescope").extensions.coc.document_symbols() end)
vim.keymap.set("n", "<leader>s", function() require("telescope.builtin").treesitter() end)
vim.keymap.set("n", "<leader>a", function() require("harpoon.mark").add_file() end)
@@ -39,10 +37,10 @@ vim.keymap.set("n", "gi", "<Plug>(coc-implementation)", {silent = true})
vim.keymap.set({'n', 'i', 'v'}, '<C-c>', '<nop>')
-- nvim-dap
-vim.keymap.set("n", "<space>b", function() require("dap").toggle_breakpoint() end)
-vim.keymap.set("n", "<space>gb", function() require("dap").run_to_cursor() end)
+vim.keymap.set("n", "<leader>b", function() require("dap").toggle_breakpoint() end)
+vim.keymap.set("n", "<leader>gb", function() require("dap").run_to_cursor() end)
-- Eval var under cursor
-vim.keymap.set("n", "<space>?", function()
+vim.keymap.set("n", "<leader>?", function()
require("dapui").eval(nil, { enter = true })
end)
vim.keymap.set("n", "<F1>", function() require("dap").continue() end)
diff --git a/lua/telescope/multigrep.lua b/lua/telescope/multigrep.lua
new file mode 100644
index 0000000..749102e
--- /dev/null
+++ b/lua/telescope/multigrep.lua
@@ -0,0 +1,53 @@
+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", "<leader>pg", live_multigrep)
+end
+
+return M