88 lines
3.4 KiB
Lua
88 lines
3.4 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
|
|
}
|
|
},
|
|
input = { enabled = true },
|
|
picker = { enabled = true },
|
|
notifier = { enabled = true },
|
|
quickfile = { 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-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},
|
|
}
|
|
}
|