diff --git a/lua/custom/plugins/telescope.lua b/lua/custom/plugins/telescope.lua index 61dbbf3f..e821007f 100644 --- a/lua/custom/plugins/telescope.lua +++ b/lua/custom/plugins/telescope.lua @@ -1,10 +1,10 @@ --- Telescope override configuration - return { + -- ======================================== + -- Telescope Override + -- ======================================== { 'nvim-telescope/telescope.nvim', - -- Ensure dependencies are loaded (lazy.nvim usually handles this if defined elsewhere) - -- Listing them here ensures they are available if Telescope is the first plugin requiring them. + -- Ensure dependencies are loaded dependencies = { 'nvim-lua/plenary.nvim', { @@ -24,17 +24,17 @@ return { find_command = { 'rg', '--files', '--hidden', '-g', '!.git' }, }, }, - -- Ensure extensions are configured if kickstart doesn't handle it via opts + -- Configure extensions extensions = { ['ui-select'] = { require('telescope.themes').get_dropdown(), }, -- Configuration for fzf-native extension fzf = { - fuzzy = true, - override_generic_sorter = true, - override_file_sorter = true, - case_mode = 'smart_case', + fuzzy = true, -- Enable fuzzy matching + override_generic_sorter = true, -- Override the generic sorter + override_file_sorter = true, -- Override the file sorter + case_mode = 'smart_case', -- Ignore case unless capitals are used }, }, }, @@ -44,6 +44,43 @@ return { -- Load extensions after setup pcall(require('telescope').load_extension, 'fzf') pcall(require('telescope').load_extension, 'ui-select') + + -- *** ADD TELESCOPE KEYMAPS HERE *** + local builtin = require 'telescope.builtin' + -- Add the find_files keymap + vim.keymap.set('n', 'sf', builtin.find_files, { desc = '[S]earch [F]iles' }) + + -- Add other Telescope keymaps from kickstart's init.lua (uncomment to enable) + vim.keymap.set('n', 'sh', builtin.help_tags, { desc = '[S]earch [H]elp' }) + vim.keymap.set('n', 'sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' }) + vim.keymap.set('n', 'ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' }) + vim.keymap.set('n', 'sw', builtin.grep_string, { desc = '[S]earch current [W]ord' }) + vim.keymap.set('n', 'sg', builtin.live_grep, { desc = '[S]earch by [G]rep' }) + vim.keymap.set('n', 'sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' }) + vim.keymap.set('n', 'sr', builtin.resume, { desc = '[S]earch [R]esume' }) + vim.keymap.set('n', 's.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) + vim.keymap.set('n', '', builtin.buffers, { desc = '[ ] Find existing buffers' }) + + -- Fuzzy search in current buffer (corrected function body) + vim.keymap.set('n', '/', function() + builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { + winblend = 10, + previewer = false, + }) + end, { desc = '[/] Fuzzily search in current buffer' }) + + -- Search in open files (corrected function body) + vim.keymap.set('n', 's/', function() + builtin.live_grep { + grep_open_files = true, + prompt_title = 'Live Grep in Open Files', + } + end, { desc = '[S]earch [/] in Open Files' }) + + -- Search Neovim files (corrected function body) + vim.keymap.set('n', 'sn', function() + builtin.find_files { cwd = vim.fn.stdpath 'config' } + end, { desc = '[S]earch [N]eovim files' }) end, }, }