The best multiline strings are those where you can have proper indentations without having to guess how indentation is handled. bonus points for making nesting easy and making copy-pasting work without breaking indentation.
To my knowledge only Zig's multiline strings work this way
const hello_world_in_c =
\\#include <stdio.h>
\\
\\int main(int argc, char **argv) {
\\ printf("hello world\n");
\\ return 0;
\\}
;
Probably the 2nd most baffling thing in Zig for me.
C#:
I clicked on that FAQ link, because I wasn't familiar with zig-style multilines, and my initial reaction was "ew, ugly" - but reading the justifications, I think it rather won me over with how it addresses the indentation issue alone.
In C:
Granted, this is not a real multiline string, but you also have characters in your Zig example that are not part of string content (\\).okaay, I get that you want the indentation to work (ironically this is more important when you are multilining a Python code example), but having to manage all the \\ is a pain in the butt
> ironically this is more important when you are multilining a Python code example
And neither seems to be a great use case for configuration. A markup language, sure, but I'm not sure I see a significant need for multiline strings (even in general) in a config file.
fair point … although I can see a use case for eg multline multi languages contractual boilerplate that i don’t want in my main code