Files
nvim-config/lua/plugins/editor.lua

91 lines
3.4 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 = {
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" },
},
},
},
}