local lib = require('core.lib') local M = { 'nvim-telescope/telescope.nvim' } M.branch = '0.1.x' M.event = 'VimEnter' M.dependencies = { 'nvim-lua/plenary.nvim', { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make', }, 'nvim-telescope/telescope-ui-select.nvim', 'nvim-tree/nvim-web-devicons', } -- Custom live_grep function to search in git root local function live_grep_git_root() local git_root = lib.find_git_root() if git_root then require('telescope.builtin').live_grep({ search_dirs = { git_root }, }) end end vim.api.nvim_create_user_command('LiveGrepGitRoot', live_grep_git_root, {}) function M.config() -- See `:help telescope` and `:help telescope.setup()` local telescope = require('telescope') local builtin = require('telescope.builtin') local themes = require('telescope.themes') telescope.setup({ -- pickers = {} extensions = { ['ui-select'] = { themes.get_dropdown(), }, }, defaults = { mappings = { i = { [''] = false, [''] = false, [''] = 'to_fuzzy_refine', }, }, }, }) -- Enable telescope fzf native, if installed pcall(telescope.load_extension, 'fzf') pcall(telescope.load_extension, 'ui-select') local function fuzzy_find() -- You can pass additional configuration to telescope to change theme, -- layout, etc. builtin.current_buffer_fuzzy_find(themes.get_dropdown({ winblend = 10, previewer = false, })) end -- See `:help telescope.builtin` 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', 'sf', builtin.find_files, { desc = '[S]earch [F]iles' }) 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', 'sG', live_grep_git_root, { desc = '[S]earch by [G]rep on Git Root' }) vim.keymap.set('n', '', builtin.buffers, { desc = '[ ] Find existing buffers' }) vim.keymap.set('n', '/', fuzzy_find, { desc = '[/] Fuzzily search in current buffer' }) vim.keymap.set('n', 'gf', builtin.git_files, { desc = 'Search [G]it [F]iles' }) end return M