]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/nvim/lua/plugins/telescope.lua
+use/op(nvim/jj): try more plugins
[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 --vim.cmd.packadd("sqlite-lua") -- For telescope-smart-history.nvim
13 --vim.cmd.packadd("telescope-smart-history.nvim")
14 end,
15 before = function()
16 vim.g.loaded_telescope = nil
17 end,
18 after = function()
19 local actions = require("telescope.actions")
20 local lga_actions = require("telescope-live-grep-args.actions")
21 require("telescope").setup({
22 defaults = {
23 color_devicons = false,
24 entry_prefix = " ",
25 extensions = {
26 fzf = {
27 fuzzy = true, -- false will only do exact matching
28 --override_generic_sorter = true, -- override the generic sorter
29 --override_file_sorter = true, -- override the file sorter
30 --case_mode = "smart_case", -- or "ignore_case" or "respect_case"
31 -- the default case_mode is "smart_case"
32 },
33 live_grep_args = {
34 auto_quoting = true,
35 mappings = {
36 n = {
37 -- Usage/FixMe: does not seem to be triggered
38 ["<C-k>"] = lga_actions.quote_prompt(),
39 ["<C-g>"] = lga_actions.quote_prompt({ postfix = " --iglob " }),
40 -- freeze the current list and start a fuzzy search in the frozen list
41 ["<C-space>"] = lga_actions.to_fuzzy_refine,
42 },
43 },
44 -- ... also accepts theme settings, for example:
45 -- theme = "dropdown", -- use dropdown theme
46 -- theme = { }, -- use own theme spec
47 -- layout_config = { mirror=true }, -- mirror preview pane
48 },
49 },
50 mappings = {
51 i = {
52 ["<C-Up>"] = actions.cycle_history_prev,
53 ["<C-Down>"] = actions.cycle_history_next,
54 -- ["<esc>"] = actions.close,
55 },
56 },
57 file_ignore_patterns = {
58 "%.git/",
59 "%.jj/",
60 "build/",
61 "dist/",
62 "node_modules",
63 "result/",
64 "target/",
65 },
66 history = {
67 path = "~/.local/share/nvim/databases/telescope_history.sqlite3",
68 limit = 100,
69 },
70 initial_mode = "insert",
71 layout_config = {
72 height = 0.800000,
73 horizontal = { preview_width = 0.550000, prompt_position = "top" },
74 preview_cutoff = 120,
75 vertical = { mirror = false },
76 width = 0.800000,
77 },
78 layout_strategy = "horizontal",
79 path_display = { "absolute" },
80 pickers = {
81 find_command = { "fd" },
82 },
83 prompt_prefix = "  ",
84 selection_caret = " ",
85 selection_strategy = "reset",
86 set_env = { COLORTERM = "truecolor" },
87 sorting_strategy = "ascending",
88 vimgrep_arguments = {
89 "rg",
90 "--color=never",
91 "--column",
92 "--hidden",
93 "--line-number",
94 "--no-heading",
95 "--no-ignore",
96 "--no-require-git",
97 "--smart-case",
98 "--with-filename",
99 },
100 winblend = 0,
101 },
102 pickers = {
103 find_files = {
104 find_command = { "fd", "--type=file" },
105 },
106 },
107 })
108 local telescope = require("telescope")
109 telescope.load_extension("conflicts")
110 telescope.load_extension("fzf")
111 telescope.load_extension("live_grep_args")
112 --telescope.load_extension("smart_history")
113 --telescope.load_extension("noice")
114 end,
115 keys = {
116 {
117 "<leader>ff",
118 "<cmd>Telescope find_files<CR>",
119 desc = "Find files [Telescope]",
120 expr = false,
121 mode = "n",
122 noremap = true,
123 nowait = false,
124 script = false,
125 silent = true,
126 unique = false,
127 },
128 {
129 "<leader>fg",
130 function()
131 require("telescope").extensions.live_grep_args.live_grep_args()
132 end,
133 desc = "Live grep [Telescope]",
134 expr = false,
135 mode = "n",
136 noremap = true,
137 nowait = false,
138 script = false,
139 silent = true,
140 unique = false,
141 },
142 {
143 "<leader>gc",
144 function()
145 require("telescope-live-grep-args.shortcuts").grep_word_under_cursor()
146 end,
147 desc = "[G]rep word under [C]ursor [Telescope]",
148 expr = false,
149 mode = "n",
150 noremap = true,
151 nowait = false,
152 script = false,
153 silent = true,
154 unique = false,
155 },
156 {
157 "<leader>fm",
158 function()
159 require("telescope.builtin").live_grep({ grep_open_files = true })
160 end,
161 desc = "Buffers grep [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 "m",
172 "<cmd>Telescope buffers<CR>",
173 desc = "Buffers [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>fb",
184 "<cmd>Telescope buffers<CR>",
185 desc = "Buffers [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>fh",
196 "<cmd>Telescope help_tags<CR>",
197 desc = "Help tags [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>ft",
208 "<cmd>Telescope<CR>",
209 desc = "Open [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>fr",
220 "<cmd>Telescope resume<CR>",
221 desc = "Resume (previous search) [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>fvcw",
232 "<cmd>Telescope git_commits<CR>",
233 desc = "Git commits [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>fvcb",
244 "<cmd>Telescope git_bcommits<CR>",
245 desc = "Git buffer commits [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>fvb",
256 "<cmd>Telescope git_branches<CR>",
257 desc = "Git branches [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>fvs",
268 "<cmd>Telescope git_status<CR>",
269 desc = "Git status [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>fvx",
280 "<cmd>Telescope git_stash<CR>",
281 desc = "Git stash [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>flsb",
292 "<cmd>Telescope lsp_document_symbols<CR>",
293 desc = "LSP Document Symbols [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>flsw",
304 "<cmd>Telescope lsp_workspace_symbols<CR>",
305 desc = "LSP Workspace Symbols [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>flr",
316 "<cmd>Telescope lsp_references<CR>",
317 desc = "LSP References [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>fli",
328 "<cmd>Telescope lsp_implementations<CR>",
329 desc = "LSP Implementations [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>flD",
340 "<cmd>Telescope lsp_definitions<CR>",
341 desc = "LSP Definitions [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 "<leader>flt",
352 "<cmd>Telescope lsp_type_definitions<CR>",
353 desc = "LSP Type Definitions [Telescope]",
354 expr = false,
355 mode = "n",
356 noremap = true,
357 nowait = false,
358 script = false,
359 silent = true,
360 unique = false,
361 },
362 {
363 "<leader>fld",
364 "<cmd>Telescope diagnostics<CR>",
365 desc = "Diagnostics [Telescope]",
366 expr = false,
367 mode = "n",
368 noremap = true,
369 nowait = false,
370 script = false,
371 silent = true,
372 unique = false,
373 },
374 {
375 "<leader>fs",
376 "<cmd>Telescope treesitter<CR>",
377 desc = "Treesitter [Telescope]",
378 expr = false,
379 mode = "n",
380 noremap = true,
381 nowait = false,
382 script = false,
383 silent = true,
384 unique = false,
385 },
386 },
387 }