From 5bd9f4dea5dd0ee421ac6f464687cac107e0c02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Mon, 29 Apr 2024 14:52:09 +0200 Subject: [PATCH] Don't run Shader doc comments logic outside the editor Fixes #91306. --- scene/resources/shader.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp index 296c914c65ef..0087a5e7f2f5 100644 --- a/scene/resources/shader.cpp +++ b/scene/resources/shader.cpp @@ -135,6 +135,7 @@ void Shader::get_shader_uniform_list(List *p_params, bool p_get_gr class_doc.name = get_path(); class_doc.is_script_doc = true; #endif + for (PropertyInfo &pi : local) { bool is_group = pi.usage == PROPERTY_USAGE_GROUP || pi.usage == PROPERTY_USAGE_SUBGROUP; if (!p_get_groups && is_group) { @@ -152,6 +153,8 @@ void Shader::get_shader_uniform_list(List *p_params, bool p_get_gr } #ifdef TOOLS_ENABLED if (Engine::get_singleton()->is_editor_hint()) { + 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:;=])"); Ref pattern_ref = pattern.search(code); @@ -161,24 +164,17 @@ void Shader::get_shader_uniform_list(List *p_params, bool p_get_gr Ref pattern_tip_ref = pattern_tip.search(match->get_string(0)); RegExMatch *match_tip = pattern_tip_ref.ptr(); const RegEx pattern_stripped("\\n\\s*\\*\\s*"); - DocData::PropertyDoc prop_doc; - prop_doc.name = "shader_parameter/" + pi.name; prop_doc.description = pattern_stripped.sub(match_tip->get_string(1), "\n", true); - class_doc.properties.push_back(prop_doc); } -#else - DocData::PropertyDoc prop_doc; - prop_doc.name = "shader_parameter/" + pi.name; - // prop_doc.description = "(Regex module is not enabled, shader parameter documentation will not be available.)"; - class_doc.properties.push_back(prop_doc); #endif + class_doc.properties.push_back(prop_doc); } #endif p_params->push_back(pi); } } #ifdef TOOLS_ENABLED - if (!class_doc.name.is_empty() && p_params) { + if (Engine::get_singleton()->is_editor_hint() && !class_doc.name.is_empty() && p_params) { EditorHelp::get_doc_data()->add_doc(class_doc); } #endif