Search code examples
htmlangularvisual-studio-codeprettier

Prettier formatting configuration


I'm pulling my hair trying to configure Prettier formatting for Angular HTML component. I tried different configuration overriding but I can't get what I want.

By default, on VS Code + Prettier, the following markup :

<ng-container *ngIf="emailRef.hasError('email')">A valid email address must be used</ng-container>

is formatted to (because of line length) :

<ng-container *ngIf="emailRef.hasError('email')"
  >A valid email address must be used</ng-container
>

which I don't like at all. I don't want Prettier to split the tag like that. I'd rather prefer :

<ng-container *ngIf="emailRef.hasError('email')">
  A valid email address must be used
</ng-container>

Does anyone knows how to override its default behavior ? I'm OK with the default formatting when multiple attributes are used, like in :

<input
  id="email"
  name="email"
  type="email"
  email
  required
  [(ngModel)]="email"
  #emailRef="ngModel"
/>

Solution

  • What works for me is to add a space between the content and the opening and closing tags:

    <ng-container *ngIf="emailRef.hasError('email')"> A valid email address must be used </ng-container>
    

    With the spaces, prettier formats it correctly