btw i use nix
1require('telescope').load_extension('fzf')
2require("telescope").load_extension("undo")
3require("telescope").load_extension("file_browser")
4require('telescope').setup {
5 defaults = {
6 mappings = {
7 i = {
8 ["<C-Down>"] = require('telescope.actions').cycle_history_next,
9 ["<C-Up>"] = require('telescope.actions').cycle_history_prev,
10 },
11 },
12 },
13 extensions = {
14 undo = {
15 mappings = {
16 i = {
17 ["<cr>"] = require("telescope-undo.actions").yank_additions,
18 ["<S-cr>"] = require("telescope-undo.actions").yank_deletions,
19 ["<C-cr>"] = require("telescope-undo.actions").restore,
20 -- alternative defaults, for users whose terminals do questionable things with modified <cr>
21 ["<C-y>"] = require("telescope-undo.actions").yank_deletions,
22 ["<C-r>"] = require("telescope-undo.actions").restore,
23 },
24 n = {
25 ["y"] = require("telescope-undo.actions").yank_additions,
26 ["Y"] = require("telescope-undo.actions").yank_deletions,
27 ["u"] = require("telescope-undo.actions").restore,
28 },
29 },
30 },
31 },
32}
33
34vim.keymap.set('n', '<leader>ff', require('telescope.builtin').find_files, { desc = 'Find files' })
35vim.keymap.set('n', '<leader><leader>', require('telescope.builtin').find_files, { desc = 'Find files' })
36vim.keymap.set('n', '<leader>sd', require('telescope.builtin').live_grep, { desc = 'Find grep' })
37vim.keymap.set('n', '<leader>fv', require('telescope.builtin').git_files, { desc = 'Find version control' })
38vim.keymap.set('n', '<leader>bb', function() require('telescope.builtin').buffers({ sort_mru = true }) end, { desc = 'Find buffer' })
39vim.keymap.set('n', '<leader>h', require('telescope.builtin').help_tags, { desc = 'Find help' })
40vim.keymap.set('n', '<leader>fq', require('telescope.builtin').command_history, { desc = 'Find command' })
41vim.keymap.set('n', '<leader>f/', require('telescope.builtin').search_history, { desc = 'Find search' })
42vim.keymap.set('n', '<leader>fj', require('telescope.builtin').jumplist, { desc = 'Find jumplist' })
43vim.keymap.set('n', '<leader>fm', require('telescope.builtin').marks, { desc = 'Find marks' })
44vim.keymap.set('n', '<leader>fx', require('telescope.builtin').diagnostics, { desc = 'Find diagnostics' })
45vim.keymap.set('n', '<leader>fy', require('telescope.builtin').registers, { desc = 'Find registers' })
46vim.keymap.set('v', '<leader>fy', require('telescope.builtin').registers, { desc = 'Find registers' })
47vim.keymap.set('n', '<leader>cD', require('telescope.builtin').lsp_references, { desc = 'Find references' })
48vim.keymap.set('n', '<leader>cS', require('telescope.builtin').lsp_document_symbols, { desc = 'Find LSP symbols' })
49vim.keymap.set('n', '<leader>cc', require('telescope.builtin').lsp_incoming_calls, { desc = 'Find LSP incoming calls' })
50vim.keymap.set('n', '<leader>co', require('telescope.builtin').lsp_outgoing_calls, { desc = 'Find LSP outgoing calls' })
51vim.keymap.set('n', '<leader>cfi', require('telescope.builtin').lsp_implementations, { desc = 'Find LSP implementations' })
52vim.keymap.set('n', '<leader>fu', require('telescope').extensions.undo.undo, { desc = 'Find undo' })
53vim.keymap.set('n', '<leader>fd', function() require('telescope').extensions.file_browser.file_browser({ path = '%:p:h', select_buffer = true }) end, { desc = 'Find directory' })