Fix script editor wrongly replaces and quotes non-ASCII letters

This commit is contained in:
Haoyu Qiu 2024-09-22 19:31:58 +08:00
parent e4e024ab88
commit a751c05b15
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();