local Util = require("lazyvim.util") local actions = require("telescope.actions") return { { "nvim-telescope/telescope.nvim", dependencies = { { "nvim-telescope/telescope-fzf-native.nvim", build = "make", enabled = vim.fn.executable("make") == 1, config = function() Util.on_load("telescope.nvim", function() require("telescope").load_extension("fzf") end) end, }, }, -- stylua: ignore keys = { { "ssa", Util.telescope("lsp_document_symbols", { symbols = { "Class", "Function", "Method", "Constructor", "Interface", "Module", "Struct", "Trait", "Field", "Property", "Enum", "Constant" } }), desc = "All", }, { "ssc", Util.telescope("lsp_document_symbols", { symbols = { "Class" } }), desc = "Class" }, { "ssf", Util.telescope("lsp_document_symbols", { symbols = { "Function" } }), desc = "Function" }, { "ssm", Util.telescope("lsp_document_symbols", { symbols = { "Method" } }), desc = "Method" }, { "ssC", Util.telescope("lsp_document_symbols", { symbols = { "Constructor" } }), desc = "Constructor" }, { "sse", Util.telescope("lsp_document_symbols", { symbols = { "Enum" } }), desc = "Enum" }, { "ssi", Util.telescope("lsp_document_symbols", { symbols = { "Interface" } }), desc = "Interface" }, { "ssM", Util.telescope("lsp_document_symbols", { symbols = { "Module" } }), desc = "Module" }, { "sss", Util.telescope("lsp_document_symbols", { symbols = { "Struct" } }), desc = "Struct" }, { "sst", Util.telescope("lsp_document_symbols", { symbols = { "Trait" } }), desc = "Trait" }, { "ssF", Util.telescope("lsp_document_symbols", { symbols = { "Field" } }), desc = "Field" }, { "ssp", Util.telescope("lsp_document_symbols", { symbols = { "Property" } }), desc = "Property" }, { "ssv", Util.telescope("lsp_document_symbols", { symbols = { "Variable", "Parameter" } }), desc = "Variable" }, { "sSa", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Class", "Function", "Method", "Constructor", "Interface", "Module", "Struct", "Trait", "Field", "Property", "Enum", "Constant" } }), desc = "All", }, { "sSc", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Class" } }), desc = "Class" }, { "sSf", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Function" } }), desc = "Function" }, { "sSm", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Method" } }), desc = "Method" }, { "sSC", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Constructor" } }), desc = "Constructor" }, { "sSe", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Enum" } }), desc = "Enum" }, { "sSi", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Interface" } }), desc = "Interface" }, { "sSM", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Module" } }), desc = "Module" }, { "sSs", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Struct" } }), desc = "Struct" }, { "sSt", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Trait" } }), desc = "Trait" }, { "sSF", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Field" } }), desc = "Field" }, { "sSp", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Property" } }), desc = "Property" }, { "sSv", Util.telescope("lsp_dynamic_workspace_symbols", { symbols = { "Variable", "Parameter" } }), desc = "Variable" }, { "sA", Util.telescope("treesitter"), desc = "Treesitter Symbols" }, }, opts = { defaults = { mappings = { i = { [""] = actions.move_selection_previous, [""] = actions.delete_buffer, [""] = actions.move_selection_next, [""] = actions.close, [""] = require("telescope.actions.layout").toggle_preview, }, }, file_ignore_patterns = { ".gitignore", "node_modules", "build", "dist", "yarn.lock", "*.git/*", "*/tmp/*", }, pickers = { find_files = { hidden = true, }, }, extensions = { fzf = { fuzzy = true, override_generic_sorter = true, override_file_sorter = true, case_mode = "smart_case", }, ["ui-select"] = { require("telescope.themes").get_dropdown({}), }, }, }, }, }, { "folke/which-key.nvim", opts = { defaults = { ["sS"] = { name = "+Goto Symbols (Workspace)" }, ["ss"] = { name = "+Goto Symbols" }, }, }, }, }