s/What does do you do here?/What so you do here/

> On Aug 15, 2019, at 12:19 PM, Jim Laskey <james.las...@oracle.com> wrote:
> 
> Assuming the proposal is <LWS* \ LWS* LWS> (keep last white space), I see the 
> light but I see the dark here as well (and maybe not enough here to switch 
> horses.)
> 
> String hexData = """
>             000102030405060708090a0b0c0d0e0f101112131415   \
>     161718191a1b1c1d1e1f202122232425262728292a2b2c \
>     2d2e2f303132333435363738393a3b3c3d3e3f40       \
>     4142434445464748494a4b4c4d4e4f505152535455     \
>     """;
> 
> This sort of pattern is high maintenance; aligning backslashes. I think a 
> style guide would likely discourage this as a general pattern (even though I 
> like the aesthetics.) I tend to favour the Jim patterns you mentioned, mostly 
> because they are precise. There is no question here about what is kept and 
> what is discarded.
> 
> String story = """
>     "When I use a word," Humpty Dumpty said, \
>     in rather a scornful tone, "it means just what I \
>     choose it to mean - neither more nor less.”
>     "The question is," said Alice, "whether you \
>     can make words mean so many different things."
>     "The question is," said Humpty Dumpty, \
>     "which is to be master - that's all."
>     """;
> String story = """
>     "When I use a word," Humpty Dumpty said,\
>      in rather a scornful tone, "it means just what I\
>      choose it to mean - neither more nor less.”
>     "The question is," said Alice, "whether you\
>      can make words mean so many different things."
>     "The question is," said Humpty Dumpty,\
>      "which is to be master - that's all."
>     """;
> 
> There is a another case which you didn't mention;
> 
> String story = """
>     "When I use a word," Humpty Dumpty said,\
>     in rather a scornful tone, "it means just what I\
>     choose it to mean - neither more nor less.”\
>                                                 
>        "The question is," said Alice, "whether you\
>     can make words mean so many different things."\
> 
>        "The question is," said Humpty Dumpty,\
>     "which is to be master - that's all."
>     """;
> What does do you do here? Do you stop at the second line terminator and, if 
> so, what happens to the white space on the next line. This is where precision 
> would make it cleaner/clearer.
> 
> THE one case where your proposal wins for me is when used with the string 
> literals. As proposed in the JEP, we have to continue string literals 
> immediately at the left margin.
> 
>     String str = "A line that may need to \
> continue on the next line.";
> 
> Using your proposal we could do the following;
> 
>     String str = "A line that may need to \
>                   continue on the next line.";
> 
> Cheers,
> 
> -- Jim
> 
> 
> 
>> On Aug 14, 2019, at 5:55 PM, John Rose <john.r.r...@oracle.com 
>> <mailto:john.r.r...@oracle.com>> wrote:
>> 
>> On Aug 13, 2019, at 10:29 AM, John Rose <john.r.r...@oracle.com 
>> <mailto:john.r.r...@oracle.com>> wrote:
>>> 
>>> So I suggest deleting all of <LWS* \ LT LWS*> where LWS is either space or 
>>> tab, unescaped of course. 
>>> 
>> 
>> Just to be clear about my suggestion for stripping additional incidental 
>> whitespace before
>> and/or after <\ LT>, here’s an example for using a rule that expand 
>> stripping:
>> 
>> String story = """
>>     "When I use a word," Humpty Dumpty said,         \
>>      in rather a scornful tone, "it means just what I \
>>      choose it to mean - neither more nor less.”
>>     "The question is," said Alice, "whether you      \
>>      can make words mean so many different things."
>>     "The question is," said Humpty Dumpty,           \
>>      "which is to be master - that's all."
>>     """;
>> 
>> Here, all the spaces *before* the backslashes are treated as incidental.  
>> They are beneficial
>> in allowing the programmer to lay them out separately from the content.  The 
>> dots show
>> which spaces are incidental (in both existing rules and under my 
>> suggestion)l:
>> 
>> String story = """
>> ...."When I use a word," Humpty Dumpty said,.........\
>> .... in rather a scornful tone, "it means just what I.\
>> .... choose it to mean - neither more nor less.”
>> ...."The question is," said Alice, "whether you......\
>> .... can make words mean so many different things."
>> ...."The question is," said Humpty Dumpty,...........\
>> .... "which is to be master - that's all."
>> ....""";
>> 
>> Here is the same content but without the extra incidental spaces, which 
>> conforms to the current
>> proposal by Jim:
>> 
>> 
>> String story = """
>>     "When I use a word," Humpty Dumpty said, \
>>     in rather a scornful tone, "it means just what I \
>>     choose it to mean - neither more nor less.”
>>     "The question is," said Alice, "whether you \
>>     can make words mean so many different things."
>>     "The question is," said Humpty Dumpty, \
>>     "which is to be master - that's all."
>>     """;
>> 
>> Equivalently, and a bit more legibly, and also within the bounds of Jim's 
>> proposal:
>> 
>> String story = """
>>     "When I use a word," Humpty Dumpty said,\
>>      in rather a scornful tone, "it means just what I\
>>      choose it to mean - neither more nor less.”
>>     "The question is," said Alice, "whether you\
>>      can make words mean so many different things."
>>     "The question is," said Humpty Dumpty,\
>>      "which is to be master - that's all."
>>     """;
>> 
>> The intended content is, of course:
>> String story = """
>>     "When I use a word," Humpty Dumpty said, in rather a scornful tone, "it 
>> means just what I choose it to mean - neither more nor less.”
>>     "The question is," said Alice, "whether you can make words mean so many 
>> different things."
>>     "The question is," said Humpty Dumpty, "which is to be master - that's 
>> all."
>>     """;
>> 
>> Incidental space could also be stripped after <\ LT> as well as before.  I 
>> think that the value of aligning
>> the backslashes is the main benefit here, so stripping *before* <\ LT> is 
>> more important than after.
>> But stripping incidentals after would allow the programmer to lay out 
>> continuation lines at a different
>> left margin, which can also be a help to readability, although the <\ s> 
>> sequences undo the benefit:
>> 
>> 
>> String story = """
>>     "When I use a word," Humpty Dumpty said,         \
>>          \sin rather a scornful tone, "it means just what I \
>>          \schoose it to mean - neither more nor less.”
>>     "The question is," said Alice, "whether you      \
>>          \scan make words mean so many different things."
>>     "The question is," said Humpty Dumpty,           \
>>          \s"which is to be master - that's all."
>>     """;
>> 
>> So I’ll amend my suggestion to something a little trickier:  <LWS* \ LT> is 
>> stripped
>> as incidental whitespace, but in the case of <LWS* \ LT LWS* LWS>, the final 
>> character
>> of linear whitespace (aka horizontal whitespace) is significant content, not 
>> incidental.
>> This allows the obscuring <\ s> to be removed in the example:
>> 
>> 
>> String story = """
>>     "When I use a word," Humpty Dumpty said,         \
>>          in rather a scornful tone, "it means just what I \
>>          choose it to mean - neither more nor less.”
>>     "The question is," said Alice, "whether you      \
>>          can make words mean so many different things."
>>     "The question is," said Humpty Dumpty,           \
>>          "which is to be master - that's all."
>>     """;
>> 
>> Here is the extra incidental space marked as dots:
>> 
>> String story = """
>> ...."When I use a word," Humpty Dumpty said,.........\
>> ........ in rather a scornful tone, "it means just what I.\
>> ........ choose it to mean - neither more nor less.”
>> ...."The question is," said Alice, "whether you......\
>> ........ can make words mean so many different things."
>> ...."The question is," said Humpty Dumpty,...........\
>> ........ "which is to be master - that's all."
>> ....""";
>> 
>> The suggested rule allows the author to adjust the broken line endings for 
>> maximum readability,
>> and the elision of the incidental space flows with them.
>> 
>> Meanwhile, if the content has no spaces (perhaps it’s some kind fo binary 
>> resource) the user
>> cannot indent the continuation lines, but can still space out the backslash 
>> into a proudly separate
>> position from the content:
>> 
>> String hexData = """
>>             000102030405060708090a0b0c0d0e0f101112131415   \
>>     161718191a1b1c1d1e1f202122232425262728292a2b2c \
>>     2d2e2f303132333435363738393a3b3c3d3e3f40       \
>>     4142434445464748494a4b4c4d4e4f505152535455     \
>>     """;
>> assert !hexData.contains(" ");
>> 
>> The basic motivation should be clear:  Give users tools to lay out 
>> delimiters clearly separate
>> from content.  Whether it’s worth adding the extra twist to the rule about 
>> <\ LT> I will leave for
>> others to decide.
>> 
>> HTH.
>> 
>> — John
> 

Reply via email to