94 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
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 = {
 | 
						|
        {"<leader>t", function() require("snacks").explorer() end},
 | 
						|
        {"<c-m>", function() require("snacks").picker.lsp_symbols({layout = {preset = "right"}, focus="list"}) end},
 | 
						|
        {"<c-s-m>", function() require("snacks").picker.lsp_workspace_symbols({layout = {preset = "vertical"}}) end},
 | 
						|
        {"<c-space>", function() require("snacks").picker.recent({layout = {preset = "vertical"}}) end},
 | 
						|
        {"<c-cr>", function() require("snacks").picker({layout = {preset = "vscode"}}) end},
 | 
						|
        {"<c-s-cr>", function() require("snacks").picker.commands({layout = {preset = "vscode"}}) end},
 | 
						|
        {"<c-p>", function() require("snacks").picker.git_files({layout = {preset = "vscode"}}) end},
 | 
						|
        {"<c-o>", function() require("snacks").picker.buffers({layout = {preset = "vscode"}}) end},
 | 
						|
        {"<c-f>", function() require("snacks").picker.grep({layout = {preset = "vertical"}}) end},
 | 
						|
        {"<c-n>", function() require("snacks").words.jump(1) end},
 | 
						|
        {"<c-b>", function() require("snacks").words.jump(-1) end},
 | 
						|
    }
 | 
						|
}
 |