require("which-key").add({ { "b", group = "buffer" }, { "bd", Snacks.bufdelete.delete, name = "delete current" }, { "bo", Snacks.bufdelete.other, name = "delete others" }, { "c", group = "code" }, { "ca", vim.lsp.buf.code_action, name = "code action" }, { "cd", vim.diagnostic.open_float, name = "diagnostic" }, { "cr", vim.lsp.buf.rename, name = "rename" }, { "e", Snacks.explorer.open, name = "explorer" }, { "f", group = "find" }, { "fb", Snacks.picker.buffers, name = "buffers" }, { "ff", Snacks.picker.files, name = "files" }, { "fg", Snacks.picker.grep, name = "grep" }, { "g", group = "git" }, { "gb", group = "blame" }, { "gbf", ":Gitsigns blame", name = "file" }, { "gbh", ":Gitsigns blame_line", name = "hover" }, { "gbl", ":Gitsigns toggle_current_line_blame", name = "virtual text" }, { "gh", group = "hunk" }, { "ghr", ":Gitsigns reset_hunk", name = "reset hunk" }, { "ghp", ":Gitsigns preview_hunk", name = "preview hunk" }, { "s", group = "search" }, { "ss", Snacks.picker.lsp_workspace_symbols, name = "symbols" }, { "sg", Snacks.picker.grep, name = "grep" }, { "sn", Snacks.picker.notifications, name = "notifications" }, { "u", group = "ui" }, { "ut", Snacks.picker.colorschemes, name = "colorschemes" }, { "ul", function() local ll = vim.diagnostic.config().virtual_lines if ll == false then ll = { current_line = true } else ll = false end vim.diagnostic.config({ virtual_lines = ll }) end, name = "toggle lsp lines", }, { "w", group = "window" }, { "wh", "h", name = "left" }, { "wj", "j", name = "down" }, { "wk", "k", name = "right" }, { "wl", "l", name = "up" }, { "wq", ":q", name = "quit" }, { "g", group = "goto" }, { "gd", vim.lsp.buf.definition, name = "definition" }, { "gr", Snacks.picker.lsp_references, nowait = true, name = "references" }, { "H", ":bprev", name = "previous buffer" }, { "L", ":bnext", name = "next buffer" }, { "[h", function() require("gitsigns").nav_hunk("prev") end, name = "Next Hunk", }, { "]h", function() require("gitsigns").nav_hunk("next") end, name = "Next Hunk", }, { "[h", function() require("gitsigns").nav_hunk("prev") end, name = "previous hunk" }, { "]h", function() require("gitsigns").nav_hunk("next") end, name = "next hunk" }, }) Snacks.toggle.diagnostics():map("ud") Snacks.toggle.inlay_hints():map("ui")