return {
   'akinsho/bufferline.nvim',
   dependencies = { 'nvim-tree/nvim-web-devicons' },
   -- version = '*',
   event = 'VeryLazy',
   opts = {
      options = {
         mode = 'buffers',
         numbers = 'both', -- or buffer_id
         separator_style = 'slant',
         diagnostics = 'nvim_lsp',
         diagnostics_indicator = function(count, level, diagnostics_dict, context)
            local s = ' '
            for e, n in pairs(diagnostics_dict) do
               local sym = e == 'error' and ' ' or (e == 'warning' and ' ' or ' ')
               s = s .. n .. sym
            end

            if context.buffer:current() then return '' end

            return s
         end,
         always_show_bufferline = false,
         show_tab_indicators = false,
         color_icons = true,
         show_buffer_icons = true,
         indicator = {
            style = 'underline',
         },
         buffer_close_icon = '󰅖',
         modified_icon = '● ',
         close_icon = ' ',
         left_trunc_marker = ' ',
         right_trunc_marker = ' ',
         offsets = {
            {
               filetype = 'NvimTree',
               text = function()
                  return vim.fn.getcwd()
               end,
               highlight = 'Directory',
               separator = true,
            },
         },
         sort_by = 'insert_at_end',
         persist_buffer_sort = true,
         custom_areas = {
            right = function()
               local result = {}
               local seve = vim.diagnostic.severity
               local error = #vim.diagnostic.get(0, { severity = seve.ERROR })
               local warning = #vim.diagnostic.get(0, { severity = seve.WARN })
               local info = #vim.diagnostic.get(0, { severity = seve.INFO })
               local hint = #vim.diagnostic.get(0, { severity = seve.HINT })

               if error ~= 0 then table.insert(result, { text = '  ' .. error, link = 'DiagnosticError' }) end
               if warning ~= 0 then table.insert(result, { text = '  ' .. warning, link = 'DiagnosticWarn' }) end
               if hint ~= 0 then table.insert(result, { text = '  ' .. hint, link = 'DiagnosticHint' }) end
               if info ~= 0 then table.insert(result, { text = '  ' .. info, link = 'DiagnosticInfo' }) end

               return result
            end,
         },
      },
   },
}