mirror of
https://github.com/stan220/godot-docs.git
synced 2026-09-08 17:28:58 +00:00
Use different color for control flow keywords in GDScript syntax highlighting
This matches the Godot script editor's behavior. Note that this does not apply to C# and shaders (which currently use GLSL highlighting), as it would require copying their respective highlighters to this repository and modifying them.
This commit is contained in:
+23
-10
@@ -85,6 +85,7 @@ class GDScriptLexer(RegexLexer):
|
|||||||
Operator,
|
Operator,
|
||||||
),
|
),
|
||||||
include("keywords"),
|
include("keywords"),
|
||||||
|
include("control_flow_keywords"),
|
||||||
(r"(func)((?:\s|\\\s)+)", bygroups(Keyword, Text), "funcname"),
|
(r"(func)((?:\s|\\\s)+)", bygroups(Keyword, Text), "funcname"),
|
||||||
(r"(class)((?:\s|\\\s)+)", bygroups(Keyword, Text), "classname"),
|
(r"(class)((?:\s|\\\s)+)", bygroups(Keyword, Text), "classname"),
|
||||||
include("builtins"),
|
include("builtins"),
|
||||||
@@ -155,16 +156,6 @@ class GDScriptLexer(RegexLexer):
|
|||||||
"enum",
|
"enum",
|
||||||
"static",
|
"static",
|
||||||
"var",
|
"var",
|
||||||
"break",
|
|
||||||
"continue",
|
|
||||||
"if",
|
|
||||||
"elif",
|
|
||||||
"else",
|
|
||||||
"for",
|
|
||||||
"pass",
|
|
||||||
"return",
|
|
||||||
"match",
|
|
||||||
"while",
|
|
||||||
"super",
|
"super",
|
||||||
),
|
),
|
||||||
suffix=r"\b",
|
suffix=r"\b",
|
||||||
@@ -172,6 +163,28 @@ class GDScriptLexer(RegexLexer):
|
|||||||
Keyword,
|
Keyword,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
"control_flow_keywords": [
|
||||||
|
(
|
||||||
|
words(
|
||||||
|
(
|
||||||
|
"break",
|
||||||
|
"continue",
|
||||||
|
"elif",
|
||||||
|
"else",
|
||||||
|
"if",
|
||||||
|
"for",
|
||||||
|
"match",
|
||||||
|
"pass",
|
||||||
|
"return",
|
||||||
|
"while",
|
||||||
|
),
|
||||||
|
suffix=r"\b",
|
||||||
|
),
|
||||||
|
# Custom control flow class used to give control flow keywords a different color,
|
||||||
|
# like in the Godot editor.
|
||||||
|
Keyword.ControlFlow,
|
||||||
|
),
|
||||||
|
],
|
||||||
"builtins": [
|
"builtins": [
|
||||||
(
|
(
|
||||||
words(
|
words(
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
--highlight-comment-color: #408090;
|
--highlight-comment-color: #408090;
|
||||||
--highlight-keyword-color: #007020;
|
--highlight-keyword-color: #007020;
|
||||||
--highlight-keyword2-color: #902000;
|
--highlight-keyword2-color: #902000;
|
||||||
|
--highlight-control-flow-keyword-color: #902060;
|
||||||
--highlight-number-color: #208050;
|
--highlight-number-color: #208050;
|
||||||
--highlight-decorator-color: #4070a0;
|
--highlight-decorator-color: #4070a0;
|
||||||
--highlight-type-color: #007020;
|
--highlight-type-color: #007020;
|
||||||
@@ -223,6 +224,7 @@
|
|||||||
--highlight-comment-color: rgba(204, 206, 211, 0.5);
|
--highlight-comment-color: rgba(204, 206, 211, 0.5);
|
||||||
--highlight-keyword-color: #ff7085;
|
--highlight-keyword-color: #ff7085;
|
||||||
--highlight-keyword2-color: #42ffc2;
|
--highlight-keyword2-color: #42ffc2;
|
||||||
|
--highlight-control-flow-keyword-color: #ff8ccc;
|
||||||
--highlight-number-color: #a1ffe0;
|
--highlight-number-color: #a1ffe0;
|
||||||
--highlight-decorator-color: #ffb373;
|
--highlight-decorator-color: #ffb373;
|
||||||
--highlight-type-color: #8effda;
|
--highlight-type-color: #8effda;
|
||||||
@@ -877,6 +879,10 @@ code,
|
|||||||
color: var(--highlight-keyword-color);
|
color: var(--highlight-keyword-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.highlight .k-ControlFlow /* Keyword.ControlFlow */ {
|
||||||
|
color: var(--highlight-control-flow-keyword-color);
|
||||||
|
}
|
||||||
|
|
||||||
.highlight .ch /* Comment.Hashbang */,
|
.highlight .ch /* Comment.Hashbang */,
|
||||||
.highlight .cp /* Comment.Preproc */ {
|
.highlight .cp /* Comment.Preproc */ {
|
||||||
color: var(--highlight-keyword2-color);
|
color: var(--highlight-keyword2-color);
|
||||||
|
|||||||
Reference in New Issue
Block a user