1
+ local collect = require (' github-theme.lib.collect' )
1
2
local config = require (' github-theme.config' )
2
3
local util = require (' github-theme.util' )
3
4
4
- --- @class gt.Colors
5
5
local M = {}
6
6
7
7
--- Setup Colors
8
- --- @return gt.ColorPalette
9
8
M .setup = function ()
10
9
local c = require (' github-theme.palette.' .. config .theme )()
11
10
c .none = ' NONE'
@@ -32,4 +31,55 @@ M.setup = function()
32
31
return c
33
32
end
34
33
34
+ -- TODO: Remove assignment after migration has been DONE
35
+ M .themes = {
36
+ [' github_dark' ] = ' g_dark' ,
37
+ [' github_dark_colorblind' ] = ' g_dark_colorblind' ,
38
+ [' github_dark_high_contrast' ] = ' g_dark_high_contrast' ,
39
+ [' github_dark_tritanopia' ] = ' g_dark_tritanopia' ,
40
+ [' github_light' ] = ' g_light' ,
41
+ [' github_light_colorblind' ] = ' g_light_colorblind' ,
42
+ [' github_light_high_contrast' ] = ' g_light_high_contrast' ,
43
+ [' github_light_tritanopia' ] = ' g_light_tritanopia' ,
44
+ }
45
+
46
+ local function override (color , ovr )
47
+ for key , value in pairs (ovr ) do
48
+ color [key ] = value
49
+ end
50
+ return color
51
+ end
52
+
53
+ function M .load (name )
54
+ local ovr = require (' github-theme.override' ).palettes
55
+
56
+ local function apply_ovr (key , palette )
57
+ return ovr [key ] and override (palette , ovr [key ]) or palette
58
+ end
59
+
60
+ if name then
61
+ local valid = collect .contains (M .themes , name )
62
+ local raw = valid and require (' github-theme.palette.' .. M .themes [name ])
63
+ or require (' github-theme.palette.' .. M .themes [config .theme ])
64
+ local palette = raw .palette
65
+ palette = apply_ovr (' all' , palette )
66
+ palette = apply_ovr (name , palette )
67
+ palette .meta = raw .meta
68
+ palette .generate_spec = raw .generate_spec
69
+ return palette
70
+ else
71
+ local result = {}
72
+ for _ , mod in ipairs (M .themes ) do
73
+ local raw = require (' github-theme.palette.' .. M .themes [mod ])
74
+ local palette = raw .palette
75
+ palette = apply_ovr (' all' , palette )
76
+ palette = apply_ovr (mod , palette )
77
+ palette .meta = raw .meta
78
+ palette .generate_spec = raw .generate_spec
79
+ result [mod ] = palette
80
+ end
81
+ return result
82
+ end
83
+ end
84
+
35
85
return M
0 commit comments