1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-24 15:26:15 +00:00

Add missing warning about copying packed arrays to EditorHelpBit

This commit is contained in:
Danil Alexeev
2025-11-11 13:51:47 +03:00
parent 8327dfa215
commit 0b20ae2e87
2 changed files with 13 additions and 0 deletions

View File

@@ -87,6 +87,7 @@ BASE_STRINGS = [
"This method may be changed or removed in future versions.",
"This operator may be changed or removed in future versions.",
"This theme property may be changed or removed in future versions.",
# See also `make_rst_class()` and `editor/doc/editor_help.cpp`.
"[b]Note:[/b] The returned array is [i]copied[/i] and any changes to it will not update the original property value. See [%s] for more details.",
]
strings_l10n: Dict[str, str] = {}
@@ -1303,6 +1304,7 @@ def make_rst_class(class_def: ClassDef, state: State, dry_run: bool, output_dir:
# Add copy note to built-in properties returning `Packed*Array`.
if property_def.type_name.type_name in PACKED_ARRAY_TYPES:
# See also `BASE_STRINGS` and `editor/doc/editor_help.cpp`.
copy_note = f"[b]Note:[/b] The returned array is [i]copied[/i] and any changes to it will not update the original property value. See [{property_def.type_name.type_name}] for more details."
f.write(f"{format_text_block(copy_note, property_def, state)}\n\n")

View File

@@ -2325,6 +2325,7 @@ void EditorHelp::_update_doc() {
if (!cd.is_script_doc && packed_array_types.has(prop.type)) {
class_desc->add_newline();
class_desc->add_newline();
// See also `EditorHelpBit::parse_symbol()` and `doc/tools/make_rst.py`.
_add_text(vformat(TTR("[b]Note:[/b] The returned array is [i]copied[/i] and any changes to it will not update the original property value. See [%s] for more details."), prop.type));
}
@@ -4368,6 +4369,16 @@ void EditorHelpBit::parse_symbol(const String &p_symbol, const String &p_prologu
symbol_hint = SYMBOL_HINT_ASSIGNABLE;
}
help_data = _get_property_help_data(class_name, item_name);
// Add copy note to built-in properties returning `Packed*Array`.
const DocData::ClassDoc *cd = EditorHelp::get_doc(class_name);
if (cd && !cd->is_script_doc && packed_array_types.has(help_data.doc_type.type)) {
if (!help_data.description.is_empty()) {
help_data.description += "\n";
}
// See also `EditorHelp::_update_doc()` and `doc/tools/make_rst.py`.
help_data.description += vformat(TTR("[b]Note:[/b] The returned array is [i]copied[/i] and any changes to it will not update the original property value. See [%s] for more details."), help_data.doc_type.type);
}
} else if (item_type == "internal_property") {
symbol_type = TTR("Internal Property");
help_data.description = "[color=<EditorHelpBitCommentColor>][i]" + TTR("This property can only be set in the Inspector.") + "[/i][/color]";