Explorar el Código

Resolve conflict between shader uniform tooltips "/**" and general annotation "/**/".

Magian hace 1 año
padre
commit
8a92615ba0
Se han modificado 2 ficheros con 3 adiciones y 1 borrados
  1. 2 0
      editor/plugins/text_shader_editor.cpp
  2. 1 1
      scene/resources/shader.cpp

+ 2 - 0
editor/plugins/text_shader_editor.cpp

@@ -313,6 +313,8 @@ void ShaderTextEditor::_load_theme_settings() {
 
 	const Color doc_comment_color = EDITOR_GET("text_editor/theme/highlighting/doc_comment_color");
 	syntax_highlighter->add_color_region("/**", "*/", doc_comment_color, false);
+	// "/**/" will be treated as the start of the "/**" region, this line is guaranteed to end the color_region.
+	syntax_highlighter->add_color_region("/**/", "", comment_color, true);
 
 	// Disabled preprocessor branches use translucent text color to be easier to distinguish from comments.
 	syntax_highlighter->set_disabled_branch_color(Color(EDITOR_GET("text_editor/theme/highlighting/text_color")) * Color(1, 1, 1, 0.5));

+ 1 - 1
scene/resources/shader.cpp

@@ -156,7 +156,7 @@ void Shader::get_shader_uniform_list(List<PropertyInfo> *p_params, bool p_get_gr
 				DocData::PropertyDoc prop_doc;
 				prop_doc.name = "shader_parameter/" + pi.name;
 #ifdef MODULE_REGEX_ENABLED
-				const RegEx pattern("/\\*\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/\\s*uniform\\s+\\w+\\s+" + pi.name + "(?=[\\s:;=])");
+				const RegEx pattern("/\\*\\*\\s([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/\\s*uniform\\s+\\w+\\s+" + pi.name + "(?=[\\s:;=])");
 				Ref<RegExMatch> pattern_ref = pattern.search(code);
 				if (pattern_ref != nullptr) {
 					RegExMatch *match = pattern_ref.ptr();