Create .editorconfig file only on project creation

This commit is contained in:
Haoyu Qiu 2024-09-21 14:50:33 +08:00
parent db66bd35af
commit 8086894a8e
3 changed files with 15 additions and 18 deletions

View File

@ -257,22 +257,6 @@ EditorPaths::EditorPaths() {
}
}
// Check that `.editorconfig` file exists.
String project_editorconfig_path = "res://.editorconfig";
if (!FileAccess::exists(project_editorconfig_path)) {
Ref<FileAccess> f = FileAccess::open(project_editorconfig_path, FileAccess::WRITE);
if (f.is_valid()) {
f->store_line("root = true");
f->store_line("");
f->store_line("[*]");
f->store_line("charset = utf-8");
f->close();
} else {
ERR_PRINT("Failed to create file " + project_editorconfig_path.quote() + ".");
}
FileAccess::set_hidden_attribute(project_editorconfig_path, true);
}
Engine::get_singleton()->set_shader_cache_path(project_data_dir);
// Editor metadata dir.

View File

@ -552,6 +552,21 @@ void ProjectDialog::ok_pressed() {
fa_icon->store_string(get_default_project_icon());
EditorVCSInterface::create_vcs_metadata_files(EditorVCSInterface::VCSMetadata(vcs_metadata_selection->get_selected()), path);
// Ensures external editors and IDEs use UTF-8 encoding.
const String editor_config_path = path.path_join(".editorconfig");
Ref<FileAccess> f = FileAccess::open(editor_config_path, FileAccess::WRITE);
if (f.is_null()) {
// .editorconfig isn't so critical.
ERR_PRINT("Couldn't create .editorconfig in project path.");
} else {
f->store_line("root = true");
f->store_line("");
f->store_line("[*]");
f->store_line("charset = utf-8");
f->close();
FileAccess::set_hidden_attribute(editor_config_path, true);
}
}
// Two cases for importing a ZIP.

View File

@ -1,5 +1,3 @@
# This file is required to workaround `.editorconfig` autogeneration (see #96845).
# Some tests handle invalid syntax deliberately; exclude relevant attributes.
[parser/features/mixed_indentation_on_blank_lines.gd]