<html><head><style>
body {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        padding:1em;
        margin:auto;
        background:#fefefe;
}

h1, h2, h3, h4, h5, h6 {
        font-weight: bold;
}

h1 {
        color: #000000;
        font-size: 28pt;
}

h2 {
        border-bottom: 1px solid #CCCCCC;
        color: #000000;
        font-size: 24px;
}

h3 {
        font-size: 18px;
}

h4 {
        font-size: 16px;
}

h5 {
        font-size: 14px;
}

h6 {
        color: #777777;
        background-color: inherit;
        font-size: 14px;
}

hr {
        height: 0.2em;
        border: 0;
        color: #CCCCCC;
        background-color: #CCCCCC;
    display: inherit;
}

p, blockquote, ul, ol, dl, li, table, pre {
        margin: 15px 0;
}

a, a:visited {
        color: #4183C4;
        background-color: inherit;
        text-decoration: none;
}

#message {
        border-radius: 6px;
        border: 1px solid #ccc;
        display:block;
        width:100%;
        height:60px;
        margin:6px 0px;
}

button, #ws {
        font-size: 12 pt;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid #bbb;
        background-color: #eee;
}

code, pre, #ws, #message {
        font-family: Monaco;
        font-size: 10pt;
        border-radius: 3px;
        background-color: #F8F8F8;
        color: inherit;
}

code {
        border: 1px solid #EAEAEA;
        margin: 0 2px;
        padding: 0 5px;
}

pre {
        border: 1px solid #CCCCCC;
        overflow: auto;
        padding: 4px 8px;
}

pre > code {
        border: 0;
        margin: 0;
        padding: 0;
}

#ws { background-color: #f8f8f8; }


.bloop_markdown table {
border-collapse: collapse;  
font-family: Helvetica, arial, freesans, clean, sans-serif;  
color: rgb(51, 51, 51);  
font-size: 15px; line-height: 25px;
padding: 0; }

.bloop_markdown table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
     
.bloop_markdown table tr:nth-child(2n) {
background-color: #f8f8f8; }

.bloop_markdown table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr th :first-child, table tr td :first-child {
margin-top: 0; }

.bloop_markdown table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }

.bloop_markdown blockquote{
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

code, pre, #ws, #message {
    word-break: normal;
    word-wrap: normal;
}

hr {
    display: inherit;
}

.bloop_markdown :first-child {
    -webkit-margin-before: 0;
}

code, pre, #ws, #message {
    font-family: Menlo, Consolas, Liberation Mono, Courier, monospace;
}


.send { color:#77bb77; }
.server { color:#7799bb; }
.error { color:#AA0000; }</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="bloop_markdown"><p>The result is not surprisingly to me, at least not if I follow the simplicity of my gist.</p>

<p><code>"Line 1····Line2"</code></p>

<p>Notice I put quotes around the string to better showcase the result here in the mailing list.</p>

<p>The backslash serves two jobs in lines <code>s0</code> to <code>s(n - 1)</code>:</p>

<ul>
<li>Disable new line injection.</li>
<li>Trailing space precision.</li>
</ul>

<p>The backslash serves only one job for the line <code>sn</code> (or as I also refer it as ‘last content line’):</p>

<ul>
<li>Trailing space precision.</li>
</ul>

<p>Here some other example:</p>

<pre><code class="swift">"""
Line 1···\n\
Line 2··\
"""
</code></pre>

<p>Result:</p>

<p><code>"Line 1···\nLine 2··"</code></p>

<p>Another one:</p>

<pre><code class="swift">"""
Line 1···\n\
Line 2·····················
"""
</code></pre>

<p>Result:</p>

<p><code>"Line 1···\nLine 2"</code></p>

<p>The second line cannot and should not contain <code>·····················</code> because right (trailing) precision is handled by the backslash, where left (leading) precision is handled by the indent stripping algorithm calculated from the indent prefix before the closing delimiter <code>"""</code>.</p>

<p></p></div><div class="bloop_original_html"><style>body{font-family:Helvetica,Arial;font-size:13px}</style><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <br> <div id="bloop_sign_1492090446634832896" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Adrian Zubarev<br>Sent with Airmail</div></div> <br><p class="airmail_on">Am 13. April 2017 um 15:29:52, Ricardo Parada (<a href="mailto:rparada@mac.com">rparada@mac.com</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div></div><div>



<title></title>


I don't care much for trailing whitespace but I thought we should
respect the trailing whitespace in the event that it is
significant. &nbsp;
<div class=""><br class=""></div>
<div class="">If I'm worried about precision in a string, I turn on
the display of whitespace characters and make sure everything is as
expected. &nbsp;</div>
<div class=""><br class=""></div>
<div class="">I also think it would surprise me if I put a space
there and then the compiler removes it.
<div class=""><br class=""></div>
<div class="">Also, what would this mean?</div>
<div class=""><br class=""></div>
<div class=""><font face="Menlo" style="font-size: 12px;" class="">"""</font></div>
<div class=""><font face="Menlo" style="font-size: 12px;" class="">Line 1 &nbsp; &nbsp;\</font></div>
<div class=""><font face="Menlo" style="font-size: 12px;" class="">Line 2</font></div>
<div class=""><font face="Menlo" style="font-size: 12px;" class="">"""</font></div>
<div class=""><br class=""></div>
<div class="">Is that backslash escaping the newline? or is it
there to include the trailing whitespace on Line 1? &nbsp;</div>
<div class=""><br class=""></div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Apr 13, 2017, at 9:20 AM, Adrian Zubarev
&lt;<a href="mailto:adrian.zubarev@devandartist.com" class="">adrian.zubarev@devandartist.com</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<p style="margin: 15px 0px; -webkit-margin-before: 0px;" class="">
This is not an assumptions but a fact that the trailing spaces
cannot and should not exist without an explicit annotation for
precision, otherwise the backslash looses one of its main and
significant functionality.</p>
<div style="margin: 15px 0px;" class=""><br class="webkit-block-placeholder"></div>
</div>
<div class="bloop_original_html" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; margin: 0px;" class=""><br class=""></div>
<br class="">
<div id="bloop_sign_1492089534233910016" class="bloop_sign">
<div style="font-family: helvetica, arial; font-size: 13px;" class="">--&nbsp;<br class="">
Adrian Zubarev<br class="">
Sent with Airmail</div>
</div>
<br class="">
<p class="airmail_on" style="margin: 15px 0px;">Am 13. April 2017
um 15:13:50, Ricardo Parada (<a href="mailto:rparada@mac.com" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">rparada@mac.com</a>) schrieb:</p>
<blockquote type="cite" class="clean_bq" style="margin: 15px 0px;">
<div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div class=""></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">Hi Adrian,</span>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">My conclusion that we should leave it alone is based on
the assumption that someone may consider the trailing whitespace
significant and correct.</span>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span>
<div class="">
<blockquote type="cite" class="" style="margin: 15px 0px;">
<div class="" style="margin-top: 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">On Apr 13, 2017, at
9:05 AM, Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">adrian.zubarev@devandartist.com</a>&gt;
wrote:</span></div>
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="Apple-interchange-newline"></span>
<div class="" style="margin-bottom: 0px;">
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<p class="" style="margin: 15px 0px; -webkit-margin-before: 0px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">That
would be so wrong, because it’s not obvious to anyone how long your
string will be.</span></p>
<pre class="" style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;"><span style="margin-top: 0px; margin-bottom: 0px;" class=""><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;">"""
foo
"""
</code></span></pre>
<p class="" style="margin: 15px 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">I could tell you,
that the string from above could have 10k characters, even if you
wouldn’t believe me, as it was proposed (and included in
yesterday’s toolchain) my claim can be true.</span></p>
<p class="" style="margin: 15px 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">The trailing spaces
needs to be stripped by the algorithm unless there is an explicit
precision annotation with a backslash!</span></p>
<pre class="" style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;"><span style="margin-top: 0px; margin-bottom: 0px;" class=""><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;">"""
foo   \
"""
</code></span></pre>
<p class="" style="margin: 15px 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">That example
definitely won’t have 10k characters.</span></p>
<div class="" style="margin: 15px 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="webkit-block-placeholder" style="-webkit-margin-before: 0px;"></span></div>
</div>
<div class="bloop_original_html" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<div id="bloop_customfont" class="" style="font-family: Helvetica, Arial; font-size: 13px; margin: 0px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span>
<div id="bloop_sign_1492088466784894976" class="bloop_sign">
<div class="" style="font-family: helvetica, arial; font-size: 13px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">--&nbsp;<br class="">
Adrian Zubarev<br class="">
Sent with Airmail</span></div>
</div>
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span>
<p class="airmail_on" style="margin: 15px 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">Am 13. April 2017
um 14:35:59, Ricardo Parada (<a href="mailto:rparada@mac.com" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">rparada@mac.com</a>)
schrieb:</span></p>
<blockquote type="cite" class="clean_bq" style="margin: 15px 0px;">
<div class="" style="margin-top: 0px; margin-bottom: 0px;">
<div class="" style="font-family: helvetica; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><span class="" style="margin-top: 0px; margin-bottom: 0px;"><b class="">Trailing
whitespace</b>&nbsp;</span></span></div>
<div class="" style="font-family: helvetica; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<span class="" style="margin-top: 0px; margin-bottom: 0px;"><br class=""></span></div>
<div class="" style="font-family: helvetica; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<span class="" style="margin-top: 0px; margin-bottom: 0px;">You
also propose to remove trailing white space in each line unless the
whitespace is followed by a backslash. &nbsp; For
example:</span></div>
<div class="" style="font-family: helvetica; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<pre class="" style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;"><span class="" style="margin-top: 0px; margin-bottom: 0px;"><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal;">let str_2 = """↵     
foo··↵
"""</code></span></pre></div>
<div class="" style="font-family: helvetica; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<span class="" style="margin-top: 0px; margin-bottom: 0px;">The two
trailing whitespaces after foo would get removed according to what
you are proposing. I don't like this rule. I think we are better
off with leaving it alone and to the tools as Brent
suggested.&nbsp;</span></div>
</div>
</blockquote>
</div>
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
</div>
</div>
</blockquote>
</div>
<br class=""></div>
</div>
</div>
</div>
</blockquote>
</div>
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<br class="Apple-interchange-newline"></div>
</div>
</blockquote>
</div>
<br class=""></div>
</div>


</div></div></span></blockquote></div><div class="bloop_markdown"><p></p></div></body></html>