local function config() local wk = require("which-key") wk.register({ [""] = { -- Finders f = { name = "Finders", f = { "Telescope fd", "Find files" }, w = { "Telescope live_grep", "Text grep" }, s = { "Telescope spell_suggest", "Spell suggest" }, t = { "TodoTelescope", "Todos" }, ["."] = { "Telescope keymaps", "Keymaps" } }, -- Buffers b = { name = "Buffers", p = { "BufferPick", "Pick buffer" }, q = { "BufferMovePrevious", "Move buffer left" }, w = { "BufferMoveNext", "Move buffer right" }, x = { "BufferCloseAllButCurrent", "Close all but current" } }, -- Git g = { name = "Git", b = { "Gitsigns blame_line", "Blame line" }, d = { "Gitsigns diffthis", "Diff" }, D = { "DiffviewOpen", "Diff view & merge tool" }, C = { "DiffviewClose", "Close diffview & merge tool" } }, -- LSP l = { name = "LSP", f = { "lua vim.lsp.buf.format { async = true }", "Format" }, a = { "lua vim.lsp.buf.code_action()", "Code Action" }, r = { "lua vim.lsp.buf.rename()", "Rename" } }, -- Spectre r = { name = "Spectre", r = { "lua require('spectre').open_file_search({select_word=true})", "Search & Replace" }, R = { "lua require('spectre').toggle()", "Replace All" } }, -- Misc c = { "BufferClose", "Close buffer" }, h = { "noh", "No highlight" }, s = { "SymbolsOutline", "Symbols outline" }, t = { "TroubleToggle", "Toggle trouble" } }, g = { d = { "lua vim.lsp.buf.definition()", "definition" }, t = { "lua vim.lsp.buf.type_definition()", "type definition" } }, -- Neotree [""] = { "Neotree toggle", "Toggle neotree" }, -- Switching Buffers [""] = { "BufferNext", "Next buffer" }, [""] = { "BufferPrevious", "Previous buffer" }, -- Find in file [""] = { "Telescope current_buffer_fuzzy_find", "Find in file" } }) end return { "folke/which-key.nvim", event = "VeryLazy", init = function() local o = vim.o o.timeout = true o.timeoutlen = 300 end, config = config, opts = { ignore_missing = false, key_labels = { [""] = "SPC" } } }