local telescope = require("telescope") local actions = require("telescope.actions") local themes = require("telescope.themes") local config = require("telescope.config") local builtin = require("telescope.builtin") local state = require("telescope.state") -- Clone the default Telescope configuration local vimgrep_arguments = { unpack(config.values.vimgrep_arguments) } table.insert(vimgrep_arguments, "--hidden") -- search hidden table.insert(vimgrep_arguments, "--glob") -- ignore git table.insert(vimgrep_arguments, "!**/.git/*") telescope.setup { -- Workaround -- https://github.com/nvim-telescope/telescope.nvim/issues/938#issuecomment-877539724 defaults = themes.get_ivy { vimgrep_arguments = vimgrep_arguments, mappings = { n = { -- Make it harder to accidently quit [""] = actions.close, [""] = actions.nop, [""] = actions.to_fuzzy_refine, [""] = actions.cycle_history_prev, [""] = actions.cycle_history_next, [""] = actions.nop, [""] = actions.select_horizontal, }, i = { [""] = actions.cycle_history_prev, [""] = actions.cycle_history_next, [""] = actions.nop, [""] = actions.select_horizontal, }, }, layout_config = { height = 0.5 }, borderchars = { "", "", "", "│", "", "", "", "" }, }, pickers = { find_files = { find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/*" }, }, lsp_references = { layout_config = { height = 0.7 }, initial_mode = "normal", }, live_grep = { layout_config = { height = 0.7 }, }, resume = { initial_mode = "normal", }, }, } -- Enable telescope fzf native, if installed pcall(require("telescope").load_extension, "fzf") local function find_undercursor_in_buffer() builtin["current_buffer_fuzzy_find"] { layout_config = { height = 0.8 }, -- Already have word, no need to think default_text = vim.fn.expand(""), initial_mode = "normal", } end local function grep_undercursor() builtin["live_grep"] { layout_config = { height = 0.8 }, -- Already have word, no need to think default_text = vim.fn.expand(""), initial_mode = "normal", } end vim.keymap.set("n", "/", builtin["current_buffer_fuzzy_find"]) vim.keymap.set("n", "w", find_undercursor_in_buffer) vim.keymap.set("n", "W", grep_undercursor) vim.keymap.set("n", "sf", builtin["find_files"]) vim.keymap.set("n", "sg", builtin["live_grep"]) vim.keymap.set("n", "sd", builtin["diagnostics"]) vim.keymap.set("n", "sb", builtin["buffers"]) vim.keymap.set("n", "sh", builtin["help_tags"]) vim.keymap.set("n", "sp", builtin["spell_suggest"]) vim.keymap.set("n", "sr", builtin["resume"]) -- for GHC -- grep -> refine for `.hs:` files