return { "folke/snacks.nvim", priority = 1000, lazy = false, opts = { bigfile = { enabled = true }, notifier = { enabled = false }, quickfile = { enabled = true }, statuscolumn = { enabled = true }, words = { enabled = true }, git = { enabled = true }, }, keys = { { "z", "lua Snacks.lazygit()", desc = "LazyGit" }, { "bd", "lua Snacks.bufdelete()", desc = "(Snacks) Delete Buffer" }, { "]]", function() Snacks.words.jump(vim.v.count1) end, desc = "Next Reference", }, { "[[", function() Snacks.words.jump(-vim.v.count1) end, desc = "Prev Reference", }, }, init = function() vim.api.nvim_create_autocmd("User", { pattern = "VeryLazy", callback = function() -- Setup some globals for debugging (lazy-loaded) _G.dd = function(...) Snacks.debug.inspect(...) end _G.bt = function() Snacks.debug.backtrace() end vim.print = _G.dd -- Override print to use snacks for `:=` command -- Create some toggle mappings Snacks.toggle.option("spell", { name = "Spelling" }):map "us" Snacks.toggle.option("wrap", { name = "Wrap" }):map "uw" Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map "uL" Snacks.toggle.diagnostics():map "ud" Snacks.toggle.line_number():map "ul" Snacks.toggle .option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 }) :map "uc" Snacks.toggle.treesitter():map "uT" Snacks.toggle .option("background", { off = "light", on = "dark", name = "Dark Background" }) :map "ub" Snacks.toggle.inlay_hints():map "uh" end, }) end, }