diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 8bf76e75042..3f14006230e 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1556,7 +1556,12 @@ Error EditorNode::load_resource(const String &p_resource, bool p_ignore_broken_d Error err; Ref res; - if (ResourceLoader::exists(p_resource, "")) { + if (force_textfile_extensions.has(p_resource.get_extension())) { + res = ResourceCache::get_ref(p_resource); + if (res.is_null() || !res->is_class("TextFile")) { + res = ScriptEditor::get_singleton()->open_file(p_resource); + } + } else if (ResourceLoader::exists(p_resource, "")) { res = ResourceLoader::load(p_resource, "", ResourceFormatLoader::CACHE_MODE_REUSE, &err); } else if (textfile_extensions.has(p_resource.get_extension())) { res = ScriptEditor::get_singleton()->open_file(p_resource); @@ -7912,6 +7917,8 @@ EditorNode::EditorNode() { other_file_extensions.insert(E); } + force_textfile_extensions.insert("csv"); // CSV translation source, has `Translation` resource type, but not loadable as resource. + resource_preview = memnew(EditorResourcePreview); add_child(resource_preview); progress_dialog = memnew(ProgressDialog); diff --git a/editor/editor_node.h b/editor/editor_node.h index 3ac61d025bb..c0b7f4b2289 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -477,6 +477,7 @@ private: SceneImportSettingsDialog *scene_import_settings = nullptr; AudioStreamImportSettingsDialog *audio_stream_import_settings = nullptr; + HashSet force_textfile_extensions; HashSet textfile_extensions; HashSet other_file_extensions; HashSet file_dialogs;