On 24/10/17 8:27 pm, Thomas Punt wrote:
Hi Christopher,
> I like the added flexibility in placement of the end token, but I think requiring only tabs or spaces, and stripping whitespace from all
{here|now}doc
> lines is error prone and adds unnecessary complexity.
I agree that the requirement for using either tabs or spaces is not necessary,
but
I included it because it does help with readability when looking at the
indentation
level of the heredoc and nowdoc (and subsequently how much whitespace will
be stripped from each line). With respect to the stripping of whitespace,
however,
I feel that this is definitely necessary.
If developers accidentally add/subtract leading space from the closing token
then the whole string changes; this can lead to subtle bugs and annoyances.
Chris
If it was not stripped, then indenting the
closing token and body will cause a lot of whitespace to prepend every line in
the body of text. This is definitely not desirable, and may cause programmers to
continue to not indent the body of the heredoc/nowdoc, which leads us back to
where we currently are of having indentation of code ruined with such syntaxes.
Other languages follow these semantics of stripping whitespace from new lines
according to the indentation of the closing marker, such as Elixir (normal """
syntax)
and Ruby (special <<~ syntax).
Thanks,
Tom
--
http://twitter.com/ghrd