diff --git a/.config/nvim/lua/user/which_key.lua b/.config/nvim/lua/user/which_key.lua index a203430..9c8c70b 100644 --- a/.config/nvim/lua/user/which_key.lua +++ b/.config/nvim/lua/user/which_key.lua @@ -23,45 +23,31 @@ which_key.setup({ g = false, -- bindings for prefixed with g }, }, - -- add operators that will trigger motion and text object completion - -- to enable all native operators, set the preset / operators plugin above - operators = { gc = "Comments" }, - key_labels = { - -- override the label used to display some keys. It doesn't effect WK in any other way. - -- For example: - -- [""] = "SPC", - -- [""] = "RET", - -- [""] = "TAB", - }, - popup_mappings = { + preset = "classic", + keys = { scroll_down = "", -- binding to scroll down inside the popup scroll_up = "", -- binding to scroll up inside the popup }, - window = { - border = "single", -- none, single, double, shadow - position = "bottom", -- bottom, top - margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] + win = { + -- border = "single", -- none, single, double, shadow padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] - winblend = 0, + wo = { + winblend = 0, + } }, layout = { - height = { min = 4, max = 25 }, -- min and max height of the columns - width = { min = 20, max = 50 }, -- min and max width of the columns - spacing = 3, -- spacing between columns - align = "left", -- align columns left, center or right + height = { min = 4, max = 25 }, -- min and max height of the columns + width = { min = 20, max = 50 }, -- min and max width of the columns + spacing = 3, -- spacing between columns + align = "left", -- align columns left, center or right }, - ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label - hidden = { "", "", "", "", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate - show_help = true, -- show help message on the command line when the popup is visible - show_keys = true, -- show the currently pressed key and its label as a message in the command line - triggers = "auto", -- automatically setup triggers - -- triggers = {""} -- or specify a list manually - triggers_blacklist = { - -- list of mode / prefixes that should never be hooked by WhichKey - -- this is mostly relevant for key maps that start with a native binding - -- most people should not need to change this - i = { "j", "k" }, - v = { "j", "k" }, + filter = function(mapping) -- enable this to hide mappings for which you didn't specify a label + return mapping.desc + end, + show_help = true, -- show help message on the command line when the popup is visible + show_keys = true, -- show the currently pressed key and its label as a message in the command line + triggers = { + { "", mode = "nxso" }, }, -- disable the WhichKey popup for certain buf types and file types. -- Disabled by default for Telescope @@ -71,121 +57,56 @@ which_key.setup({ }, }) -which_key.register({ - name = "Hotkeys", - o = { - ":Oil --float ", - "Oil nvim toggle", - }, - e = { - ":Neotree toggle ", - "File tree toggle", - }, - F = { - ":lua vim.lsp.buf.format() ", - "Format file", - }, - f = { - name = "Find", - f = { - "lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))", - "Find file", - }, - w = { - "lua require'telescope.builtin'.live_grep()", - "Grep file", - }, - b = { - "lua require'telescope.builtin'.buffers()", - "Find buffer", - }, - }, - c = { - name = "Code actions", - a = { - "lua vim.lsp.buf.code_action()", - "Show code actions", - }, - }, - l = { - "lua vim.diagnostic.setloclist()", - "Show diagnostic list", - }, - d = { - name = "DAP", - r = { - "DapContinue", - "DapContinue", - }, - j = { - "DapStepInto", - "StepInto", - }, - l = { - "DapStepOver", - "StepOver", - }, - k = { - "DapStepOut", - "StepOut", - }, - b = { - "DapToggleBreakpoint", - "Toggle breakpoint", - }, - s = { - "DapTerminate", - "Terminate", - }, - }, - t = { - name = "Tabs", - n = { - "tabnew", - "New tab", - }, - q = { - "tabclose", - "Close tab", - }, - }, -}, { prefix = "" }) +which_key.add({ + { "", group = "Hotkeys" }, + { "o", ":Oil --float ", desc = "Oil nvim toggle" }, + { "e", ":Neotree toggle ", desc = "File tree toggle" }, + { "F", ":lua vim.lsp.buf.format() ", desc = "Format file" }, +}) -which_key.register({ - name = "LSP Actions", - D = { - "lua vim.lsp.buf.declaration()", - "Go to declaration", - }, - d = { - "lua vim.lsp.buf.definition()", - "Go to definition", - }, - i = { - "lua vim.lsp.buf.implementation()", - "Show implementations", - }, - rr = { - "lua vim.lsp.buf.rename()", - "Rename", - }, - r = { - "lua vim.lsp.buf.references()", - "Show references", - }, - l = { - "lua vim.diagnostic.open_float({ border = 'rounded' })", - "Show diagnostic at line", - }, -}, { prefix = "g" }) +which_key.add({ + { "f", group = "Find" }, + { "ff", "lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))", desc = "Find file" }, + { "fw", "lua require'telescope.builtin'.live_grep()", desc = "Grep file" }, + { "fb", "lua require'telescope.builtin'.buffers()", desc = "Find buffer" }, +}) -which_key.register({ - [""] = { - "lua vim.lsp.buf.signature_help()", - "Signature help", - }, - ["K"] = { - "lua vim.lsp.buf.hover()", - "Signature help", - }, -}, {}) +which_key.add({ + { "c", group = "Code actions" }, + { "ca", "lua vim.lsp.buf.code_action()", desc = "Show code actions" }, +}) + +which_key.add({ + { "l", "lua vim.diagnostic.setloclist()", desc = "Show diagnostic list" }, +}) + +which_key.add({ + { "d", group = "Dap" }, + { "dr", "DapContinue", desc = "Continue" }, + { "dj", "DapStepInto", desc = "Step into" }, + { "dl", "DapStepOver", desc = "Step over" }, + { "dk", "DapStepOut", desc = "Step out" }, + { "db", "DapToggleBreakpoint", desc = "Toggle breakpoint" }, + { "ds", "DapTerminate", desc = "Terminate" }, +}) + +which_key.add({ + { "t", group = "Tabs" }, + { "tn", "lua vim.lsp.buf.declaration()", desc = "New tab" }, + { "tq", "lua vim.lsp.buf.definition()", desc = "Close tab" }, +}) + +which_key.add({ + { "g", group = "LSP Actions" }, + { "gD", "lua vim.lsp.buf.declaration()", desc = "Go to declaration" }, + { "gd", "lua vim.lsp.buf.definition()", desc = "Go to definition" }, + { "gi", "lua vim.lsp.buf.implementation()", desc = "Show implementations" }, + { "grr", "lua vim.lsp.buf.rename()", desc = "Rename" }, + { "gr", "lua vim.lsp.buf.references()", desc = "Show references" }, + { "gl", "lua vim.diagnostic.open_float({ border = 'rounded' })", desc = "Show diagnostic at line" }, +}) + +which_key.add({ + { "", "lua vim.lsp.buf.signature_help()", desc = "Signature help" }, + { "K", "lua vim.lsp.buf.hover()", desc = "Signature help" }, +})