-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnvim-systemtheme.lua
110 lines (89 loc) · 2.59 KB
/
nvim-systemtheme.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
local M = {}
M.options = {
-- Syntax Groups
TSError = "RED",
TSPunctDelimiter = "FOREGROUND",
TSPunctBracket = "FOREGROUND",
TSPunctSpecial = "FOREGROUND",
TSConstant = "CYAN",
TSConstBuiltin = "CYAN",
TSConstMacro = "CYAN",
TSStringRegex = "GREEN",
TSString = "GREEN",
TSStringEscape = "CYAN",
TSCharacter = "CYAN",
TSNumber = "YELLOW_ALT",
TSBoolean = "YELLOW_ALT",
TSFloat = "YELLOW_ALT",
TSAnnotation = "YELLOW",
TSAttribute = "FOREGROUND",
TSNamespace = "MAGENTA",
-- Functions
TSFuncBuiltin = "BLUE",
TSFunction = "BLUE",
TSFuncMacro = "CYAN",
TSParameter = "FOREGROUND",
TSParameterReference = "FOREGROUND",
TSMethod = "CYAN",
TSField = "FOREGROUND",
TSProperty = "FOREGROUND",
TSConstructor = "MAGENTA",
-- Keywords
TSConditional = "MAGENTA",
TSRepeat = "MAGENTA",
TSLabel = "FOREGROUND",
TSKeyword = "MAGENTA",
TSKeywordFunction = "BLUE",
TSKeywordOperator = "FOREGROUND",
TSOperator = "FOREGROUND",
TSException = "FOREGROUND",
TSType = "FOREGROUND",
TSTypeBuiltin = "FOREGROUND",
TSStructure = "FOREGROUND",
TSInclude = "FOREGROUND",
-- Variables
TSVariable = "FOREGROUND",
TSVariableBuiltin = "FOREGROUND",
-- Text
TSText = "FOREGROUND",
TSStrong = "FOREGROUND",
TSEmphasis = "FOREGROUND",
TSUnderline = "FOREGROUND",
TSTitle = "FOREGROUND",
TSLiteral = "FOREGROUND",
TSURI = "FOREGROUND",
-- Tags
TSTag = "FOREGROUND",
TSTagDelimiter = "FOREGROUND",
}
local function highlight(highlight_group, settings)
if type(settings) ~= "table" then
vim.cmd(
"highlight " .. highlight_group
.. " guifg=" .. os.getenv(settings)
.. " guibg='none' gui='none'"
)
else
local fg = settings[1]
local bg = settings[2]
if fg ~= "none" then
fg = os.getenv(fg)
end
if bg ~= "none" then
bg = os.getenv(bg)
end
vim.cmd(
"highlight " .. highlight_group
.. " guifg=" .. fg
.. " guibg=" .. bg
.. " gui=" .. settings[3]
)
end
end
function M.setup(user_options)
M.options = vim.tbl_extend('force', M.options, user_options)
for key, value in pairs(M.options) do
highlight(key, value)
end
end
return M