local function get_highlight() if vim.g.colors_name == "catppuccin" then return require("catppuccin.groups.integrations.bufferline").get() elseif vim.g.colors_name == "rose-pine" then return require("rose-pine.plugins.bufferline") end end return { "akinsho/bufferline.nvim", dependencies = "nvim-tree/nvim-web-devicons", -- 图标支持 after = "catppuccin", lazy = false, keys = { { "b1", ":BufferLineGotoBuffer 1", desc = "Switch to Buffer #1" }, { "b2", ":BufferLineGotoBuffer 2", desc = "Switch to Buffer #2" }, { "b3", ":BufferLineGotoBuffer 3", desc = "Switch to Buffer #3" }, { "b4", ":BufferLineGotoBuffer 4", desc = "Switch to Buffer #4" }, { "b5", ":BufferLineGotoBuffer 5", desc = "Switch to Buffer #5" }, { "b6", ":BufferLineGotoBuffer 6", desc = "Switch to Buffer #6" }, { "b7", ":BufferLineGotoBuffer 7", desc = "Switch to Buffer #7" }, { "b8", ":BufferLineGotoBuffer 8", desc = "Switch to Buffer #8" }, { "b9", ":BufferLineGotoBuffer 9", desc = "Switch to Buffer #9" }, { "bb", ":BufferLinePick", desc = "Quick Switch Buffers" }, { "bD", ":BufferLineCloseOthers", desc = "Delete Other Buffers" }, { "bxx", ":BufferLineCloseOthers", desc = "Delete Other Buffers" }, { "bxh", ":BufferLineCloseLeft", desc = "Delete Buffers Left" }, { "bxi", ":BufferLineCloseRight", desc = "Delete Buffers Right" }, { "bX", ":BufferLineCloseOthers", desc = "Delete Other Buffers" }, { "bt", ":BufferLineTogglePin", desc = "Pin Buffer" }, }, opts = { options = { indicator = { icon = "▎", -- this should be omitted if indicator style is not 'icon' style = "icon", }, diagnostics = "nvim_lsp", diagnostics_indicator = function(count, level, diagnostics_dict, context) local icon = level:match("error") and " " or " " return " " .. icon .. count end, show_buffer_icons = true, numbers = "ordinal", -- 显示 buffer 序号 close_command = "bdelete! %d", -- 关闭 buffer 的命令 right_mouse_command = "bdelete! %d", -- 右键关闭 offsets = { { filetype = "NvimTree", text = "资源管理器", text_align = "center" }, }, separator_style = "thin", }, highlights = get_highlight(), }, }