summaryrefslogtreecommitdiff
path: root/hx/.config/helix/themes/tsoding.toml
blob: 573ab0644cfca9c62951503b03ca047273ef5b1f (plain)
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
"annotation" = { fg = "attr" }
"attribute" = { fg = "attr" }

"comment" = { fg = "comment", modifiers = ["italic"] }

"constant" = { fg = "muted2" }
"constant.character" = { fg = "fg" }
"constant.character.escape" = { fg = "fg" }
"constant.macro" = { fg = "yellow" }
"constructor" = { fg = "fg" }               

"definition" = { underline = { color = "muted" } }

"diagnostic" = { underline = { color = "linenr", style = "curl" } }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "warning", style = "curl" } }
"diagnostic.info" = { underline = { color = "info", style = "curl" } }
"diagnostic.hint" = { underline = { color = "muted", style = "curl" } }
"diagnostic.deprecated" = { underline = { color = "warning", style = "curl" } }
"diagnostic.unnecessary" = { fg = "linenr" }

"error" = { fg = "red" }
"warning" = { fg = "warning" }
"info" = { fg = "info" }
"hint" = { fg = "muted" }

"diff.plus" = { fg = "diff_add" }
"diff.minus" = { fg = "diff_delete" }
"diff.delta" = { fg = "diff_modified" }

"function" = { fg = "fg" }                                         
"function.builtin" = { fg = "fg" }           
"function.macro" = { fg = "muted2" }         

"keyword" = { fg = "keyword" }
"keyword.control" = { fg = "yellow", modifiers = ["bold"] }
"keyword.control.import" = { fg = "yellow", modifiers = ["italic"] }
"keyword.control.return" = { fg = "yellow" }
"keyword.control.exception" = { fg = "yellow" }
"keyword.operator" = { fg = "muted2" }

"label" = { fg = "fg" }

"markup.bold" = { fg = "fg", modifiers = ["bold"] }
"markup.heading" = { fg = "fg" }
"markup.italic" = { fg = "yellow", modifiers = ["italic"] }
"markup.link.text" = { fg = "comment" }
"markup.link.url" = { fg = "green", modifiers = ["underlined"] }
"markup.raw" = { fg = "green" }
"markup.strikethrough" = { fg = "fg_dim", modifiers = ["crossed_out"] }
"markup.list" = { fg = "fg" }
"markup.list.checked" = { fg = "green" }
"markup.list.unchecked" = { fg = "red" }
"markup.quote" = { fg = "comment" }

"module" = { fg = "namespace" }              # from semanticTokenColors.namespace (#919191)
"namespace" = { fg = "namespace" }

"operator" = { fg = "muted2" }               # was plain "fg" — same fix as keyword.operator above

"punctuation" = { fg = "muted2" }            # ⚠ was plain "fg". json defines this twice: #FFB459 then
                                              # #BFC5BF later — took the later one. This is a BIG one
                                              # for rust specifically, since punctuation (::, <>, (), ;)
                                              # is a huge fraction of visible tokens.
"punctuation.special" = { fg = "yellow" }

"special" = { fg = "yellow" }

"string" = { fg = "green" }
"string.regexp" = { fg = "green" }
"string.special" = { fg = "green" }
"string.symbol" = { fg = "fg" }

"tag" = { fg = "fg" }

"type" = { fg = "keyword" }                  # ⚠ genuinely ambiguous: json's tokenColors resolve type-ish
                                              # scopes to #EAE2B9 (final override), but semanticTokenColors.type
                                              # separately says #bfc5bf. These are two different rendering
                                              # layers in VSCode that happened to diverge. I went with the
                                              # tokenColors value since that's what actually paints without
                                              # semantic highlighting engaged. Swap to "muted2" if types
                                              # look wrong to you.
"type.builtin" = { fg = "keyword" }
"type.enum.variant" = { fg = "muted2" }

# --- ui.* section unchanged from your original — this is Helix-specific chrome,
#     not something the vscode json's `colors` block can inform ---
"ui.background" = { fg = "fg", bg = "bg" }
"ui.text" = { fg = "fg_dim" }
"ui.text.focus" = { fg = "white", bg = "bg_cursorline" }
"ui.text.directory" = { fg = "muted" }
"ui.virtual.whitespace" = { fg = "whitespace" }
"ui.virtual.ruler" = { bg = "bg_dark" }
"ui.virtual.jump-label" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
"ui.virtual.inlay-hint" = { fg = "linenr", modifiers = ["italic"] }
"ui.virtual.wrap" = { fg = "linenr" }
"ui.virtual.indent-guide" = { fg = "indent_guide" }
"ui.linenr" = { fg = "linenr" }
"ui.linenr.selected" = { fg = "yellow", modifiers = ["bold"] }
"ui.statusline" = { fg = "white", bg = "bg_statusline" }
"ui.statusline.inactive" = { fg = "fg_dim", bg = "bg" }
"ui.statusline.normal" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "black", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "black", bg = "muted", modifiers = ["bold"] }
"ui.bufferline" = { fg = "tab_inactive", bg = "bg_light" }
"ui.bufferline.active" = { fg = "white", bg = "bg" }
"ui.bufferline.background" = { bg = "bg_light" }
"ui.cursor" = { fg = "black", bg = "yellow" }
"ui.cursor.primary" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
"ui.cursor.match" = { fg = "yellow", bg = "selection" }
"ui.cursor.normal" = { fg = "black", bg = "fg" }
"ui.cursor.insert" = { fg = "black", bg = "white" }
"ui.cursor.select" = { fg = "black", bg = "muted" }
"ui.cursor.primary.normal" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
"ui.cursor.primary.insert" = { fg = "black", bg = "green", modifiers = ["bold"] }
"ui.cursor.primary.select" = { fg = "black", bg = "muted", modifiers = ["bold"] }
"ui.cursorline" = { bg = "bg_cursorline" }
"ui.cursorline.primary" = { bg = "bg_cursorline" }
"ui.selection" = { bg = "selection" }
"ui.selection.primary" = { bg = "selection" }
"ui.highlight" = { bg = "selection" }
"ui.help" = { fg = "fg", bg = "bg_light" }
"ui.popup" = { fg = "fg", bg = "bg_light" }
"ui.window" = { fg = "selection" }
"ui.menu" = { fg = "fg_dim", bg = "bg_light" }
"ui.menu.selected" = { fg = "white", bg = "selection", modifiers = ["bold"] }
"ui.picker.header.column" = { underline = { style = "line" } }
"ui.picker.header.column.active" = { modifiers = ["bold"], underline = { style = "line" } }

"variable" = { fg = "fg" }                   # no json scope — left as-is, deliberate design
"variable.builtin" = { fg = "muted2" }       # was "muted" (#949bb0) — json's variable.language final = #bfc5bf
"variable.other.member" = { fg = "fg" }
"variable.parameter" = { fg = "param", modifiers = ["italic"] }  # from semanticTokenColors.parameter

[palette]
bg            = "#181818"
bg_dark       = "#1e1e1e"
bg_light      = "#252526"
bg_statusline = "#181818"
bg_cursorline = "#1f1e1e"

fg            = "#e8e8e8"   # was #d4d4d4 — updated to json's default token color
fg_dim        = "#cccccc"
muted         = "#949bb0"   # kept for your existing ui.* uses
muted2        = "#bfc5bf"   # NEW — json's grey for punctuation/operator/type/constant
namespace     = "#919191"   # NEW — from semanticTokenColors.namespace
param         = "#e2e2e2"   # NEW — from semanticTokenColors.parameter
attr          = "#e8e8e8"   # NEW — no json source, using fg-ish tone; change if you want attrs to pop more
linenr        = "#b3b3b3"
tab_inactive  = "#8a8a8a"

comment       = "#ff9b21"
yellow        = "#ffdd33"
keyword       = "#EAE2B9"   # NEW — generic keyword/type color from json's final override
green         = "#79bf46"
red           = "#f44747"
warning       = "#ff4500"
info          = "#75beff"

indent_guide  = "#404040"
whitespace    = "#3a3a3a"
selection     = "#504945"

diff_add      = "#81b88b"
diff_delete   = "#c74e39"
diff_modified = "#e2c08d"

white         = "#ffffff"
black         = "#000000"