local M = {}

function M.highlight(c, opts)
  return {
    CmpCompletion = { link = 'Pmenu' },
    CmpCompletionBorder = { bg = c.grey0, fg = c.fg1 },
    CmpCompletionSbar = { link = 'PmenuSbar' },
    CmpCompletionSel = { bg = c.grey0 },
    CmpCompletionThumb = { link = 'PmenuThumb' },
    CmpDocumentation = { link = 'NormalFloat' },
    CmpDocumentationBorder = { link = 'FloatBorder' },
    CmpItemAbbr = { fg = c.fg_bright },
    CmpItemAbbrDefault = { fg = c.fg_bright },
    CmpItemAbbrDeprecated = { fg = c.green_dim, strikethrough = true },
    CmpItemAbbrDeprecatedDefault = { fg = c.green_dim },
    CmpItemAbbrMatch = { fg = c.green },
    CmpItemAbbrMatchDefault = { fg = c.fg_bright },
    CmpItemAbbrMatchFuzzy = { link = 'CmpItemAbbrMatch' },
    CmpItemAbbrMatchFuzzyDefault = { fg = c.fg_bright },
    CmpItemKind = { fg = c.yellow },
    CmpItemKindClass = { link = 'Type' },
    CmpItemKindClassDefault = { link = 'CmpItemKind' },
    CmpItemKindColor = { fg = c.yellow },
    CmpItemKindColorDefault = { link = 'CmpItemKind' },
    CmpItemKindConstant = { link = 'Constant' },
    CmpItemKindConstantDefault = { link = 'CmpItemKind' },
    CmpItemKindConstructor = { link = '@constructor' },
    CmpItemKindConstructorDefault = { link = 'CmpItemKind' },
    CmpItemKindCopilot = { fg = c.green },
    CmpItemKindDefault = { fg = c.yellow },
    CmpItemKindEnum = { link = 'Type' },
    CmpItemKindEnumDefault = { link = 'CmpItemKind' },
    CmpItemKindEnumMember = { link = 'Constant' },
    CmpItemKindEnumMemberDefault = { link = 'CmpItemKind' },
    CmpItemKindEvent = { fg = c.yellow },
    CmpItemKindEventDefault = { link = 'CmpItemKind' },
    CmpItemKindField = { link = '@field' },
    CmpItemKindFieldDefault = { link = 'CmpItemKind' },
    CmpItemKindFile = { link = 'Directory' },
    CmpItemKindFileDefault = { link = 'CmpItemKind' },
    CmpItemKindFolder = { link = 'Directory' },
    CmpItemKindFolderDefault = { link = 'CmpItemKind' },
    CmpItemKindFunction = { link = 'Function' },
    CmpItemKindFunctionDefault = { link = 'CmpItemKind' },
    CmpItemKindInterface = { link = 'Type' },
    CmpItemKindInterfaceDefault = { link = 'CmpItemKind' },
    CmpItemKindKeyword = { link = '@keyword' },
    CmpItemKindKeywordDefault = { link = 'CmpItemKind' },
    CmpItemKindMethod = { link = 'Function' },
    CmpItemKindMethodDefault = { link = 'CmpItemKind' },
    CmpItemKindModule = { link = '@include' },
    CmpItemKindModuleDefault = { link = 'CmpItemKind' },
    CmpItemKindOperator = { link = 'Operator' },
    CmpItemKindOperatorDefault = { link = 'CmpItemKind' },
    CmpItemKindProperty = { link = '@property' },
    CmpItemKindPropertyDefault = { link = 'CmpItemKind' },
    CmpItemKindReference = { link = 'Type' },
    CmpItemKindReferenceDefault = { link = 'CmpItemKind' },
    CmpItemKindSnippet = { fg = c.yellow },
    CmpItemKindSnippetDefault = { link = 'CmpItemKind' },
    CmpItemKindStruct = { link = 'Type' },
    CmpItemKindStructDefault = { link = 'CmpItemKind' },
    CmpItemKindText = { fg = c.fg_bright },
    CmpItemKindTextDefault = { link = 'CmpItemKind' },
    CmpItemKindTypeParameter = { link = 'Type' },
    CmpItemKindTypeParameterDefault = { link = 'CmpItemKind' },
    CmpItemKindUnit = { fg = c.yellow },
    CmpItemKindUnitDefault = { link = 'CmpItemKind' },
    CmpItemKindValue = { link = 'String' },
    CmpItemKindValueDefault = { link = 'CmpItemKind' },
    CmpItemKindVariable = { fg = c.fg_dim },
    CmpItemKindVariableDefault = { link = 'CmpItemKind' },
    CmpItemMenu = { fg = c.green_dim },
    CmpItemMenuDefault = { fg = c.fg_bright },
  }
end

return M
