let keyList = [ { key = ""; action = "picker.files()"; desc = "Smart Find Files"; } { key = "/"; action = "picker.grep()"; desc = "Live Grep"; } { key = "ss"; action = "picker.lsp_symbols()"; desc = "Find symbols"; } { key = "sS"; action = "picker.lsp_workspace_symbols()"; desc = "Find symbols (Workspace)"; } # Grep { key = "sb"; action = "picker.lines()"; desc = "Buffer Lines"; } { key = "sB"; action = "picker.grep_buffers()"; desc = "Grep Open Buffers"; } { key = "sw"; action = "picker.grep_word()"; desc = "Visual selection or word"; mode = [ "n" "x" ]; } { key = ''s"''; action = "picker.registers()"; desc = "Registers"; } { key = "sd"; action = "picker.diagnostics()"; desc = "Diagnostics"; } { key = "sD"; action = "picker.diagnostics_buffer()"; desc = "Buffer Diagnostics"; } { key = "gd"; action = "picker.lsp_definitions()"; desc = "Goto Definition"; } { key = "gD"; action = "picker.lsp_declarations()"; desc = "Goto Declaration"; } { key = "gr"; action = "picker.lsp_references()"; desc = "References"; } { key = "gI"; action = "picker.lsp_implementations()"; desc = "Goto Implementation"; } { key = "gy"; action = "picker.lsp_type_definitions()"; desc = "Goto T[y]pe Definition"; } { key = "st"; action = "picker.todo_comments()"; desc = "Todo"; } { key = "sT"; action = ''picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } })''; desc = "Todo/Fix/Fixme"; } # === Git === # { key = "gd"; action = "picker.git_diff()"; desc = "Git Diff"; } { key = "gl"; action = "picker.git_log()"; desc = "Git Log"; } { key = "gs"; action = "picker.git_stash()"; desc = "Git Stash"; } ]; mkLuaKeyMap = { key, action, desc ? "", mode ? [ "n" ], }: { inherit key desc mode; action = "function() Snacks.${action} end"; lua = true; nowait = true; unique = true; }; in map (x: mkLuaKeyMap x) keyList