Merge pull request #91307 from akien-mga/shader-doc-comments-fixup

Don't run Shader doc comments logic outside the editor
This commit is contained in:
Rémi Verschelde 2024-04-29 15:20:42 +02:00
commit 89850d553e
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -135,6 +135,7 @@ void Shader::get_shader_uniform_list(List<PropertyInfo> *p_params, bool p_get_gr
class_doc.name = get_path(); class_doc.name = get_path();
class_doc.is_script_doc = true; class_doc.is_script_doc = true;
#endif #endif
for (PropertyInfo &pi : local) { for (PropertyInfo &pi : local) {
bool is_group = pi.usage == PROPERTY_USAGE_GROUP || pi.usage == PROPERTY_USAGE_SUBGROUP; bool is_group = pi.usage == PROPERTY_USAGE_GROUP || pi.usage == PROPERTY_USAGE_SUBGROUP;
if (!p_get_groups && is_group) { if (!p_get_groups && is_group) {
@ -152,6 +153,8 @@ void Shader::get_shader_uniform_list(List<PropertyInfo> *p_params, bool p_get_gr
} }
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
if (Engine::get_singleton()->is_editor_hint()) { if (Engine::get_singleton()->is_editor_hint()) {
DocData::PropertyDoc prop_doc;
prop_doc.name = "shader_parameter/" + pi.name;
#ifdef MODULE_REGEX_ENABLED #ifdef MODULE_REGEX_ENABLED
const RegEx pattern("/\\*\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/\\s*uniform\\s+\\w+\\s+" + pi.name + "(?=[\\s:;=])"); const RegEx pattern("/\\*\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/\\s*uniform\\s+\\w+\\s+" + pi.name + "(?=[\\s:;=])");
Ref<RegExMatch> pattern_ref = pattern.search(code); Ref<RegExMatch> pattern_ref = pattern.search(code);
@ -161,24 +164,17 @@ void Shader::get_shader_uniform_list(List<PropertyInfo> *p_params, bool p_get_gr
Ref<RegExMatch> pattern_tip_ref = pattern_tip.search(match->get_string(0)); Ref<RegExMatch> pattern_tip_ref = pattern_tip.search(match->get_string(0));
RegExMatch *match_tip = pattern_tip_ref.ptr(); RegExMatch *match_tip = pattern_tip_ref.ptr();
const RegEx pattern_stripped("\\n\\s*\\*\\s*"); 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); 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 #endif
class_doc.properties.push_back(prop_doc);
} }
#endif #endif
p_params->push_back(pi); p_params->push_back(pi);
} }
} }
#ifdef TOOLS_ENABLED #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); EditorHelp::get_doc_data()->add_doc(class_doc);
} }
#endif #endif