local symbols_prefix = "ss" local symbols_workspace_prefix = "sS" local actions = require("telescope.actions") return { { import = "lazyvim.plugins.extras.editor.telescope" }, { "nvim-telescope/telescope.nvim", -- stylua: ignore keys = { { symbols_prefix .. "a", LazyVim.pick("lsp_document_symbols", { symbols = { "Class", "Function", "Method", "Constructor", "Interface", "Module", "Struct", "Trait", "Field", "Property", "Enum", "Constant" } }), desc = "All", }, { symbols_prefix .. "c", LazyVim.pick("lsp_document_symbols", { symbols = { "Class" } }), desc = "Class" }, { symbols_prefix .. "f", LazyVim.pick("lsp_document_symbols", { symbols = { "Function" } }), desc = "Function" }, { symbols_prefix .. "m", LazyVim.pick("lsp_document_symbols", { symbols = { "Method" } }), desc = "Method" }, { symbols_prefix .. "C", LazyVim.pick("lsp_document_symbols", { symbols = { "Constructor" } }), desc = "Constructor" }, { symbols_prefix .. "e", LazyVim.pick("lsp_document_symbols", { symbols = { "Enum" } }), desc = "Enum" }, { symbols_prefix .. "i", LazyVim.pick("lsp_document_symbols", { symbols = { "Interface" } }), desc = "Interface" }, { symbols_prefix .. "M", LazyVim.pick("lsp_document_symbols", { symbols = { "Module" } }), desc = "Module" }, { symbols_prefix .. "s", LazyVim.pick("lsp_document_symbols", { symbols = { "Struct" } }), desc = "Struct" }, { symbols_prefix .. "t", LazyVim.pick("lsp_document_symbols", { symbols = { "Trait" } }), desc = "Trait" }, { symbols_prefix .. "F", LazyVim.pick("lsp_document_symbols", { symbols = { "Field" } }), desc = "Field" }, { symbols_prefix .. "p", LazyVim.pick("lsp_document_symbols", { symbols = { "Property" } }), desc = "Property" }, { symbols_prefix .. "v", LazyVim.pick("lsp_document_symbols", { symbols = { "Variable", "Parameter" } }), desc = "Variable" }, { symbols_workspace_prefix .. "a", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Class", "Function", "Method", "Constructor", "Interface", "Module", "Struct", "Trait", "Field", "Property", "Enum", "Constant" } }), desc = "All", }, { symbols_workspace_prefix .. "c", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Class" } }), desc = "Class" }, { symbols_workspace_prefix .. "f", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Function" } }), desc = "Function" }, { symbols_workspace_prefix .. "m", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Method" } }), desc = "Method" }, { symbols_workspace_prefix .. "C", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Constructor" } }), desc = "Constructor" }, { symbols_workspace_prefix .. "e", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Enum" } }), desc = "Enum" }, { symbols_workspace_prefix .. "i", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Interface" } }), desc = "Interface" }, { symbols_workspace_prefix .. "M", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Module" } }), desc = "Module" }, { symbols_workspace_prefix .. "s", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Struct" } }), desc = "Struct" }, { symbols_workspace_prefix .. "t", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Trait" } }), desc = "Trait" }, { symbols_workspace_prefix .. "F", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Field" } }), desc = "Field" }, { symbols_workspace_prefix .. "p", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Property" } }), desc = "Property" }, { symbols_workspace_prefix .. "v", LazyVim.pick("lsp_dynamic_workspace_symbols", { symbols = { "Variable", "Parameter" } }), desc = "Variable" }, { "sA", LazyVim.pick("treesitter"), desc = "Treesitter Symbols" }, { "sP", "Telescope builtin", desc = "Pickers (Telescope)" }, { "fh", LazyVim.pick("find_files", { hidden = true }), desc = "Find Files (hidden)" }, { "", LazyVim.pick("find_files", { hidden = true }), desc = "Find Files (hidden)" }, { "gb", "Telescope git_branches", desc = "Branches" }, { "S", "Telescope spell_suggest", desc = "Spelling" }, { "gC", "Telescope git_commits", desc = "Commits" }, { "gs", false }, }, opts = { defaults = { mappings = { i = { [""] = actions.move_selection_previous, [""] = actions.move_selection_next, [""] = actions.close, [""] = require("telescope.actions.layout").toggle_preview, [""] = require("telescope.actions.layout").cycle_layout_next, [""] = require("telescope.actions.layout").cycle_layout_prev, [""] = actions.cycle_history_next, [""] = actions.cycle_history_prev, [""] = require("telescope.actions").select_tab_drop, [""] = require("telescope.actions").results_scrolling_left, [""] = require("telescope.actions").results_scrolling_right, }, }, file_ignore_patterns = { ".gitignore", "node_modules", "build", "dist", "yarn.lock", "*.git/*", "*/tmp/*", }, }, pickers = { find_files = { hidden = false, }, buffers = { layout_config = { height = 0.7, width = 0.7, }, mappings = { i = { [""] = require("telescope.actions").delete_buffer, }, }, }, spell_suggest = { layout_config = { prompt_position = "top", height = 0.3, width = 0.25, }, sorting_strategy = "ascending", }, }, 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 = { spec = { { symbols_prefix, group = "goto symbols", icon = " " }, { symbols_workspace_prefix, group = "goto symbols (Workspace)", icon = " " }, }, }, }, }