local misc = require("core.misc") local map = misc.map return { "nvim-telescope/telescope.nvim", disable = not vim.fn.has("nvim-0.9.0"), requires = { "nvim-lua/plenary.nvim", { "nvim-telescope/telescope-fzf-native.nvim", config = function() vim.cmd("make") end }, "mollerhoj/telescope-recent-files.nvim", "nvim-telescope/telescope-ui-select.nvim" }, function() local telescope = require("telescope") local actions = require("telescope.actions") telescope.setup { defaults = { borderchars = { prompt = { " ", " ", " ", " ", " ", " ", " ", " " }, results = { " ", " ", " ", " ", " ", " ", " ", " " }, preview = { " ", " ", " ", " ", " ", " ", " ", " " }, }, winblend = 0, layout_strategy = "horizontal", sorting_strategy = "descending", scroll_strategy = "limit", layout_config = { horizontal = { height = 20, prompt_position = "bottom", anchor = "N", } }, mappings = { i = { [""] = actions.close, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.preview_scrolling_up, [""] = actions.preview_scrolling_down, } } }, extensions = { fzf = {} } } -- load in the fzf extension telescope.load_extension("fzf") telescope.load_extension("recent-files") telescope.load_extension("ui-select") -- keymaps local telebuilt = require("telescope.builtin") map("n", "f", function() telescope.extensions["recent-files"].recent_files { follow = true } end, { desc = "Find files." }) map("n", "s", telebuilt.live_grep, { desc = "Find string in project." }) map("n", "b", telebuilt.current_buffer_fuzzy_find, { desc = "Find string in current buffer.", }) map("n", "i", telebuilt.help_tags, { desc = "find help tags.", }) -- find over specific directories map("n", "tc", function() require("telescope.builtin").find_files { cwd = vim.fn.stdpath("config") } end, { desc = "find config files" }) map("n", "tp", function() require("telescope.builtin").find_files { cwd = vim.fs.joinpath(vim.fn.stdpath("data"), "site/pack/deps/opt") } end, { desc = "find files in plugin directory" }) -- enable previewing in the default colorscheme switcher telebuilt.colorscheme = function() require("telescope.builtin.__internal").colorscheme { enable_preview = true } end end }