<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>New line character <code>\n</code> should not become part of the string itself, that would be really confusing and inconsistent to other escaped characters.</p>

<blockquote>
<pre><code class="swift">let mys1 = """my"
"multiline"
"string"""
</code></pre>
</blockquote>

<p>The idea is in general the same as I showed it, my version might be really overcomplicated, but you’ve got the point there and that’s what we want for everyone. The multi-lined string (if it ever makes it) should be intuitive (and swifty).</p>

<p>One argument for using <code>"</code> is the similarity to the string literel we’re already familiar with. If you decide to split your long string literal into multilines, it shouldn’t force you to rewrite the outer characters. Ideally you should be able to simple hitting enter a couple of times and thats it (in that case your string does not need space characters). </p>

<pre><code class="swift">let string1 = "&lt;tag_1&gt;&lt;tag_2&gt;content&lt;/tag_2&gt;&lt;/tag_1&gt;"
let string2 = "&lt;tag_1&gt;
    &lt;tag_2&gt;content&lt;/tag_2&gt;
    &lt;/tag_1&gt;"
</code></pre>

<p>And we just need to come up with precision characters that will suite everyone.</p>

<pre><code class="swift">let string = "my [right_pricision_character]
[left_pricision_character]multiline [right_pricision_character]
[left_pricision_character]string"
</code></pre>

<p>Just replace <code>[left_pricision_character]</code> and <code>[right_pricision_character]</code> with something more _swifty_.
</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_1491226962494451968" 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 3. April 2017 um 15:36:37, Daniel Leping (<a href="mailto:daniel@crossroadlabs.xyz">daniel@crossroadlabs.xyz</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>


<title></title>


<div>I think it quite some overcomplicates the situation. I would
prefer:</div>
<div>1. Distinct multiline strings, (e.g. not " but rather
""")</div>
<div>2. We could use something like this for precision:</div>
<div>let mys1 = """my"</div>
<div>"multiline"</div>
<div>"string"""</div>
<div>// equivalent to "mymultilinestring"</div>
<div><br></div>
<div>let mys2 = """my</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;multiline</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;string"""</div>
<div>// equivalent to "my\nmultiline\nstring"<br></div>
<div><br></div>
<div><br></div>
<div>This looks simpler to me, still you can do everything with
it.</div>
<div><br></div>
<div>
<div class="gmail_quote">
<div>On Mon, 3 Apr 2017 at 15:36 Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com">adrian.zubarev@devandartist.com</a>&gt;
wrote:<br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word" class="gmail_msg">
<div class="m_7291890166052924657bloop_markdown gmail_msg">
<p class="gmail_msg">I don’t really think this is about how to
indicate a multi-lined string, where the string starts and ends
with something like <code class="gmail_msg">"</code>, <code class="gmail_msg">'</code> or <code class="gmail_msg">"""</code> is
trivial to me. It’s just a decision to make. However the main
debate I see with that topic is the ambiguity from the readers
perspective.</p>
<p class="gmail_msg">In your example I assume you want a result to
match this: “my multiline string”, but what if you need precision?
Should we really fallback to single line string then? What if you
want to print some XML file with all it’s indent calculated with
whitespaces rather than tabs? The multiline version like that won’t
work, and if your string is huge you’ll end up at a place where we
already are. This doesn’t solve the main then because we could
otherwise simply allow this today:</p>
<pre class="gmail_msg"><code class="m_7291890166052924657swift gmail_msg">let string = "my
        multiline
        string"
</code></pre>
<p class="gmail_msg">I’m only speaking for my personal preference,
others might see it completely different. However I’m totally sure
multiline strings solve more than simply being able to write them
so that the compiler is satisfied.</p>
<p class="gmail_msg">As a compromise for everyone we possibly could
come up with a way which serves both, simplicity and precision.</p>
<p class="gmail_msg">For the next bikeshedding example I’m going to
use <code class="gmail_msg">'</code> for multi-lined strings:</p>
<pre class="gmail_msg"><code class="m_7291890166052924657swift gmail_msg">// Simplicity which supports indent but at a cost of no   
// leading or trailing space characters
let string1 = 'my
        multiline
        string'

print(string1) // prints "mymultilinestring"

let string2 = 'my \   
        multiline \
        string'
          
// Trailing precision
print(string2) // prints "my multiline string"

let string3 = 'my
        ' multiline
        ' string'
          
// Leading precision
print(string3) // prints "my multiline string"

let string4 = 'my \
        ' multiline \
        ' string'
          
// Leading and trailing precision
print(string4) // prints "my  multiline  string" (Note: 2x two whitespaces)

let string5 = 'my\
        'multiline\
        'string'
          
// Leading and trailing precision
// Provide a fix-it to remove some `\` and `'` characters
// because it equals `string1`
print(string5) // prints "mymultilinestring"

let string6 = 'my \
        'multiline \
        'string'
          
// Leading and trailing precision
// Provide a fix-it to remove some `'` characters
// because it equals `string2`
print(string6) // prints "my multiline string"

let string7 = 'my\
        ' multiline\
        ' string'
          
// Leading and trailing precision
// Provide a fix-it to remove some `\` characters
// because it equals `string3`
print(string7) // prints "my multiline string"
</code></pre>
<p class="gmail_msg">Comments should be only allowed after the
escaping character. <code class="gmail_msg">string1</code> can only
have comments after the last line of that string.</p>
<p class="gmail_msg">I think a model like this could have the best
from both worlds.</p>
<hr class="gmail_msg">
<p class="gmail_msg">Personally I dislike the idea of <code class="gmail_msg">"""</code> and would rather want a model from above
with <code class="gmail_msg">"</code> and <code class="gmail_msg">\</code> or as written.</p>
<p class="gmail_msg"></p>
</div>
<div class="m_7291890166052924657bloop_original_html gmail_msg">
</div>
</div>
<div style="word-wrap:break-word" class="gmail_msg">
<div class="m_7291890166052924657bloop_original_html gmail_msg">
<div id="m_7291890166052924657bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><br class="gmail_msg"></div>
<br class="gmail_msg">
<div id="m_7291890166052924657bloop_sign_1491221636497863936" class="m_7291890166052924657bloop_sign gmail_msg">
<div style="font-family:helvetica,arial;font-size:13px" class="gmail_msg">--&nbsp;<br class="gmail_msg">
Adrian Zubarev<br class="gmail_msg">
Sent with Airmail</div>
</div>
<br class="gmail_msg"></div>
</div>
<div style="word-wrap:break-word" class="gmail_msg">
<div class="m_7291890166052924657bloop_original_html gmail_msg">
<p class="m_7291890166052924657airmail_on gmail_msg">Am 3. April
2017 um 11:56:12, Daniel Leping (<a href="mailto:daniel@crossroadlabs.xyz" class="gmail_msg" target="_blank">daniel@crossroadlabs.xyz</a>) schrieb:</p>
<blockquote type="cite" class="m_7291890166052924657clean_bq gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg"></div>
<div class="gmail_msg">
<div class="gmail_msg"><span class="gmail_msg">What about """
notation?</span></div>
<div class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span class="gmail_msg">It could become
something like:</span></div>
<div class="gmail_msg"><span class="gmail_msg">let mys =
"""my</span></div>
<div class="gmail_msg"><span class="gmail_msg">&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; multiline</span></div>
<div class="gmail_msg"><span class="gmail_msg">&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; string"""</span></div>
<div class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg"></span>
<div class="gmail_quote gmail_msg">
<div class="gmail_msg"><span class="gmail_msg">On Mon, 3 Apr 2017
at 12:35 Adrian Zubarev via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="gmail_msg"></span></div>
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word" class="gmail_msg">
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg">
<p class="gmail_msg"><span class="gmail_msg">Simply because it’s
always a zero to n space characters at the start of the line and at
its end. You cannot predict the need of every multi-line
string.</span></p>
<p class="gmail_msg"><span class="gmail_msg">I don’t disagree that
typing out some extra <code class="gmail_msg">"</code> and
<code class="gmail_msg">\</code> is tedious, but what I really like
about it is, it’s precise.</span></p>
<pre class="gmail_msg"><span class="gmail_msg"><code class="m_7291890166052924657m_-3984622749196973764swift gmail_msg">let string =    
    "Hello   \ // Three trailing space characters
    "Swift\
    "   4.0"   // Three leading space characters
       
print(string) // prints: "Hello___Swift___4.0" where _ ist a space character
</code></span></pre>
<p class="gmail_msg"></p>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg">
</div>
</div>
<div style="word-wrap:break-word" class="gmail_msg">
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg">
<div id="m_7291890166052924657m_-3984622749196973764bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg"></span></div>
<span class="gmail_msg"><br class="gmail_msg"></span>
<div id="m_7291890166052924657m_-3984622749196973764bloop_sign_1491211727062347776" class="m_7291890166052924657m_-3984622749196973764bloop_sign gmail_msg">
<div style="font-family:helvetica,arial;font-size:13px" class="gmail_msg"><span class="gmail_msg">--&nbsp;<br class="gmail_msg">
Adrian Zubarev<br class="gmail_msg">
Sent with Airmail</span></div>
</div>
<span class="gmail_msg"><br class="gmail_msg"></span></div>
</div>
<div style="word-wrap:break-word" class="gmail_msg">
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg">
<p class="m_7291890166052924657m_-3984622749196973764airmail_on gmail_msg">
<span class="gmail_msg">Am 3. April 2017 um 11:27:58, Charlie
Monroe (<a href="mailto:charlie@charliemonroe.net" class="gmail_msg" target="_blank">charlie@charliemonroe.net</a>)
schrieb:</span></p>
<blockquote type="cite" class="m_7291890166052924657m_-3984622749196973764clean_bq gmail_msg">
<div style="word-wrap:break-word" class="gmail_msg">
<div class="gmail_msg"></div>
<div class="gmail_msg"><span class="gmail_msg"><span class="gmail_msg">Yes, but with ", you need to escape " occurrences -
which is a fairly common character - I'd say more common than
|.</span></span>
<div class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span class="gmail_msg">The trailing
whitespace - why can't it just be included in the string
automatically? Just for supporting comments?</span></div>
<div class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg"></span>
<div class="gmail_msg">
<blockquote type="cite" class="gmail_msg">
<div class="gmail_msg"><span class="gmail_msg">On Apr 3, 2017, at
11:19 AM, Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com" class="gmail_msg" target="_blank">adrian.zubarev@devandartist.com</a>&gt;
wrote:</span></div>
<span class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764Apple-interchange-newline gmail_msg">
</span>
<div class="gmail_msg">
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg" 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;background-color:rgb(254,254,254)">
<p style="margin:15px 0px" class="gmail_msg"><span class="gmail_msg">This is almost the same as proposed, but we
use<span class="m_7291890166052924657m_-3984622749196973764Apple-converted-space gmail_msg">&nbsp;</span><code 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:1px solid rgb(234,234,234);margin:0px 2px;padding:0px 5px;word-break:normal;word-wrap:normal" class="gmail_msg">"</code><span class="m_7291890166052924657m_-3984622749196973764Apple-converted-space gmail_msg">&nbsp;</span>instead
of<span class="m_7291890166052924657m_-3984622749196973764Apple-converted-space gmail_msg">&nbsp;</span><code 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:1px solid rgb(234,234,234);margin:0px 2px;padding:0px 5px;word-break:normal;word-wrap:normal" class="gmail_msg">|</code>, however you still don’t have trailing
space characters covered like this.</span></p>
<div style="margin:15px 0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764webkit-block-placeholder gmail_msg">
</div>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg" 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;background-color:rgb(254,254,254)">
<div id="m_7291890166052924657m_-3984622749196973764bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px" class="gmail_msg"><br class="gmail_msg"></div>
<br class="gmail_msg">
<div id="m_7291890166052924657m_-3984622749196973764bloop_sign_1491211064873042176" class="m_7291890166052924657m_-3984622749196973764bloop_sign gmail_msg">
<div style="font-family:helvetica,arial;font-size:13px" class="gmail_msg">--&nbsp;<br class="gmail_msg">
Adrian Zubarev<br class="gmail_msg">
Sent with Airmail</div>
</div>
<br class="gmail_msg">
<p class="m_7291890166052924657m_-3984622749196973764airmail_on gmail_msg" style="margin:15px 0px">Am 3. April 2017 um 11:16:41, Charlie
Monroe (<a href="mailto:charlie@charliemonroe.net" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none" class="gmail_msg" target="_blank">charlie@charliemonroe.net</a>)
schrieb:</p>
<blockquote type="cite" class="m_7291890166052924657m_-3984622749196973764clean_bq gmail_msg" style="margin:15px 0px">
<div style="word-wrap:break-word" class="gmail_msg">
<div class="gmail_msg"></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">You can. I
wish I remembered the language this was in (not sure if it's in
Scala), but you can do something like:</span>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">let xml =
'''<br class="gmail_msg">
|&lt;?xml version="1.0"?&gt;&nbsp;<br class="gmail_msg">
|&lt;catalog&gt;&nbsp;</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">|
&lt;...&gt;</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">|&lt;/catalog&gt;&nbsp;<br class="gmail_msg">
'''</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">This way, if
you care about the leading whitespace, you define the line
beginning using "|".</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">Two characters
aren't harmful, but in my experience when working with HTML
strings, etc. the quote-escaping is extremely tedious.</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span>
<div class="gmail_msg">
<blockquote type="cite" style="margin:15px 0px" class="gmail_msg">
<div style="margin-top:0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">On Apr 3,
2017, at 11:06 AM, Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none" class="gmail_msg" target="_blank">adrian.zubarev@devandartist.com</a>&gt;
wrote:</span></div>
<span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764Apple-interchange-newline gmail_msg">
</span>
<div style="margin-bottom:0px" class="gmail_msg">
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg" 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;background-color:rgb(254,254,254)">
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">My main
concern with this approach is that you don’t have any control about
indent and you loose pre- and post spacing characters.</span></p>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">A
concatenating approach is a little tedious but it’s precise. In any
situation a multi-lined string is not softly wrapped string, which
implies that you will have to press enter for each new line you
wish to have. IMHO adding two more characters for each line isn’t
that harmful. ;-)</span></p>
<div style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764webkit-block-placeholder gmail_msg">
</span></div>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg" 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;background-color:rgb(254,254,254)">
<div id="m_7291890166052924657m_-3984622749196973764bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span>
<div id="m_7291890166052924657m_-3984622749196973764bloop_sign_1491210105294919936" class="m_7291890166052924657m_-3984622749196973764bloop_sign gmail_msg">
<div style="font-family:helvetica,arial;font-size:13px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">--&nbsp;<br class="gmail_msg">
Adrian Zubarev<br class="gmail_msg">
Sent with Airmail</span></div>
</div>
<span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span>
<p class="m_7291890166052924657m_-3984622749196973764airmail_on gmail_msg" style="margin:15px 0px"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">Am 3. April
2017 um 10:49:02, Charlie Monroe (<a href="mailto:charlie@charliemonroe.net" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none" class="gmail_msg" target="_blank">charlie@charliemonroe.net</a>)
schrieb:</span></p>
<blockquote type="cite" class="m_7291890166052924657m_-3984622749196973764clean_bq gmail_msg" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px;word-wrap:break-word" class="gmail_msg">
<div class="gmail_msg"></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">While I long
for multiline string literals, I'd also very like to see a
different syntax as in many cases, these can be XML/HTML snippets
and the use of quotes is ubiqituous. I'd very much like to see a
variant where you can simply paste almost any string without
escaping it.</span></span>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">For example,
Scala uses a tripple-quote syntax... As we've gotten rid of ' for
character literals, we could use it for multiline
strings?</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">Or possibly
tripple-apostrophe for multiline strings?</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">let xml =
'''</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">&lt;?xml
version="1.0"?&gt;&nbsp;</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">&lt;catalog/&gt;&nbsp;</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">'''</span></div>
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span></div>
<div class="gmail_msg">
<div class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="gmail_msg"></span>
<div class="gmail_msg">
<blockquote type="cite" style="margin:15px 0px" class="gmail_msg">
<div style="margin-top:0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">On Apr 3,
2017, at 9:01 AM, Adrian Zubarev via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt;
wrote:</span></div>
<span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764Apple-interchange-newline gmail_msg">
</span>
<div style="margin-bottom:0px" class="gmail_msg">
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg" 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;background-color:rgb(254,254,254)">
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">Hello Swift
community,</span></p>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">on Github
there is a PR for this proposal, but I couldn’t find any up to date
thread, so I’m going to start by replying to the last message I
found, without the last content.</span></p>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">I really like
where this proposal is going, and my personal preference are
*continuation quotes*. However the proposed solution is still not
perfect enough for me, because it still lacks of precise control
about the trailing space characters in each line of a multi-line
string.</span></p>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">Proposed
version looks like this:</span></p>
<pre 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" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><code class="m_7291890166052924657m_-3984622749196973764swift gmail_msg" 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 xml = "&lt;?xml version=\"1.0\"?&gt;
    "&lt;catalog&gt;
    "    &lt;book id=\"bk101\" empty=\"\"&gt;
    "        &lt;author&gt;\(author)&lt;/author&gt;
    "        &lt;title&gt;XML Developer's Guide&lt;/title&gt;
    "        &lt;genre&gt;Computer&lt;/genre&gt;
    "        &lt;price&gt;44.95&lt;/price&gt;
    "        &lt;publish_date&gt;2000-10-01&lt;/publish_date&gt;
    "        &lt;description&gt;An in-depth look at creating applications with XML.&lt;/description&gt;
    "    &lt;/book&gt;
    "&lt;/catalog&gt;
    ""
</code></span></pre>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">I would like
to pitch an enhancement to fix the last tiny part by adding the
escaping character ‘' to the end of each line from 1 to (n - 1) of
the n-lined string. This is similar to what Javascript allows us to
do, except that we also have precise control about the leading
space character through ’"’.</span></p>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">The proposed
version will become this:</span></p>
<pre 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" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><code class="m_7291890166052924657m_-3984622749196973764swift gmail_msg" 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 xml = "&lt;?xml version=\"1.0\"?&gt;\       
    "&lt;catalog&gt;\ // If you need you can comment here
    "    &lt;book id=\"bk101\" empty=\"\"&gt;\
    "        &lt;author&gt;\(author)&lt;/author&gt;\
    "        &lt;title&gt;XML Developer's Guide&lt;/title&gt;\
    "        &lt;genre&gt;Computer&lt;/genre&gt;\
    "        &lt;price&gt;44.95&lt;/price&gt;\
    "        &lt;publish_date&gt;2000-10-01&lt;/publish_date&gt;\
    "        &lt;description&gt;An in-depth look at creating applications with XML.&lt;/description&gt;\
    "    &lt;/book&gt;\
    "&lt;/catalog&gt;\
    ""
</code></span></pre>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">Here is
another example:</span></p>
<pre 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" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg"><code class="m_7291890166052924657m_-3984622749196973764swift gmail_msg" 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 multilineString: String = "123__456__\ // indicates there is another part of the string on the next line
                              "__789_____\ // aways starts with `"` and ends with either `\` or `"`
                              "_____0_" // precise control about pre- and post-space-characters

let otherString = "\(someInstance)\ /* only comments are allowed in between */ "text \(someOtherInstance) text"
</code></span></pre>
<p style="margin:15px 0px" class="gmail_msg"><span style="margin-top:0px;margin-bottom:0px" class="gmail_msg">This is
simply<span class="m_7291890166052924657m_-3984622749196973764Apple-converted-space gmail_msg">&nbsp;</span><strong class="gmail_msg">continuation
quotes</strong><span class="m_7291890166052924657m_-3984622749196973764Apple-converted-space gmail_msg">&nbsp;</span>combined
with<span class="m_7291890166052924657m_-3984622749196973764Apple-converted-space gmail_msg">&nbsp;</span><strong class="gmail_msg">backslash
concatenation</strong>.</span></p>
<div style="margin:15px 0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764webkit-block-placeholder gmail_msg">
</div>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg" 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;background-color:rgb(254,254,254)">
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg">
<div style="margin:15px 0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764webkit-block-placeholder gmail_msg">
</div>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_original_html gmail_msg">
<div id="m_7291890166052924657m_-3984622749196973764bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px" class="gmail_msg"><br class="gmail_msg"></div>
<br class="gmail_msg">
<div id="m_7291890166052924657m_-3984622749196973764bloop_sign_1491202043170386944" class="m_7291890166052924657m_-3984622749196973764bloop_sign gmail_msg">
<div style="font-family:helvetica,arial;font-size:13px" class="gmail_msg">--&nbsp;<br class="gmail_msg">
Adrian Zubarev<br class="gmail_msg">
Sent with Airmail</div>
</div>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg">
<div style="margin:15px 0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764webkit-block-placeholder gmail_msg">
</div>
</div>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg" 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;background-color:rgb(254,254,254)">
<div style="margin:15px 0px" class="gmail_msg"><br class="m_7291890166052924657m_-3984622749196973764webkit-block-placeholder gmail_msg">
</div>
</div>
<span 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;background-color:rgb(254,254,254);float:none;display:inline!important" class="gmail_msg">_______________________________________________</span><br 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;background-color:rgb(254,254,254)" class="gmail_msg">
<span 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;background-color:rgb(254,254,254);float:none;display:inline!important" class="gmail_msg">swift-evolution mailing list</span><br 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;background-color:rgb(254,254,254)" class="gmail_msg">
<a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:rgb(254,254,254);text-decoration:none;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" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br 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;background-color:rgb(254,254,254)" class="gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color:rgb(65,131,196);background-color:rgb(254,254,254);text-decoration:none;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" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br 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;background-color:rgb(254,254,254)" class="gmail_msg"></div>
</blockquote>
</div>
<br class="gmail_msg"></div>
</div>
</div>
</div>
</blockquote>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg" 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;background-color:rgb(254,254,254)">
<br class="m_7291890166052924657m_-3984622749196973764Apple-interchange-newline gmail_msg">
</div>
</div>
</blockquote>
</div>
<br class="gmail_msg"></div>
</div>
</div>
</blockquote>
</div>
<div class="m_7291890166052924657m_-3984622749196973764bloop_markdown gmail_msg" 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;background-color:rgb(254,254,254)">
<br class="m_7291890166052924657m_-3984622749196973764Apple-interchange-newline gmail_msg">
</div>
</div>
</blockquote>
</div>
<br class="gmail_msg"></div>
</div>
</div>
</blockquote>
</div>
</div>
_______________________________________________<br class="gmail_msg">
swift-evolution mailing list<br class="gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg">
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>


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