{ 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";}; } ]; }