Actually, let me point out that the rectangle-of-double-quotes syntax is entirely compatible with Jim Laskey’s suggestions; the two can coexist.
Define the rectangle-of-double-quotes syntax to be: <string-rectangle> ::= <seven or more “ characters in a row> <horizontal-whitespace>* <newline> <intermediate-line>* <whitespace>* <seven or more “ characters in a row> where <intermediate-line> ::= <horizontal-whitespace>* <string> <horizontal-whitespace>* <newline> and the meaning of such a <string-rectangle> literal is the concatenation of one string expression for each intermediate line calculated as <string>.trimRight() + “\n” where the method trimRight is the obvious method that trims only on the right side of the string. The only reason for requiring a string-rectangle to begin with at least 7 double quotes in a row is because 6 in a row would presumably be an empty string using """ as delimiters. In addition one could impose constraints on the lengths of the delimiters, the lengths of the strings, and/or the amount of whitespace at the start of each intermediate line. For example, one might require the two occurrences of <seven or more “ characters in a row> to be the same length.) So by all means consider Jim’s proposal separately, then please consider the rectangle-of-quotes as one possible way to address the management of indentation and whitespace stripping. This would give users a choice of styles for multiline strings. —Guy > On Apr 16, 2019, at 3:37 PM, Guy Steele <guy.ste...@oracle.com> wrote: > > Just in case it wasn’t clear, I want to emphasize that my suggestion of using > a rectangle-of-double-quotes was intended as a serious proposal—admittedly > one that looks unusual and would require good cooperation from each IDE to be > practical, but one that solves a number of the problems about that we are > facing about indentation and whether to strip whitespace. > > —Guy