Merge pull request #62433 from KoBeWi/🌈
This commit is contained in:
commit
ea3d355f0a
@ -55,7 +55,9 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
|
|||||||
bool in_function_args = false;
|
bool in_function_args = false;
|
||||||
bool in_member_variable = false;
|
bool in_member_variable = false;
|
||||||
bool in_node_path = false;
|
bool in_node_path = false;
|
||||||
|
bool in_node_ref = false;
|
||||||
bool in_annotation = false;
|
bool in_annotation = false;
|
||||||
|
bool in_string_name = false;
|
||||||
bool is_hex_notation = false;
|
bool is_hex_notation = false;
|
||||||
bool is_bin_notation = false;
|
bool is_bin_notation = false;
|
||||||
bool expect_type = false;
|
bool expect_type = false;
|
||||||
@ -165,6 +167,12 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
|
|||||||
if (in_node_path && (color_regions[in_region].start_key == "\"" || color_regions[in_region].start_key == "\'")) {
|
if (in_node_path && (color_regions[in_region].start_key == "\"" || color_regions[in_region].start_key == "\'")) {
|
||||||
region_color = node_path_color;
|
region_color = node_path_color;
|
||||||
}
|
}
|
||||||
|
if (in_node_ref && (color_regions[in_region].start_key == "\"" || color_regions[in_region].start_key == "\'")) {
|
||||||
|
region_color = node_ref_color;
|
||||||
|
}
|
||||||
|
if (in_string_name && (color_regions[in_region].start_key == "\"" || color_regions[in_region].start_key == "\'")) {
|
||||||
|
region_color = string_name_color;
|
||||||
|
}
|
||||||
|
|
||||||
prev_color = region_color;
|
prev_color = region_color;
|
||||||
highlighter_info["color"] = region_color;
|
highlighter_info["color"] = region_color;
|
||||||
@ -387,24 +395,42 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
|
|||||||
in_member_variable = false;
|
in_member_variable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!in_node_path && in_region == -1 && (str[j] == '$' || str[j] == '%')) {
|
if (!in_node_path && in_region == -1 && (str[j] == '^')) {
|
||||||
in_node_path = true;
|
in_node_path = true;
|
||||||
} else if (in_region != -1 || (is_a_symbol && str[j] != '/' && str[j] != '%')) {
|
} else if (in_region != -1 || (is_a_symbol && str[j] != '/' && str[j] != '%')) {
|
||||||
in_node_path = false;
|
in_node_path = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!in_node_ref && in_region == -1 && (str[j] == '$' || str[j] == '%')) {
|
||||||
|
in_node_ref = true;
|
||||||
|
} else if (in_region != -1 || (is_a_symbol && str[j] != '/' && str[j] != '%')) {
|
||||||
|
in_node_ref = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!in_annotation && in_region == -1 && str[j] == '@') {
|
if (!in_annotation && in_region == -1 && str[j] == '@') {
|
||||||
in_annotation = true;
|
in_annotation = true;
|
||||||
} else if (in_region != -1 || is_a_symbol) {
|
} else if (in_region != -1 || is_a_symbol) {
|
||||||
in_annotation = false;
|
in_annotation = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!in_string_name && in_region == -1 && str[j] == '&') {
|
||||||
|
in_string_name = true;
|
||||||
|
} else if (in_region != -1 || is_a_symbol) {
|
||||||
|
in_string_name = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (in_node_path) {
|
if (in_node_path) {
|
||||||
next_type = NODE_PATH;
|
next_type = NODE_PATH;
|
||||||
color = node_path_color;
|
color = node_path_color;
|
||||||
|
} else if (in_node_ref) {
|
||||||
|
next_type = NODE_REF;
|
||||||
|
color = node_ref_color;
|
||||||
} else if (in_annotation) {
|
} else if (in_annotation) {
|
||||||
next_type = ANNOTATION;
|
next_type = ANNOTATION;
|
||||||
color = annotation_color;
|
color = annotation_color;
|
||||||
|
} else if (in_string_name) {
|
||||||
|
next_type = STRING_NAME;
|
||||||
|
color = string_name_color;
|
||||||
} else if (in_keyword) {
|
} else if (in_keyword) {
|
||||||
next_type = KEYWORD;
|
next_type = KEYWORD;
|
||||||
color = keyword_color;
|
color = keyword_color;
|
||||||
@ -592,17 +618,23 @@ void GDScriptSyntaxHighlighter::_update_cache() {
|
|||||||
|
|
||||||
if (godot_2_theme || EditorSettings::get_singleton()->is_dark_theme()) {
|
if (godot_2_theme || EditorSettings::get_singleton()->is_dark_theme()) {
|
||||||
function_definition_color = Color(0.4, 0.9, 1.0);
|
function_definition_color = Color(0.4, 0.9, 1.0);
|
||||||
node_path_color = Color(0.39, 0.76, 0.35);
|
node_path_color = Color(0.72, 0.77, 0.49);
|
||||||
|
node_ref_color = Color(0.39, 0.76, 0.35);
|
||||||
annotation_color = Color(1.0, 0.7, 0.45);
|
annotation_color = Color(1.0, 0.7, 0.45);
|
||||||
|
string_name_color = Color(1.0, 0.66, 0.72);
|
||||||
} else {
|
} else {
|
||||||
function_definition_color = Color(0.0, 0.65, 0.73);
|
function_definition_color = Color(0.0, 0.65, 0.73);
|
||||||
node_path_color = Color(0.32, 0.55, 0.29);
|
node_path_color = Color(0.62, 0.67, 0.39);
|
||||||
|
node_ref_color = Color(0.32, 0.55, 0.29);
|
||||||
annotation_color = Color(0.8, 0.5, 0.25);
|
annotation_color = Color(0.8, 0.5, 0.25);
|
||||||
|
string_name_color = Color(0.9, 0.56, 0.62);
|
||||||
}
|
}
|
||||||
|
|
||||||
EDITOR_DEF("text_editor/theme/highlighting/gdscript/function_definition_color", function_definition_color);
|
EDITOR_DEF("text_editor/theme/highlighting/gdscript/function_definition_color", function_definition_color);
|
||||||
EDITOR_DEF("text_editor/theme/highlighting/gdscript/node_path_color", node_path_color);
|
EDITOR_DEF("text_editor/theme/highlighting/gdscript/node_path_color", node_path_color);
|
||||||
|
EDITOR_DEF("text_editor/theme/highlighting/gdscript/node_reference_color", node_ref_color);
|
||||||
EDITOR_DEF("text_editor/theme/highlighting/gdscript/annotation_color", annotation_color);
|
EDITOR_DEF("text_editor/theme/highlighting/gdscript/annotation_color", annotation_color);
|
||||||
|
EDITOR_DEF("text_editor/theme/highlighting/gdscript/string_name_color", string_name_color);
|
||||||
if (text_edit_color_theme == "Default" || godot_2_theme) {
|
if (text_edit_color_theme == "Default" || godot_2_theme) {
|
||||||
EditorSettings::get_singleton()->set_initial_value(
|
EditorSettings::get_singleton()->set_initial_value(
|
||||||
"text_editor/theme/highlighting/gdscript/function_definition_color",
|
"text_editor/theme/highlighting/gdscript/function_definition_color",
|
||||||
@ -612,15 +644,25 @@ void GDScriptSyntaxHighlighter::_update_cache() {
|
|||||||
"text_editor/theme/highlighting/gdscript/node_path_color",
|
"text_editor/theme/highlighting/gdscript/node_path_color",
|
||||||
node_path_color,
|
node_path_color,
|
||||||
true);
|
true);
|
||||||
|
EditorSettings::get_singleton()->set_initial_value(
|
||||||
|
"text_editor/theme/highlighting/gdscript/node_reference_color",
|
||||||
|
node_ref_color,
|
||||||
|
true);
|
||||||
EditorSettings::get_singleton()->set_initial_value(
|
EditorSettings::get_singleton()->set_initial_value(
|
||||||
"text_editor/theme/highlighting/gdscript/annotation_color",
|
"text_editor/theme/highlighting/gdscript/annotation_color",
|
||||||
annotation_color,
|
annotation_color,
|
||||||
true);
|
true);
|
||||||
|
EditorSettings::get_singleton()->set_initial_value(
|
||||||
|
"text_editor/theme/highlighting/gdscript/string_name_color",
|
||||||
|
string_name_color,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function_definition_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/function_definition_color");
|
function_definition_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/function_definition_color");
|
||||||
node_path_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/node_path_color");
|
node_path_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/node_path_color");
|
||||||
|
node_ref_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/node_reference_color");
|
||||||
annotation_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/annotation_color");
|
annotation_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/annotation_color");
|
||||||
|
string_name_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/string_name_color");
|
||||||
type_color = EDITOR_GET("text_editor/theme/highlighting/base_type_color");
|
type_color = EDITOR_GET("text_editor/theme/highlighting/base_type_color");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,9 @@ private:
|
|||||||
NONE,
|
NONE,
|
||||||
REGION,
|
REGION,
|
||||||
NODE_PATH,
|
NODE_PATH,
|
||||||
|
NODE_REF,
|
||||||
ANNOTATION,
|
ANNOTATION,
|
||||||
|
STRING_NAME,
|
||||||
SYMBOL,
|
SYMBOL,
|
||||||
NUMBER,
|
NUMBER,
|
||||||
FUNCTION,
|
FUNCTION,
|
||||||
@ -74,7 +76,9 @@ private:
|
|||||||
Color number_color;
|
Color number_color;
|
||||||
Color member_color;
|
Color member_color;
|
||||||
Color node_path_color;
|
Color node_path_color;
|
||||||
|
Color node_ref_color;
|
||||||
Color annotation_color;
|
Color annotation_color;
|
||||||
|
Color string_name_color;
|
||||||
Color type_color;
|
Color type_color;
|
||||||
|
|
||||||
void add_color_region(const String &p_start_key, const String &p_end_key, const Color &p_color, bool p_line_only = false);
|
void add_color_region(const String &p_start_key, const String &p_end_key, const Color &p_color, bool p_line_only = false);
|
||||||
|
Loading…
Reference in New Issue
Block a user