NeoVimConfiguration/lua/core/plugin_config/whichkey.lua

91 lines
5.4 KiB
Lua

local whichkey = require("which-key")
local keymap = {
{ "<leader>T", group = "todo" },
{ "<leader>TN", function() require("todo-comments").jump_prev() end, desc = "Jump to previous TODO:" },
{ "<leader>TT", "<Cmd>TodoTelescope<CR>", desc = "Search TODO:'s" },
{ "<leader>Tj", "<Cmd>TodoLocList<CR>", desc = "List TODO:'s in buffer" },
{ "<leader>Tn", function() require("todo-comments").jump_next() end, desc = "Jump to next TODO:" },
{ "<leader>d", group = "DAP debug tools" },
{ "<leader>dc", function() require('dap').continue() end, desc = "continue/launch" },
{ "<leader>db", function() require('dap').toggle_breakpoint() end, desc = "toggle breakpoint" },
{ "<leader>di", function() require('dap').step_into() end, desc = "step into" },
{ "<leader>do", function() require('dap').step_over() end, desc = "step over" },
{ "<leader>dO", function() require('dap').step_out() end, desc = "step over" },
{ "<leader>f", group = "find (telescope)" },
{ "<leader>ff", "<cmd>Telescope find_files<CR>", desc = "Find" },
{ "<leader>fg", "<cmd>Telescope live_grep<CR>", desc = "Grep" },
{ "<leader>fh", "<cmd>Telescope help_tags<CR>", desc = "Help Tags" },
{ "<leader>fo", "<cmd>Telescope oldfiles<CR>", desc = "Old Files" },
{ "<leader>g", group = "git" },
{ "<leader>gb", "<Cmd>Telescope git_branches<CR>", desc = "Branches" },
{ "<leader>gg", "<Cmd>Telescope git_commits<CR>", desc = "LazyGit" },
{ "<leader>gl", "<Cmd>LazyGit<CR>", desc = "Commits" },
{ "<leader>gs", "<Cmd>Telescope git_status<CR>", desc = "Status" },
{ "<leader>l", group = "lsp" },
{ "<leader>lD", "<cmd>lua vim.lsp.buf.declaration()<cr>", desc = "Declaration" },
{ "<leader>lN", "<cmd>lua vim.diagnostic.goto_prev()<cr>", desc = "Previous Diagnostic" },
{ "<leader>lR", "<cmd>lua vim.lsp.buf.rename()<cr>", desc = "Rename" },
{ "<leader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", desc = "Code Action" },
{ "<leader>ld", "<cmd>lua vim.lsp.buf.definition()<cr>", desc = "Definition" },
{ "<leader>le", "<cmd>lua vim.diagnostic.open_float()<cr>", desc = "Diagnostic Float" },
{ "<leader>lf", function() vim.lsp.buf.format { async = true } end, desc = "Format" },
{ "<leader>li", "<cmd>lua vim.lsp.buf.implementation()<cr>", desc = "Implementation" },
{ "<leader>lj", "<cmd>lua vim.diagnostic.setloclist()<cr>", desc = "Diagnostic List" },
{ "<leader>lk", "<cmd>lua vim.lsp.buf.hover()<cr>", desc = "Hover" },
{ "<leader>ln", "<cmd>lua vim.diagnostic.goto_next()<cr>", desc = "Next Diagnostic" },
{ "<leader>lr", "<cmd>lua vim.lsp.buf.references()<cr>", desc = "References" },
{ "<leader>lt", "<cmd>lua vim.lsp.buf.type_definition()<cr>", desc = "Type Definition" },
{ "<leader>m", "<Cmd>DarkLightSwitch<CR>", desc = "Toggle dark mode" },
{ "<leader>o", group = "org mode" },
{ "<leader>oI", "<Cmd>e ~/Sync/wiki/org<CR>", desc = "Open Org directory" },
{ "<leader>t", desc = "Toggle Terminal" },
{ "<leader>v", group = "obsidian Vault" },
{ "<leader>vL", "<Cmd>ObsidianLinkNew<CR>", desc = "Link New Note from Current Selection" },
{ "<leader>vT", "<Cmd>ObsidianTemplate<CR>", desc = "Open Template" },
{ "<leader>vb", "<Cmd>ObsidianBacklinks<CR>", desc = "List Backlinks" },
{ "<leader>vd", "<Cmd>ObsidianToday<CR>", desc = "Open Daily Note" },
{ "<leader>vf", "<Cmd>ObsidianFollowLink<CR>", desc = "Follow Link" },
{ "<leader>vi", "<Cmd>e ~/Sync/wiki/index.md<CR>", desc = "Open Index" },
{ "<leader>vl", "<Cmd>ObsidianLink<CR>", desc = "Link Current Selection" },
{ "<leader>vn", "<Cmd>ObsidianNew<CR>", desc = "New Note" },
{ "<leader>vo", "<Cmd>ObsidianOpen<CR>", desc = "Obsidian Open" },
{ "<leader>vp", "<Cmd>ObsidianPasteImg<CR>", desc = "Paste Image" },
{ "<leader>vq", "<Cmd>ObsidianQuickSwitch<CR>", desc = "Quick Switch with fzf" },
{ "<leader>vr", "<Cmd>ObsidianRename<CR>", desc = "Rename Note" },
{ "<leader>vs", "<Cmd>ObsidianSearch<CR>", desc = "Search Notes" },
{ "<leader>vT", "<Cmd>ObsidianTomorrow<CR>", desc = "Open Tomorrows Note" },
{ "<leader>vt", "<Cmd>Telescope obsidian_todo obsidian_todo<CR>", desc = "Search for all TODOs" },
{ "<leader>vw", "<Cmd>ObsidianWorkspace<CR>", desc = "Switch Workspace" },
{ "<leader>vy", "<Cmd>ObsidianYesterday<CR>", desc = "Open Yesterdays Note" },
{ "<leader>w", group = "window" },
{ "<leader>w+", desc = "Increase height" },
{ "<leader>w-", desc = "Decrease height" },
{ "<leader>w<", desc = "Decrease width" },
{ "<leader>w=", desc = "Equally high and wide" },
{ "<leader>w>", desc = "Increase width" },
{ "<leader>wT", desc = "Break out into a new tab" },
{ "<leader>wh", desc = "Go to the left window" },
{ "<leader>wj", desc = "Go to the down window" },
{ "<leader>wk", desc = "Go to the up window" },
{ "<leader>wl", desc = "Go to the right window" },
{ "<leader>wq", desc = "Quit a window" },
{ "<leader>ws", desc = "Split window" },
{ "<leader>wv", desc = "Split window vertically" },
{ "<leader>ww", desc = "Pick Window" },
{ "<leader>wx", desc = "Swap current with next" },
{ "<leader>w|", desc = "Max out the width" },
}
-- Map window keys to leader w
vim.cmd [[nmap <leader>w <C-w>]]
whichkey.setup {
hide_statusline = false,
default_keymap_settings = {
silent = true,
noremap = true,
},
default_mode = 'n',
}
whichkey.add(keymap)