Skip to content

Commit a388185

Browse files
committed
feat: globbing telescope
1 parent 2e64f5d commit a388185

4 files changed

Lines changed: 76 additions & 30 deletions

File tree

flake.lock

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@
9595
flake = false;
9696
};
9797

98+
telescope-live-grep-args-src = {
99+
url = "github:nvim-telescope/telescope-live-grep-args.nvim";
100+
flake = false;
101+
};
102+
98103
lsp-config-src = {
99104
url = "github:neovim/nvim-lspconfig";
100105
flake = false;
@@ -458,6 +463,7 @@
458463
# telescope
459464
telescope-nvim
460465
vimPlugins.telescope-file-browser-nvim
466+
vimPlugins.telescope-live-grep-args-nvim
461467
telescope-ui-select
462468
vimPlugins.yazi-nvim
463469

plugins.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,4 +168,6 @@ with inputs;
168168

169169
colorful-winsep-nvim = plugin "colorful-winsep-nvim" colorful-winsep-nvim-src;
170170

171+
telescope-live-grep-args = plugin "telescope-live-grep-args" telescope-live-grep-args-src;
172+
171173
}

required_lua_modules/telescope.lua

Lines changed: 51 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
local z_utils = require("telescope._extensions.zoxide.utils")
2-
require("telescope").setup {
2+
require("telescope").setup({
33
defaults = {
4-
preview = { treesitter = true, },
4+
preview = { treesitter = true },
55
file_ignore_patterns = { "node_modules", "target", "target_dirs" },
66
prompt_prefix = "",
77
selection_caret = " ",
@@ -18,49 +18,74 @@ require("telescope").setup {
1818
},
1919
},
2020
extensions = {
21+
live_grep_args = {
22+
auto_quoting = true, -- makes phrases with spaces painless
23+
mappings = {
24+
i = {
25+
-- Quickly wrap the prompt in quotes
26+
["<C-k>"] = require("telescope-live-grep-args.actions").quote_prompt(),
27+
-- Insert a glob flag and keep typing (e.g., press this, then type *.cc)
28+
["<C-g>"] = require("telescope-live-grep-args.actions").quote_prompt({ postfix = " -g " }),
29+
-- If you prefer ripgrep’s --iglob:
30+
["<C-i>"] = require("telescope-live-grep-args.actions").quote_prompt({ postfix = " --iglob " }),
31+
-- Swap to “refine by filename” mode
32+
["<C-f>"] = require("telescope-live-grep-args.actions").to_fuzzy_refine,
33+
},
34+
},
35+
},
2136
["ui-select"] = {
22-
require("telescope.themes").get_dropdown {
37+
require("telescope.themes").get_dropdown({
2338
-- even more opts
24-
}
39+
}),
2540
},
2641
zoxide = {
2742
prompt_title = "[ Walking on the shoulders of TJ ]",
2843
mappings = {
2944
default = {
3045
after_action = function(selection)
3146
print("Update to (" .. selection.z_score .. ") " .. selection.path)
32-
end
47+
end,
3348
},
3449
["<leader>Z"] = {
35-
before_action = function(selection) print("before C-s") end,
50+
before_action = function(selection)
51+
print("before C-s")
52+
end,
3653
action = function(selection)
3754
vim.cmd.edit(selection.path)
38-
end
55+
end,
3956
},
4057
-- Opens the selected entry in a new split
4158
["<leader>Y"] = { action = z_utils.create_basic_command("split") },
4259
},
43-
}
44-
}
45-
}
60+
},
61+
},
62+
})
4663
require("telescope").load_extension("file_browser")
4764
require("telescope").load_extension("ui-select")
4865

4966
vim.api.nvim_set_keymap(
50-
'n',
51-
'<leader>bb',
67+
"n",
68+
"<leader>bb",
5269
'<cmd>lua require("telescope.builtin").buffers({ file_ignore_patterns = {"^CoqInfoPanel:"} })<cr>',
5370
{ noremap = true, silent = true }
5471
)
55-
vim.api.nvim_set_keymap('n', '<leader>fb', '<cmd>Telescope file_browser<cr>', {})
56-
vim.api.nvim_set_keymap('n', '<leader>gg', '<cmd>Telescope live_grep<cr>', {})
57-
vim.api.nvim_set_keymap('n', '<leader><leader>', '<cmd>Telescope find_files<cr>', {})
58-
vim.api.nvim_set_keymap('n', '<leader>gf', '<cmd>require("telescope.builtins").live_grep {default_text="function"}<cr>', {})
59-
vim.api.nvim_set_keymap('n', '<leader>l', '<cmd>Telescope resume<cr>', {})
60-
vim.api.nvim_set_keymap('n', '<leader>', '<cmd><cr>', {})
61-
vim.api.nvim_set_keymap('n', '<leader>', '<cmd><cr>', {})
72+
vim.api.nvim_set_keymap("n", "<leader>fb", "<cmd>Telescope file_browser<cr>", {})
73+
vim.api.nvim_set_keymap("n", "<leader>gg", "<cmd>Telescope live_grep<cr>", {})
74+
vim.keymap.set("n", "<leader>gF", function()
75+
require("telescope").extensions.live_grep_args.live_grep_args()
76+
end, {})
77+
vim.api.nvim_set_keymap("n", "<leader><leader>", "<cmd>Telescope find_files<cr>", {})
78+
vim.api.nvim_set_keymap(
79+
"n",
80+
"<leader>gf",
81+
'<cmd>require("telescope.builtins").live_grep {default_text="function"}<cr>',
82+
{}
83+
)
84+
vim.api.nvim_set_keymap("n", "<leader>l", "<cmd>Telescope resume<cr>", {})
85+
vim.api.nvim_set_keymap("n", "<leader>", "<cmd><cr>", {})
86+
vim.api.nvim_set_keymap("n", "<leader>", "<cmd><cr>", {})
6287

63-
vim.api.nvim_set_keymap('n', '<leader>z', '<cmd>lua require("yazi").yazi()<cr>', {})
88+
vim.api.nvim_set_keymap("n", "<leader>z", '<cmd>lua require("yazi").yazi()<cr>', {})
6489

6590
function coq_panels_picker()
6691
local telescope = require("telescope")
@@ -76,9 +101,9 @@ function coq_panels_picker()
76101
return name:match("CoqInfoPanel")
77102
end, all_bufs)
78103

79-
require('telescope.builtin').buffers({
104+
require("telescope.builtin").buffers({
80105
prompt_title = "Coq Info Panels",
81-
finder = finders.new_table {
106+
finder = finders.new_table({
82107
results = coq_bufs,
83108
entry_maker = function(buf)
84109
local name = vim.api.nvim_buf_get_name(buf)
@@ -89,7 +114,7 @@ function coq_panels_picker()
89114
bufnr = buf,
90115
}
91116
end,
92-
},
117+
}),
93118
sorter = sorters.get_generic_fuzzy_sorter(),
94119
previewer = false,
95120
attach_mappings = function(_, map)
@@ -103,12 +128,8 @@ function coq_panels_picker()
103128
})
104129
end
105130

106-
vim.api.nvim_set_keymap(
107-
'n',
108-
'<leader>bc',
109-
'<cmd>lua coq_panels_picker()<cr>',
110-
{ noremap = true, silent = true }
111-
)
131+
vim.api.nvim_set_keymap("n", "<leader>bc", "<cmd>lua coq_panels_picker()<cr>", { noremap = true, silent = true })
112132

113-
require("telescope").load_extension('zoxide')
133+
require("telescope").load_extension("zoxide")
134+
require("telescope").load_extension("live_grep_args")
114135
vim.keymap.set("n", "<leader>cd", require("telescope").extensions.zoxide.list)

0 commit comments

Comments
 (0)