What is the purpose of that backslash?  It does not feel like an improvement. 

I think we should focus on:

1. Looking pretty
2. Allow unescaped quote, double quote as well single/double apostrophe 
characters 
3. Allow interpolation 
4. No need to add the \n character for each line
5. It should have a continuation character
6. Keep it simple

Something like this:

let xml = M"<?xml version="1.0"?>
           "<catalog>
           " <book id="bk101" empty="">
           "     <author>\(author)</author>
           " </book>
           "</catalog>
Or maybe this:

let xml = """<?xml version="1.0"?>
            "<catalog>
            " <book id="bk101" empty="">
            "     <author>\(author)</author>
            " </book>
            "</catalog>
In the first example the multiline literal is started with M".  In the second 
example it starts with three double quotes """.  I really have no preference.  
In both examples there is no need to have a \ or \n at the end of the line.

You can have quote characters in the string, including double quotes as shown 
by empty="".  You can have interpolation, i.e. \(author). 

You have a continuation character which helps as a visual guide and as a marker 
for the beginning of each line.

The multi string literal ends when there are no more continuation characters.



> On Apr 3, 2017, at 3:01 AM, Adrian Zubarev via swift-evolution 
> <[email protected]> wrote:
> 
> Hello Swift community,
> 
> 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.
> 
> 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.
> 
> Proposed version looks like this:
> 
> let xml = "<?xml version=\"1.0\"?>
>     "<catalog>
>     "    <book id=\"bk101\" empty=\"\">
>     "        <author>\(author)</author>
>     "        <title>XML Developer's Guide</title>
>     "        <genre>Computer</genre>
>     "        <price>44.95</price>
>     "        <publish_date>2000-10-01</publish_date>
>     "        <description>An in-depth look at creating applications with 
> XML.</description>
>     "    </book>
>     "</catalog>
>     ""
> 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 
> ’"’.
> 
> The proposed version will become this:
> 
> let xml = "<?xml version=\"1.0\"?>\  
>     "<catalog>\ // If you need you can comment here
>     "    <book id=\"bk101\" empty=\"\">\
>     "        <author>\(author)</author>\
>     "        <title>XML Developer's Guide</title>\
>     "        <genre>Computer</genre>\
>     "        <price>44.95</price>\
>     "        <publish_date>2000-10-01</publish_date>\
>     "        <description>An in-depth look at creating applications with 
> XML.</description>\
>     "    </book>\
>     "</catalog>\
>     ""
> Here is another example:
> 
> 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"
> This is simply continuation quotes combined with backslash concatenation.
> 
> 
> 
> 
> 
> -- 
> Adrian Zubarev
> Sent with Airmail
> 
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to