Merge pull request #97323 from timothyqiu/drop-unicode-identifier

Fix script editor wrongly replaces and quotes non-ASCII letters
This commit is contained in:
Rémi Verschelde 2024-09-23 16:14:08 +02:00
commit 4254946de9
No known key found for this signature in database
GPG key ID: C3336907360768E1
5 changed files with 46 additions and 8 deletions

View file

@ -1813,9 +1813,9 @@ static String _get_dropped_resource_line(const Ref<Resource> &p_resource, bool p
}
if (is_script) {
variable_name = variable_name.to_pascal_case().validate_ascii_identifier();
variable_name = variable_name.to_pascal_case().validate_unicode_identifier();
} else {
variable_name = variable_name.to_snake_case().to_upper().validate_ascii_identifier();
variable_name = variable_name.to_snake_case().to_upper().validate_unicode_identifier();
}
return vformat("const %s = preload(%s)", variable_name, _quote_drop_data(path));
}
@ -1927,13 +1927,13 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
path = sn->get_path_to(node);
}
for (const String &segment : path.split("/")) {
if (!segment.is_valid_ascii_identifier()) {
if (!segment.is_valid_unicode_identifier()) {
path = _quote_drop_data(path);
break;
}
}
String variable_name = String(node->get_name()).to_snake_case().validate_ascii_identifier();
String variable_name = String(node->get_name()).to_snake_case().validate_unicode_identifier();
if (use_type) {
StringName class_name = node->get_class_name();
Ref<Script> node_script = node->get_script();