---@type LazySpec return { "nvim-telescope/telescope.nvim", event = "VeryLazy", cmd = "Telescope", dependencies = { "nvim-telescope/telescope-ui-select.nvim", { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, }, keys = function() local function grep_string() vim.ui.input({ prompt = "Grep: " }, function(input) require("telescope.builtin").grep_string { search = input } end) end return { { "f", ":Telescope find_files" }, { "b", ":Telescope buffers" }, { "sr", ":Telescope oldfiles" }, { "sg", ":Telescope live_grep" }, { "st", grep_string }, { "sd", ":Telescope diagnostics" }, { "sh", ":Telescope help_tags" }, } end, config = function() local telescope = require "telescope" local actions = require "telescope.actions" telescope.setup { defaults = { prompt_prefix = " ", selection_caret = " ", file_ignore_patterns = { "^\\.git$", "^\\.bin$", "^\\tmp$", "node_modules", "__pycache__", "target", "vendor", }, mappings = { i = { [""] = actions.close, [""] = actions.delete_buffer, }, n = { [""] = actions.delete_buffer, }, }, }, pickers = { find_files = { theme = "ivy" }, live_grep = { theme = "ivy" }, grep_string = { theme = "ivy" }, filetypes = { theme = "ivy" }, buffers = { theme = "ivy" }, oldfiles = { theme = "ivy" }, keymaps = { theme = "ivy" }, help_tags = { theme = "ivy" }, diagnostics = { theme = "ivy" }, git_branches = { theme = "ivy" }, git_commits = { theme = "ivy" }, git_status = { theme = "ivy" }, lsp_definitions = { theme = "ivy" }, lsp_references = { theme = "ivy" }, lsp_implementations = { theme = "ivy" }, lsp_document_symbols = { theme = "ivy", fname_width = 0.1, symbol_width = 0.8, symbol_type_width = 0.1, }, }, extensions = { ["ui-select"] = { require("telescope.themes").get_ivy {} }, }, } telescope.load_extension "projects" telescope.load_extension "ui-select" telescope.load_extension "fzf" end, }