{ globals.mapleader = " "; plugins.which-key = { enable = true; settings = { spec = [ { __unkeyed-1 = "g"; group = "Git"; } { __unkeyed-1 = ""; group = "Tabs"; } { __unkeyed-1 = "f"; group = "File / Find"; } { __unkeyed-1 = "q"; group = "Quit / Session"; } { __unkeyed-1 = "s"; group = "Search"; } { __unkeyed-1 = "b"; group = "Buffer"; } { __unkeyed-1 = "o"; group = "SOPS"; icon = ""; } { __unkeyed-1 = "d"; group = "Debug"; icon = ""; } { __unkeyed-1 = "c"; group = "Code Actions"; icon = ""; } { __unkeyed-1 = "d/"; group = "Search"; icon = ""; } { __unkeyed-1 = "D"; group = "Database"; icon = ""; } ]; }; }; keymaps = [ # Normal mode { mode = "i"; key = "jk"; action = "noh"; options = { desc = "Normal mode and clear highlight"; }; } { mode = "i"; key = ""; action = "noh"; options = { desc = "Normal mode and clear highlight"; }; } { mode = "n"; key = ""; action = "noh"; options = { desc = "Normal mode and clear highlight"; }; } # Add undo breakpoints { mode = "i"; key = ","; action = ",u"; options = { desc = "Undo breakpoint"; }; } { mode = "i"; key = "."; action = ".u"; options = { desc = "Undo breakpoint"; }; } { mode = "i"; key = ";"; action = ";u"; options = { desc = "Undo breakpoint"; }; } { mode = "n"; key = "e"; action = "Neotree toggle"; options = { desc = "Toggle tree view"; }; } # Database { mode = "n"; key = "Du"; action = "DBUI"; options = { desc = "Show Database UI"; }; } # LSP Actions { mode = "n"; key = "gd"; action = "FzfLua lsp_definitions jump_to_single_result=true ignore_current_line=true"; options = { desc = "Goto Definition"; }; } { mode = "n"; key = "gr"; action = "FzfLua lsp_references jump_to_single_result=true ignore_current_line=true"; options = { desc = "References"; }; } { mode = "n"; key = "gI"; action = "FzfLua lsp_implementations jump_to_single_result=true ignore_current_line=true"; options = { desc = "Goto Implementation"; }; } { mode = "n"; key = "gy"; action = "FzfLua lsp_typedefs jump_to_single_result=true ignore_current_line=true"; options = { desc = "Goto T[y]pe Definition"; }; } { mode = "n"; key = "cd"; action = "lua vim.diagnostic.open_float()"; options = { desc = "Popup Diagnostics"; }; } { mode = "n"; key = "cD"; action = "Trouble diagnostics toggle"; options = { desc = "List All Diagnostics"; }; } # SOPS { mode = "n"; key = "od"; action = "!sops -d -i %"; options = { desc = "Decrypt SOPS File"; }; } { mode = "n"; key = "oe"; action = "!sops -e -i %"; options = { desc = "Encrypt SOPS File"; }; } # Git { mode = "n"; key = "gg"; action = "LazyGit"; options = { desc = "LazyGit"; }; } # Windows { key = ""; action = "wincmd h"; options = { desc = "Navigate Window Left"; }; } { key = ""; action = "wincmd j"; options = { desc = "Navigate Window Down"; }; } { key = ""; action = "wincmd k"; options = { desc = "Navigate Window Up"; }; } { key = ""; action = "wincmd l"; options = { desc = "Navigate Window Right"; }; } { mode = "n"; key = "w"; action = ""; options = { desc = "Windows"; }; } { mode = "n"; key = "-"; action = "s"; options = { desc = "Split Window Below"; }; } { mode = "n"; key = "|"; action = "v"; options = { desc = "Split Window Right"; }; } { mode = "n"; key = "wd"; action = "c"; options = { desc = "Delete Window"; }; } # Tabs { mode = "n"; key = "l"; action = "tablast"; options = { desc = "Last Tab"; }; } { mode = "n"; key = "o"; action = "tabonly"; options = { desc = "Close Other Tabs"; }; } { mode = "n"; key = "f"; action = "tabfirst"; options = { desc = "First Tab"; }; } { mode = "n"; key = ""; action = "tabnew"; options = { desc = "New Tab"; }; } { mode = "n"; key = "]"; action = "tabnext"; options = { desc = "Next Tab"; }; } { mode = "n"; key = "d"; action = "tabclose"; options = { desc = "Close Tab"; }; } { mode = "n"; key = "["; action = "tabprevious"; options = { desc = "Previous Tab"; }; } # Buffer { mode = "n"; key = ""; action = "bprevious"; options = { desc = "Previous Buffer"; }; } { mode = "n"; key = ""; action = "bnext"; options = { desc = "Next Buffer"; }; } { mode = "n"; key = "bb"; action = "e #"; options = { desc = "Switch To Other Buffer"; }; } { mode = "n"; key = "bd"; action = "bd"; options = { desc = "Delete Buffer and Window"; }; } { mode = "n"; key = "bp"; action = "BufferLineTogglePin"; options = { desc = "Toggle Pin"; }; } { mode = "n"; key = "bP"; action = "BufferLineGroupClose ungrouped"; options = { desc = "Delete Non-Pinned Buffers"; }; } { mode = "n"; key = "bo"; action = "BufferLineCloseOthers"; options = { desc = "Delete Other Buffers"; }; } { mode = "n"; key = "br"; action = "BufferLineCloseRight"; options = { desc = "Delete Buffers to the Right"; }; } { mode = "n"; key = "bl"; action = "BufferLineCloseLeft"; options = { desc = "Delete Buffers to the Left"; }; } # DAP Telescope Actions { mode = "n"; key = "d/c"; action = "Telescope dap commands"; options = { desc = "Search Commands"; }; } { mode = "n"; key = "d/b"; action = "Telescope dap list_breakpoints"; options = { desc = "Search Breakpoints"; }; } { mode = "n"; key = "d/v"; action = "Telescope dap variables"; options = { desc = "Search Variables"; }; } { mode = "n"; key = "d/f"; action = "Telescope dap frames"; options = { desc = "Search Frames"; }; } ]; }