-- Generated by Matugen

require('base16-colorscheme').setup({
  base00 = "{{colors.background.default.hex}}",
  base01 = "{{colors.surface_container_lowest.default.hex}}",
  base02 = "{{colors.surface_container_low.default.hex}}",
  base03 = "{{colors.outline_variant.default.hex}}",
  base04 = "{{colors.on_surface_variant.default.hex}}",
  base05 = "{{colors.on_surface.default.hex}}",
  base06 = "{{colors.inverse_on_surface.default.hex}}",
  base07 = "{{colors.surface_bright.default.hex}}",

  base08 = "{{colors.tertiary.default.hex | lighten: -5}}",
  base09 = "{{colors.tertiary.default.hex}}",
  base0A = "{{colors.secondary.default.hex}}",
  base0B = "{{colors.primary.default.hex}}",
  base0C = "{{colors.tertiary_container.default.hex}}",
  base0D = "{{colors.primary_container.default.hex}}",
  base0E = "{{colors.secondary_container.default.hex}}",
  base0F = "{{colors.secondary.default.hex | lighten: -10}}",
})


-- We first theme base16, but we also need to fix some other colors that don't
-- contrast well by default

-- Helper function to set multiple highlight groups at once
local function set_hl_mutliple(groups, value)
  for _, v in pairs(groups) do
    vim.api.nvim_set_hl(0, v, value)
  end
end

-- Make selected text stand out more
vim.api.nvim_set_hl(0, 'Visual', {
  bg = '{{colors.primary_container.default.hex}}',
  fg = '{{colors.on_primary_container.default.hex}}', -- normal text contrast
})

-- Make "string" text contrast better
set_hl_mutliple({ 'String', 'TSString' }, {
  fg = '{{colors.tertiary.default.hex | lighten: -15.0 }}',
})

-- Grey out comments
set_hl_mutliple({ 'TSComment', 'Comment' }, {
  fg = '{{colors.outline.default.hex}}',
  italic = true,
})

-- Color in other highlight groups as you see fit!

set_hl_mutliple({ 'TSMethod', 'Method' }, {
  fg = '{{colors.tertiary.default.hex}}',
})


set_hl_mutliple({ 'TSFunction', 'Function' }, {
  fg = '{{colors.secondary.default.hex}}',
})

set_hl_mutliple({ 'Keyword', 'TSKeyword', 'TSKeywordFunction', 'TSRepeat' }, {
  fg = '{{colors.inverse_primary.default.hex}}',
})
