Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 2.0 de Prettier, le formateur de code, est disponible avec le support pour Typescript 3.8, des améliorations de CLI,
De meilleures valeurs par défaut et autres

Le , par Stan Adkens

0PARTAGES

8  0 
Le formateur de code Prettier a récemment publié sa deuxième grande itération, selon un article de blog publié samedi dernier. Prettier 2.0 ajoute la prise en charge de TypeScript 3.8 et fournit de meilleures valeurs par défaut. L’équipe derrière le formateur de code dit avoir décidé de changer les valeurs par défaut des options trailingComma, arrowParens et endOfLine, après une longue et minutieuse réflexion. Prettier 2.0 apporte également une meilleure CLI et des améliorations des heuristiques. Prettier est un formateur de code qui supprime le style original et s'assure que le code produit est conforme à un style cohérent.

Support pour Typescript 3.8

Selon l’article de blog, la version 2.0 de Prettier prend désormais en charge la nouvelle syntaxe incluse dans la version 3.8 de TypeScript, couvrant les importations et exportations de type uniquement, les champs privés ECMAScript et la syntaxe export * as ns. La nouvelle syntaxe TypeScript d'importation et d'exportation de type uniquement permet aux développeurs d'importer des déclarations à utiliser pour les annotations et les déclarations de type :


TypeScript 3.8 prend désormais en charge la proposition de champs privés ECMAScript, qui fait partie de la proposition de champs de classe de stade 3. Les champs privés sont des champs dont l'identifiant est précédé d'un # dans une définition de classe ; les modificateurs d'accessibilité TypeScript comme public ou private ne peuvent pas être utilisés sur des champs privés, entre autres :


La toute dernière version stable de Prettier a en outre corrigé plusieurs cas de formatage liés à TypeScript, impliquant des types complexes, des commentaires et autres, selon l’article de blog. La prise en charge améliorée de la syntaxe TypeScript est bien accueillie par les développeurs. Un utilisateur de Twitter, par exemple, a déclaré : « C'est incroyable quand les choses s'alignent sur votre travail . Comme ce vendredi, nous discutions de la date de mise à jour de Prettier vers TypeScript 3.8 et vous voilà . Impressionnant ».


De meilleures valeurs par défaut

Prettier 2.0 a modifié les valeurs par défaut des options trailingComma, arrowParens et endOfLine, d’après le post de l’équipe Prettier. Avec Prettier 2.0, les virgules de fin de ligne deviennent la valeur par défaut, comme le permet l'ECMAScript 5. L'ancienne valeur par défaut était motivée par le désir de conserver la compatibilité jusqu'aux navigateurs IE8, selon le post. Toutefois, la nouvelle valeur par défaut peut être rétablie en configurant Prettier avec {"trailingComma" : "none" }.

La valeur par défaut de l'option de configuration Prettier arrowParens est désormais par défaut always. Les modifications de formatage qui en résultent sont les suivantes :


Ce changement apparemment mineur est destiné à mieux servir les développeurs TypeScript, car l'encapsulation des paramètres de la fonction fléchée facilite l'ajout d'annotations de type. En outre, la parenthèse d'encapsulation couvre de nombreux autres modèles fréquents résumés dans le post d’un utilisateur de Twitter comme suit :


L'option de configuration Prettier endOfLine est maintenant réglée par défaut sur lf. Avec la valeur par défaut précédente, Prettier préserve la valeur des fins de ligne déjà présentes dans un fichier donné. Dans les dépôts git avec des contributeurs sur différents systèmes d'exploitation, cela conduisait dans certains cas à des différences de résultats importantes et rendait l'historique ligne par ligne d'un fichier plus difficile à explorer.

Améliorations de Prettier CLI

Selon le post, la CLI (interface en ligne de commande) de Prettier 2.0 s’efforce maintenant de traiter les modèles globs comme des noms de fichiers littéraux avant de les traiter comme des globs. Le changement vise à résoudre les divergences entre les noms de fichiers Windows et Linux, ce dernier pouvant contenir presque n'importe quel caractère.

En outre, il est enfin possible d'exécuter prettier --write . pour formater tous les fichiers supportés dans le répertoire courant et ses sous-répertoires. Selon l’équipe Prettier, les noms de répertoires peuvent être mélangés avec les noms de fichiers et les modèles globs (par exemple, prettier src "test/*.spec.js" foo.js).

De plus, l'ordre dans lequel les fichiers sont traités a changé. Selon le post, auparavant, tous les fichiers étaient triés par ordre alphabétique avant le formatage. Maintenant, leur ordre correspond à l'ordre des chemins d'accès spécifiés. Pour chaque chemin, la liste des fichiers résolus est triée, mais le tri complet de la liste combinée qui en résulte n'est plus effectué, lit-on.

Il y a également des changements dans la façon dont Prettier CLI signale les erreurs si les modèles transmis ne correspondent à aucun fichier. Auparavant, Prettier CLI imprimait une erreur "No matching files" si elle ne trouvait aucun fichier - pour tous les modèles ensemble, et non pour un modèle individuel. Dans Prettier 2.0, la CLI imprime également de telles erreurs pour des modèles individuels.

Améliorations des heuristiques

Auparavant, toute chaîne d'appel de méthode d'une longueur de trois ou plus était automatiquement divisée en plusieurs lignes. Prettier 2.0 inclut des heuristiques améliorées pour briser les chaînes de méthodes. La nouvelle heuristique est basée sur la complexité des arguments d'appel dans la chaîne, plutôt que simplement sur la longueur de la chaîne. Désormais, si les appels de méthode en chaîne ont des arguments qui ne sont pas faciles à comprendre d'un seul coup d'œil (par exemple des fonctions ou des objets profondément imbriqués), la chaîne est rompue. Le code suivant est formaté avec Prettier 1.19 :


Il est maintenant formaté avec Prettier 2.0 comme suit :


De plus, Prettier a amélioré sa gestion heuristique du traitement de type JSDoc. Comme TypeScript peut utiliser les types JSDoc pour les informations de type (par exemple lorsqu'il est exécuté avec l'option --checkJs), le reformatage de JSDoc a parfois conduit à des rapports de bogue. La nouvelle heuristique se comporte comme suit :


En plus des changements énumérés ci-dessus, le nouveau Prettier est également accompagné d'une série de changements améliorant son traitement de divers formats de fichiers, comme Flow, CSS, Vue, Angular, GraphQL, Markdown, et plus encore.

Source : Prettier

Et vous ?

Qu’en pensez-vous ?
Quels changements retiennent votre attention dans Prettier 2.0 ?

Lire aussi

TypeScript 3.8 RC apporte une nouvelle syntaxe pour l'importation/exportation de types uniquement, ainsi que les champs privés ECMAScript
TypeScript 2.8 est disponible et s'accompagne des types conditionnels, ainsi que du contrôle granulaire sur les modificateurs de type mappés

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de frfancha
Membre éclairé https://www.developpez.com
Le 23/03/2020 à 17:36
Aucun changement ne retient mon attention.
Et le standard exact n'a pas d'importance.
Ce qui compte c'est qu'il y ait un standard et que toute l'équipe s'y conforme.
Et pour cela prettier c'est génial.
J'avais notamment un dev qui adorait remettre sur une seule ligne ce qui devait en prendre trois ou quatre...
Avec prettier c'est fini :-)
0  0