local snacksRootDirDesc = "Explorer (Root Dir)" local snacksCwdDesc = "Explorer (cwd)" local pickerRootDirDesc = "Find Files (Root Dir)" local pickerCwdDesc = "Find Files (cwd)" local exploreExclude = { "**/node_modules/**", "**/cdk.out/**" } local pickerExclude = { "**/node_modules/**", "**/.next/**", "**/.swc/**", "**/.idea/**", "**/.vscode/**", "**/android/**", "**/ios/**", "**/.expo/**", "**/.git/**", "**/db_backups/**", "**/**_snapshot.json", "**/cdk.out/**", "**/.jest-cache/**", "**/tmp/**", "**/dist/**", "**/__tests__/**", "**/__mocks__/**", } return { { "folke/snacks.nvim", ---@type snacks.Config opts = { picker = { sources = { explorer = { auto_close = true, layout = { layout = { position = "right", }, }, }, }, }, scratch = { win = { style = "float", }, }, }, keys = { { "fF", function() Snacks.picker.files({ hidden = true, ignored = true, exclude = pickerExclude }) end, desc = pickerCwdDesc, }, { "ff", function() Snacks.picker.files({ cwd = LazyVim.root(), hidden = true, ignored = true, exclude = pickerExclude, }) end, desc = pickerRootDirDesc, }, { "fe", function() Snacks.explorer({ cwd = LazyVim.root(), hidden = true, ignored = true, exclude = exploreExclude, }) end, desc = snacksRootDirDesc, }, { "fE", function() Snacks.explorer({ hidden = true, ignored = true, exclude = exploreExclude }) end, desc = snacksCwdDesc, }, { "fo", function() Snacks.explorer({ cwd = LazyVim.root(), hidden = true, ignored = true, exclude = exploreExclude, auto_close = false, }) end, desc = snacksRootDirDesc, }, { "fO", function() Snacks.explorer({ hidden = true, ignored = true, exclude = exploreExclude, auto_close = false }) end, desc = snacksCwdDesc, }, { "f/", function() Snacks.explorer({ cwd = "/", hidden = true }) end, desc = "Find Files (/)", }, { "fh", function() Snacks.explorer({ cwd = "~", hidden = true }) end, desc = "Explorer (Home)", }, { "fH", function() Snacks.picker.files({ cwd = "~", hidden = true }) end, desc = "Find Files (Home)", }, { "fd", function() Snacks.explorer({ cwd = "~/.dotfiles", hidden = true, ignored = true }) end, desc = "Explorer (.Dotfiles)", }, { "fD", function() Snacks.picker.files({ cwd = "~/.dotfiles", hidden = true, ignored = true }) end, desc = "Find Files (.Dotfiles)", }, { "fr", function() Snacks.picker.recent({ filter = { cwd = true }, hidden = true, ignored = true, exclude = pickerExclude }) end, desc = "Recent (cwd)", remap = true, }, { "fR", function() Snacks.picker.recent({ hidden = true, ignored = true, exclude = pickerExclude, }) end, desc = "Recent", remap = true, }, { "//", function() Snacks.picker.grep({ hidden = true, ignored = true, exclude = pickerExclude }) end, desc = "Grep (cwd)", }, { "/", function() Snacks.picker.grep({ cwd = LazyVim.root(), hidden = true, ignored = true, exclude = pickerExclude, }) end, desc = "Grep (Root Dir)", remap = true, }, { ".", function() Snacks.scratch.open({ name = "Scratch", ft = "text", filekey = { id = nil, cwd = true, branch = false, count = true, }, }) end, desc = "Scratch (cwd)", }, { "..", function() Snacks.scratch.open({ name = "Global Scratch", ft = "text", filekey = { id = nil, cwd = false, branch = false, count = true, }, }) end, desc = "Scratch (Global)", }, { "", "ff", desc = pickerRootDirDesc, remap = true }, { "e", "fe", desc = snacksRootDirDesc, remap = true }, { "E", "fE", desc = snacksCwdDesc, remap = true }, }, }, }