local _fds = require("../foodogsquared") return { { "folke/snacks.nvim", priority = 1000, lazy = false, ---@type snacks.Config opts = { bigfile = { enabled = true }, indent = { enabled = true, char = "┊", scope = { underline = true, }, chunk = { enabled = true, }, }, input = { enabled = true }, notifier = { enabled = true }, git = { enabled = true }, lazygit = { enabled = vim.fn.executable("lazygit") == 1, }, quickfile = { enabled = true }, rename = { enabled = true }, scope = { enabled = true }, statuscolumn = { enabled = true }, toggle = { enabled = true, which_key = pcall(require, "which-key"), }, words = { enabled = true }, }, keys = { { "gb", function() Snacks.git.blame_line() end, desc = "Open blame lines for current file", }, { "gg", function() Snacks.lazygit() end, desc = "Open lazygit", }, { "gf", function() Snacks.lazygit.log_file() end, desc = "Open current file history in lazygit", }, }, 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 style" }):map("ub") Snacks.toggle.inlay_hints():map("uh") Snacks.toggle.indent():map("ug") Snacks.toggle.dim():map("uD") end, }) end, }, -- Oil and vinegar goes well as oil and your computer. { "stevearc/oil.nvim", dependencies = { "nvim-tree/nvim-web-devicons", "nvim-telescope/telescope.nvim", }, opts = { default_file_explorer = true, columns = { "icon", "permissions" }, view_options = { show_hidden = true, }, }, keys = { { "-", "Oil", { desc = "Open parent directory in file explorer" } }, { "", function() require("oil").open(vim.fn.getcwd()) end, { desc = "Open current working directory in file explorer" }, }, }, }, { "mrjones2014/smart-splits.nvim", version = ">=1.0.0", lazy = _fds.utils.to_bool(os.getenv("WEZTERM_CONFIG_DIR")), keys = { { "", function() require("smart-splits").move_cursor_left() end, { desc = "smart-splits move cursor left" } }, { "", function() require("smart-splits").move_cursor_down() end, { desc = "smart-splits move cursor down" } }, { "", function() require("smart-splits").move_cursor_up() end, { desc = "smart-splits move cursor up" } }, { "", function() require("smart-splits").move_cursor_right() end, { desc = "smart-splits move cursor right" } }, { "", function() require("smart-splits").move_cursor_previous() end, { desc = "smart-splits move cursor previous" } }, }, }, { "mrjones2014/legendary.nvim", version = ">=2.0.0", dependencies = { 'kkharji/sqlite.lua' }, priority = 10000, }, }