alunny / node-xcode

tools and utilities for working with xcode/ios projects
Apache License 2.0
226 stars 105 forks source link

Sort the new files added by the ID #75

Open eddydas opened 8 years ago

eddydas commented 8 years ago

After I add new files to a group, the newly written pbx file would contain that new file at the END of the group. But, Xcode by itself would sometimes re-sort the whole list according to the file UUID. This leads to a bunch of unintended xcodeproj change when I use Xcode to open and make some unrelated changes and save.

For example, one of such diff:

        F64060E76D4F47CC8A97C203 /* Rxxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 35238D599AA147D6962E2289 /* Rxxxxxxxxx.java */; };
        F6A26962E77242C1AA9615E9 /* Cxxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 8C9018C5756B496FA87D2FFD /* Cxxxxxxxxx.java */; };
+       F711BFE06DE743B6A73642A0 /* Axxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 2601596E6DC2401095E32405 /* Axxxxxxxxx.java */; };
+       F7713CC25481439E8B3C99C9 /* Axxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = B588ED4619AC41139E7025CC /* Axxxxxxxxx.java */; };
        F924C282663841EE80B83A70 /* Axxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 26C0D7B8D9CC44B5843C6F8F /* Axxxxxxxxx.java */; };
        F93BE0E84163432FB61E68EA /* Cxxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 009CB2D8C9EA4606B0659FCC /* Cxxxxxxxxx.java */; };
        F9943D4D77094A2FB377370A /* Ixxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 13F2AF23969142BD801C3A31 /* Ixxxxxxxxx.java */; };
        FB9B4285DEBC4D319F4277C0 /* Jxxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 69A2C387F90E4A3DB15127A7 /* Jxxxxxxxxx.java */; };
        FC136F5B7F4D4866AB316287 /* Axxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = D023517C22EA42F6B904D039 /* Axxxxxxxxx.java */; };
        FC1A1F4E10AB415DBD39C724 /* Lxxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = CFCCA931E93E4B18B8831D6B /* Lxxxxxxxxx.java */; };
+       FC51D8D67A724327A37D4386 /* Axxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 5E8B814137494B1AAE7435FD /* Axxxxxxxxx.java */; };
        FD325B46155C4ABD94E87C13 /* Lxxxxxxxxx.java in Sources */ = {isa = PBXBuildFile; fileRef = 2D9538A7FF544B869A01188D /* Lxxxxxxxxx.java */; };
-       E0AB448C4B27477489771211 /* Cxxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = 5CF0497BE56C421A8CE3232A /* Cxxxxxxxxx.java */; };
-       07D34DE04D324B1D952F62E9 /* Cxxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = 5CF0497BE56C421A8CE3232A /* Cxxxxxxxxx.java */; };
-       AAF9273064C04C9BA663759A /* Rxxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = 1791DA6EFC6549FF8F2B9DE1 /* Rxxxxxxxxx.java */; };
-       B7A8415357B0438CB852A71C /* Rxxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = 1791DA6EFC6549FF8F2B9DE1 /* Rxxxxxxxxx.java */; };
-       35F098A0E4F34973AF52C1EE /* Axxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = B097AF3FE34D4A90AE18521A /* Axxxxxxxxx.java */; };
-       03431C3800214774A8F3E75E /* Axxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = B097AF3FE34D4A90AE18521A /* Axxxxxxxxx.java */; };
-       F711BFE06DE743B6A73642A0 /* Axxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = 2601596E6DC2401095E32405 /* Axxxxxxxxx.java */; };
-       7C980AFE072A4EF09969248B /* Axxxxxxxxx.java in Resources */ = {isa = PBXBuildFile; fileRef = 2601596E6DC2401095E32405 /* Axxxxxxxxx.java */; };

As you can see, those "-" lines were originally added using node-xcode, and those + lines are Xcode helped me to sort it.

It will be great if you can sort the objects by key when writing.