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, }, }, 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.move_selection_next, [""] = actions.close, [""] = false, [""] = 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", }, }, }, }, }, { "folke/which-key.nvim", opts = { defaults = { ["sS"] = { name = "+Goto Symbols (Workspace)" }, ["ss"] = { name = "+Goto Symbols" }, }, }, }, }