1. Yes, it's just cosmetic. I'll leave that change out then.
2. The known limitations are about tabs, not spaces. The parser crashes with extra " " spaces at the end of flow-style lines. The standard says that those should simply be ignored, so it's either a bug, or a limitation.
I've tested the performance difference with and without a custom fix with the extra whitespace checking. It's <0.5% performance difference, so that shouldn't be a consideration. But I agree that, custom bugfixes are a nasty solution because they make updating libraries a nightmare. Going with the "tell mod authors to remove trailing spaces" solution, I'll have to make sure that when the game encounters such a parser error, that it's correctly communicated to the user.
3. Ok, I'll try to produce a test project that includes a 1:1 copy of rapidyaml/src/ instead of the single header file.
Anyway, another formatting difference is, sequences don't start new lines:
Before:
moduleMap:
-
-
- 1
- 1
-
- 2
- 2
-
- 3
- 3
-
-
- 1
- 1
-
- 2
- 2
-
- 3
- 3
-
-
- 1
- 1
-
- 2
- 2
-
- 3
- 3
After:
moduleMap:
- - - 1
- 1
- - 2
- 2
- - 3
- 3
- - - 1
- 1
- - 2
- 2
- - 3
- 3
- - - 1
- 1
- - 2
- 2
- - 3
- 3
Lastly, the yaml standard says that certain non-printable characters should be escaped, as in, ascii code 00 should produce "\x00" in the yaml. It also states that it's not mandatory. Unlike yaml-cpp, rapidyaml does not respect this suggestion hehe. It simply outputs a control code 00 character raw. Subsequent parsing of these non-escaped characters works just fine however. It even works fine in yaml-cpp, so it's perfectly backwards compatible. As long as a string is in double quotes, everything goes.