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

return {
  create = createTreeSitterGroup,
}
