Skip to content

Commit 26543bb

Browse files
committed
Update to Text Forge new syntax colors feature
1 parent 9b7b300 commit 26543bb

10 files changed

Lines changed: 75 additions & 81 deletions

File tree

modes/css/mode.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
name="CSS"
44
description="CSS support for Text Forge (Web Modekit)"
55
author="Text Forge Team"
6-
version="1.0.0"
6+
version="1.1.0"
77
extensions=["css", "scss"]

modes/css/mode.gd

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
extends TextForgeMode
22

33
var keyword_colors: Dictionary[Color, Array] = {
4-
Color.hex(0xe68c8cff): [ "inherit", "initial", "unset", "revert" ],
5-
Color.hex(0xcca6ffff): [ "auto", "block", "inline", "flex", "grid", "none" ],
6-
Color.hex(0x99ccffff): [ "transparent", "currentColor" ],
7-
Color.hex(0xffcc99ff): [ "px", "em", "rem", "%", "vh", "vw", "vmin", "vmax", "ch", "ex", "cm", "mm", "in", "pt", "pc" ],
8-
Color.hex(0xccffccff): [ "left", "right", "top", "bottom", "center", "start", "end" ],
9-
Color.hex(0xff99ccff): [ "repeat", "no-repeat", "repeat-x", "repeat-y", "space", "round", "cover", "contain" ],
10-
Color.hex(0xb3b3ffff): [ "bold", "normal", "italic", "oblique", "small-caps", "uppercase", "lowercase", "capitalize" ],
11-
Color.hex(0xffccffff): [ "ease", "linear", "ease-in", "ease-out", "ease-in-out", "infinite", "forwards", "backwards", "alternate" ],
12-
Color.hex(0xd9b3ffff): [ "rotate", "scale", "skew", "translate", "rotateX", "rotateY", "translateX", "translateY" ],
13-
Color.hex(0xb3ffd9ff): [ "filter", "hue-rotate", "blur", "brightness", "contrast", "drop-shadow", "grayscale", "invert", "opacity", "saturate", "sepia" ],
14-
Color.hex(0xffe6ccff): [ "margin", "padding", "width", "height", "border", "border-radius", "box-shadow", "font-family", "background", "background-color", "transition", "animation", "animation-name", "animation-duration", "animation-iteration-count", "animation-direction", "animation-timing-function", "keyframes" ]
4+
U.get_syntax_color(U.SyntaxColors.BUILTIN): [ "word", "letter", "line", "spacing", "size", "text", "font", "family", "border", "radius", "box", "shadow", "margin", "padding", "width", "height", "border", "background", "color", "transition", "animation", "name", "duration", "iteration", "count", "direction", "timing", "function", "keyframes" ],
5+
U.get_syntax_color(U.SyntaxColors.KEYWORD_1): [ "inherit", "initial", "unset", "revert" ],
6+
U.get_syntax_color(U.SyntaxColors.KEYWORD_2): [ "repeat", "no-repeat", "repeat", "x", "y", "space", "round", "cover", "contain", "auto", "block", "inline", "flex", "grid", "none" ],
7+
U.get_syntax_color(U.SyntaxColors.KEYWORD_3): [ "px", "em", "rem", "%", "vh", "vw", "vmin", "vmax", "ch", "ex", "cm", "mm", "in", "pt", "pc" ],
8+
U.get_syntax_color(U.SyntaxColors.CUSTOM_2): [ "bold", "normal", "italic", "oblique", "small-caps", "uppercase", "lowercase", "capitalize" ],
9+
U.get_syntax_color(U.SyntaxColors.CUSTOM_3): [ "rotate", "scale", "skew", "translate", "rotateX", "rotateY", "translateX", "translateY" ],
10+
U.get_syntax_color(U.SyntaxColors.CUSTOM_5): [ "transparent", "currentColor" ],
11+
U.get_syntax_color(U.SyntaxColors.TYPE_1): [ "filter", "hue-rotate", "blur", "brightness", "contrast", "drop", "shadow", "grayscale", "invert", "opacity", "saturate", "sepia" ],
12+
U.get_syntax_color(U.SyntaxColors.TYPE_2): [ "ease", "linear", "in", "out", "infinite", "forwards", "backwards", "alternate" ],
13+
U.get_syntax_color(U.SyntaxColors.TYPE_3): [ "left", "right", "top", "bottom", "center", "start", "end" ],
1514
}
1615
var code_regions: Array[Array] = [
17-
[Color.hex(0xf2f2ccff), '"', '"', false],
18-
[Color.hex(0xf2f2ccff), "'", "'", false],
19-
[Color.hex(0xb3fff2ff), "/*", "*/", false],
16+
[U.get_syntax_color(U.SyntaxColors.STRING), '"', '"', false],
17+
[U.get_syntax_color(U.SyntaxColors.STRING), "'", "'", false],
18+
[U.get_syntax_color(U.SyntaxColors.COMMENT), "/*", "*/", false],
2019
]
2120

2221
func _initialize_mode() -> Error:
@@ -80,10 +79,10 @@ func _lint_file(text: String) -> Array[Dictionary]:
8079

8180
func _initialize_highlighter() -> void:
8281
syntax_highlighter = CodeHighlighter.new()
83-
syntax_highlighter.number_color = Color.hex(0xe6b380ff)
84-
syntax_highlighter.symbol_color = Color.hex(0x80ccffff)
85-
syntax_highlighter.function_color = Color.hex(0xffcc80ff)
86-
syntax_highlighter.member_variable_color = Color.hex(0xb3ffd9ff)
82+
syntax_highlighter.number_color = U.get_syntax_color(U.SyntaxColors.NUMBER)
83+
syntax_highlighter.symbol_color = U.get_syntax_color(U.SyntaxColors.SYMBOL)
84+
syntax_highlighter.function_color = U.get_syntax_color(U.SyntaxColors.FUNCTION)
85+
syntax_highlighter.member_variable_color = U.get_syntax_color(U.SyntaxColors.MEMBER)
8786
for color in keyword_colors:
8887
for keyword in keyword_colors[color]:
8988
syntax_highlighter.add_keyword_color(keyword, color)

modes/html/mode.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
name="HTML"
44
description="HTML support for Text Forge (Web Modekit)"
55
author="Text Forge Team"
6-
version="1.0.0"
6+
version="1.1.0"
77
extensions=["html", "htm"]

modes/html/mode.gd

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ const SELF_CLOSING_TAGS := [
66
]
77

88
var keyword_colors: Dictionary[Color, Array] = {
9-
Color.hex(0xffa6a6ff): ["html", "head", "body", "title", "meta", "link", "base", "style", "script"],
10-
Color.hex(0xccb3ffff): ["p", "br", "hr", "pre", "blockquote", "code", "kbd"],
11-
Color.hex(0x99ccffff): ["div", "span", "section", "article", "nav", "header", "footer", "main", "aside"],
12-
Color.hex(0xb3ffb3ff): ["ul", "ol", "li", "dl", "dt", "dd"],
13-
Color.hex(0xffcc80ff): ["h1", "h2", "h3", "h4", "h5", "h6"],
14-
Color.hex(0xffbfffff): ["form", "input", "textarea", "button", "label", "select", "option", "fieldset", "legend"],
15-
Color.hex(0xe6ff99ff): ["table", "thead", "tbody", "tfoot", "tr", "td", "th", "col", "colgroup", "caption"],
16-
Color.hex(0xd9e6ffff): ["img", "audio", "video", "source", "track", "iframe", "object", "embed"],
17-
Color.hex(0xb3d9f2ff): ["a", "details", "summary", "dialog", "menu", "menuitem"],
18-
Color.hex(0xd9f2ccff): ["href", "src", "alt", "id", "class", "type", "rel", "name", "value", "placeholder", "action", "method", "disabled", "checked", "selected"],
9+
U.get_syntax_color(U.SyntaxColors.KEYWORD_1): ["html", "head", "body", "title", "meta", "link", "base", "style", "script"],
10+
U.get_syntax_color(U.SyntaxColors.KEYWORD_3): ["h1", "h2", "h3", "h4", "h5", "h6"],
11+
U.get_syntax_color(U.SyntaxColors.BUILTIN): ["p", "br", "hr", "pre", "blockquote", "code", "kbd"],
12+
U.get_syntax_color(U.SyntaxColors.CUSTOM_2): ["form", "input", "textarea", "button", "label", "select", "option", "fieldset", "legend"],
13+
U.get_syntax_color(U.SyntaxColors.CUSTOM_5): ["div", "span", "section", "article", "nav", "header", "footer", "main", "aside"],
14+
U.get_syntax_color(U.SyntaxColors.TYPE_3): ["ul", "ol", "li", "dl", "dt", "dd"],
15+
U.get_syntax_color(U.SyntaxColors.CUSTOM_4): ["table", "thead", "tbody", "tfoot", "tr", "td", "th", "col", "colgroup", "caption"],
16+
U.get_syntax_color(U.SyntaxColors.TYPE_2): ["img", "audio", "video", "source", "track", "iframe", "object", "embed"],
17+
U.get_syntax_color(U.SyntaxColors.FUNCTION): ["a", "details", "summary", "dialog", "menu", "menuitem"],
18+
U.get_syntax_color(U.SyntaxColors.MEMBER): ["href", "src", "alt", "id", "class", "type", "rel", "name", "value", "placeholder", "action", "method", "disabled", "checked", "selected"],
1919
}
2020

2121
func _initialize_mode() -> Error:
@@ -118,16 +118,17 @@ func _lint_file(text: String) -> Array[Dictionary]:
118118

119119
func _initialize_highlighter() -> void:
120120
syntax_highlighter = CodeHighlighter.new()
121-
syntax_highlighter.number_color = Color.hex(0xffbf66ff)
122-
syntax_highlighter.symbol_color = Color.hex(0x99d9ffff)
123-
syntax_highlighter.function_color = Color.hex(0xffffffff)
124-
syntax_highlighter.member_variable_color = Color.hex(0xff99d9ff)
121+
syntax_highlighter.number_color = U.get_syntax_color(U.SyntaxColors.NUMBER)
122+
syntax_highlighter.symbol_color = U.get_syntax_color(U.SyntaxColors.SYMBOL)
123+
syntax_highlighter.function_color = Color.WHITE
124+
syntax_highlighter.member_variable_color = U.get_syntax_color(U.SyntaxColors.MEMBER)
125125
for color in keyword_colors:
126126
for keyword in keyword_colors[color]:
127127
syntax_highlighter.add_keyword_color(keyword, color)
128-
syntax_highlighter.add_color_region('"', '"', Color.hex(0xe6f2ffff), false)
129-
syntax_highlighter.add_color_region('<!--', '-->', Color.hex(0xb3e6ffff), false)
130-
syntax_highlighter.add_color_region('<!', '>', Color.hex(0xb3e6ffff), false)
128+
syntax_highlighter.add_color_region('"', '"', U.get_syntax_color(U.SyntaxColors.STRING), false)
129+
syntax_highlighter.add_color_region("'", "'", U.get_syntax_color(U.SyntaxColors.STRING), false)
130+
syntax_highlighter.add_color_region('<!--', '-->', U.get_syntax_color(U.SyntaxColors.COMMENT), false)
131+
syntax_highlighter.add_color_region('<!', '>', U.get_syntax_color(U.SyntaxColors.DOC_COMMENT), false)
131132

132133

133134
func _split_tags(line: String) -> PackedStringArray:

modes/javascript/mode.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
name="JavaScript"
44
description="JavaScript support for Text Forge (Web Modekit)"
55
author="Text Forge Team"
6-
version="1.0.0"
6+
version="1.1.0"
77
extensions=["js"]

modes/javascript/mode.gd

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,18 @@
11
extends TextForgeMode
22

33
var keyword_colors: Dictionary[Color, Array] = {
4-
Color.hex(0xd88c8cff): [ "var", "let", "const" ],
5-
Color.hex(0xb38cc4ff): [ "if", "else", "switch", "case", "default" ],
6-
Color.hex(0xc48c6bff): [ "for", "while", "do", "break", "continue" ],
7-
Color.hex(0x8cc4c4ff): [ "function", "return", "class", "extends", "constructor", "super" ],
8-
Color.hex(0x99b38cff): [ "true", "false", "null", "undefined" ],
9-
Color.hex(0xa38cc4ff): [ "typeof", "instanceof", "in", "new", "delete", "void" ],
10-
Color.hex(0x8cb3c4ff): [ "import", "export", "from", "as" ],
11-
Color.hex(0xc48ca3ff): [ "try", "catch", "finally", "throw" ],
12-
Color.hex(0xa3c4c4ff): [ "this", "await", "async", "yield", "with", "debugger" ]
4+
U.get_syntax_color(U.SyntaxColors.KEYWORD_1): [ "this", "import", "export", "from", "as", "typeof", "instanceof", "in", "new", "delete", "void", "var", "let", "const", "true", "false", "null", "undefined", "function", "class", "extends", "constructor", "super" ],
5+
U.get_syntax_color(U.SyntaxColors.KEYWORD_2): [ "if", "else", "switch", "case", "default", "for", "while", "do", "break", "continue", "return" ],
6+
U.get_syntax_color(U.SyntaxColors.KEYWORD_3): [ "try", "catch", "finally", "throw", "await", "async", "yield", "with", "debugger" ],
137
}
148

159
var code_regions: Array[Array] = [
16-
[Color.hex(0xf2e6ccff), '"', '"', false],
17-
[Color.hex(0xf2e6ccff), "'", "'", false],
18-
[Color.hex(0xf2e6ccff), "`", "`", false],
19-
[Color.hex(0x999999ff), "//", "", true],
20-
[Color.hex(0x999999ff), "/*", "*/", false],
21-
[Color.hex(0xbfbfbfff), "/**", "*/", false]
10+
[U.get_syntax_color(U.SyntaxColors.STRING), '"', '"', false],
11+
[U.get_syntax_color(U.SyntaxColors.STRING), "'", "'", false],
12+
[U.get_syntax_color(U.SyntaxColors.STRING), "`", "`", false],
13+
[U.get_syntax_color(U.SyntaxColors.COMMENT), "//", "", true],
14+
[U.get_syntax_color(U.SyntaxColors.COMMENT), "/*", "*/", false],
15+
[U.get_syntax_color(U.SyntaxColors.DOC_COMMENT), "/**", "*/", false]
2216
]
2317

2418
func _initialize_mode() -> Error:
@@ -75,10 +69,10 @@ func _lint_file(text: String) -> Array[Dictionary]:
7569

7670
func _initialize_highlighter() -> void:
7771
syntax_highlighter = CodeHighlighter.new()
78-
syntax_highlighter.number_color = Color.hex(0xcc6666ff)
79-
syntax_highlighter.symbol_color = Color.hex(0xcccc99ff)
80-
syntax_highlighter.function_color = Color.hex(0x99ccccff)
81-
syntax_highlighter.member_variable_color = Color.hex(0xb3d9b3ff)
72+
syntax_highlighter.number_color = U.get_syntax_color(U.SyntaxColors.NUMBER)
73+
syntax_highlighter.symbol_color = U.get_syntax_color(U.SyntaxColors.SYMBOL)
74+
syntax_highlighter.function_color = U.get_syntax_color(U.SyntaxColors.FUNCTION)
75+
syntax_highlighter.member_variable_color = U.get_syntax_color(U.SyntaxColors.MEMBER)
8276
for color in keyword_colors:
8377
for keyword in keyword_colors[color]:
8478
syntax_highlighter.add_keyword_color(keyword, color)

modes/json/mode.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
name="JSON"
44
description="JSON (JavaScript Object Notation) support for Text Forge (Web Modekit)"
55
author="Text Forge Team"
6-
version="1.0.0"
6+
version="1.1.0"
77
extensions=["json"]

modes/json/mode.gd

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
extends TextForgeMode
22

33
var keyword_colors: Dictionary[Color, Array] = {
4-
Color.hex(0xbe8cd8ff): [ "true", "false", "null"],
4+
U.get_syntax_color(U.SyntaxColors.KEYWORD_1): [ "true", "false", "null"],
55
}
66

77
var code_regions: Array[Array] = [
8-
[Color.hex(0xf2e6ccff), '"', '"', false],
9-
[Color.hex(0xf2e6ccff), "'", "'", false],
8+
[U.get_syntax_color(U.SyntaxColors.STRING), '"', '"', false],
9+
[U.get_syntax_color(U.SyntaxColors.STRING), "'", "'", false],
1010
]
1111

1212
func _initialize_mode() -> Error:
@@ -43,10 +43,10 @@ func _auto_format(text: String) -> String:
4343

4444
func _initialize_highlighter() -> void:
4545
syntax_highlighter = CodeHighlighter.new()
46-
syntax_highlighter.number_color = Color.SKY_BLUE
47-
syntax_highlighter.symbol_color = Color.PALE_GOLDENROD
48-
syntax_highlighter.function_color = Color.WHITE
49-
syntax_highlighter.member_variable_color = Color.WHITE
46+
syntax_highlighter.number_color = U.get_syntax_color(U.SyntaxColors.NUMBER)
47+
syntax_highlighter.symbol_color = U.get_syntax_color(U.SyntaxColors.SYMBOL)
48+
syntax_highlighter.function_color = U.get_syntax_color(U.SyntaxColors.DEFAULT)
49+
syntax_highlighter.member_variable_color = U.get_syntax_color(U.SyntaxColors.DEFAULT)
5050
for color in keyword_colors:
5151
for keyword in keyword_colors[color]:
5252
syntax_highlighter.add_keyword_color(keyword, color)

modes/markdown/highlighter.gd

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ func _get_line_syntax_highlighting(line: int) -> Dictionary:
1212
var color: Color = span["color"]
1313

1414
if start > last_end:
15-
highlight_map[last_end] = { "color": Color.WHITE }
15+
highlight_map[last_end] = { "color": U.get_syntax_color(U.SyntaxColors.DEFAULT) }
1616

1717
highlight_map[start] = { "color": color }
18-
highlight_map[end] = {"color": Color.WHITE}
18+
highlight_map[end] = {"color": U.get_syntax_color(U.SyntaxColors.DEFAULT)}
1919
last_end = end
2020

2121
return highlight_map
@@ -26,19 +26,19 @@ func _generate_spans(line: int) -> Array[Dictionary]:
2626
var spans: Array[Dictionary] = []
2727

2828
var patterns := [
29-
{ "regex": r"^>\s?.*", "color": Color.GRAY },
30-
{ "regex": r"^(#{1,6})\s+.*", "color": Color.CORAL },
31-
{ "regex": r"^(?:-{3,}|\*{3,})\s*$", "color": Color.MEDIUM_VIOLET_RED },
32-
{ "regex": r"\*\*\*(.+?)\*\*\*", "color": Color.RED },
33-
{ "regex": r"\*\*(.+?)\*\*", "color": Color.ORANGE_RED },
34-
{ "regex": r"\*(.+?)\*", "color": Color.INDIAN_RED },
35-
{ "regex": r"`(.+?)`", "color": Color.LIGHT_SLATE_GRAY },
36-
{ "regex": r"~~(.+?)~~", "color": Color.WEB_GRAY },
37-
{ "regex": r"!\[([^\]]*)\]\(([^)]+)\)", "color": Color.LIGHT_GREEN },
38-
{ "regex": r"\[([^\]]*)\]\(([^)]+)\)", "color": Color.LIGHT_SEA_GREEN },
39-
{ "regex": r"-\s\[(x|X)\]\s", "color": Color.SPRING_GREEN },
40-
{ "regex": r"-\s\[\s\]\s(.*)", "color": Color.TAN },
41-
{ "regex": r"https?://[^\s\)]+", "color": Color.LIGHT_SEA_GREEN }
29+
{ "regex": r"^>\s?.*", "color": U.get_syntax_color(U.SyntaxColors.COMMENT) },
30+
{ "regex": r"^(#{1,6})\s+.*", "color": U.get_syntax_color(U.SyntaxColors.KEYWORD_3) },
31+
{ "regex": r"^(?:-{3,}|\*{3,})\s*$", "color": U.get_syntax_color(U.SyntaxColors.KEYWORD_2) },
32+
{ "regex": r"\*\*\*(.+?)\*\*\*", "color": U.get_syntax_color(U.SyntaxColors.KEYWORD_1) },
33+
{ "regex": r"\*\*(.+?)\*\*", "color": U.get_syntax_color(U.SyntaxColors.KEYWORD_1) },
34+
{ "regex": r"\*(.+?)\*", "color": U.get_syntax_color(U.SyntaxColors.KEYWORD_1) },
35+
{ "regex": r"`(.+?)`", "color": U.get_syntax_color(U.SyntaxColors.STRING) },
36+
{ "regex": r"~~(.+?)~~", "color": U.get_syntax_color(U.SyntaxColors.COMMENT) },
37+
{ "regex": r"!\[([^\]]*)\]\(([^)]+)\)", "color": U.get_syntax_color(U.SyntaxColors.CUSTOM_5) },
38+
{ "regex": r"\[([^\]]*)\]\(([^)]+)\)", "color": U.get_syntax_color(U.SyntaxColors.FUNCTION_DEF) },
39+
{ "regex": r"-\s\[(x|X)\]\s", "color": U.get_syntax_color(U.SyntaxColors.TYPE_1) },
40+
{ "regex": r"-\s\[\s\]\s(.*)", "color": U.get_syntax_color(U.SyntaxColors.TYPE_3) },
41+
{ "regex": r"https?://[^\s\)]+", "color": U.get_syntax_color(U.SyntaxColors.FUNCTION_DEF) }
4242
]
4343

4444
for pattern in patterns:

modes/markdown/mode.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
name="Markdown"
44
description="Markdown support for Text Forge (Web Modekit)"
55
author="Text Forge Team"
6-
version="1.0.0"
6+
version="1.1.0"
77
extensions=["md", "markdown", "mdown", "mkd", "mkdn"]

0 commit comments

Comments
 (0)