You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-31 18:41:20 +00:00
Make indirectly inherited EditorScripts appear in the command palette
This commit is contained in:
@@ -460,6 +460,15 @@ void ScriptServer::get_inheriters_list(const StringName &p_base_type, List<Strin
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptServer::get_indirect_inheriters_list(const StringName &p_base_type, List<StringName> *r_classes) {
|
||||
List<StringName> direct_inheritors;
|
||||
get_inheriters_list(p_base_type, &direct_inheritors);
|
||||
for (const StringName &inheritor : direct_inheritors) {
|
||||
r_classes->push_back(inheritor);
|
||||
get_indirect_inheriters_list(inheritor, r_classes);
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptServer::remove_global_class_by_path(const String &p_path) {
|
||||
for (const KeyValue<StringName, GlobalScriptClass> &kv : global_classes) {
|
||||
if (kv.value.path == p_path) {
|
||||
|
||||
@@ -100,6 +100,7 @@ public:
|
||||
static bool is_global_class_tool(const String &p_class);
|
||||
static void get_global_class_list(LocalVector<StringName> &r_global_classes);
|
||||
static void get_inheriters_list(const StringName &p_base_type, List<StringName> *r_classes);
|
||||
static void get_indirect_inheriters_list(const StringName &p_base_type, List<StringName> *r_classes);
|
||||
static void save_global_classes();
|
||||
|
||||
static Vector<Ref<ScriptBacktrace>> capture_script_backtraces(bool p_include_variables = false);
|
||||
|
||||
@@ -53,7 +53,7 @@ void EditorScriptPlugin::command_palette_about_to_popup() {
|
||||
EditorInterface::get_singleton()->get_command_palette()->remove_command("editor_scripts/" + command);
|
||||
}
|
||||
commands.clear();
|
||||
ScriptServer::get_inheriters_list(SNAME("EditorScript"), &commands);
|
||||
ScriptServer::get_indirect_inheriters_list(SNAME("EditorScript"), &commands);
|
||||
for (const StringName &command : commands) {
|
||||
EditorInterface::get_singleton()->get_command_palette()->add_command(String(command).capitalize(), "editor_scripts/" + command, callable_mp(this, &EditorScriptPlugin::run_command), varray(command), nullptr);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user