feat(nvim): Add snack.nvim (replacing zen-mode, bufdelete)
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
which_key = true;
|
||||
neotest = true;
|
||||
dap = true;
|
||||
snacks.enable = true;
|
||||
};
|
||||
custom_highlights =
|
||||
# lua
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
rainbow-delimiters.enable = true;
|
||||
twilight.enable = true;
|
||||
zen-mode.enable = true;
|
||||
|
||||
nvim-tree = {
|
||||
enable = true;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
./silicon.nix
|
||||
./todo-comments.nix
|
||||
./debugging.nix
|
||||
./snacks.nix
|
||||
];
|
||||
|
||||
plugins = {
|
||||
|
||||
34
home/editors/nvim/plugins/utils/snacks.nix
Normal file
34
home/editors/nvim/plugins/utils/snacks.nix
Normal 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,
|
||||
})
|
||||
'';
|
||||
}
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user