this repo has no description
1-- vim: set fdm=marker:
2-- TODO port work config changes?
3
4local Color = require("colorbuddy.init").Color
5local Group = require("colorbuddy.init").Group
6local c = require("colorbuddy.init").colors
7local g = require("colorbuddy.init").groups
8local s = require("colorbuddy.init").styles
9
10local my_colors = {
11 -- Syntax elements
12 constant = '#E5786D',
13 namespace = '#E5786D',
14 statement = '#88B8F6',
15 operator = '#88B8F6',
16 identifier = '#E3E0D7',
17 func = '#CAE682',
18 type = '#D4D987',
19 special = '#EADEAD',
20 string = '#95E454',
21 escape = '#D787FF',
22 character = '#E5786D',
23
24 -- Diffing
25 diff_add = '#006600',
26 diff_delete = '#880000',
27 diff_change = '#444400',
28 sign_add = '#33cc33',
29 sign_change = '#cccc33',
30 sign_change_delete = '#ee9933',
31 sign_delete = '#cc3333',
32 sign_delete_first_line = '#cc3333',
33
34 -- Misc highlight
35 comment = '#9C998E',
36 non_text = '#6e696c',
37 bright_text = '#ffffd7',
38
39 -- UI
40 search = '#D787FF',
41 search_bg = '#636066',
42 fold = '#E3E0D7', -- norm, for now
43 fold_bg = '#3A4046',
44 match_paren = '#EAE788',
45 match_paren_bg = '#857B6F',
46 visual_bg = '#554D4B',
47
48 bg_accent = '#1C1C1C',
49 norm_accent = '#9C998E',
50 main_bg = '#242424',
51 norm = '#E3E0D7',
52 bg_very_subtle = '#303030',
53 bg_more_subtle = '#3a3a3a',
54 bg_subtle = '#444444',
55
56 mid_gray = '#838086',
57
58 -- LSP and diagnostics
59 annotation = '#00bbbb',
60 warning = '#E7ED30',
61 error = '#FF444A',
62 todo = '#D4D987',
63
64 -- TODO
65 note = '#00FF00',
66 note_bg = '#0000FF',
67
68 unknown = '#FF2026',
69}
70
71for key, value in pairs(my_colors) do
72 Color.new(key, value)
73end
74
75-- General {{{1
76Group.new("Normal", c.norm, c.main_bg)
77Group.new("Cursor", c.main_bg, c.norm)
78Group.new("Visual", c.none, c.visual_bg)
79Group.new("VisualNOS", c.none, c.bg_very_subtle)
80Group.new("Search", c.search, c.search_bg)
81Group.new("Folded", c.fold, c.fold_bg)
82Group.new('VertSplit', c.norm_accent, c.bg_accent)
83Group.new("LineNr", c.norm_accent, c.bg_accent, s.none)
84Group.new("CursorLine", c.none, c.bg_very_subtle, s.none)
85Group.new("CursorColumn", c.none, c.bg_very_subtle, s.none)
86Group.new("ColorColumn", c.none, c.error, s.none)
87Group.new("MatchParen", c.match_paren, c.match_paren_bg, s.bold)
88Group.new("Title", c.bright_text, c.none, s.bold)
89
90-- Pmenu (and pmenu scrollbar) {{{1
91Group.new("Pmenu", c.norm, c.bg_accent, s.none)
92Group.new("PmenuSel", c.norm, c.bg_very_subtle, s.bold)
93--Group.new("PmenuSbar", c.norm, c.bg_subtle, s.none)
94--Group.new("PmenuThumb", c.norm, c.bg_subtle, s.none)
95
96-- Diff {{{1
97Group.new("DiffAdd", c.none, c.diff_add)
98Group.new("DiffDelete", c.none, c.diff_delete)
99Group.new("DiffChange", c.none, c.diff_change)
100Group.new("DiffText", c.none, c.diff_change, s.underline+s.bold)
101
102-- Unsure why I have to specify the bg here,
103-- seems the default uses the diff line color?
104Group.new("SignAdd", c.sign_add, c.bg_accent, s.none)
105Group.new("SignChange", c.sign_change, c.bg_accent, s.none)
106Group.new("SignChangeDelete", c.sign_change_delete, c.bg_accent, s.none)
107Group.new("SignDelete", c.sign_delete, c.bg_accent, s.none)
108Group.new("SignDeleteFirstLine", c.sign_delete_first_line, c.bg_accent, s.none)
109
110Group.link("SignifySignAdd", g.SignAdd)
111Group.link("SignifySignChange", g.SignChange)
112Group.link("SignifySignChangeDelete", g.SignChangeDelete)
113Group.link("SignifySignDelete", g.SignDelete)
114Group.link("SignifySignDeleteFirstLine", g.SignDeleteFirstLine)
115
116Group.link("GitGutterAdd", g.SignAdd)
117Group.link("GitGutterDelete", g.SignDelete)
118Group.link("GitGutterChange", g.SignChange)
119Group.link("GitGutterChangeDelete", g.SignChangeDelete)
120
121-- Misc {{{1
122Group.new("SpecialKey", c.mid_gray, c.none, s.none)
123Group.new("Underlined", c.none, c.none, s.underline)
124Group.new("Ignore", c.main_bg, c.none, s.none)
125
126Group.new("Error", c.error, c.none, s.none)
127Group.new("Warning", c.warning, c.none, s.none)
128Group.new("Hint", c.annotation, c.none, s.none)
129Group.new("Info", c.annotation, c.none, s.none)
130
131Group.new("ErrorMsg", c.error, c.none, s.none)
132Group.new("WarningMsg", c.warning, c.none, s.none)
133Group.new("MoreMsg", c.mid_gray, c.none, s.none)
134Group.link("ModeMsg", g.MoreMsg)
135
136Group.new("NonText", c.non_text, c.none, s.none)
137Group.new("Note", c.none, c.none, s.bold) -- e.g. TODO and FIXME
138
139-- ? {{{1
140--Group.new("Directory", c.dark_blue, c.none, s.none)
141--Group.new("IncSearch", c.light_black, c.yellow, s.none)
142--Group.new("CursorLineNr", c.purple, c.bg_very_subtle, s.none)
143--Group.new("Question", c.unknown, c.none, s.none)
144--Group.new("WildMenu", c.main_bg, c.norm, s.none)
145--Group.new("Folded", c.medium_gray, c.none, s.none)
146
147Group.new("SignColumn", c.none, c.bg_accent, s.none)
148Group.new("FoldColumn", c.mid_gray, c.bg_accent, s.none)
149
150--Group.new("TabLine", c.norm, c.bg_very_subtle, s.none)
151--Group.new("TabLineSel", c.purple, c.bg_subtle, s.bold)
152--Group.new("TabLineFill", c.norm, c.bg_very_subtle, s.none)
153
154--Group.new("MatchParen", c.norm, c.bg_subtle, s.none)
155--Group.new("qfLineNr", c.medium_gray, c.none, s.none)
156--Group.new("htmlH1", c.norm, c.bg, s.none)
157--Group.new("htmlH2", c.norm, c.bg, s.none)
158--Group.new("htmlH3", c.norm, c.bg, s.none)
159--Group.new("htmlH4", c.norm, c.bg, s.none)
160--Group.new("htmlH5", c.norm, c.bg, s.none)
161--Group.new("htmlH6", c.norm, c.bg, s.none)
162
163-- Syntax - Main groups {{{1
164Group.new("Statement", c.statement, c.none, s.none)
165Group.link("Keyword", g.Statement)
166Group.link("Conditional", g.Statement)
167Group.link("Repeat", g.Statement)
168Group.link("Label", g.Statement)
169Group.link("Keyword", g.Statement)
170Group.link("Exception", g.Statement)
171
172Group.new("Constant", c.constant, c.none, s.none)
173Group.link("Number", g.Constant)
174Group.link("Boolean", g.Constant)
175Group.link("Float", g.Constant)
176
177Group.link("PreProc", g.Constant)
178Group.link("Include", g.PreProc)
179Group.link("Define", g.PreProc)
180Group.link("Macro", g.PreProc)
181Group.link("PreCondit", g.PreProc)
182
183Group.new("Identifier", c.identifier, c.none, s.none)
184Group.new("Function", c.func, c.none, s.none)
185
186Group.new("Type", c.type, c.none, s.none)
187Group.link("StorageClass", g.Type)
188Group.link("Structure", g.Type)
189Group.link("Typedef", g.Type)
190
191Group.new("Special", c.special, c.none, s.none)
192Group.link("SpecialChar", g.Special)
193Group.link("Tag", g.Special)
194Group.link("Delimiter", g.Special)
195Group.link("SpecialComment", g.Special)
196Group.link("Debug", g.Special)
197
198Group.new("String", c.string, c.none)
199Group.new("Character", c.character, c.none)
200Group.new("StringEscape", c.escape, c.none)
201--Group.link("Character", g.String)
202
203Group.new("Comment", c.comment, c.none)
204Group.new("Operator", c.operator, c.none)
205Group.new("Todo", c.main_bg, c.todo)
206
207Group.new("Noop", c.norm_accent, c.none, s.none)
208Group.link("CocFadeOut", g.Noop)
209
210Group.new("Annotation", c.annotation, c.none)
211Group.link("LspInlayHint", g.NonText)
212Group.link("CocInlayHint", g.NonText)
213Group.link("DiagnosticHint", g.NonText)
214
215Group.link("DiagnosticSignHint", g.Hint)
216Group.link("DiagnosticSignInfo", g.Info)
217Group.link("DiagnosticSignWarn", g.Warning)
218Group.link("DiagnosticSignError", g.Error)
219Group.link("DiagnosticHint", g.Hint)
220Group.link("DiagnosticInfo", g.Info)
221Group.link("DiagnosticWarn", g.Warning)
222Group.link("DiagnosticError", g.Error)
223Group.link("DiagnosticUnnecessary", g.NonText)
224
225-- Syntax - Treesitter {{{1
226Group.new("UnknownThing", c.norm, c.unknown)
227
228-- Structured following:
229-- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md#highlights
230
231-- Misc {{{2
232
233-- @errors is TS errors. Wildly noisy if you enable it.
234--Group.link("@error", g.ErrorMsg) -- syntax/parser errors
235Group.link("@comment", g.Comment) -- line and block comments
236--Group.link("@none", g.UnknownThing) -- completely disable the highlight
237--Group.link("@preproc", g.UnknownThing) -- various preprocessor directives & shebangs
238--Group.link("@define", g.UnknownThing) -- preprocessor definition directives
239Group.link("@operator", g.Operator) -- symbolic operators (e.g. `+` / `*`)
240
241-- Punctuation {{{2
242Group.link("@punctuation.delimiter", g.Special) -- delimiters (e.g. `;` / `.` / `,`)
243Group.link("@punctuation.bracket", g.Special) -- brackets (e.g. `()` / `{}` / `[]`)
244Group.link("@punctuation.special", g.Special) -- special symbols (e.g. `{}` in string interpolation)
245
246-- Literals {{{2
247Group.link("@string", g.String) -- string literals
248Group.link("@string.regex", g.String) -- regular expressions
249Group.link("@string.escape", g.StringEscape) -- escape sequences
250Group.link("@string.special", g.String) -- other special strings (e.g. dates)
251
252Group.link("@character", g.Character) -- character literals
253Group.link("@character.special", g.Character) -- special characters (e.g. wildcards)
254
255Group.link("@boolean", g.Boolean) -- boolean literals
256Group.link("@number", g.Number) -- numeric literals
257Group.link("@float", g.Float) -- floating-point number literals
258
259-- Functions {{{2
260Group.link("@function", g.Function) -- function definitions
261Group.link("@function.builtin", g.Function) -- built-in functions
262--Group.link("@function.call", g.UnknownThing) -- function calls
263Group.link("@function.macro", g.Function) -- preprocessor macros
264
265Group.link("@method", g.Function) -- method definitions
266-- Group.link("@method.call", g.UnknownThing) -- method calls
267
268Group.link("@constructor", g.Function) -- constructor calls and definitions
269Group.link("@parameter", g.Normal) -- parameters of a function
270
271-- Keywords {{{2
272Group.link("@keyword", g.Keyword) -- various keywords
273Group.link("@keyword.function", g.Keyword) -- keywords that define a function (e.g. `func` in Go, `def` in Python)
274Group.link("@keyword.operator", g.Keyword) -- operators that are English words (e.g. `and` / `or`)
275Group.link("@keyword.return", g.Keyword) -- keywords like `return` and `yield`
276
277Group.link("@conditional", g.Conditional) -- keywords related to conditionals (e.g. `if` / `else`)
278Group.link("@repeat", g.Repeat) -- keywords related to loops (e.g. `for` / `while`)
279--Group.link("@debug", g.UnknownThing) -- keywords related to debugging
280Group.link("@label", g.Label) -- GOTO and other labels (e.g. `label:` in C)
281Group.link("@include", g.Include) -- keywords for including modules (e.g. `import` / `from` in Python)
282Group.link("@exception", g.Exception) -- keywords related to exceptions (e.g. `throw` / `catch`)
283
284-- Types {{{2
285Group.link("@type", g.Type) -- type or class definitions and annotations
286Group.link("@type.builtin", g.Type) -- built-in types
287--Group.link("@type.definition", g.UnknownThing) -- type definitions (e.g. `typedef` in C)
288--Group.link("@type.qualifier", g.UnknownThing) -- type qualifiers (e.g. `const`)
289
290--Group.link("@storageclass", g.UnknownThing) -- visibility/life-time modifiers
291--Group.link("@storageclass.lifetime", g.UnknownThing) -- life-time modifiers (e.g. `static`)
292--Group.link("@attribute", g.UnknownThing) -- attribute annotations (e.g. Python decorators)
293--Group.link("@field", g.UnknownThing) -- object and struct fields
294Group.link("@property", g.Identifier) -- similar to `@field`
295
296-- Identifiers {{{2
297Group.link("@variable", g.Identifier) -- various variable names
298--Group.link("@variable.builtin", g.UnknownThing) -- built-in variable names (e.g. `this`)
299
300Group.link("@constant", g.Constant) -- constant identifiers
301--Group.link("@constant.builtin", g.UnknownThing) -- built-in constant values
302--Group.link("@constant.macro", g.UnknownThing) -- constants defined by the preprocessor
303
304Group.new("@namespace", c.namespace, c.none) -- modules or namespaces
305Group.link("@symbol", g.Special) -- symbols or atoms
306
307-- Text {{{2
308Group.link("@text", g.Normal) -- non-structured text
309Group.link("@text.strong", g.Normal) -- bold text
310Group.link("@text.emphasis", g.Normal) -- text with emphasis
311Group.link("@text.underline", g.Normal) -- underlined text
312Group.link("@text.strike", g.Normal) -- strikethrough text
313Group.link("@text.title", g.Normal) -- text that is part of a title
314Group.link("@text.literal", g.Normal) -- literal or verbatim text
315Group.link("@text.uri", g.UnknownThing) -- URIs (e.g. hyperlinks)
316Group.link("@text.math", g.UnknownThing) -- math environments (e.g. `$ ... $` in LaTeX)
317Group.link("@text.environment", g.UnknownThing) -- text environments of markup languages
318Group.link("@text.environment.name", g.UnknownThing) -- text indicating the type of an environment
319Group.link("@text.reference", g.Normal) -- text references, footnotes, citations, etc.
320
321
322-- I think the defaults are fine here?
323-- Group.link("@text.todo", g.TODO) -- todo notes
324Group.link("@text.note", g.Note) -- info notes
325Group.link("@text.warning", g.Warning) -- warning notes
326Group.link("@text.danger", g.Error) -- danger/error notes
327
328Group.link("@text.diff.add", g.DiffAdd) -- added text (for diff files)
329Group.link("@text.diff.delete", g.DiffDelete) -- deleted text (for diff files)
330
331-- Tags {{{2
332Group.link("@tag", g.Special) -- XML tag names
333Group.link("@tag.attribute", g.Special) -- XML tag attributes
334Group.link("@tag.delimiter", g.Special) -- XML tag delimiters
335
336-- Conceal {{{2
337--Group.link("@conceal", g.UnknownThing) -- for captures that are only used for concealing
338
339-- Spell {{{2
340--Group.link("@spell", g.UnknownThing) -- for defining regions to be spellchecked
341
342-- Non-standard
343-- @variable.global
344
345-------------------------------------
346
347-- Undocumented or invalid?
348Group.link("@annotation", g.UnknownThing)
349--Group.link("@parameter.reference", g.UnknownThing)
350
351Group.new("TODO", c.none, c.none) -- what even set this?
352
353-- TOSORT {{{1
354Group.new("WombatGreen", c.type, c.none, s.none)
355
356Group.link("NoiceCmdlineIcon", g.Normal) -- cmdline icon
357Group.link("NoiceCmdlinePopupBorder", g.Normal) -- cmdline border
358Group.link("NoiceCmdlineIconSearch", g.WombatGreen) -- search icon
359Group.link("NoiceCmdlinePopupBorderSearch", g.WombatGreen) -- search border
360
361Group.new('NormalFloat', c.norm_accent, c.bg_accent)
362
363Group.new("NoicePopupmenu", c.norm, c.error, s.none)
364
365Group.new("IblIndent", c.bg_more_subtle, c.none, s.none)
366Group.new("IblScope", c.norm_accent, c.none, s.none)