]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/nvim/lua/plugins/telescope.lua
+user/updatability(nixos-unstable): pin latest
[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 "elm-stuff/",
66 },
67 history = {
68 path = "~/.local/share/nvim/databases/telescope_history.sqlite3",
69 limit = 100,
70 },
71 initial_mode = "insert",
72 layout_config = {
73 height = 0.800000,
74 horizontal = { preview_width = 0.550000, prompt_position = "top" },
75 preview_cutoff = 120,
76 vertical = { mirror = false },
77 width = 0.800000,
78 },
79 layout_strategy = "horizontal",
80 path_display = { "absolute" },
81 pickers = {
82 find_command = { "fd" },
83 },
84 prompt_prefix = "  ",
85 selection_caret = " ",
86 selection_strategy = "reset",
87 set_env = { COLORTERM = "truecolor" },
88 sorting_strategy = "ascending",
89 vimgrep_arguments = {
90 "rg",
91 "--color=never",
92 "--column",
93 "--hidden",
94 "--line-number",
95 "--no-heading",
96 "--no-ignore",
97 "--no-require-git",
98 "--smart-case",
99 "--with-filename",
100 },
101 winblend = 0,
102 },
103 pickers = {
104 find_files = {
105 find_command = { "fd", "--type=file" },
106 },
107 },
108 })
109 local telescope = require("telescope")
110 --telescope.load_extension("conflicts")
111 telescope.load_extension("fzf")
112 telescope.load_extension("live_grep_args")
113 --telescope.load_extension("smart_history")
114 --telescope.load_extension("noice")
115 end,
116 keys = {
117 {
118 "<leader>ff",
119 "<cmd>Telescope find_files<CR>",
120 desc = "Find files [Telescope]",
121 expr = false,
122 mode = "n",
123 noremap = true,
124 nowait = false,
125 script = false,
126 silent = true,
127 unique = false,
128 },
129 {
130 "<leader>fg",
131 function()
132 require("telescope").extensions.live_grep_args.live_grep_args()
133 end,
134 desc = "Live grep [Telescope]",
135 expr = false,
136 mode = "n",
137 noremap = true,
138 nowait = false,
139 script = false,
140 silent = true,
141 unique = false,
142 },
143 {
144 "<leader>gc",
145 function()
146 require("telescope-live-grep-args.shortcuts").grep_word_under_cursor()
147 end,
148 desc = "[G]rep word under [C]ursor [Telescope]",
149 expr = false,
150 mode = "n",
151 noremap = true,
152 nowait = false,
153 script = false,
154 silent = true,
155 unique = false,
156 },
157 {
158 "<leader>fm",
159 function()
160 require("telescope.builtin").live_grep({ grep_open_files = true })
161 end,
162 desc = "Buffers grep [Telescope]",
163 expr = false,
164 mode = "n",
165 noremap = true,
166 nowait = false,
167 script = false,
168 silent = true,
169 unique = false,
170 },
171 {
172 "m",
173 "<cmd>Telescope buffers<CR>",
174 desc = "Buffers [Telescope]",
175 expr = false,
176 mode = "n",
177 noremap = true,
178 nowait = false,
179 script = false,
180 silent = true,
181 unique = false,
182 },
183 {
184 "<leader>fb",
185 "<cmd>Telescope buffers<CR>",
186 desc = "Buffers [Telescope]",
187 expr = false,
188 mode = "n",
189 noremap = true,
190 nowait = false,
191 script = false,
192 silent = true,
193 unique = false,
194 },
195 {
196 "<leader>fh",
197 "<cmd>Telescope help_tags<CR>",
198 desc = "Help tags [Telescope]",
199 expr = false,
200 mode = "n",
201 noremap = true,
202 nowait = false,
203 script = false,
204 silent = true,
205 unique = false,
206 },
207 {
208 "<leader>ft",
209 "<cmd>Telescope<CR>",
210 desc = "Open [Telescope]",
211 expr = false,
212 mode = "n",
213 noremap = true,
214 nowait = false,
215 script = false,
216 silent = true,
217 unique = false,
218 },
219 {
220 "<leader>fr",
221 "<cmd>Telescope resume<CR>",
222 desc = "Resume (previous search) [Telescope]",
223 expr = false,
224 mode = "n",
225 noremap = true,
226 nowait = false,
227 script = false,
228 silent = true,
229 unique = false,
230 },
231 {
232 "<leader>fvcw",
233 "<cmd>Telescope git_commits<CR>",
234 desc = "Git commits [Telescope]",
235 expr = false,
236 mode = "n",
237 noremap = true,
238 nowait = false,
239 script = false,
240 silent = true,
241 unique = false,
242 },
243 {
244 "<leader>fvcb",
245 "<cmd>Telescope git_bcommits<CR>",
246 desc = "Git buffer commits [Telescope]",
247 expr = false,
248 mode = "n",
249 noremap = true,
250 nowait = false,
251 script = false,
252 silent = true,
253 unique = false,
254 },
255 {
256 "<leader>fvb",
257 "<cmd>Telescope git_branches<CR>",
258 desc = "Git branches [Telescope]",
259 expr = false,
260 mode = "n",
261 noremap = true,
262 nowait = false,
263 script = false,
264 silent = true,
265 unique = false,
266 },
267 {
268 "<leader>fvs",
269 "<cmd>Telescope git_status<CR>",
270 desc = "Git status [Telescope]",
271 expr = false,
272 mode = "n",
273 noremap = true,
274 nowait = false,
275 script = false,
276 silent = true,
277 unique = false,
278 },
279 {
280 "<leader>fvx",
281 "<cmd>Telescope git_stash<CR>",
282 desc = "Git stash [Telescope]",
283 expr = false,
284 mode = "n",
285 noremap = true,
286 nowait = false,
287 script = false,
288 silent = true,
289 unique = false,
290 },
291 {
292 "<leader>flsb",
293 "<cmd>Telescope lsp_document_symbols<CR>",
294 desc = "LSP Document Symbols [Telescope]",
295 expr = false,
296 mode = "n",
297 noremap = true,
298 nowait = false,
299 script = false,
300 silent = true,
301 unique = false,
302 },
303 {
304 "<leader>flsw",
305 "<cmd>Telescope lsp_workspace_symbols<CR>",
306 desc = "LSP Workspace Symbols [Telescope]",
307 expr = false,
308 mode = "n",
309 noremap = true,
310 nowait = false,
311 script = false,
312 silent = true,
313 unique = false,
314 },
315 {
316 "<leader>flr",
317 "<cmd>Telescope lsp_references<CR>",
318 desc = "LSP References [Telescope]",
319 expr = false,
320 mode = "n",
321 noremap = true,
322 nowait = false,
323 script = false,
324 silent = true,
325 unique = false,
326 },
327 {
328 "<leader>fli",
329 "<cmd>Telescope lsp_implementations<CR>",
330 desc = "LSP Implementations [Telescope]",
331 expr = false,
332 mode = "n",
333 noremap = true,
334 nowait = false,
335 script = false,
336 silent = true,
337 unique = false,
338 },
339 {
340 "<leader>flD",
341 "<cmd>Telescope lsp_definitions<CR>",
342 desc = "LSP Definitions [Telescope]",
343 expr = false,
344 mode = "n",
345 noremap = true,
346 nowait = false,
347 script = false,
348 silent = true,
349 unique = false,
350 },
351 {
352 "<leader>flt",
353 "<cmd>Telescope lsp_type_definitions<CR>",
354 desc = "LSP Type Definitions [Telescope]",
355 expr = false,
356 mode = "n",
357 noremap = true,
358 nowait = false,
359 script = false,
360 silent = true,
361 unique = false,
362 },
363 {
364 "<leader>fld",
365 "<cmd>Telescope diagnostics<CR>",
366 desc = "Diagnostics [Telescope]",
367 expr = false,
368 mode = "n",
369 noremap = true,
370 nowait = false,
371 script = false,
372 silent = true,
373 unique = false,
374 },
375 {
376 "<leader>fs",
377 "<cmd>Telescope treesitter<CR>",
378 desc = "Treesitter [Telescope]",
379 expr = false,
380 mode = "n",
381 noremap = true,
382 nowait = false,
383 script = false,
384 silent = true,
385 unique = false,
386 },
387 },
388 }