local function get(p, config) local styles = config.styles local function st(style_opts) local result = {} if style_opts then for k, v in pairs(style_opts) do result[k] = v end end return result end return { Comment = vim.tbl_extend("force", { fg = p.fg_muted2 }, st(styles.comments)), Constant = { fg = p.gold }, String = { fg = p.lavender }, Character = { fg = p.lavender }, Number = { fg = p.gold }, Boolean = { fg = p.gold }, Float = { fg = p.gold }, Identifier = { fg = p.fg_bright }, Function = vim.tbl_extend("force", { fg = p.deep_lavender }, st(styles.functions)), Statement = vim.tbl_extend("force", { fg = p.coral }, st(styles.keywords)), Conditional = vim.tbl_extend("force", { fg = p.coral }, st(styles.conditionals)), Repeat = vim.tbl_extend("force", { fg = p.coral }, st(styles.loops)), Label = { fg = p.coral }, Operator = vim.tbl_extend("force", { fg = p.gold }, st(styles.operators)), Keyword = vim.tbl_extend("force", { fg = p.coral }, st(styles.keywords)), Exception = { fg = p.coral }, PreProc = { fg = p.coral }, Include = { fg = p.coral }, Define = { fg = p.coral }, Macro = { fg = p.coral }, PreCondit = { fg = p.coral }, Type = vim.tbl_extend("force", { fg = p.teal }, st(styles.types)), StorageClass = { fg = p.teal }, Structure = { fg = p.teal }, Typedef = { fg = p.teal }, Special = { fg = p.fg_bright }, SpecialChar = { fg = p.fg_bright }, Tag = { fg = p.teal }, Delimiter = { fg = p.fg_dim }, SpecialComment = { fg = p.fg_muted }, Underlined = { underline = true }, Bold = { bold = true }, Italic = { italic = true }, Error = { fg = p.coral }, Todo = { fg = p.gold, bg = p.bg }, } end return { get = get }