Files
2026-10-05 12:59:47 -04:00

44 lines
1.5 KiB
Lua

vim.pack.add({
{ src = "https://github.com/akinsho/bufferline.nvim", version = vim.version.range("^4") },
{ src = "https://github.com/nvim-tree/nvim-web-devicons" },
})
require("bufferline").setup({
options = {
mode = "buffers",
diagnostics = "nvim_lsp",
always_show_bufferline = true,
separator_style = "thin",
show_buffer_close_icons = true,
show_close_icon = false,
offsets = {
{
filetype = "neo-tree",
text = function()
return vim.fn.fnamemodify(vim.fn.getcwd(), ":t")
end,
highlight = "Directory",
text_align = "left",
separator = false,
},
},
},
highlights = require("catppuccin.special.bufferline").get_theme(),
})
local map = vim.keymap.set
map("n", "<S-h>", "<Cmd>BufferLineCyclePrev<CR>", { desc = "Prev buffer" })
map("n", "<S-l>", "<Cmd>BufferLineCycleNext<CR>", { desc = "Next buffer" })
-- close current buffer, without picking; jump to the next file buffer first so the
-- window never lands on the neo-tree buffer (nvim's own :bdelete switch prefers
-- loaded buffers, which is always the neo-tree sidebar)
map("n", "<leader>bd", function()
local cur = vim.api.nvim_get_current_buf()
require("bufferline").cycle(1) -- next buffer in bar order; skips unlisted buffers like neo-tree
if vim.api.nvim_get_current_buf() == cur then
vim.cmd("enew") -- no other buffer open: land on a fresh empty buffer
end
vim.cmd("bdelete! " .. cur)
require("bufferline.ui").refresh()
end, { desc = "Close current buffer" })