return { "folke/snacks.nvim", lazy = false, opts = { gitbrowse = { open = function(url) vim.fn.setreg('+', url) -- Copy to clipboard end }, bigfile = { enabled = true }, explorer = { enabled = true }, indent = { enabled = true, animate = { enabled = false }, scope = { enabled = true, }, chunck = { enabled = true, } }, input = { enabled = true }, picker = { enabled = true }, notifier = { enabled = true }, quickfile = { enabled = true }, image = { enabled = true }, scope = { enabled = true, keys = { textobject = { ii = { min_size = 2, -- minimum size of the scope edge = false, -- inner scope cursor = false, treesitter = { blocks = { enabled = false } }, desc = "inner scope", }, ai = { cursor = false, min_size = 2, -- minimum size of the scope treesitter = { blocks = { enabled = false } }, desc = "full scope", }, }, jump = { ["gt"] = { min_size = 1, -- allow single line scopes bottom = false, cursor = false, edge = true, treesitter = { blocks = { enabled = false } }, desc = "jump to top edge of scope", }, ["gb"] = { min_size = 1, -- allow single line scopes bottom = true, cursor = false, edge = true, treesitter = { blocks = { enabled = false } }, desc = "jump to bottom edge of scope", }, } } }, statuscolumn = { enabled = true }, words = { enabled = true, debounce = 20, }, }, config = function(_, opts) vim.api.nvim_create_user_command("GitLink", function() require("snacks").gitbrowse() end, {}) vim.api.nvim_create_user_command("GitBlameLine", function() require("snacks").git.blame_line() end, {}) require("snacks").setup(opts) end, keys = { {"t", function() require("snacks").explorer() end}, {"", function() require("snacks").picker.lsp_symbols({layout = {preset = "right"}, focus="list"}) end}, {"", function() require("snacks").picker.lsp_workspace_symbols({layout = {preset = "vertical"}}) end}, {"", function() require("snacks").picker.recent({layout = {preset = "vertical"}}) end}, {"", function() require("snacks").picker({layout = {preset = "vscode"}}) end}, {"", function() require("snacks").picker.git_files({layout = {preset = "vscode"}}) end}, {"", function() require("snacks").picker.buffers({layout = {preset = "vscode"}}) end}, {"", function() require("snacks").picker.grep({layout = {preset = "vertical"}}) end}, {"", function() require("snacks").words.jump(1) end}, {"", function() require("snacks").words.jump(-1) end}, } }