return { "akinsho/bufferline.nvim", version = "*", dependencies = "nvim-tree/nvim-web-devicons", opts = function() require("bufferline").setup({ options = { custom_areas = { left = function() return vim.tbl_map(function(item) return { text = item } end, require("edgy-group.stl").get_statusline("left")) end, }, }, }) local Offset = require("bufferline.offset") if not Offset.edgy then local get = Offset.get Offset.get = function() if package.loaded.edgy then local layout = require("edgy.config").layout local ret = { left = "", left_size = 0, right = "", right_size = 0 } for _, pos in ipairs({ "left", "right" }) do local sb = layout[pos] if sb and #sb.wins > 0 then -- local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8) local title = string.rep(" ", sb.bounds.width) ret[pos] = "%#EdgyTitle#" .. title .. "%*" .. "%#WinSeparator#│%*" ret[pos .. "_size"] = sb.bounds.width end end ret.total_size = ret.left_size + ret.right_size if ret.total_size > 0 then return ret end end return get() end Offset.edgy = true end end, config = function() vim.opt.termguicolors = true require("bufferline").setup({ options = { -- separator_style = "slant", -- style_preset = bufferline.style_preset.no_italic, diagnostics = "nvim_lsp", diagnostics_indicator = function(count, level) local icon = level:match("error") and " " or "" return " " .. icon .. count end, }, }) 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, }