summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMrCdK <contact@mrcdk.com>2019-04-17 13:06:28 +0200
committerMrCdK <contact@mrcdk.com>2019-09-03 14:27:27 +0200
commit9e9c16c1e5c497f03235d7bef064e759a2ae813a (patch)
treeb0dcb11949b05d4780c023b3bbf819eb82961b62
parent5323d24fadadbc6c4a109a9848fd9c3ea08f4474 (diff)
Try and show all the properties added with _get_property_list() when triggering completion.
Closes https://github.com/godotengine/godot/issues/25097
-rw-r--r--modules/gdscript/gdscript_editor.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp
index 925dbda620..b4c38e4d40 100644
--- a/modules/gdscript/gdscript_editor.cpp
+++ b/modules/gdscript/gdscript_editor.cpp
@@ -1936,9 +1936,18 @@ static void _find_identifiers_in_base(const GDScriptCompletionContext &p_context
Ref<GDScript> script = base_type.script_type;
if (script.is_valid()) {
if (!_static && !p_only_functions) {
- for (const Set<StringName>::Element *E = script->get_members().front(); E; E = E->next()) {
- ScriptCodeCompletionOption option(E->get().operator String(), ScriptCodeCompletionOption::KIND_MEMBER);
- r_result.insert(option.display, option);
+ if (p_context.base && p_context.base->get_script_instance()) {
+ List<PropertyInfo> members;
+ p_context.base->get_script_instance()->get_property_list(&members);
+ for (List<PropertyInfo>::Element *E = members.front(); E; E = E->next()) {
+ ScriptCodeCompletionOption option(E->get().name, ScriptCodeCompletionOption::KIND_MEMBER);
+ r_result.insert(option.display, option);
+ }
+ } else {
+ for (const Set<StringName>::Element *E = script->get_members().front(); E; E = E->next()) {
+ ScriptCodeCompletionOption option(E->get().operator String(), ScriptCodeCompletionOption::KIND_MEMBER);
+ r_result.insert(option.display, option);
+ }
}
}
if (!p_only_functions) {