Skip to content
This repository has been 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
greghuc opened this issue Sep 20, 2016 · 2 comments

Comments

@greghuc
Copy link

greghuc commented Sep 20, 2016

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>`;
@GeoffreyBooth
Copy link
Collaborator

Merged into 2.

@coffeescriptbot coffeescriptbot changed the title Output ES6 template literals for Coffeescript interpolated strings CS2 Discussion: Output: ES6 template literals for CoffeeScript interpolated strings Feb 19, 2018
@coffeescriptbot
Copy link
Collaborator

Migrated to jashkenas/coffeescript#4937

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants