Merge pull request #92802 from dalexeev/editor-hide-gdscript-internal-funcs
Editor: Hide GDScript internal functions from method selectors
This commit is contained in:
commit
31b55e7da1
2 changed files with 24 additions and 2 deletions
|
@ -294,6 +294,13 @@ List<MethodInfo> ConnectDialog::_filter_method_list(const List<MethodInfo> &p_me
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const MethodInfo &mi : p_methods) {
|
for (const MethodInfo &mi : p_methods) {
|
||||||
|
if (mi.name.begins_with("@")) {
|
||||||
|
// GH-92782. GDScript inline setters/getters are historically present in `get_method_list()`
|
||||||
|
// and can be called using `Object.call()`. However, these functions are meant to be internal
|
||||||
|
// and their names are not valid identifiers, so let's hide them from the user.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!p_search_string.is_empty() && !mi.name.containsn(p_search_string)) {
|
if (!p_search_string.is_empty() && !mi.name.containsn(p_search_string)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -324,8 +331,10 @@ List<MethodInfo> ConnectDialog::_filter_method_list(const List<MethodInfo> &p_me
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.push_back(mi);
|
ret.push_back(mi);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -225,11 +225,24 @@ void PropertySelector::_update_search() {
|
||||||
} else {
|
} else {
|
||||||
Ref<Script> script_ref = Object::cast_to<Script>(ObjectDB::get_instance(script));
|
Ref<Script> script_ref = Object::cast_to<Script>(ObjectDB::get_instance(script));
|
||||||
if (script_ref.is_valid()) {
|
if (script_ref.is_valid()) {
|
||||||
methods.push_back(MethodInfo("*Script Methods"));
|
|
||||||
if (script_ref->is_built_in()) {
|
if (script_ref->is_built_in()) {
|
||||||
script_ref->reload(true);
|
script_ref->reload(true);
|
||||||
}
|
}
|
||||||
script_ref->get_script_method_list(&methods);
|
|
||||||
|
List<MethodInfo> script_methods;
|
||||||
|
script_ref->get_script_method_list(&script_methods);
|
||||||
|
|
||||||
|
methods.push_back(MethodInfo("*Script Methods")); // TODO: Split by inheritance.
|
||||||
|
|
||||||
|
for (const MethodInfo &mi : script_methods) {
|
||||||
|
if (mi.name.begins_with("@")) {
|
||||||
|
// GH-92782. GDScript inline setters/getters are historically present in `get_method_list()`
|
||||||
|
// and can be called using `Object.call()`. However, these functions are meant to be internal
|
||||||
|
// and their names are not valid identifiers, so let's hide them from the user.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
methods.push_back(mi);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StringName base = base_type;
|
StringName base = base_type;
|
||||||
|
|
Loading…
Reference in a new issue