local find_git_root = require("core.lib.find_git_root") local M = { "nvim-telescope/telescope.nvim" } M.branch = "0.1.x" M.event = "VimEnter" M.dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope-ui-select.nvim", "nvim-tree/nvim-web-devicons", { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, } -- Custom live_grep function to search in git root local function live_grep_git_root() local git_root = 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