return { "folke/snacks.nvim", priority = 1000, init = function() local group = vim.api.nvim_create_augroup("BlinkCmpSnacksToggle", { clear = true }) vim.api.nvim_create_autocmd("User", { group = group, pattern = "BlinkCmpMenuOpen", callback = function() vim.g.snacks_animate = false end, }) vim.api.nvim_create_autocmd("User", { group = group, pattern = "BlinkCmpMenuClose", callback = function() vim.g.snacks_animate = true end, }) end, config = function() local snacks = require("snacks") snacks.setup({ bigfile = { enabled = true }, input = { enabled = true, prompt_pos = "left", icon_pos = "left", expand = false, win = { row = 0.4, position = "float", border = "rounded", }, }, select = { enabled = true, win = { border = "rounded" }, }, debug = { enabled = true }, image = { enabled = true }, indent = { enabled = true, animate = { enabled = false } }, rename = { enabled = true }, notifier = { enabled = true }, scroll = { enabled = true, animate = { duration = { step = 5, total = 50 }, easing = "linear", }, }, dashboard = { preset = { keys = function() return { { icon = "⏻", key = "q", desc = "Quit", action = "qa" }, { icon = "󱇧", key = "e", desc = "New Buffer", action = "ene" }, } end, header = table.concat({ [[ █ █ ]], [[ █ ██ ]], [[ ████ ]], [[ ██ ███ ]], [[ █ █ ]], [[ ]], [[ n e o v i m ]], }, "\n"), }, sections = { { section = "header", }, { title = "MRU ", file = vim.fn.fnamemodify(".", ":~"), padding = 1 }, { section = "recent_files", cwd = true, limit = 10, padding = 1 }, { title = "GMRU", padding = 1 }, { section = "recent_files", limit = 5, padding = 1 }, { title = "Sessions", padding = 1 }, { section = "projects", padding = 1 }, { section = "keys", gap = 0, padding = 1 }, }, }, }) nmap(".", snacks.scratch.open, { desc = "Toggle Scratch Buffer" }) nmap(",", snacks.scratch.select, { desc = "Select Scratch Buffer" }) -- Show notifier history nmap("ns", snacks.notifier.show_history, { desc = "Show notifier history" }) end, }