diff options
| author | Aotrix <[email protected]> | 2025-02-14 19:03:43 +0100 |
|---|---|---|
| committer | Aotrix <[email protected]> | 2025-02-14 19:03:43 +0100 |
| commit | 71c818f815fea72227d0eca0c104cdc4ff98d4c8 (patch) | |
| tree | 052cd8886f4761e5c857833746522b5577fd3636 | |
| parent | 3a4725f3d8b12a03a7c6136f2324e62004ce7766 (diff) | |
added multigrep
| -rw-r--r-- | init.lua | 19 | ||||
| -rw-r--r-- | lua/nvim_settings/remap.lua | 8 | ||||
| -rw-r--r-- | lua/telescope/multigrep.lua | 53 |
3 files changed, 67 insertions, 13 deletions
@@ -63,14 +63,14 @@ require('lazy').setup({ 'nvim-telescope/telescope.nvim', tag = '0.1.5', -- or , branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim', - 'nvim-telescope/telescope-live-grep-args.nvim', - 'fannheyward/telescope-coc.nvim', - 'nvim-telescope/telescope-file-browser.nvim', - {'nvim-telescope/telescope-fzf-native.nvim', build = 'make'} -}, -config = function() - require('telescope/telescope') -end + 'nvim-telescope/telescope-live-grep-args.nvim', + 'fannheyward/telescope-coc.nvim', + 'nvim-telescope/telescope-file-browser.nvim', + {'nvim-telescope/telescope-fzf-native.nvim', build = 'make'} + }, + config = function() + require('telescope/telescope') + end }, { @@ -100,3 +100,6 @@ end require('nvim_settings/set') require('nvim_settings/remap') require('nvim_settings/lsp') + +-- Custom grep from TJ +require('telescope/multigrep').setup() 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 |
