return { "akinsho/bufferline.nvim", version = "*", dependencies = "nvim-tree/nvim-web-devicons", config = function() vim.keymap.set("n", "", ":BufferLineCycleNext ", { desc = "Cycle tabs" }) vim.keymap.set("n", "bn", ":BufferLineCycleNext ", { desc = "Next tab" }) vim.keymap.set("n", "bp", ":BufferLineCyclePrev ", { desc = "NextPrevious tab" }) local bufferline = require("bufferline") bufferline.setup({ options = { mode = "buffers", style_preset = bufferline.style_preset.default, themable = true, numbers = "none", close_command = "bdelete! %d", indicator = { icon = "▎", style = "icon", }, max_name_length = 18, max_prefix_length = 15, truncate_names = true, tab_size = 18, offsets = { { filetype = "NvimTree", text = "File Explorer", highlight = "None", padding = 1, }, }, color_icons = true, get_element_icon = function(element) local icon, hl = require("nvim-web-devicons").get_icon_by_filetype(element.filetype, { default = false }) return icon, hl end, always_show_bufferline = true, diagnostics = "nvim_lsp", diagnostics_update_in_insert = false, diagnostics_indicator = function(count, level, diagnostics_dict, context) if context.buffer:current() then return "" end return "" end, highlights = { background = { guibg = "None", }, fill = { guibg = "None", }, close_button = { guibg = "None", }, separator_visible = { guibg = "None", }, tab_close = { guibg = "None", }, }, }, }) vim.g.transparent_groups = vim.list_extend( vim.g.transparent_groups or {}, vim.tbl_map(function(v) return v.hl_group end, vim.tbl_values(require("bufferline.config").highlights)) ) end, }