mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	Highlight ^NodePath and &StringName differently
This commit is contained in:
		
							parent
							
								
									e37525896e
								
							
						
					
					
						commit
						df5655fdca
					
				
					 2 changed files with 49 additions and 3 deletions
				
			
		|  | @ -55,7 +55,9 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l | |||
| 	bool in_function_args = false; | ||||
| 	bool in_member_variable = false; | ||||
| 	bool in_node_path = false; | ||||
| 	bool in_node_ref = false; | ||||
| 	bool in_annotation = false; | ||||
| 	bool in_string_name = false; | ||||
| 	bool is_hex_notation = false; | ||||
| 	bool is_bin_notation = 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 == "\'")) { | ||||
| 						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; | ||||
| 					highlighter_info["color"] = region_color; | ||||
|  | @ -387,24 +395,42 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l | |||
| 			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; | ||||
| 		} else if (in_region != -1 || (is_a_symbol && str[j] != '/' && str[j] != '%')) { | ||||
| 			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] == '@') { | ||||
| 			in_annotation = true; | ||||
| 		} else if (in_region != -1 || is_a_symbol) { | ||||
| 			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) { | ||||
| 			next_type = NODE_PATH; | ||||
| 			color = node_path_color; | ||||
| 		} else if (in_node_ref) { | ||||
| 			next_type = NODE_REF; | ||||
| 			color = node_ref_color; | ||||
| 		} else if (in_annotation) { | ||||
| 			next_type = ANNOTATION; | ||||
| 			color = annotation_color; | ||||
| 		} else if (in_string_name) { | ||||
| 			next_type = STRING_NAME; | ||||
| 			color = string_name_color; | ||||
| 		} else if (in_keyword) { | ||||
| 			next_type = KEYWORD; | ||||
| 			color = keyword_color; | ||||
|  | @ -592,17 +618,23 @@ void GDScriptSyntaxHighlighter::_update_cache() { | |||
| 
 | ||||
| 	if (godot_2_theme || EditorSettings::get_singleton()->is_dark_theme()) { | ||||
| 		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); | ||||
| 		string_name_color = Color(1.0, 0.66, 0.72); | ||||
| 	} else { | ||||
| 		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); | ||||
| 		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/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/string_name_color", string_name_color); | ||||
| 	if (text_edit_color_theme == "Default" || godot_2_theme) { | ||||
| 		EditorSettings::get_singleton()->set_initial_value( | ||||
| 				"text_editor/theme/highlighting/gdscript/function_definition_color", | ||||
|  | @ -612,15 +644,25 @@ void GDScriptSyntaxHighlighter::_update_cache() { | |||
| 				"text_editor/theme/highlighting/gdscript/node_path_color", | ||||
| 				node_path_color, | ||||
| 				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( | ||||
| 				"text_editor/theme/highlighting/gdscript/annotation_color", | ||||
| 				annotation_color, | ||||
| 				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"); | ||||
| 	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"); | ||||
| 	string_name_color = EDITOR_GET("text_editor/theme/highlighting/gdscript/string_name_color"); | ||||
| 	type_color = EDITOR_GET("text_editor/theme/highlighting/base_type_color"); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -54,7 +54,9 @@ private: | |||
| 		NONE, | ||||
| 		REGION, | ||||
| 		NODE_PATH, | ||||
| 		NODE_REF, | ||||
| 		ANNOTATION, | ||||
| 		STRING_NAME, | ||||
| 		SYMBOL, | ||||
| 		NUMBER, | ||||
| 		FUNCTION, | ||||
|  | @ -74,7 +76,9 @@ private: | |||
| 	Color number_color; | ||||
| 	Color member_color; | ||||
| 	Color node_path_color; | ||||
| 	Color node_ref_color; | ||||
| 	Color annotation_color; | ||||
| 	Color string_name_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); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 kobewi
						kobewi