return { groups = { { "s", group = "[S]earch" }, { "c", group = "[C]ode" }, { "d", group = "[D]iagnostics" }, { "g", group = "[G]enerate" }, { "r", group = "[R]ename" }, { "w", group = "[W]orkspace" }, { "t", group = "[T]ree" }, { "o", group = "[O]verseer" }, { "h", group = "[H]arpoon" }, { "|", group = "[|] Copilot" }, }, copilot = { { "||", "Copilot toggle", desc = "[||] Toggle Copilot", mode = "n" }, { "|t", "Copilot suggestion toggle_auto_trigger", desc = "[|] [T]oggle inline suggestions", mode = "n", }, { "|p", "Copilot panel", desc = "[|] [P]anel", mode = "n" }, }, harpoon = { { "ha", function() require("harpoon"):list():add() end, desc = "[H]arpoon [A]dd file", mode = "n", }, { "hq", function() local harpoon = require("harpoon") harpoon.ui:toggle_quick_menu(harpoon:list()) end, desc = "[H]arpoon [Q]uick menu", mode = "n", }, { "", function() require("harpoon"):list():select(1) end, desc = "Harpoon file 1", mode = "n", }, { "", function() require("harpoon"):list():select(2) end, desc = "Harpoon file 2", mode = "n", }, { "", function() require("harpoon"):list():select(3) end, desc = "Harpoon file 3", mode = "n", }, { "", function() require("harpoon"):list():select(4) end, desc = "Harpoon file 4", mode = "n", }, }, lazygit = { { "l", "LazyGit", desc = "[L]azyGit", mode = "n" }, }, neogen = { { "gd", ":lua require('neogen').generate()", desc = "[G]enerate [D]ocumentation", mode = "n", }, }, neotree = { { "tt", function() vim.api.nvim_command("Neotree toggle") end, desc = "[T]ree [T]oggle", mode = "n", }, { "ts", function() vim.api.nvim_command("Neotree show") end, desc = "[T]ree [S]how", mode = "n", }, { "tc", function() vim.api.nvim_command("Neotree close") end, desc = "[T]ree [C]lose", mode = "n", }, { "tf", function() vim.api.nvim_command("Neotree focus") end, desc = "[T]ree [F]ocus", mode = "n", }, { "tg", function() vim.api.nvim_command("Neotree git_status") end, desc = "[T]ree [G]it Status", mode = "n", }, { "tb", function() vim.api.nvim_command("Neotree buffers") end, desc = "[T]ree [B]uffers", mode = "n", }, }, oil = { { "te", vim.cmd.Oil, desc = "[T]ree [E]dit", mode = "n" }, }, overseer = { { "ob", vim.cmd.OverseerBuild, desc = "[O]verseer [B]uild", mode = "n" }, { "oc", vim.cmd.OverseerRunCmd, desc = "[O]verseer Run [C]ommand", mode = "n" }, { "or", vim.cmd.OverseerRun, desc = "[O]verseer [R]un", mode = "n" }, { "ot", vim.cmd.OverseerToggle, desc = "[O]verseer [T]oggle", mode = "n" }, }, precognition = { { "p", function() if require("precognition").toggle() then vim.notify("Precognition ON") else vim.notify("Precognition OFF") end end, desc = "[P]recognition", mode = "n", }, }, telescope = function(telescope_builtin) return { { "sh", telescope_builtin.help_tags, desc = "[S]earch [H]elp", mode = "n", }, { "sk", telescope_builtin.keymaps, desc = "[S]earch [K]eymaps", mode = "n", }, { "sf", telescope_builtin.find_files, desc = "[S]earch [F]iles", mode = "n", }, { "sb", telescope_builtin.find_files, desc = "[S]earch file [B]rowser", mode = "n", }, { "ss", telescope_builtin.builtin, desc = "[S]earch [S]elect Telescope", mode = "n", }, { "sw", telescope_builtin.grep_string, desc = "[S]earch current [W]ord", mode = "n", }, { "sg", telescope_builtin.live_grep, desc = "[S]earch by [G]rep", mode = "n", }, { "sd", telescope_builtin.diagnostics, desc = "[S]earch [D]iagnostics", mode = "n", }, { "sr", telescope_builtin.resume, desc = "[S]earch [R]esume", mode = "n", }, { "s.", telescope_builtin.oldfiles, desc = '[S]earch Recent Files ("." for repeat)', mode = "n", }, { "", telescope_builtin.buffers, desc = "[ ] Find existing buffers", mode = "n", }, -- Slightly advanced example of overriding default behavior and theme { "/", function() -- You can pass additional configuration to telescope to change theme, layout, etc. telescope_builtin.current_buffer_fuzzy_find( require("telescope.themes").get_dropdown({ winblend = 10, previewer = false, }) ) end, desc = "[/] Fuzzily search in current buffer", mode = "n", }, -- Also possible to pass additional configuration options. -- See `:help telescope.builtin.live_grep()` for information about particular keys { "s/", function() telescope_builtin.live_grep({ grep_open_files = true, prompt_title = "Live Grep in Open Files", }) end, desc = "[S]earch [/] in Open Files", mode = "n", }, -- Shortcut for searching your neovim configuration files { "sn", function() telescope_builtin.find_files({ cwd = vim.fn.stdpath("config") }) end, desc = "[S]earch [N]eovim files", mode = "n", }, } end, }