return { 'nvim-telescope/telescope.nvim', cmd = 'Telescope', dependencies = { 'nvim-lua/plenary.nvim', }, keys = function() local lazy_telescope = function(builtin) return function(...) if builtin == 'find_files_custom' then require('telescope.builtin').find_files({ find_command = {'rg', '--files', '--hidden', '-g', '!.git', '-g', '!external/', '-g', '!build/' }}) else require('telescope.builtin')[builtin](...) end end end return { { 'fb', lazy_telescope('buffers'), desc = 'Find buffers' }, { 'fd', lazy_telescope('diagnostics'), desc = 'Find diagnostics' }, { 'fF', lazy_telescope('git_files'), desc = 'Find Git files' }, { 'fG', lazy_telescope('git_status'), desc = 'Find Git status' }, { 'ff', lazy_telescope('find_files_custom'), desc = 'Find files' }, { 'fg', lazy_telescope('live_grep'), desc = 'Find files by content' }, { 'fh', lazy_telescope('help_tags'), desc = 'Find help tags' }, { 'fo', lazy_telescope('oldfiles'), desc = 'Find recently opened files' }, { 'fw', lazy_telescope('grep_string'), desc = 'Find word in buffer' }, { 'f/', lazy_telescope('current_buffer_fuzzy_find'), desc = 'Find fuzzy match in current buffer' }, } end, config = function() local telescope = require('telescope') telescope.setup({ defaults = { mappings = { i = { [""] = require('telescope.actions').close, }, n = { [""] = require('telescope.actions').close, }, }, }, }) end, }