diff options
author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2017-01-16 18:03:38 +0100 |
---|---|---|
committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2017-01-16 18:03:51 +0100 |
commit | 7dbb1c0571c0d1fb26c28552b09430807cc4d717 (patch) | |
tree | 5bd408f9a64475a5ddd2c34f3a4c8c65844a96ee /core/variant_parser.cpp | |
parent | 681575fa7123592897090c6cce44402c4e45baeb (diff) | |
download | redot-engine-7dbb1c0571c0d1fb26c28552b09430807cc4d717.tar.gz |
Improve .tscn VCS
Serialize dictionaries adding newlines between key-value pairs
Serialize group lists also with newlines in between
Serialize string properties escaping only " and \ (needed for a good diff experience with built-in scripts and shaders)
Bonus:
Make AnimationPlayer serialize its blend times always sorted so their order is predictable in the .tscn file.
This PR is back-compat; won't break the load of existing files.
Diffstat (limited to 'core/variant_parser.cpp')
-rw-r--r-- | core/variant_parser.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp index 5ed2415e36..dc0ba8c3bd 100644 --- a/core/variant_parser.cpp +++ b/core/variant_parser.cpp @@ -1878,7 +1878,7 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str String str=p_variant; - str="\""+str.c_escape()+"\""; + str="\""+str.c_escape_multiline()+"\""; p_store_string_func(p_store_string_ud, str ); } break; case Variant::VECTOR2: { @@ -2123,20 +2123,20 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str dict.get_key_list(&keys); keys.sort(); - p_store_string_func(p_store_string_ud,"{ "); + p_store_string_func(p_store_string_ud,"{\n"); for(List<Variant>::Element *E=keys.front();E;E=E->next()) { //if (!_check_type(dict[E->get()])) // continue; write(E->get(),p_store_string_func,p_store_string_ud,p_encode_res_func,p_encode_res_ud); - p_store_string_func(p_store_string_ud,":"); + p_store_string_func(p_store_string_ud,": "); write(dict[E->get()],p_store_string_func,p_store_string_ud,p_encode_res_func,p_encode_res_ud); if (E->next()) - p_store_string_func(p_store_string_ud,", "); + p_store_string_func(p_store_string_ud,",\n"); } - p_store_string_func(p_store_string_ud," }"); + p_store_string_func(p_store_string_ud,"\n}"); } break; |