local icon = require('plugins.config.shared.icon')
require('symbols-outline').setup {
  symbols = {
    File = { icon = icon.symbol.file, hl = '@text.uri' },
    Module = { icon = icon.symbol.module, hl = '@namespace' },
    Namespace = { icon = icon.symbol.namespace, hl = '@namespace' },
    Package = { icon = icon.symbol.package, hl = '@namespace' },
    Class = { icon = icon.symbol.class, hl = '@type' },
    Method = { icon = icon.symbol.method, hl = '@method' },
    Property = { icon = icon.symbol.property, hl = '@method' },
    Field = { icon = icon.symbol.field, hl = '@field' },
    Constructor = { icon = icon.symbol.constructor, hl = '@constructor' },
    Enum = { icon = icon.symbol.enum, hl = '@type' },
    Interface = { icon = icon.symbol.interface, hl = '@type' },
    Function = { icon = icon.symbol.func, hl = '@function' },
    Variable = { icon = icon.symbol.variable, hl = '@constant' },
    Constant = { icon = icon.symbol.constant, hl = '@constant' },
    String = { icon = icon.symbol.string, hl = '@string' },
    Number = { icon = icon.symbol.number, hl = '@number' },
    Boolean = { icon = icon.symbol.boolean, hl = '@boolean' },
    Array = { icon = icon.symbol.array, hl = '@constant' },
    Object = { icon = icon.symbol.object, hl = '@type' },
    Key = { icon = icon.symbol.keyword, hl = '@type' },
    Null = { icon = icon.symbol.null, hl = '@type' },
    EnumMember = { icon = icon.symbol.enum_member, hl = '@field' },
    Struct = { icon = icon.symbol.struct, hl = '@type' },
    Event = { icon = icon.symbol.event, hl = '@type' },
    Operator = { icon = icon.symbol.operator, hl = '@operator' },
    TypeParameter = { icon = icon.symbol.type_parameter, hl = '@parameter' },
    Component = { icon = icon.symbol.component, hl = '@function' },
    Fragment = { icon = icon.symbol.fragment, hl = '@constant' },
  },
}

vim.keymap.set('n', '<Leader>so', '<Cmd>SymbolsOutline<CR>')