local M = { "akinsho/bufferline.nvim" }

M.event = { "BufReadPost", "BufNewFile" }

M.opts = function()
    local icons = require('config.icons')

    local function diagnostics_indicator(_, _, diagnostics, _)
        local result = {}
        local symbols = {
            error = icons.Error,
            warning = icons.Warn,
            info = icons.Info,
        }
        for name, count in pairs(diagnostics) do
            if symbols[name] and count > 0 then
                table.insert(result, symbols[name] .. " " .. count)
            end
        end
        local result_str = table.concat(result, " ")
        return #result_str > 0 and result_str or ""
    end

    local config = {
        highlights = {
            background = {
                italic = true,
                bold = false,
            },
            buffer_selected = {
                italic = false,
                bold = true,
            },
        },
        options = {
            indicator = {
                style = "none",
            },
            buffer_close_icon = icons.Close,
            modified_icon = icons.Modified,
            close_icon = icons.Close,
            left_trunc_marker = icons.Truncate,
            right_trunc_marker = icons.Truncate,
            diagnostics = "nvim_lsp",
            diagnostics_indicator = diagnostics_indicator,
            offsets = {},
            show_buffer_close_icons = false,
            show_close_icon = false,
            separator_style = { '', '' },
            move_wraps_at_ends = true,
            always_show_bufferline = false,
            sort_by = "id",
        },
    }
    return config
end

return M