feat(nvim): Add snack.nvim (replacing zen-mode, bufdelete)
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
which_key = true;
|
which_key = true;
|
||||||
neotest = true;
|
neotest = true;
|
||||||
dap = true;
|
dap = true;
|
||||||
|
snacks.enable = true;
|
||||||
};
|
};
|
||||||
custom_highlights =
|
custom_highlights =
|
||||||
# lua
|
# lua
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
|
|
||||||
rainbow-delimiters.enable = true;
|
rainbow-delimiters.enable = true;
|
||||||
twilight.enable = true;
|
twilight.enable = true;
|
||||||
zen-mode.enable = true;
|
|
||||||
|
|
||||||
nvim-tree = {
|
nvim-tree = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
./silicon.nix
|
./silicon.nix
|
||||||
./todo-comments.nix
|
./todo-comments.nix
|
||||||
./debugging.nix
|
./debugging.nix
|
||||||
|
./snacks.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
plugins = {
|
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,
|
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 {
|
wk.add {
|
||||||
set_key.cmd("e", require("nvim-tree.api").tree.toggle, "Files"),
|
set_key.cmd("e", require("nvim-tree.api").tree.toggle, "Files"),
|
||||||
set_key.cmd("w", "w!", "Write buffer"),
|
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", "qa", "Quit all", true),
|
||||||
set_key.cmd("q", "quit", "Quit window", 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("r", require("grug-far").open, "Replace"),
|
||||||
set_key.cmd("z", function()
|
set_key.cmd("z", function()
|
||||||
vim.wo.number = false
|
Snacks.zen()
|
||||||
require("zen-mode").toggle()
|
|
||||||
end, "Zen Mode"),
|
end, "Zen Mode"),
|
||||||
set_key.cmd("u", "UndotreeToggle", "Undo Tree"),
|
set_key.cmd("u", "UndotreeToggle", "Undo Tree"),
|
||||||
set_key.cmd("H", "HexokinaseToggle", "Hexokinase"),
|
set_key.cmd("H", "HexokinaseToggle", "Hexokinase"),
|
||||||
|
|||||||
Reference in New Issue
Block a user