{ config, lib, ... }: let inherit (lib.nixvim) mkRaw; inherit (config.myvim.mkKey) mkKeymap wKeyObj; in { wKeyList = [ (wKeyObj [ "." "" "Scratch Buffer" ]) (wKeyObj [ ":" "" "" true ]) (wKeyObj [ "s" "" "search" ]) (wKeyObj [ "f" "" "file/find" ]) ]; keymaps = [ (mkKeymap "n" ".." ":lua Snacks.scratch()" "Toggle Scratch Buffer") (mkKeymap "n" ".s" ":lua Snacks.scratch.select()" "Select Scratch Buffer") (mkKeymap "n" "sn" ":lua Snacks.notifier.show_history()" "Notification History") (mkKeymap "n" ".r" ":lua Snacks.rename.rename_file()" "Rename file/variable +lsp") (mkKeymap "n" "gB" ":lua Snacks.gitbrowse()" "Git Browse") (mkKeymap "n" "gf" ":lua Snacks.lazygit.log_file()" "Lazygit Current File History") (mkKeymap "n" "gB" ":lua Snacks.gitbrowse()" "Git Browse") (mkKeymap "n" "gf" ":lua Snacks.lazygit.log_file()" "Lazygit Current File History") (mkKeymap "n" "gg" ":lua Snacks.lazygit()" "Lazygit") (mkKeymap "n" "gl" ":lua Snacks.lazygit.log()" "Lazygit Log (cwd)") (mkKeymap "n" "gL" ":lua Snacks.picker.git_log()" "Git Log (cwd)") (mkKeymap "n" "un" ":lua Snacks.notifier.hide()" "Dismiss All Notifications") (mkKeymap "n" "sb" ":lua Snacks.picker.lines() " "Buffer Lines") (mkKeymap "n" "sB" ":lua Snacks.picker.grep_buffers() " "Grep Open Buffers") (mkKeymap "n" "sg" ":lua Snacks.picker.grep() " "Grep") (mkKeymap "n" "sw" ":lua Snacks.picker.grep_word() " "Visual selection or word") (mkKeymap "x" "sw" ":lua Snacks.picker.grep_word() " "Visual selection or word") (mkKeymap "n" ''s"'' ":lua Snacks.picker.registers() " "Registers") (mkKeymap "n" "sa" ":lua Snacks.picker.autocmds() " "Autocmds") (mkKeymap "n" "sb" ":lua Snacks.picker.lines() " "Buffer Lines") (mkKeymap "n" "sc" ":lua Snacks.picker.command_history() " "Command History") (mkKeymap "n" "sC" ":lua Snacks.picker.commands() " "Commands") (mkKeymap "n" "sd" ":lua Snacks.picker.diagnostics() " "Diagnostics") (mkKeymap "n" "sD" ":lua Snacks.picker.diagnostics_buffer() " "Buffer Diagnostics") (mkKeymap "n" "sH" ":lua Snacks.picker.highlights() " "Highlights") (mkKeymap "n" "si" ":lua Snacks.picker.icons() " "Icons") (mkKeymap "n" "sj" ":lua Snacks.picker.jumps() " "Jumps") (mkKeymap "n" "sl" ":lua Snacks.picker.loclist() " "Location List") (mkKeymap "n" "sm" ":lua Snacks.picker.marks() " "Marks") (mkKeymap "n" "sM" ":lua Snacks.picker.man() " "Man Pages") (mkKeymap "n" "sq" ":lua Snacks.picker.qflist() " "Quickfix List") (mkKeymap "n" "sR" ":lua Snacks.picker.resume() " "Resume") (mkKeymap "n" "su" ":lua Snacks.picker.undo() " "Undo History") (mkKeymap "n" "gd" ":lua Snacks.picker.lsp_definitions() " "Goto Definition") (mkKeymap "n" "gD" ":lua Snacks.picker.lsp_declarations() " "Goto Declaration") (mkKeymap "n" "gr" ":lua Snacks.picker.lsp_references() " "References") (mkKeymap "n" "gI" ":lua Snacks.picker.lsp_implementations() " "Goto Implementation") (mkKeymap "n" "gy" ":lua Snacks.picker.lsp_type_definitions() " "Goto T[y]pe Definition") (mkKeymap "n" "ss" ":lua Snacks.picker.lsp_symbols() " "LSP Symbols") (mkKeymap "n" "sS" ":lua Snacks.picker.lsp_workspace_symbols() " "LSP Workspace Symbols" ) # Telescope replacement (mkKeymap "n" "sP" ":lua Snacks.picker()" "Pickers") (mkKeymap "n" "ss" ":lua Snacks.picker.smart()" "Smart") (mkKeymap "n" "st" ":lua Snacks.picker.todo_comments({layout = 'ivy'})" "Todo") (mkKeymap "n" "sT" '':lua Snacks.picker.todo_comments({keywords = {"TODO", "FIX", "FIXME"}, layout = 'ivy'})'' "Todo" ) (mkKeymap "n" "s:" '':lua Snacks.picker.command_history({ layout = 'ivy'})'' "Command History" ) (mkKeymap "n" "s," ":lua Snacks.picker.buffers({layout = 'ivy'})" "Buffers") (mkKeymap "n" "sh" '':lua Snacks.picker.help()'' "Help Pages") (mkKeymap "n" "sk" '':lua Snacks.picker.keymaps({layout = 'vscode'})'' "Keymaps") (mkKeymap "n" "su" ( # lua mkRaw '' function() Snacks.picker.undo({ win = { input = { keys = { ["y"] = { "yank_add", mode = "n" }, ["Y"] = { "yank_del", mode = "n" }, }, }, }, }) end '' ) "Undo") (mkKeymap "n" "ff" ":lua Snacks.picker.files()" "Find Files") (mkKeymap "n" "fF" ":lua Snacks.picker.smart()" "Smart") (mkKeymap "n" "f/" ":lua Snacks.picker.grep()" "Grep") (mkKeymap "n" "f?" ":lua Snacks.picker.grep({layout = 'ivy', args = { '--vimgrep', '--smart-case', '--fixed-strings' } })" "Grep" ) (mkKeymap "n" "fr" ":lua Snacks.picker.recent()" "Recent") (mkKeymap "n" "fp" ":lua Snacks.picker.projects()" "Projects") ]; }