I must be missing something about ruby heredocs, but the indentation had
always been a painful question about them (
http://stackoverflow.com/questions/3772864/how-do-i-remove-leading-whitespace-chars-from-ruby-heredoc).
Another thing, of course, it's that they are by no means raw (which of
course doesn't stop rust from adopting their syntax for raw strings. I
would just say that it would be nice to pick such syntax for raw strings
that allows for both single line raw strings and multi-line raw strings to
be represented easily.
On Sep 22, 2013 1:00 PM, "Steven Ashley" <[email protected]> wrote:

> Hi everyone,
>
> Have we considered syntax similar to Ruby style heredocs? I particularly
> like the light looking syntax.
>
> - The indentation of the block is determined by the indentation of the eos
> marker. Keeping code flow natural.
>
> <<eos
>     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
> eiusmod tempor
>     incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
> quis nostrud
>     eos
>
> - Brackets in the eos marker are flipped to allow <<[[[raw]]]
>
> - eoseos causes a literal eos to be inserted. For example <<"a ""raw""
> string"
>
> My main concern is that << might be a common operator. Perhaps <<< would
> be ok?
>
> Thoughts?
> On 21/09/2013 4:28 AM, "Alex Crichton" <[email protected]> wrote:
>
>> > Of the 3, Lua's is probably the best, although it's a bit esoteric (with
>> > using [[ and nary a quote in sight).
>>
>> I think an important thing to keep in mind is that the main reason
>> behind creating a new form of literal is for things like:
>>
>> * Escapes in format! strings
>> * Possible regular expression syntax (this also may be a syntax extension)
>> * Type literal windows paths (escaping \ is hard)
>> * Otherwise long literals which may contain quotes (like html text)
>>
>> With those in mind, although Lua's syntax is sufficient, is it nice to
>> use? If the first thing I saw as an introduction to Rust was:
>>
>> fn main() {
>>   println!([[Hello, {}!]], "world");
>> }
>>
>> I would be a little confused. Now the [[/]] aren't really necessary in
>> this case, but I'm personally unsure of how usable [[/]] would be
>> throughout the language. Raw literals in languages like C++ and Lua I
>> think aren't intended to be used that often. Instead they should be
>> used only when necessary, and you frequently don't see them in code.
>> For rust, the use cases which are the cause of this discussion are
>> actually fairly common, and I'm not sure that we'd want to see [[/]]
>> all over the place, although of course that's just my opinion :)
>>
>> Skimming back, I haven't seen a suggestion of the backtick character
>> as a delimiter. Go takes this approach, and I don't believe that in Go
>> you can have a backtick anywhere in a backtick literal, and otherwise
>> what you see is what you get. It's at least something to consider,
>> though.
>> _______________________________________________
>> Rust-dev mailing list
>> [email protected]
>> https://mail.mozilla.org/listinfo/rust-dev
>>
>
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to