feat(nvim): Add snack.nvim (replacing zen-mode, bufdelete)

This commit is contained in:
demenik
2025-12-16 16:32:33 +01:00
parent 36f8a8fb80
commit 41bdda7cc8
5 changed files with 43 additions and 13 deletions

View File

@@ -28,6 +28,7 @@
which_key = true;
neotest = true;
dap = true;
snacks.enable = true;
};
custom_highlights =
# lua

View File

@@ -24,7 +24,6 @@
rainbow-delimiters.enable = true;
twilight.enable = true;
zen-mode.enable = true;
nvim-tree = {
enable = true;

View File

@@ -10,6 +10,7 @@
./silicon.nix
./todo-comments.nix
./debugging.nix
./snacks.nix
];
plugins = {

View File

@@ -0,0 +1,34 @@
{
plugins.snacks = {
enable = true;
settings = {
bigfile.enabled = true;
notifier = {
enabled = true;
timeout = 3000;
};
bufdelete.enabled = true;
image.enabled = true;
quickfile.enabled = true;
rename.enabled = true;
};
};
extraConfigLua =
# lua
''
local prev = { new_name = "", old_name = "" } -- Prevents duplicate events
vim.api.nvim_create_autocmd("User", {
pattern = "NvimTreeSetup",
callback = function()
local events = require("nvim-tree.api").events
events.subscribe(events.Event.NodeRenamed, function(data)
if prev.new_name ~= data.new_name or prev.old_name ~= data.old_name then
data = data
Snacks.rename.on_rename_file(data.old_name, data.new_name)
end
end)
end,
})
'';
}

View File

@@ -13,19 +13,15 @@ local set_key = {
end,
}
local function smart_buffer_delete()
local current_buf = vim.api.nvim_get_current_buf()
pcall(vim.cmd.bnext)
if current_buf == vim.api.nvim_get_current_buf() then
vim.cmd.enew()
end
pcall(vim.cmd, "bdelete " .. current_buf)
end
wk.add {
set_key.cmd("e", require("nvim-tree.api").tree.toggle, "Files"),
set_key.cmd("w", "w!", "Write buffer"),
set_key.cmd("d", smart_buffer_delete, "Delete buffer"),
set_key.cmd("d", function()
Snacks.bufdelete()
end, "Delete buffer"),
set_key.cmd("D", function()
Snacks.bufdelete.all()
end, "Delete all buffers"),
set_key.cmd("Q", "qa", "Quit all", true),
set_key.cmd("q", "quit", "Quit window", true),
}
@@ -189,8 +185,7 @@ wk.add {
set_key.cmd("r", require("grug-far").open, "Replace"),
set_key.cmd("z", function()
vim.wo.number = false
require("zen-mode").toggle()
Snacks.zen()
end, "Zen Mode"),
set_key.cmd("u", "UndotreeToggle", "Undo Tree"),
set_key.cmd("H", "HexokinaseToggle", "Hexokinase"),