return { { "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim", "BurntSushi/ripgrep", "nvim-tree/nvim-web-devicons", }, keys = { { "f", "Telescope find_files", desc = "Open file picker", }, { "/", "Telescope live_grep", desc = "Global search", }, { "b", "Telescope buffers", desc = "Open buffer picker", }, { "j", "Telescope jumplist", desc = "Open jumplist picker", }, { "g", "", desc = "Git", }, { "gf", "Telescope git_files", desc = "Open git file picker", }, { "gc", "Telescope git_commits", desc = "Browse git commits", }, { "gd", "Telescope git_status", desc = "View git diff", }, }, cmd = "Telescope", opts = { defaults = { layout_config = { horizontal = { preview_width = 0.6, -- Show preview even for small windows --preview_cutoff = 50, }, }, }, pickers = { buffers = { -- sort buffers in order of last-use sort_lastused = true, }, diagnostics = { theme = "dropdown", layout_config = { width = 0.9, }, }, }, extensions = { file_browser = { mappings = {}, }, }, }, config = function(_, opts) local actions = require("telescope.actions") -- close on esc opts.defaults.mappings = { i = { [""] = actions.close } } -- except for in the file browser opts.extensions.file_browser.mappings = { i = { [""] = function() vim.cmd("stopinsert") end } } local telescope = require("telescope") telescope.setup(opts) end, }, { "nvim-telescope/telescope-file-browser.nvim", keys = { { "e", "Telescope file_browser", desc = "Open file explorer", }, }, dependencies = { "nvim-telescope/telescope.nvim" }, config = function() require("telescope").load_extension("file_browser") end, }, { "folke/todo-comments.nvim", event = "VeryLazy", dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope.nvim" }, opts = {}, keys = { { "t", "TodoTelescope", desc = "Open workspace TODOs listing", }, }, } }