]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/nvim/lua/plugins/telescope.lua
neovim: configure, using ghostty and tmux
[julm/julm-nix.git] / home-manager / profiles / nvim / lua / plugins / telescope.lua
1 -- Find, Filter, Preview, Pick. All lua, all the time.
2 -- https://github.com/nvim-telescope/telescope.nvim
3 return {
4 "telescope.nvim",
5 lazy = false,
6 cmd = { "Telescope" },
7 load = function(name)
8 vim.cmd.packadd(name)
9 vim.cmd.packadd("telescope-fzf-native.nvim")
10 vim.cmd.packadd("telescope-git-conflicts.nvim")
11 vim.cmd.packadd("telescope-live-grep-args.nvim")
12 end,
13 before = function()
14 vim.g.loaded_telescope = nil
15 end,
16 after = function()
17 require("telescope").setup({
18 defaults = {
19 color_devicons = false,
20 entry_prefix = " ",
21 extensions = {
22 fzf = {
23 fuzzy = true, -- false will only do exact matching
24 --override_generic_sorter = true, -- override the generic sorter
25 --override_file_sorter = true, -- override the file sorter
26 --case_mode = "smart_case", -- or "ignore_case" or "respect_case"
27 -- the default case_mode is "smart_case"
28 },
29 },
30 file_ignore_patterns = {
31 "%.git/",
32 "build/",
33 "dist/",
34 "node_modules",
35 "result/",
36 "target/",
37 },
38 initial_mode = "insert",
39 layout_config = {
40 height = 0.800000,
41 horizontal = { preview_width = 0.550000, prompt_position = "top" },
42 preview_cutoff = 120,
43 vertical = { mirror = false },
44 width = 0.800000,
45 },
46 layout_strategy = "horizontal",
47 path_display = { "absolute" },
48 pickers = {
49 find_command = { "fd" },
50 },
51 prompt_prefix = "  ",
52 selection_caret = " ",
53 selection_strategy = "reset",
54 set_env = { COLORTERM = "truecolor" },
55 sorting_strategy = "ascending",
56 vimgrep_arguments = {
57 "rg",
58 "--color=never",
59 "--no-heading",
60 "--with-filename",
61 "--line-number",
62 "--column",
63 "--smart-case",
64 "--hidden",
65 "--no-ignore",
66 },
67 winblend = 0,
68 },
69 pickers = {
70 find_files = {
71 find_command = { "fd", "--type=file" },
72 },
73 },
74 })
75 local telescope = require("telescope")
76 telescope.load_extension("conflicts")
77 telescope.load_extension("fzf")
78 telescope.load_extension("live_grep_args")
79 --telescope.load_extension("noice")
80 end,
81 keys = {
82 {
83 "<leader>ff",
84 "<cmd>Telescope find_files<CR>",
85 desc = "Find files [Telescope]",
86 expr = false,
87 mode = "n",
88 noremap = true,
89 nowait = false,
90 script = false,
91 silent = true,
92 unique = false,
93 },
94 {
95 "<leader>fg",
96 "<cmd>Telescope live_grep<CR>",
97 desc = "Live grep [Telescope]",
98 expr = false,
99 mode = "n",
100 noremap = true,
101 nowait = false,
102 script = false,
103 silent = true,
104 unique = false,
105 },
106 {
107 "<leader>gc",
108 function()
109 require("telescope-live-grep-args.shortcuts").grep_word_under_cursor()
110 end,
111 desc = "[G]rep word under [C]ursor [Telescope]",
112 expr = false,
113 mode = "n",
114 noremap = true,
115 nowait = false,
116 script = false,
117 silent = true,
118 unique = false,
119 },
120 {
121 "<leader>fm",
122 function()
123 require("telescope.builtin").live_grep({ grep_open_files = true })
124 end,
125 desc = "Buffers grep [Telescope]",
126 expr = false,
127 mode = "n",
128 noremap = true,
129 nowait = false,
130 script = false,
131 silent = true,
132 unique = false,
133 },
134 {
135 "m",
136 "<cmd>Telescope buffers<CR>",
137 desc = "Buffers [Telescope]",
138 expr = false,
139 mode = "n",
140 noremap = true,
141 nowait = false,
142 script = false,
143 silent = true,
144 unique = false,
145 },
146 {
147 "<leader>fb",
148 "<cmd>Telescope buffers<CR>",
149 desc = "Buffers [Telescope]",
150 expr = false,
151 mode = "n",
152 noremap = true,
153 nowait = false,
154 script = false,
155 silent = true,
156 unique = false,
157 },
158 {
159 "<leader>fh",
160 "<cmd>Telescope help_tags<CR>",
161 desc = "Help tags [Telescope]",
162 expr = false,
163 mode = "n",
164 noremap = true,
165 nowait = false,
166 script = false,
167 silent = true,
168 unique = false,
169 },
170 {
171 "<leader>ft",
172 "<cmd>Telescope<CR>",
173 desc = "Open [Telescope]",
174 expr = false,
175 mode = "n",
176 noremap = true,
177 nowait = false,
178 script = false,
179 silent = true,
180 unique = false,
181 },
182 {
183 "<leader>fr",
184 "<cmd>Telescope resume<CR>",
185 desc = "Resume (previous search) [Telescope]",
186 expr = false,
187 mode = "n",
188 noremap = true,
189 nowait = false,
190 script = false,
191 silent = true,
192 unique = false,
193 },
194 {
195 "<leader>fvcw",
196 "<cmd>Telescope git_commits<CR>",
197 desc = "Git commits [Telescope]",
198 expr = false,
199 mode = "n",
200 noremap = true,
201 nowait = false,
202 script = false,
203 silent = true,
204 unique = false,
205 },
206 {
207 "<leader>fvcb",
208 "<cmd>Telescope git_bcommits<CR>",
209 desc = "Git buffer commits [Telescope]",
210 expr = false,
211 mode = "n",
212 noremap = true,
213 nowait = false,
214 script = false,
215 silent = true,
216 unique = false,
217 },
218 {
219 "<leader>fvb",
220 "<cmd>Telescope git_branches<CR>",
221 desc = "Git branches [Telescope]",
222 expr = false,
223 mode = "n",
224 noremap = true,
225 nowait = false,
226 script = false,
227 silent = true,
228 unique = false,
229 },
230 {
231 "<leader>fvs",
232 "<cmd>Telescope git_status<CR>",
233 desc = "Git status [Telescope]",
234 expr = false,
235 mode = "n",
236 noremap = true,
237 nowait = false,
238 script = false,
239 silent = true,
240 unique = false,
241 },
242 {
243 "<leader>fvx",
244 "<cmd>Telescope git_stash<CR>",
245 desc = "Git stash [Telescope]",
246 expr = false,
247 mode = "n",
248 noremap = true,
249 nowait = false,
250 script = false,
251 silent = true,
252 unique = false,
253 },
254 {
255 "<leader>flsb",
256 "<cmd>Telescope lsp_document_symbols<CR>",
257 desc = "LSP Document Symbols [Telescope]",
258 expr = false,
259 mode = "n",
260 noremap = true,
261 nowait = false,
262 script = false,
263 silent = true,
264 unique = false,
265 },
266 {
267 "<leader>flsw",
268 "<cmd>Telescope lsp_workspace_symbols<CR>",
269 desc = "LSP Workspace Symbols [Telescope]",
270 expr = false,
271 mode = "n",
272 noremap = true,
273 nowait = false,
274 script = false,
275 silent = true,
276 unique = false,
277 },
278 {
279 "<leader>flr",
280 "<cmd>Telescope lsp_references<CR>",
281 desc = "LSP References [Telescope]",
282 expr = false,
283 mode = "n",
284 noremap = true,
285 nowait = false,
286 script = false,
287 silent = true,
288 unique = false,
289 },
290 {
291 "<leader>fli",
292 "<cmd>Telescope lsp_implementations<CR>",
293 desc = "LSP Implementations [Telescope]",
294 expr = false,
295 mode = "n",
296 noremap = true,
297 nowait = false,
298 script = false,
299 silent = true,
300 unique = false,
301 },
302 {
303 "<leader>flD",
304 "<cmd>Telescope lsp_definitions<CR>",
305 desc = "LSP Definitions [Telescope]",
306 expr = false,
307 mode = "n",
308 noremap = true,
309 nowait = false,
310 script = false,
311 silent = true,
312 unique = false,
313 },
314 {
315 "<leader>flt",
316 "<cmd>Telescope lsp_type_definitions<CR>",
317 desc = "LSP Type Definitions [Telescope]",
318 expr = false,
319 mode = "n",
320 noremap = true,
321 nowait = false,
322 script = false,
323 silent = true,
324 unique = false,
325 },
326 {
327 "<leader>fld",
328 "<cmd>Telescope diagnostics<CR>",
329 desc = "Diagnostics [Telescope]",
330 expr = false,
331 mode = "n",
332 noremap = true,
333 nowait = false,
334 script = false,
335 silent = true,
336 unique = false,
337 },
338 {
339 "<leader>fs",
340 "<cmd>Telescope treesitter<CR>",
341 desc = "Treesitter [Telescope]",
342 expr = false,
343 mode = "n",
344 noremap = true,
345 nowait = false,
346 script = false,
347 silent = true,
348 unique = false,
349 },
350 },
351 }