Re: Re: Multiline template strings that don't break indentation

2014-10-13 Thread Alexander Kit
On 19 September 2014 01:52, Domenic Denicola dome...@domenicdenicola.com
wrote:

  ALL of these things can be accomplished with your own custom tag.


Yes, it can be accomplished with the custom tag function. But this is not
the argument, as also a lot of other things  from ES6 spec can be
accomplished with some **custom** libraries (see all the shims), but we
anyway have them in es6. And so, I would also like to see here the spec.
regarding the indentation. (*prefer native to custom)*
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-10-13 Thread Brendan Eich

Alexander Kit wrote:
On 19 September 2014 01:52, Domenic Denicola 
dome...@domenicdenicola.com mailto:dome...@domenicdenicola.com wrote:


ALL of these things can be accomplished with your own custom tag. 



Yes, it can be accomplished with the custom tag function. But this is 
not the argument, as also a lot of other things  from ES6 spec can be 
accomplished with some **custom** libraries (see all the shims), but 
we anyway have them in es6. And so, I would also like to see here the 
spec. regarding the indentation. (/prefer native to custom)/


Custom means  prototype it first, as ksmith said: in userland. Do 
that, even now using Traceur, and then let's talk about a built-in.


/be
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Re: Multiline template strings that don't break indentation

2014-09-18 Thread Merih
This might be beyond the current state of template strings but wouldn't it
be nice if there was a delimiter character we can use to depict the
beginning of each line of a multiline string? A similar solution like Scala
multliline strings but without `stripMargin` method at the end.

For example:

var multiLineString = `This is a template string.
  |Even though each line is indented to
keep the
  |code neat and tidy, the white space
used to indent
  |is not in the resulting string`

And if we actually want to include vertical bar we can escape it?

--
Merih Akar
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


RE: Re: Multiline template strings that don't break indentation

2014-09-18 Thread Domenic Denicola
ALL of these things can be accomplished with your own custom tag. I really 
encourage you and others to learn about the tag part of tagged template 
string.

From: Merihmailto:meriha...@gmail.com
Sent: ‎2014-‎09-‎18 16:36
To: es-discuss@mozilla.orgmailto:es-discuss@mozilla.org
Subject: Re: Re: Multiline template strings that don't break indentation

This might be beyond the current state of template strings but wouldn't it be 
nice if there was a delimiter character we can use to depict the beginning of 
each line of a multiline string? A similar solution like Scala multliline 
strings but without `stripMargin` method at the end.

For example:

var multiLineString = `This is a template string.
  |Even though each line is indented to 
keep the
  |code neat and tidy, the white space used 
to indent
  |is not in the resulting string`

And if we actually want to include vertical bar we can escape it?

--
Merih Akar
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread Salvador de la Puente González
On 12 Sep 2014 07:40, Sebastian Zartner sebastianzart...@gmail.com
 And if someone wants to use his own tag? Would he have to reimplement
dontIndent or String.noIndentation by himself?

 What I meant above with tag concatenation would be something like this:

AFAIK a couple of brackets around the second tag and the string do the
trick.

var a = tag1 (tag2 `Template`);

Though tag1 tag2 would be optimal.


 var a = String.noIndentation myTag
 `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string`;

 So first the template string would be parsed by String.noIndentation and
subsequently by myTag.

 Sebastian

 ___
 es-discuss mailing list
 es-discuss@mozilla.org
 https://mail.mozilla.org/listinfo/es-discuss

___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread Marius Gundersen
On Fri, Sep 12, 2014 at 7:40 AM, Sebastian Zartner 
sebastianzart...@gmail.com wrote:


 And if someone wants to use his own tag? Would he have to reimplement
 dontIndent or String.noIndentation by himself?

 What I meant above with tag concatenation would be something like this:

 var a = String.noIndentation myTag
 `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string`;

 So first the template string would be parsed by String.noIndentation and
 subsequently by myTag.


String.noIndent could return an array similar to what a tag function
expects to get as its arguments, where the first item is the string split
into chunks and the rest of the array is the values to be inserted. That
would let you do:

```js
var query = sql(...String.noIndent`
select * from myDB
where username='${user}'
and password='${password}'
`);
```

Marius Gundersen
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread Kevin Smith


 And if someone wants to use his own tag? Would he have to reimplement
 dontIndent or String.noIndentation by himself?


I implemented exactly what you want (modulo de-indent specifics) here:

https://gist.github.com/zenparsing/5dffde82d9acef19e43c

This should be left in userland for now, I think.
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread Alexander Kit
On 10 September 2014 01:01, Andy Earnshaw andyearns...@gmail.com wrote:

 *Git and linting tools usually bark at you if you have trailing white
 space anyway*


Template string is a literal,  so any of the linter should not complain
about the trailing whitespace inside, if so this should considered as a bug
in linter itself.

* should have the indentation removed, but not in the case where a
non-white space character is between the first ` and the newline? *

Correct, with the new line developer explicitly defines he wants his
template string to be auto deindented, otherwise leaves the string as is.
It is more flexible, and there is no need in any of the tags as was
suggested.

Cheers, Alex
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread Brendan Eich

Kevin Smith wrote:

This should be left in userland for now, I think.


Absolutely. The trick with design, to paraphrase N. Wirth, is leaving 
things out.


With the right primitives (tag in front is function call short hand, you 
can compose function calls as Salvador showed), the usability is fine 
and the core language avoids creature feep.


/be
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread C. Scott Ananian
On Fri, Sep 12, 2014 at 12:35 PM, Brendan Eich bren...@mozilla.org wrote:
 With the right primitives (tag in front is function call short hand, you can
 compose function calls as Salvador showed), the usability is fine and the
 core language avoids creature feep.

Agreed, although I *would* like to see something very similar to
Kevin's implementation added to the standard library
(`String.dedent`?), so that a million authors don't reinvent the
dedent function in multiple slightly-different ways.
  --scott
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-12 Thread Kevin Smith


 Agreed, although I *would* like to see something very similar to
 Kevin's implementation added to the standard library
 (`String.dedent`?), so that a million authors don't reinvent the
 dedent function in multiple slightly-different ways.


Yes - it sounds like it might be a good cowpath to pave once the cows have
been set loose.
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-11 Thread 李白|字一日
I would prefer

var a = `This is a template string.`
 `Even though each line is indented to keep the`
 `code neat and tidy, the white space used to indent`
 `is not in the resulting string` keepindentation`;

as a multiple line string,


2014-09-11 13:55 GMT+08:00 Sebastian Zartner sebastianzart...@gmail.com:

 On 9 September 2014 16:51, Allen Wirfs-Brock al...@wirfs-brock.com
 wrote:

 Well, just for fun

 const N = \n;  //maybe we could find evocative unicode name.
 var a = `This is a template string. ${
N}Even though each line is indented to keep the ${
N}code neat and tidy, the white space used to indent ${
N}is not in the resulting string`;


 To me this looks still somewhat hacky.
 Couldn't a simple keyword be added at the the end of a template string?
 So it would be something like this:

 var a = `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string` keepindentation;

 This would explicitly keep the spaces at the beginning of each line while
 without the keyword they would be removed. Of course the keyword may also
 indicate the opposite depending on parsing would be chosen as default.
 Surely the name for this keyword is not optimal yet and would need to be
 discussed.

 Sebastian

 ___
 es-discuss mailing list
 es-discuss@mozilla.org
 https://mail.mozilla.org/listinfo/es-discuss


___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-11 Thread Salvador de la Puente González
Hi guys.

Notice we are dealing with literals and I would want to keep the strings as
literal as possible so I think this is a syntax issue as the programmatic
solution like regexp  substitution is always available.

My proposal:
var s = `This is a multiline
string. It keeps literal unless
' finding that mark. It
' delimit the beginning
' of the text and must
' be the first one. I mean
' this other ' is interpreted
' as a quote. The double
' quote is valid as well.`;

This is syntax can be automatized by text editors. To avoid ambiguity, the
following is a syntax error:

var s = `This is a syntax error
to have characters before ' but
only for the first`;

To not find a quote mark in a line implies to take the full line literally.

The syntax is quite informative as it points the specific column where
literal start again.

Notice the case you specifically want to write the delimiter is quite rare
and you always can provide:

var s = `Take this
 \' literal`;

You don't need the quotes to be even aligned.

WDYT?
 On 11 Sep 2014 08:37, 李白|字一日 calid...@gmail.com wrote:

 I would prefer

 var a = `This is a template string.`
  `Even though each line is indented to keep the`
  `code neat and tidy, the white space used to indent`
  `is not in the resulting string` keepindentation`;

 as a multiple line string,


 2014-09-11 13:55 GMT+08:00 Sebastian Zartner sebastianzart...@gmail.com:

 On 9 September 2014 16:51, Allen Wirfs-Brock al...@wirfs-brock.com
 wrote:

 Well, just for fun

 const N = \n;  //maybe we could find evocative unicode name.
 var a = `This is a template string. ${
N}Even though each line is indented to keep the ${
N}code neat and tidy, the white space used to indent ${
N}is not in the resulting string`;


 To me this looks still somewhat hacky.
 Couldn't a simple keyword be added at the the end of a template string?
 So it would be something like this:

 var a = `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string` keepindentation;

 This would explicitly keep the spaces at the beginning of each line while
 without the keyword they would be removed. Of course the keyword may also
 indicate the opposite depending on parsing would be chosen as default.
 Surely the name for this keyword is not optimal yet and would need to be
 discussed.

 Sebastian

 ___
 es-discuss mailing list
 es-discuss@mozilla.org
 https://mail.mozilla.org/listinfo/es-discuss



 ___
 es-discuss mailing list
 es-discuss@mozilla.org
 https://mail.mozilla.org/listinfo/es-discuss


___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-11 Thread Brendan Eich
The tag goes at the front. What's missing from the design that can't be 
provided as a standard exported deindent function?


/be

Sebastian Zartner wrote:


var a = `This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string` keepindentation;

___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-11 Thread Allen Wirfs-Brock

On Sep 11, 2014, at 1:05 AM, Brendan Eich wrote:

 The tag goes at the front. What's missing from the design that can't be 
 provided as a standard exported deindent function?

exactly:

var a = dontIndent
`This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string`;

or, following the precedent to 'raw':

var a = String.noIndentation
`This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string`;


Allen

___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-11 Thread Sebastian Zartner

 The tag goes at the front.

 I know. I didn't see this functionality as a tag, though, but rather as a
flag for the client. Having this functionality available as a tag has some
consequences. See below.

 What's missing from the design that can't be provided as a standard
 exported deindent function?

 Concatenating tags, maybe? And the function itself?

 exactly:

 var a = dontIndent
 `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string`;

 or, following the precedent to 'raw':

 var a = String.noIndentation
 `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string`;


And if someone wants to use his own tag? Would he have to reimplement
dontIndent or String.noIndentation by himself?

What I meant above with tag concatenation would be something like this:

var a = String.noIndentation myTag
`This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string`;

So first the template string would be parsed by String.noIndentation and
subsequently by myTag.

Sebastian
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-10 Thread Sebastian Zartner
On 9 September 2014 16:51, Allen Wirfs-Brock al...@wirfs-brock.com wrote:

 Well, just for fun

 const N = \n;  //maybe we could find evocative unicode name.
 var a = `This is a template string. ${
N}Even though each line is indented to keep the ${
N}code neat and tidy, the white space used to indent ${
N}is not in the resulting string`;


To me this looks still somewhat hacky.
Couldn't a simple keyword be added at the the end of a template string?
So it would be something like this:

var a = `This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string` keepindentation;

This would explicitly keep the spaces at the beginning of each line while
without the keyword they would be removed. Of course the keyword may also
indicate the opposite depending on parsing would be chosen as default.
Surely the name for this keyword is not optimal yet and would need to be
discussed.

Sebastian
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Multiline template strings that don't break indentation

2014-09-09 Thread Andy Earnshaw
Hi everyone,

It's great to finally play around with template strings after noticing them
in the latest Firefox nightly.  However, I can't help but think we're
repeating mistakes of the past when it comes to multiline strings and code
tidiness.

Back when I had to write PHP code I used to feel sad that multiline strings
had to look like this:

function my_function () {
... some levels of
... indentation
$a = EOD
This is a multiline string.
It makes my code look messy because I can't indent
subsequent lines without the white space appearing
in the resulting string. :-(
EOD;

   ... more code
...
}

I've always avoided the backslash newline escape in JavaScript for the same
reason.  As happy as I am to see multiline strings appear in JavaScript in
the form of template strings, I'm not looking forward to seeing the
untidiness that goes hand in hand with it.  I'm wondering if there's a
feasible solution that could allow us to keep our code indented across
multiple lines without the formatting whitespace being included in the
resulting string.  Ideally, I'd like my multiline strings to look like this:

function myFunction () {
var a = `This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string`;

...
}

As things stand, this wouldn't look great when output in a terminal window,
a textarea or pre-formatted element in the browser.  Also, minifiers
wouldn't know if it was safe to remove this white space when minifying and
would likely leave it in.  I realise I could write a tag function that
deals with it, but that comes with additional runtime complexity and
concatenation isn't really an option since I don't think this would make
good code:

var a = tag`This is a template string.\n`
  + tag`Even though each line is indented to keep the\n`
  ...

I thought of a few potential solutions, but they come with problems of
their own.

Solution 1:  Ignore all space and tab characters following a newline until
the first non-space or tab character.  The problem with this is immediately
obvious – what if someone wanted to output a string formatted with
indentation at the start of a line?  Well, there's always `String.raw`,
which would return the string with the white space included, although I'll
admit maybe it's not ideal.

Solution 2:  Have the parser take note of the column where the delimiting `
character appears, and ignore white space on the next line only if the
length of it equals this column number + 1.  This would allow you to still
write template strings like this:

var a = `This line is not indented.
  But this line is.`

I've never written a parser, so I'm not sure how easy this would be to
implement.   I think it could potentially be confusing to people.

It could be that I'm the only person who is this fussy and it doesn't
bother anyone else, but I hope that's not the case.  I wonder if developers
won't stick to the old methods of string concatenation and avoid template
strings mostly – I've seen that happen a lot with PHP code.  At least with
here documents you could include white space as part of the delimiter and
the content was consistently aligned (even if not indented), so it wasn't
quite as bad as template strings.


Best regards
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-09 Thread Andrea Giammarchi
would anything like this work already for you ?

```js

function myFunction () {
var a = (`This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string`
).replace(/^ /gm, '');

...
}

// or

function myFunction () {
var a = (`This is a template string.
 Even though each line is indented to keep the
 code neat and tidy, the white space used to indent
 is not in the resulting string`).replace(
 new RegExp('^' +
// how much to remove ?
'',
 'gm'), '');

...
}

```

Regards

On Tue, Sep 9, 2014 at 9:18 AM, Andy Earnshaw andyearns...@gmail.com
wrote:

 Hi everyone,

 It's great to finally play around with template strings after noticing
 them in the latest Firefox nightly.  However, I can't help but think we're
 repeating mistakes of the past when it comes to multiline strings and code
 tidiness.

 Back when I had to write PHP code I used to feel sad that multiline
 strings had to look like this:

 function my_function () {
 ... some levels of
 ... indentation
 $a = EOD
 This is a multiline string.
 It makes my code look messy because I can't indent
 subsequent lines without the white space appearing
 in the resulting string. :-(
 EOD;

... more code
 ...
 }

 I've always avoided the backslash newline escape in JavaScript for the
 same reason.  As happy as I am to see multiline strings appear in
 JavaScript in the form of template strings, I'm not looking forward to
 seeing the untidiness that goes hand in hand with it.  I'm wondering if
 there's a feasible solution that could allow us to keep our code indented
 across multiple lines without the formatting whitespace being included in
 the resulting string.  Ideally, I'd like my multiline strings to look like
 this:

 function myFunction () {
 var a = `This is a template string.
  Even though each line is indented to keep the
  code neat and tidy, the white space used to indent
  is not in the resulting string`;

 ...
 }

 As things stand, this wouldn't look great when output in a terminal
 window, a textarea or pre-formatted element in the browser.  Also,
 minifiers wouldn't know if it was safe to remove this white space when
 minifying and would likely leave it in.  I realise I could write a tag
 function that deals with it, but that comes with additional runtime
 complexity and concatenation isn't really an option since I don't think
 this would make good code:

 var a = tag`This is a template string.\n`
   + tag`Even though each line is indented to keep the\n`
   ...

 I thought of a few potential solutions, but they come with problems of
 their own.

 Solution 1:  Ignore all space and tab characters following a newline until
 the first non-space or tab character.  The problem with this is immediately
 obvious – what if someone wanted to output a string formatted with
 indentation at the start of a line?  Well, there's always `String.raw`,
 which would return the string with the white space included, although I'll
 admit maybe it's not ideal.

 Solution 2:  Have the parser take note of the column where the delimiting
 ` character appears, and ignore white space on the next line only if the
 length of it equals this column number + 1.  This would allow you to still
 write template strings like this:

 var a = `This line is not indented.
   But this line is.`

 I've never written a parser, so I'm not sure how easy this would be to
 implement.   I think it could potentially be confusing to people.

 It could be that I'm the only person who is this fussy and it doesn't
 bother anyone else, but I hope that's not the case.  I wonder if developers
 won't stick to the old methods of string concatenation and avoid template
 strings mostly – I've seen that happen a lot with PHP code.  At least with
 here documents you could include white space as part of the delimiter and
 the content was consistently aligned (even if not indented), so it wasn't
 quite as bad as template strings.


 Best regards

 ___
 es-discuss mailing list
 es-discuss@mozilla.org
 https://mail.mozilla.org/listinfo/es-discuss


___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-09 Thread Boris Zbarsky

On 9/9/14, 4:18 AM, Andy Earnshaw wrote:

It could be that I'm the only person who is this fussy and it doesn't
bother anyone else, but I hope that's not the case.


We ran into this with Python multiline strings as well when we were 
working on Gecko's binding generator.


We (specifically Jason Orendorff) ended up implementing a dedent 
function which basically strips off the leading newline, if any, and 
then measures the number of spaces at the start of the string and 
removes that many spaces from each line.  So you can do:



  def foo():
  return dedent(

This is a string that will end up
with no spaces at the beginnings of
most of its lines.
  Except this one!
)

This worked great for our line-oriented (because they're C++ code or 
code templates) strings...


This addition definitely reduced the amount of concatenation we ended up 
doing.


-Boris
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-09 Thread Allen Wirfs-Brock
Well, just for fun

const N = \n;  //maybe we could find evocative unicode name.
var a = `This is a template string. ${
   N}Even though each line is indented to keep the ${
   N}code neat and tidy, the white space used to indent ${
   N}is not in the resulting string`;


___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-09 Thread Kevin Smith
You can create a really flexible dedent function/tag pretty easily:

https://gist.github.com/zenparsing/5dffde82d9acef19e43c

Nice, right?

On Tue, Sep 9, 2014 at 10:51 AM, Allen Wirfs-Brock al...@wirfs-brock.com
wrote:

 Well, just for fun

 const N = \n;  //maybe we could find evocative unicode name.
 var a = `This is a template string. ${
N}Even though each line is indented to keep the ${
N}code neat and tidy, the white space used to indent ${
N}is not in the resulting string`;



 ___
 es-discuss mailing list
 es-discuss@mozilla.org
 https://mail.mozilla.org/listinfo/es-discuss


___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-09 Thread Alexander Kit
I would also hope that the trailing indentions will be cut off from the
template string. We had the case in our template engine, multiline strings
are supported and it behaives as follows:
- first line: contains a non-whitespace character → take the complete
string as is and exit, otherwise:
- secondline - lastline → get the smallest indention
- secondline - lastline → trim the indention
- last line: contains only whitespaces → remove the line

This should cover all the cases, or do somebody has other ideas?
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Multiline template strings that don't break indentation

2014-09-09 Thread Andy Earnshaw
Allen's is pretty clever and I'd be almost tempted to use it ;-)

On Tue, Sep 9, 2014 at 4:44 PM, Kevin Smith zenpars...@gmail.com wrote:

 You can create a really flexible dedent function/tag pretty easily:

 https://gist.github.com/zenparsing/5dffde82d9acef19e43c

 Nice, right?


I wrote a function-as-a-tag that dedented (since that's the word we're
all using) when I was playing around too.  It's *really nice*.


On Tue, Sep 9, 2014 at 5:26 PM, Alexander Kit alex@atmajs.com wrote:

I would also hope that the trailing indentions will be cut off from the
 template string. We had the case in our template engine, multiline strings
 are supported and it behaives as follows:
 - first line: contains a non-whitespace character → take the complete
 string as is and exit, otherwise:
 - secondline - lastline → get the smallest indention
 - secondline - lastline → trim the indention
 - last line: contains only whitespaces → remove the line

 This should cover all the cases, or do somebody has other ideas?


Git and linting tools usually bark at you if you have trailing white space
anyway, if you don't have your editor automatically removing it.  That
aside, are you suggesting that a template string like this:

var a = `
This has
no indentation
`;

should have the indentation removed, but not in the case where a non-white
space character is between the first ` and the newline?  Wouldn't that be a
tad confusing?  Also, it's common in console applications to have a
trailing newline (although you could just concat one of course).  Taking
the smallest amount of indentation away from each line is interesting,
though, and probably less confusing than my suggestion of removing white
space up to the column of the first `.
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss