Files
keycodex/lua/plugins/whichkey.lua
T
2024-08-22 07:38:23 +05:45

171 lines
7.3 KiB
Lua

local icons = require("lib.icons")
return {
"folke/which-key.nvim",
event = "UIEnter",
opts = {
preset = "helix",
icons = {
breadcrumb = icons.ui.ArrowOpen,
separator = icons.ui.Arrow,
group = "",
keys = {
Space = icons.ui.Rocket,
},
rules = false, -- enable auto icon rules
},
triggers = {
{ "<auto>", mode = "nixsotc" },
{ "<leader>", mode = { "n", "v" } },
},
spec = {
mode = { "n", "v" },
{ "[", group = " Previous" },
{ "]", group = " Next" },
{ "<leader>b", group = " Debug" },
{ "<leader>c", group = " Code" },
{ "<leader>C", group = " Comment" },
{ "<leader>d", group = " Database" },
{ "<leader>e", group = " Edit" },
{ "<leader>f", group = " Find" },
{ "<leader>i", group = " Insert" },
{ "<leader>j", group = " Jump" },
{ "<leader>k", group = " Keys" },
{ "<leader>l", group = " LSP" },
{ "<leader>m", group = "󰠠 Misc" },
{ "<leader>n", group = " Notes" },
{ "<leader>q", group = " Quit" },
{ "<leader>r", group = " Run" },
{ "<leader>s", group = " Split" },
{ "<leader>t", group = " Terminal" },
{ "<leader>u", group = " Test" },
{ "<leader>v", group = " Select" },
{ "<leader>w", group = " Writing" },
{ "<leader>x", group = "󰁨 Diagnostics/Quickfix" },
{ "<leader>y", group = " Yank" },
},
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = " Buffer Local Keymaps (which-key)",
},
-- other keymaps
{ "<leader>cR", "<cmd>ReloadConfig<cr>", desc = "Reload Configs" },
{ "<leader>cd", "<cmd>RootDir<cr>", desc = "Root Directory" },
{ "<leader>cc", "<cmd>:g/^\\s*$/d<cr>", desc = "Clean Empty Lines" },
{ "<leader>co", "<cmd>Dashboard<cr>", desc = "Dashboard" },
{ "<leader>cr", "<cmd>Telescope reloader<cr>", desc = "Reload Module" },
--edit
{ "<leader>ea", "<cmd>b#<cr>", desc = "Alternate File" },
{ "<leader>ec", "<cmd>e $MYVIMRC<cr>", desc = "Config" },
{
"<leader>ed",
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>',
desc = "Config Dir",
},
{ "<leader>em", "<cmd>e README.md<cr>", desc = "Readme" },
{ "<leader>en", "<cmd>enew<cr>", desc = "New File" },
-- split
{ "<leader>s+", "<cmd>resize +10<cr>", desc = "Increase window height" },
{ "<leader>s-", "<cmd>vertical resize -20<cr>", desc = "Decrease window width" },
{ "<leader>s/", "<C-w>s", desc = "Split Below" },
{ "<leader>s=", "<cmd>vertical resize +20<cr>", desc = "Increase window width" },
{ "<leader>sH", "<cmd>vertical resize -10<cr>", desc = "Decrease window width" },
{ "<leader>sJ", "<cmd>resize -5<cr>", desc = "Decrease window height" },
{ "<leader>sK", "<cmd>resize +5<cr>", desc = "Increase window height" },
{ "<leader>sL", "<cmd>vertical resize +10<cr>", desc = "Increase window width" },
{ "<leader>s\\", "<C-w>v", desc = "Split Right" },
{ "<leader>s_", "<cmd>resize -10<cr>", desc = "Decrease window height" },
{ "<leader>s`", "<C-w>p", desc = "Previous Window" },
{ "<leader>sa", "<cmd>split<cr>", desc = "Horizontal Split" },
{ "<leader>sc", "<cmd>tabclose<cr>", desc = "Close Tab" },
{ "<leader>sf", "<cmd>tabfirst<cr>", desc = "First Tab" },
{ "<leader>sh", "<C-w>h", desc = "Move Left" },
{ "<leader>sj", "<C-w>j", desc = "Move Down" },
{ "<leader>sk", "<C-w>k", desc = "Move Up" },
{ "<leader>sl", "<C-w>l", desc = "Move Right" },
{ "<leader>sp", "<cmd>NavigatorPrevious<cr>", desc = "Previous Pane" },
{ "<leader>sq", "<C-w>c", desc = "Close Split" },
{ "<leader>ss", "<cmd>vsplit<cr>", desc = "Vertical Split" },
-- select
{ "<leader>vB", "vab", desc = "Around Bracket" },
{ "<leader>vP", "vap", desc = "Around Para" },
{ "<leader>vQ", "vaq", desc = "Around Quote" },
{ "<leader>vb", "vib", desc = "Bracket" },
{ "<leader>vp", "vip", desc = "Paragraph" },
{ "<leader>vq", "viq", desc = "Quote" },
-- writing
{ "<leader>wc", "<cmd>set spell!<cr>", desc = "Spellcheck" },
{ "<leader>wf", "<cmd>lua require'utils'.sudo_write()<cr>", desc = "Force Write" },
{ "<leader>wj", "]s", desc = "Next Misspell" },
{ "<leader>wk", "[s", desc = "Prev Misspell" },
{ "<leader>wq", "<cmd>wq<cr>", desc = "Write and Quit" },
{ "<leader>ws", "<cmd>Telescope spell_suggest<cr>", desc = "Suggestions" },
{ "<leader>ww", "<cmd>w<cr>", desc = "Write and Quit" },
{ "<leader>x", "<cmd>x<cr>", desc = " Save and Quit" },
--quit
{ "<leader>qa", "<cmd>qall<cr>", desc = "Quit All" },
{ "<leader>qc", "<cmd>bw<cr>", desc = "Close Buffer" },
{ "<leader>qd", "<cmd>bdelete<cr>", desc = "Delete Buffer" },
{ "<leader>qf", "<cmd>qall!<cr>", desc = "Force Quit" },
{ "<leader>qo", ":%bdelete|b#|bdelete#<cr>", desc = "Close Others" },
{ "<leader>qq", "<cmd>q<cr>", desc = "Quit" },
{ "<leader>qs", "<C-w>c", desc = "Close Split" },
{ "<leader>qw", "<cmd>wq<cr>", desc = "Write and Quit" },
-- insert
{ "<leader>iP", "<cmd>put %:p<cr>", desc = "Absolute Path" },
{ "<leader>id", "<cmd>put =strftime('## %a, %d %b, %Y, %r')<cr>", desc = "Date" },
{ "<leader>ie", "<cmd>Telescope symbols<cr>", desc = "Emojis" },
{ "<leader>if", "<cmd>put =expand('%:t')<cr>", desc = "File Name" },
{ "<leader>in", "<cmd>Nerdy<cr>", desc = "Nerd Glyphs" },
{ "<leader>ip", "<cmd>put %<cr>", desc = "Relative Path" },
{ "<leader>ir", "<cmd>Telescope registers<cr>", desc = "Registers" },
{ "<leader>it", "<cmd>put =strftime('## %r')<cr>", desc = "Time" },
-- Visiual Mode
{ "<leader>cS", ":sort!<cr>", mode = "v", desc = "Sort Desc" },
{ "<leader>ci", ":sort i<cr>", mode = "v", desc = "Sort Case Insensitive" },
{ "<leader>cs", ":sort<cr>", mode = "v", desc = "Sort Asc" },
{ "<leader>cu", ":!uniq<cr>", mode = "v", desc = "Unique" },
{ "<leader>la", mode = "v", desc = "<cmd><C-U>Lspsaga range_code_action<CR>" },
-- no leader
{ "[B", "<cmd>bfirst<cr>", desc = "First Buffer" },
{ "[b", "<cmd>bprevious<cr>", desc = "Buffer" },
{ "[d", "<cmd>Lspsaga diagnostic_jump_prev<cr>", desc = "Diagnostic" },
{ "[e", "g;", desc = "Edit" },
{ "[j", "<C-o>", desc = "Jump" },
{ "]", group = " Next" },
{ "]B", "<cmd>blast<cr>", desc = "Buffer" },
{ "]b", "<cmd>bnext<cr>", desc = "Buffer" },
{ "]d", "<cmd>Lspsaga diagnostic_jump_next<cr>", desc = "Diagnostic" },
{ "]e", "g,", desc = "Edit" },
{ "]j", "<C-i>", desc = "Jump" },
{ "<C-Down>", "<cmd>resize -10<cr>", desc = "Decrease window height" },
{ "<C-Left>", "<cmd>vertical resize -10<cr>", desc = "Decrease window width" },
{ "<C-Right>", "<cmd>vertical resize +10<cr>", desc = "Increase window width" },
{ "<C-Up>", "<cmd>resize +10<cr>", desc = "Increase window height" },
{ "<A-e>", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
{ "<A-f>", "<cmd>Telescope file_browser<cr>", desc = "Find browser" },
{ "<C-h>", "<C-w>h", desc = "Move Left" },
{ "<C-j>", "<C-w>j", desc = "Move Down" },
{ "<C-k>", "<C-w>k", desc = "Move Up" },
{ "<C-l>", "<C-w>l", desc = "Move Right" },
{ "<C-\\>", "<C-w>p", desc = "Previous Pane" },
{ "<S-tab>", "<cmd>bprevious<cr>", desc = "Previous Buffer" },
{ "<tab>", "<cmd>bnext<cr>", desc = "Next Buffer" },
{ "K", "<cmd>Lspsaga hover_doc<cr>", desc = "LSP Hover" },
{ "Q", "<cmd>qall!<cr>", desc = "Force Quit!" },
{ "U", "<cmd>redo<cr>", desc = "Redo" },
},
}