From 8e1024530c9446c1e3bf99630bde720be14b917a Mon Sep 17 00:00:00 2001 From: Micky Date: Fri, 1 Mar 2024 23:53:33 +0100 Subject: [PATCH] Improve how Project & Editor Settings look in built-in docs --- editor/editor_help.cpp | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index 4af85d31293b..359d78af73ad 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -2494,11 +2494,34 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt, Control } else if (link_tag == "annotation") { target_color = link_annotation_color; } + p_rt->push_color(target_color); p_rt->push_meta("@" + link_tag + " " + link_target); - p_rt->add_text(link_target + (link_tag == "method" ? "()" : "")); - p_rt->pop(); - p_rt->pop(); + + if (link_tag == "member" && + ((!link_target.contains(".") && (p_class == "ProjectSettings" || p_class == "EditorSettings")) || + link_target.begins_with("ProjectSettings.") || link_target.begins_with("EditorSettings."))) { + // Special formatting for both ProjectSettings and EditorSettings. + String prefix; + if (link_target.begins_with("EditorSettings.")) { + prefix = "(" + TTR("Editor") + ") "; + } + + const String setting_name = link_target.trim_prefix("ProjectSettings.").trim_prefix("EditorSettings."); + PackedStringArray setting_sections; + for (const String §ion : setting_name.split("/", false)) { + setting_sections.append(EditorPropertyNameProcessor::get_singleton()->process_name(section, EditorPropertyNameProcessor::get_settings_style())); + } + + p_rt->push_bold(); + p_rt->add_text(prefix + String(" > ").join(setting_sections)); + p_rt->pop(); // bold + } else { + p_rt->add_text(link_target + (link_tag == "method" ? "()" : "")); + } + + p_rt->pop(); // meta + p_rt->pop(); // color p_rt->pop(); // font size p_rt->pop(); // font