return { { -- Fuzzy Finder (files, lsp, etc) 'nvim-telescope/telescope.nvim', branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim', { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make', cond = function() return vim.fn.executable 'make' == 1 end, }, }, config = function() local telescopeConfig = require 'telescope.config' -- Clone the default Telescope configuration local vimgrep_arguments = { unpack(telescopeConfig.values.vimgrep_arguments) } -- I want to search in hidden/dot files. table.insert(vimgrep_arguments, '--hidden') -- I don't want to respect .gitignore but do want to respect .ignore table.insert(vimgrep_arguments, '--no-ignore-vcs') -- I don't want to search in the `.git` directory. table.insert(vimgrep_arguments, '--glob') table.insert(vimgrep_arguments, '!**/.git/*') local rg_defaults = { 'rg', '-S', '--hidden', '--no-ignore-vcs', '--glob', '!**/.git/*' } local find_command = { unpack(rg_defaults) } table.insert(find_command, '--files') local grep_command = { unpack(rg_defaults) } table.insert(grep_command, '--color=never') table.insert(grep_command, '--no-heading') table.insert(grep_command, '--with-filename') table.insert(grep_command, '--line-number') table.insert(grep_command, '--column') -- [[ Configure Telescope ]] -- See `:help telescope` and `:help telescope.setup()` require('telescope').setup { defaults = { vimgrep_arguments = vimgrep_arguments, }, pickers = { find_files = { find_command = find_command, }, live_grep = { grep_command = grep_command, }, }, } -- Enable telescope fzf native, if installed pcall(require('telescope').load_extension, 'fzf') -- See `:help telescope.builtin` vim.keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) vim.keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', 'ss', require('telescope.builtin').spell_suggest, { desc = '[S]pell [S]suggest' }) vim.keymap.set('n', 'sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' }) end, }, }