return { { "telescope.nvim", enabled = nixCats("telescope.enable") or false, cmd = { "Telescope" }, keys = { { "f", function() return require("telescope.builtin").find_files() end, mode = { "n" }, desc = "Telescope search [F]iles", }, { "tr", function() return require("telescope.builtin").oldfiles() end, mode = { "n" }, desc = "[T]elescope search [R]ecent files", }, { "ts", function() return require("telescope.builtin").live_grep() end, mode = { "n" }, desc = "[T]elescope [S]earch cwd with grep", }, { "tw", function() return require("telescope.builtin").grep_string() end, mode = { "n" }, desc = "[T]elescope search current [W]ord", }, { "tk", function() return require("telescope.builtin").keymaps() end, mode = { "n" }, desc = "[T]elescope search [K]eymaps", }, { "tb", function() return require("telescope.builtin").buffers() end, mode = { "n" }, desc = "[T]elescope search [B]uffers", }, { "th", function() return require("telescope.builtin").highlights() end, mode = { "n" }, desc = "[T]elescope [H]ighlights", }, }, load = function(name) vim.cmd.packadd(name) if nixCats("telescope.fzf") then vim.cmd.packadd("telescope-fzf-native.nvim") end if nixCats("telescope.zf") then vim.cmd.packadd("telescope-zf-native.nvim") end end, after = function(plugin) local telescope = require("telescope") local actions = require("telescope.actions") telescope.setup({ defaults = { border = true, borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, mappings = { i = { [""] = actions.move_selection_previous, -- move to prev result [""] = actions.move_selection_next, -- move to next result [""] = actions.send_selected_to_qflist + actions.open_qflist, }, }, }, }) if nixCats("telescope.fzf") then telescope.load_extension("fzf") end if nixCats("telescope.zf") then telescope.load_extension("zf-native") end end, }, }