Philosophie des options
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Prettier possède quelques options pour des raisons historiques. Mais nous n'en ajouterons plus.
Lisez la suite pour en savoir plus.
Prettier n'est pas un formateur de code universel qui tente d'imprimer votre code comme vous le souhaitez. Il est opinionated. Pour citer la page Pourquoi Prettier ? :
De loin, la principale raison d'adopter Prettier est de mettre fin à tous les débats en cours sur les styles.
Pourtant, plus Prettier a d'options, plus il s'éloigne de cet objectif. Les débats sur les styles se transforment simplement en débats sur les options de Prettier à utiliser. Les guerres de formatage reprennent avec une vigueur renouvelée : « Quelles valeurs d'options sont meilleures ? Pourquoi ? Avons-nous fait les bons choix ? »
Ce n'est pas le seul coût des options. Pour en savoir plus sur leurs inconvénients, consultez l'issue sur la résistance à ajouter de la configuration, qui compte plus de 👍 que n'importe quelle demande d'option.
Alors pourquoi existe-t-il des options ?
-
Quelques-unes ont été ajoutées durant les débuts de Prettier pour le faire décoller. 🚀
-
Quelques autres ont été ajoutées suite à une « grande demande ». 🤔
-
Certaines l'ont été pour des raisons de compatibilité. 👍
Les options plus faciles à justifier incluent :
-
--trailing-comma=es5vous permet d'utiliser des virgules finales dans la plupart des environnements sans avoir à transpiler (les virgules finales dans les fonctions ont été ajoutées dans ES2017). -
--prose-wrapest important pour supporter tous les rendus Markdown excentriques existants. -
--html-whitespace-sensitivityest nécessaire en raison des règles d'espaces malheureuses du HTML. -
--end-of-linefacilite la suppression des CRLF des dépôts git pour les équipes. -
--quote-propsest important pour une utilisation avancée du Google Closure Compiler.
Mais d'autres options sont plus difficiles à justifier rétrospectivement : --arrow-parens, --jsx-single-quote, --bracket-same-line et --no-bracket-spacing ne sont pas le type d'options que nous sommes heureux d'avoir. Elles provoquent beaucoup de bike-shedding dans les équipes, et nous nous en excusons. Difficiles à supprimer aujourd'hui, ces options existent comme un artefact historique et ne doivent pas motiver l'ajout de nouvelles options (« Si ces options existent, pourquoi pas celle-ci ? »).
Pendant longtemps, nous avons laissé les demandes d'options ouvertes pour laisser les discussions se dérouler et recueillir des retours. Ce que nous avons appris durant ces années, c'est qu'il est très difficile de mesurer la demande. L'utilisation de Prettier a beaucoup augmenté. Ce qui était une « grande demande » à l'époque ne l'est plus autant aujourd'hui. Les réactions GitHub et les sondages Twitter sont devenus non représentatifs. Qu'en est-il des utilisateurs silencieux ? Il semblait facile d'ajouter « juste une option de plus ». Mais où aurions-nous dû nous arrêter ? Quand une option devient-elle superflue ? Même après avoir ajouté « cette dernière option », il y aurait toujours une « top issue » dans le suivi des problèmes.
Cependant, le moment de s'arrêter est venu. Maintenant que Prettier est assez mature et adopté par tant d'organisations et projets, la phase de recherche est terminée. Nous sommes assez confiants pour conclure que Prettier a atteint un stade où l'ensemble des options doit être « gelé ». Les demandes d'options ne sont plus acceptées. Nous remercions tous ceux qui ont participé à ce parcours difficile.
Veuillez noter que les demandes d'options étant hors du périmètre de Prettier, elles seront fermées sans discussion. Il en va de même pour les demandes de préservation d'éléments de formatage en entrée (par ex. les sauts de ligne), car ce n'est rien d'autre qu'une option déguisée avec tous les inconvénients des options « réelles ». Il peut y avoir des situations où l'ajout d'une option est inévitable pour des raisons techniques (par ex. la compatibilité), mais pour les options liées au formatage, c'est définitif.