summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-03-01 17:21:59 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-03-01 17:21:59 +0100
commit0394328a71221c61d691fac6ff6297daa08c4b03 (patch)
tree8a008a116387d14ae3f817d15b12c57b7537de33
parent8e951fd0a92c551f260c3272039181be32121a32 (diff)
parent404b2bf9c218dc05a1716ba8d376dec932487ddc (diff)
downloadredot-engine-0394328a71221c61d691fac6ff6297daa08c4b03.tar.gz
Merge pull request #86758 from Mickeon/autocompletion-project-settings
Add autocompletion for ProjectSettings' methods
-rw-r--r--core/config/project_settings.cpp20
-rw-r--r--core/config/project_settings.h4
2 files changed, 24 insertions, 0 deletions
diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp
index d1c90ed7e6..b96da01808 100644
--- a/core/config/project_settings.cpp
+++ b/core/config/project_settings.cpp
@@ -1318,6 +1318,26 @@ const HashMap<StringName, HashSet<StringName>> &ProjectSettings::get_scene_group
return scene_groups_cache;
}
+#ifdef TOOLS_ENABLED
+void ProjectSettings::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
+ const String pf = p_function;
+ if (p_idx == 0) {
+ if (pf == "has_setting" || pf == "set_setting" || pf == "get_setting" || pf == "get_setting_with_override" ||
+ pf == "set_order" || pf == "get_order" || pf == "set_initial_value" || pf == "set_as_basic" ||
+ pf == "set_as_internal" || pf == "set_restart_if_changed" || pf == "clear") {
+ for (const KeyValue<StringName, VariantContainer> &E : props) {
+ if (E.value.hide_from_editor) {
+ continue;
+ }
+
+ r_options->push_back(String(E.key).quote());
+ }
+ }
+ }
+ Object::get_argument_options(p_function, p_idx, r_options);
+}
+#endif
+
void ProjectSettings::_bind_methods() {
ClassDB::bind_method(D_METHOD("has_setting", "name"), &ProjectSettings::has_setting);
ClassDB::bind_method(D_METHOD("set_setting", "name", "value"), &ProjectSettings::set_setting);
diff --git a/core/config/project_settings.h b/core/config/project_settings.h
index 385f93e91e..73cadfd07e 100644
--- a/core/config/project_settings.h
+++ b/core/config/project_settings.h
@@ -222,6 +222,10 @@ public:
String get_scene_groups_cache_path() const;
void load_scene_groups_cache();
+#ifdef TOOLS_ENABLED
+ virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
+#endif
+
ProjectSettings();
~ProjectSettings();
};