This was the final feature I wanted to add to the format. Also some other things have been cleaned up a little bit (for example, the inline parser does not need the dangling key to be attached to each stack level just like the normal parser doesn't). There was also an off-by-one error that bugged out detecting the pathological case of a flow list consisting of only an empty string (`[ ]`, not to be mistaken for the empty list `[]`). Mixed multiline strings are a bit confusing but internally consistent. > what character does this string end with? | ends with a newline character because that's the style of the second-to-last line. However, seeing | last makes my brain think it should end with a space. The reason it ends with a newline is because our concatenation strategy consists of appending to the string early (as soon as a line is added) rather than lazily. This is a tradeoff, though. while lazy appending would make this result more intuitive (the string would end with a space) and it would allow us to remove the self-proclaimed cheesy hack, it would make the opposite boundary condition confusing: > | what character does this string start with? With lazy appending, this string would start with a space (despite > making it look like it should have a leading newline). While both of these are likely to be uncommon edge cases, it doesn't seem we can have it both ways. Of the two options, I think the current logic is a little bit more clear.
Description
LORE
Languages
Zig
100%