Skip to content

Add Prettier for Handlebars to default blueprints #777

@jelhan

Description

@jelhan

I'm wondering if it is time to add Prettier for Handlebars to default blueprints.

This would be a follow-up to using Prettier for JavaScript files, which landed in #628. At the time we adopted Prettier for JavaScript files, Prettier for Handlebars wasn't stable yet. It is stable since Prettier v2.3, which was released in May this year.

@patocallaghan summarized the trade-offs very well in his proposal to use it for adopted-ember-addons: adopted-ember-addons/program-guidelines#20 (comment)

The following changes to default blueprints would be required:

  1. Add ember-template-lint-plugin-prettier to devDependencies.
  2. Change .template-lintrc.js to include the Prettier plugin:
    diff --git a/.template-lintrc.js b/.template-lintrc.js
    index f35f61c..0520e96 100644
    --- a/.template-lintrc.js
    +++ b/.template-lintrc.js
    @@ -1,5 +1,6 @@
    'use strict';
    
    module.exports = {
    -  extends: 'recommended',
    +  plugins: ['ember-template-lint-plugin-prettier'],
    +  extends: ['recommended', 'ember-template-lint-plugin-prettier:recommended'],
    };
  3. Configure Prettier to use double quotes for Handlebar templates only (if using Ember < 4.10):
    diff --git a/.prettierrc.js b/.prettierrc.js
    index 534e6d35aa..e5f7b6d1ee 100644
    --- a/.prettierrc.js
    +++ b/.prettierrc.js
    @@ -1,5 +1,12 @@
     'use strict';
     
     module.exports = {
    -  singleQuote: true,
    +  overrides: [
    +    {
    +      files: '*.{js,ts}',
    +      options: {
    +        singleQuote: true,
    +      },
    +    },
    +  ],
     };

Open issues for Glimmer syntax, which may need to be fixed before:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions