Browse Source

Add autocompletion for `Engine.get_singleton` & similar

Micky 1 year ago
parent
commit
5c87b6eae8
2 changed files with 12 additions and 0 deletions
  1. 10 0
      core/core_bind.cpp
  2. 2 0
      core/core_bind.h

+ 10 - 0
core/core_bind.cpp

@@ -1718,6 +1718,16 @@ bool Engine::is_printing_error_messages() const {
 	return ::Engine::get_singleton()->is_printing_error_messages();
 }
 
+void Engine::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
+	String pf = p_function;
+	if (p_idx == 0 && (pf == "has_singleton" || pf == "get_singleton" || pf == "unregister_singleton")) {
+		for (const String &E : get_singleton_list()) {
+			r_options->push_back(E.quote());
+		}
+	}
+	Object::get_argument_options(p_function, p_idx, r_options);
+}
+
 void Engine::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("set_physics_ticks_per_second", "physics_ticks_per_second"), &Engine::set_physics_ticks_per_second);
 	ClassDB::bind_method(D_METHOD("get_physics_ticks_per_second"), &Engine::get_physics_ticks_per_second);

+ 2 - 0
core/core_bind.h

@@ -527,6 +527,8 @@ public:
 	void set_print_error_messages(bool p_enabled);
 	bool is_printing_error_messages() const;
 
+	virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
+
 	Engine() { singleton = this; }
 };