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