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
