### Godot version

3.5.1mono

### System information

windows10

### Issue description

Error message
 scene/main/node.cpp:1362 - Index p_index = 0 is out of bounds (data.children.size() = 0).
 scene/main/node.cpp:397 - Parameter "p_child" is null.
 scene/gui/tab_container.cpp:593 - Index p_current = 0 is out of bounds (get_tab_count() = 0).
See "Steps to reproduce for details"

### Steps to reproduce

Set an external text editor
Create a script
Drop the script to the built-in text editor like this image:
![image](https://user-images.githubusercontent.com/119792950/209504041-039f2620-5e42-4c0f-8c41-cd24486fb3d2.png)
And got error message:
 scene/main/node.cpp:1362 - Index p_index = 0 is out of bounds (data.children.size() = 0).
 scene/main/node.cpp:397 - Parameter "p_child" is null.
 scene/gui/tab_container.cpp:593 - Index p_current = 0 is out of bounds (get_tab_count() = 0).

### Minimal reproduction project

An empty project
for (int i = 0; i < tab_container->get_tab_count(); i++) {
		tab_container->get_tab_control(i)->set_meta("__editor_pass", Variant());
	}
	if (p_layout->has_section_key("ScriptEditor", "script_split_offset")) {
		script_split->set_split_offset(p_layout->get_value("ScriptEditor", "script_split_offset"));
	}
	if (p_layout->has_section_key("ScriptEditor", "list_split_offset")) {
		list_split->set_split_offset(p_layout->get_value("ScriptEditor", "list_split_offset"));
	}
	
	
	List<String> cached_editors;
	script_editor_cache->get_sections(&cached_editors);
	for (const String &E : cached_editors) {
		if (loaded_scripts.has(E)) {
			continue;
		}
		if (!FileAccess::exists(E)) {
			script_editor_cache->erase_section(E);
			continue;
		}
		Array breakpoints = _get_cached_breakpoints_for_script(E);
		for (int i = 0; i < breakpoints.size(); i++) {
			EditorDebuggerNode::get_singleton()->set_breakpoint(E, (int)breakpoints[i] + 1, true);
		}
	}
	restoring_layout = false;
	_update_script_names();
}
void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) {