-- https://github.com/nvim-telescope/telescope.nvim local window = require("symbols.window") --- @module "lazy" --- @type LazySpec return { "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope-ui-select.nvim", { "nvim-telescope/telescope-fzf-native.nvim", build = "make", cond = function() return vim.fn.executable("make") == 1 end, }, }, opts = { pickers = { find_files = { hidden = true, }, }, defaults = { file_ignore_patterns = { ".git/", }, mappings = { n = { [""] = "move_selection_worse", [""] = "move_selection_better", }, i = { [""] = "move_selection_worse", [""] = "move_selection_better", }, }, borderchars = window.borderchars, }, extensions = { ["ui-select"] = { require("telescope.themes").get_dropdown(), }, }, }, init = function() require("telescope").load_extension("fzf") require("telescope").load_extension("ui-select") vim.keymap.set("n", ".", require("telescope.builtin").oldfiles, { desc = "Find recently opened files" }) vim.keymap.set("n", "sb", require("telescope.builtin").buffers, { desc = "Buffers" }) vim.keymap.set("n", "/", function() require("telescope.builtin").current_buffer_fuzzy_find({ -- Show matches in the order they appear in the document sorting_strategy = "ascending", }) end, { desc = "Fuzzily search in current buffer" }) vim.keymap.set("n", "s/", function() require("telescope.builtin").live_grep({ grep_open_files = true, prompt_title = "Live Grep in Open Files", }) end, { desc = "Grep in open files" }) vim.keymap.set("n", "", require("telescope.builtin").find_files, { desc = "Find files" }) vim.keymap.set("n", "sh", require("telescope.builtin").help_tags, { desc = "Help" }) vim.keymap.set("n", "sw", function() require("telescope.builtin").grep_string({ -- Show matches in the order they appear in the document sorting_strategy = "ascending", }) end, { desc = "Current word" }) vim.keymap.set("n", "sg", require("telescope.builtin").live_grep, { desc = "Grep" }) vim.keymap.set("n", "sd", require("telescope.builtin").diagnostics, { desc = "Diagnostics" }) vim.keymap.set("n", "sr", require("telescope.builtin").resume, { desc = "Resume" }) vim.keymap.set("n", "sk", require("telescope.builtin").keymaps, { desc = "Keymaps" }) vim.keymap.set("n", "sn", function() require("telescope.builtin").find_files({ cwd = vim.fn.stdpath("config") }) end, { desc = "Neovim files" }) -- HACK: Workaround until new borders are fixed in telescope vim.api.nvim_create_autocmd("User", { pattern = "TelescopeFindPre", callback = function() vim.opt_local.winborder = "none" vim.api.nvim_create_autocmd("WinLeave", { once = true, callback = function() vim.opt_local.winborder = window.border end, }) end, }) end, }