2 local function term_nav(dir)
3 ---@param self snacks.terminal
5 return self:is_floating() and "<c-" .. dir .. ">" or vim.schedule(function()
12 { "folke/snacks.nvim",
16 { "<leader>.", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },
17 { "<leader>S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },
18 { "<leader>dps", function() Snacks.profiler.scratch() end, desc = "Profiler Scratch Buffer" },
21 bigfile = { enabled = true },
22 quickfile = { enabled = true },
26 nav_h = { "<C-h>", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" },
27 nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },
28 nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },
29 nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },
35 pick = function(cmd, opts)
36 return LazyVim.pick(cmd, opts)()
38 -- TODO: replace header
40 ██╗ █████╗ ██╗ ██╗███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
41 ██║ ██╔══██╗██║ ██║╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
42 ██║ ██║ ██║██║ ██║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
43 ██║ ██║ ██║██║ ██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
44 ███████╗╚█████╔╝╚██████╔╝███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
45 ╚══════╝ ╚════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]],
47 ---@type snacks.dashboard.Item[]
49 { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" },
50 { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" },
51 { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" },
52 { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" },
53 { icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" },
54 { icon = " ", key = "s", desc = "Restore Session", section = "session" },
55 { icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" },
56 { icon = " ", key = "l", desc = "Lazy", action = ":Lazy" },