94 lines
3.5 KiB
Lua
94 lines
3.5 KiB
Lua
-- Editor enhancements - Snacks explorer configuration
|
|
--
|
|
-- LazyVim provides snacks (explorer, picker, lazygit, terminal), native
|
|
-- commenting (Neovim 0.10+), and mini.hipatterns for color preview.
|
|
-- This file only adds project-specific overrides on top.
|
|
|
|
return {
|
|
-- ─────────────────────────────────────────────────────────────────────────
|
|
-- Snacks: explorer + picker tweaks
|
|
-- ─────────────────────────────────────────────────────────────────────────
|
|
{
|
|
"folke/snacks.nvim",
|
|
opts = {
|
|
quickfile = {
|
|
enabled = true,
|
|
},
|
|
explorer = {
|
|
replace_netrw = true,
|
|
},
|
|
lazygit = {
|
|
enabled = true,
|
|
},
|
|
picker = {
|
|
enabled = true,
|
|
ui_select = true,
|
|
sources = {
|
|
explorer = {
|
|
hidden = true,
|
|
ignored = true, -- show .gitignore files too
|
|
follow_file = true,
|
|
win = {
|
|
list = {
|
|
keys = {
|
|
-- Ctrl+Shift versions (work in Kitty/WezTerm/Alacritty with the right config)
|
|
["<C-S-v>"] = { "edit_vsplit", mode = { "n", "i" } },
|
|
["<C-S-h>"] = { "edit_split", mode = { "n", "i" } },
|
|
-- Plain Ctrl fallbacks for terminals that don't transmit
|
|
-- the Shift modifier seperately
|
|
["<C-v>"] = { "edit_vsplit", mode = { "n", "i" } },
|
|
["<C-x>"] = { "edit_split", mode = { "n", "i" } },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
keys = {
|
|
-- Optional Lazygit log/file-history shortcuts - LazyVim's <leader>gg
|
|
-- already opens lazygit itself.
|
|
{
|
|
"<leader>gl",
|
|
function()
|
|
Snacks.lazygit.log()
|
|
end,
|
|
desc = "Lazygit Log",
|
|
},
|
|
{
|
|
"<leader>gf",
|
|
function()
|
|
Snacks.lazygit.log_file()
|
|
end,
|
|
desc = "Lazygit File History",
|
|
},
|
|
},
|
|
},
|
|
-- ─────────────────────────────────────────────────────────────────────────
|
|
-- Which-key: leader-prefix cheat sheet
|
|
-- ─────────────────────────────────────────────────────────────────────────
|
|
-- Hold <leader> for ~300ms (timeoutlen) and the group menu appears.
|
|
{
|
|
"folke/which-key.nvim",
|
|
opts = {
|
|
spec = {
|
|
{ "<leader>a", group = "AI" },
|
|
{ "<leader>b", group = "Buffer" },
|
|
{ "<leader>c", group = "Code" },
|
|
{ "<leader>cg", group = "Go" },
|
|
{ "<leader>cgp", group = "Profile" },
|
|
{ "<leader>d", group = "Debug" },
|
|
{ "<leader>D", group = "Database" },
|
|
{ "<leader>f", group = "Find" },
|
|
{ "<leader>g", group = "Git" },
|
|
{ "<leader>o", group = "Overseer" },
|
|
{ "<leader>s", group = "Search / Symbols" },
|
|
{ "<leader>t", group = "Test" },
|
|
{ "<leader>T", group = "Terminal" },
|
|
{ "<leader>u", group = "UI / Toggle" },
|
|
{ "<leader>x", group = "Diagnostics" },
|
|
},
|
|
},
|
|
},
|
|
}
|