38 lines
1.1 KiB
Lua
38 lines
1.1 KiB
Lua
local map = vim.keymap.set
|
|
map("n", "<leader>s", ":w<CR>", {})
|
|
map("n", "<leader>q", function()
|
|
local buffers = vim.fn.getbufinfo({ buflisted = 1 })
|
|
if #buffers <= 1 then
|
|
-- Check if explorer is already open
|
|
local explorer_win = nil
|
|
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
|
local buf = vim.api.nvim_win_get_buf(win)
|
|
local ft = vim.api.nvim_get_option_value("filetype", { buf = buf })
|
|
if ft == "snacks_picker_list" then
|
|
explorer_win = win
|
|
break
|
|
end
|
|
end
|
|
vim.cmd("bdelete")
|
|
if explorer_win then
|
|
-- Explorer is already open, just focus it
|
|
vim.api.nvim_set_current_win(explorer_win)
|
|
else
|
|
-- Explorer not open, open it
|
|
Snacks.explorer()
|
|
end
|
|
else
|
|
vim.cmd("bnext")
|
|
vim.cmd("bdelete #")
|
|
end
|
|
end, { desc = "Smart buffer delete" })
|
|
map("n", "<leader>qq", ":q<CR>'", {})
|
|
map("n", "<leader>qqq", ":qa!<CR>", {})
|
|
map("n", "<leader>s", ":w<CR>", {})
|
|
|
|
map("n", "mm", "gcc", { desc = "Toggle comment", remap = true })
|
|
map("v", "mm", "gc", { desc = "Toggle comment", remap = true })
|
|
|
|
-- Diagnostics
|
|
map("n", "<leader>d", function() Snacks.picker.diagnostics() end, { desc = "Show Diagnostics" })
|