summaryrefslogtreecommitdiffstats
path: root/editor/editor_help.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_help.cpp')
-rw-r--r--editor/editor_help.cpp29
1 files changed, 26 insertions, 3 deletions
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index 65c0eab141..f94b0dba05 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -2513,11 +2513,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 &section : 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