local utils = require("dnsc.utils") return { "folke/which-key.nvim", event = "VeryLazy", config = function() local wk = require("which-key") ---@class wk.Opts local opts = { icons = { mappings = false }, win = { border = "rounded" }, } wk.setup(opts) wk.add({ { "o", group = "+open", mode = "n" }, { "ot", ":e ~/notes/todo.txt", desc = "Open tasks", mode = "n" }, { "od", ":80 vsplit | :VimwikiMakeDiaryNote", desc = "Open daily note", mode = "n" }, { "b", group = "+buffer", mode = "n" }, { "b,", "BufferMovePrevious", desc = "Move buffer backwards", mode = "n" }, { "b.", "BufferMoveNext", desc = "Move buffer forward", mode = "n", }, { "bD", "BufferCloseAllButCurrent", desc = "Delete all buffers but current", mode = "n", }, { "bd", "BufferClose", desc = "Delete current buffer", mode = "n", }, { "bh", "BufferPrevious", desc = "Go to previous buffer", mode = "n", }, { "bl", "BufferNext", desc = "Go to next buffer", mode = "n", }, { "bp", "BufferPick", desc = "Pick a buffer", mode = "n" }, { "bx", "BufferCloseAllButPinned", desc = "Delete all buffers", mode = "n", }, { "c", group = "+code", mode = "n" }, { "cr", function() utils.compile_project() end, desc = "Compile project", mode = "n", }, { "f", group = "+file", mode = "n" }, { "fn", "enew", desc = "Create a new file", mode = "n", }, { "fs", "w", desc = "Save currently opened file", mode = "n", }, { "qq", "qa!", desc = "Leave neovim", mode = "n" }, { "s", group = "+search", mode = "n" }, { "g", group = "+git", mode = "n" }, { "t", group = "+diagnostics", mode = "n" }, { "ta", "TodoQuickFix", desc = "Show all todo comments", mode = "n" }, { "w", group = "+window", mode = "n" }, { "w+", ":vertical resize +4", desc = "Increase window size", mode = "n", }, { "w-", ":vertical resize -4", desc = "Decrease window size", mode = "n", }, { "wx", "q", desc = "Close active window", mode = "n", }, { "wx", ":bd", desc = "Kill active window and buffer", mode = "n", }, { "wh", "h", desc = "Move to window on left", mode = "n", }, { "wj", "j", desc = "Move to window on bottom", mode = "n", }, { "wk", "k", desc = "Move to window on top", mode = "n", }, { "wl", "l", desc = "Move to window on right", mode = "n", }, { "ws", "sp", desc = "Split windows horizontally", mode = "n", }, { "wv", "vsp", desc = "Split windows vertically", mode = "n", }, { "wd", "bd", desc = "Delete buffer and window", mode = "n", }, { "x", group = "+config", mode = "n" }, { "xn", "set number relativenumber", desc = "Show relative numbers", mode = "n", }, { "xr", "source $MYVIMRC", desc = "Reload config", mode = "n" }, }) end, }