local M = { 'nvim-telescope/telescope.nvim', dependencies = { 'nvim-lua/plenary.nvim', { 'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build', }, }, cmd = { 'Telescope' }, keys = { { 'b', [[Telescope buffers]], desc = 'Buffers' }, { 'ff', [[Telescope find_files]], desc = 'Search file' }, { 'fg', [[Telescope live_grep]], desc = 'Grep through files' }, { 'Ta', [[Telescope]], desc = 'Telescope all' }, { 'Tg', [[Telescope grep_string]], desc = 'Telescope grep string' }, { 'Td', [[Telescope diagnostics]], desc = 'Telescope workspace diagnostics' }, { 'Tj', [[Telescope jumplist]], desc = 'Telescope jumplist' }, { 'Th', [[Telescope help_tags]], desc = 'Telescope help' }, { 'TT', [[Telescope resume]], desc = 'Telescope resume' }, }, } function M.config() local telescope = require('telescope') local actions = require('telescope.actions') local layout_actions = require('telescope.actions.layout') local opts = { defaults = { preview = { hide_on_startup = true, }, mappings = { i = { [''] = layout_actions.toggle_preview, }, n = { [''] = layout_actions.toggle_preview, }, }, }, pickers = { buffers = { show_all_buffers = true, sort_lastused = false, sort_mru = true, -- theme = "dropdown", mappings = { i = { [''] = actions.delete_buffer, }, n = { [''] = actions.delete_buffer, }, }, }, live_grep = { mappings = { i = { [''] = actions.to_fuzzy_refine, }, }, }, }, extensions = { fzf = {}, }, } telescope.setup(opts) for ext, _ in pairs(opts.extensions) do telescope.load_extension(ext) end end return M