local M = {}

function M.create(palette, zitch_pattern, config)
  return {
    TSNone = {},
    TSError = { fg = palette.red, gui = "bold,underline" },
    TSTitle = zitch_pattern.GreenBold,
    TSLiteral = zitch_pattern.Green,
    TSURI = { gui = "underline" },
    TSVariable = zitch_pattern.Foreground,
    TSPunctDelimiter = zitch_pattern.Pink,
    TSPunctBracket = zitch_pattern.Foreground,
    TSPunctSpecial = zitch_pattern.Purple,
    TSConstant = zitch_pattern.Purple,
    TSConstBuiltin = zitch_pattern.Purple,
    TSConstMacro = zitch_pattern.Purple,
    TSString = zitch_pattern.Green,
    TSStringRegex = zitch_pattern.GreenBold,
    TSStringEscape = zitch_pattern.GreenBold,
    TSCharacter = zitch_pattern.Green,
    TSNumber = zitch_pattern.Green,
    TSBoolean = zitch_pattern.Green,
    TSFloat = zitch_pattern.Green,
    TSFunction = zitch_pattern.Orange,
    TSFuncBuiltin = zitch_pattern.Orange,
    TSFuncMacro = zitch_pattern.Orange,
    TSParameter = zitch_pattern.Foreground,
    TSParameterReference = zitch_pattern.Purple,
    TSMethod = zitch_pattern.OrangeBold,
    TSField = zitch_pattern.Pink,
    TSProperty = zitch_pattern.Pink,
    TSConstructor = zitch_pattern.Blue,
    TSAnnotation = zitch_pattern.Purple,
    -- TSAttribute = zitch_pattern.Red,
    TSNamespace = zitch_pattern.Purple,
    TSConditional = zitch_pattern.Purple,
    TSRepeat = zitch_pattern.Purple,
    TSLabel = zitch_pattern.Purple,
    TSOperator = zitch_pattern.Purple,
    TSKeyword = zitch_pattern.Purple,
    TSKeywordFunction = zitch_pattern.Orange,
    TSKeywordOperator = zitch_pattern.Purple,
    TSException = zitch_pattern.Purple,
    TSType = zitch_pattern.Blue,
    TSTypeBuiltin = zitch_pattern.Purple,
    TSInclude = zitch_pattern.Purple,
    TSVariableBuiltin = zitch_pattern.Purple,
    TSText = {},
    TSStrong = { gui = "bold" },
    TSEmphasis = { gui = "italic" },
    TSUnderline = { gui = "underline" },
    TSComment = zitch_pattern.Gray,
    TSStructure = zitch_pattern.Orange,
    TSTag = zitch_pattern.Purple,
    TSTagDelimiter = zitch_pattern.Foreground,
  }
end

return M