> To audition Xcode using the following multi-line syntax: > > 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> > "" > print(xml) > > You can install: > http://johnholdsworth.com/swift-LOCAL-2016-04-25-a-osx.tar.gz
This is super-cool, and in a little bit of testing, I really like what this does to multiline strings. The quotation marks on the left end up forming a column that marks the lines as special, much like using `///` on multiline doc comments instead of `/**`. In the spirit of building prototypes, I wrote a Perl script which generates literals in various formats: <https://dl.dropboxusercontent.com/u/64017186/make-swift-literal.pl> It allows you to feed in different strings and evaluate how they might look with various language features we might add. The command takes a file on the command line ("-" for stdin, nothing to use the contents of the pasteboard) and prints it as a Swift literal. It supports the following options: * --multiline|nomultiline: Controls the hanging-quote format we've been discussing for multiline quotes. * --unescaped|nounescaped: Controls the `e"string"` format we've been discussing for quotes that ignore escaping. * --quotes=n: Sets the number of quotation marks to be used. * --auto|noauto: If enabled, the exact settings are chosen heuristically, with the command-line options being used as maximums. If disabled, the options directly control the settings used. The default is to use heuristics, enable all options with a very high maximum number of quotes, and read the string from the pasteboard. (These defaults are controlled from lines 9 and 13-16.) I chose these defaults so that this can be used to prototype a "Paste as String Literal" command in TextMate 2. Just open the Swift bundle in the bundle editor, paste the script into a new "Paste as String Literal" command, and choose "Key Equivalent: Ctrl-Cmd-V", "Input: Nothing", and "Output: Replace Selection". -- Brent Royal-Gordon Architechies _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
