This repository was archived by the owner on Feb 19, 2018. It is now read-only.
This repository was archived by the owner on Feb 19, 2018. It is now read-only.
CS2 Discussion: Output: ES6 template literals for CoffeeScript interpolated strings #41
Closed
Description
As discussed here, I'm splitting out a separate issue for compiling Coffeescript interpolated strings to ES6 template literals.
In short, Coffeescript single-line, multi-line and block interpolated strings can all be compiled to ES6 template literals. To note:
- This change feels like 'Coffeescript 2.0', as it uses an ES6 feature for an existing Coffeescript feature. So if you use Coffeescript strings, you won't be able to opt out of ES6.
- This feature should be implemented after tagged template literals. Implementation of that feature will do most of the heavy lifting on determining how template literals play with Coffeescript.
Examples:
Single-line string:
//CS input
"Hi #{name} Do you like #{food}?"
//ES6 output
`Hi ${name} Do you like ${food}?`;
Multiline string:
//CS input
"Hi #{name}. Do
you like #{food}?"
//ES6 output
upperExpr`Hi ${name}. Do you like ${food}?`;
Block string:
//CS input
"""
<strong>
cup of #{language}
</strong>
"""
//ES6 output
upperExpr`<strong>\n cup of ${language}\n</strong>`;