diff --git a/lua/plugins/snacks.lua b/lua/plugins/snacks.lua index e9d2819..d573830 100644 --- a/lua/plugins/snacks.lua +++ b/lua/plugins/snacks.lua @@ -3,13 +3,59 @@ return { priority = 1000, lazy = false, opts = { - bigfile = { enabled = false }, + bigfile = { enabled = true }, notifier = { enabled = false }, - quickfile = { enabled = false }, - statuscolumn = { enabled = false }, - words = { 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, }