Fix debugger not opening built-in scripts
This commit is contained in:
parent
62765fb7ca
commit
98dd04c38c
|
@ -39,6 +39,7 @@
|
|||
#include "editor/scene_tree_dock.h"
|
||||
#include "scene/gui/menu_button.h"
|
||||
#include "scene/gui/tab_container.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
|
||||
template <typename Func>
|
||||
void _for_all(TabContainer *p_node, const Func &p_func) {
|
||||
|
@ -141,11 +142,22 @@ void EditorDebuggerNode::_error_selected(const String &p_file, int p_line, int p
|
|||
}
|
||||
|
||||
void EditorDebuggerNode::_text_editor_stack_goto(const ScriptEditorDebugger *p_debugger) {
|
||||
const String file = p_debugger->get_stack_script_file();
|
||||
String file = p_debugger->get_stack_script_file();
|
||||
if (file.is_empty()) {
|
||||
return;
|
||||
}
|
||||
stack_script = ResourceLoader::load(file);
|
||||
if (file.is_resource_file()) {
|
||||
stack_script = ResourceLoader::load(file);
|
||||
} else {
|
||||
// If the script is built-in, it can be opened only if the scene is loaded in memory.
|
||||
int i = file.find("::");
|
||||
int j = file.rfind("(", i);
|
||||
if (j > -1) { // If the script is named, the string is "name (file)", so we need to extract the path.
|
||||
file = file.substr(j + 1, file.find(")", i) - j - 1);
|
||||
}
|
||||
Ref<PackedScene> ps = ResourceLoader::load(file.get_slice("::", 0));
|
||||
stack_script = ResourceLoader::load(file);
|
||||
}
|
||||
const int line = p_debugger->get_stack_script_line() - 1;
|
||||
emit_signal(SNAME("goto_script_line"), stack_script, line);
|
||||
emit_signal(SNAME("set_execution"), stack_script, line);
|
||||
|
|
|
@ -796,7 +796,7 @@ void GDScript::_set_subclass_path(Ref<GDScript> &p_sc, const String &p_path) {
|
|||
|
||||
String GDScript::_get_debug_path() const {
|
||||
if (is_built_in() && !get_name().is_empty()) {
|
||||
return get_name() + " (" + get_path().get_slice("::", 0) + ")";
|
||||
return get_name() + " (" + get_path() + ")";
|
||||
} else {
|
||||
return get_path();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue