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" <a...@crichton.co> 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
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to