Prettier pour Ruby atteint la v1.0 🎉
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 →
Après 1500 commits et 50 versions depuis juillet 2018, nous sommes ravis d'annoncer la sortie de la v1.0 de Prettier pour Ruby. Dans cet article, nous vous proposons un aperçu du fonctionnement du plugin, de sa philosophie et des développements à venir.
Comment fonctionne-t-il ?​
Prettier pour Ruby s'appuie sur l'API de plugins de Prettier. Sa fonction parse lance un processus Ruby et utilise le propre parseur de Ruby (appelé Ripper). Après avoir recensé tous les types de nœuds, commentaires, informations de localisation et autres métadonnées, elle renvoie un arbre syntaxique abstrait (AST) construit au processus Prettier. Enfin, elle convertit cet AST en représentation intermédiaire de Prettier (appelée Doc) avant que Prettier ne l'imprime.
Philosophie​
Le plugin Ruby cherche à s'accommoder de toutes les variétés de code. Par exemple, si vous appelez une méthode avec ou sans parenthèses, le plugin respectera votre choix. Pour certains cas où la communauté Ruby a des opinions bien arrêtées, des options sont proposées. Parmi elles :
-
rubyArrayLiteral- Par défaut, le plugin convertit les tableaux de chaînes et symboles simples en syntaxe littérale (%wet%irespectivement). Si vous désactivez cette option, il les laissera intacts. -
rubyHashLabel- Cette option est pour les adeptes de la flèche de hachage (=>). Par défaut, le plugin Ruby imprimera vos clés de hachage de manière cohérente : il utilisera des étiquettes si possible pour chaque clé, sinon il utilisera des flèches de hachage pour chaque clé. Si vous désactivez le comportement par défaut, toutes les clés des hachages utiliseront toujours des flèches de hachage. -
rubyModifier- Pour les utilisateurs qui n'apprécient pas la forme modifiée des conditionsif,unless,whileetuntil. -
rubySingleQuote- Le comportement par défaut utilise les guillemets simples quand cela est pertinent, sinon des doubles. Cette option inverse ce choix. -
rubyToProc- Permet à Prettier de convertir des expressions commearray.map { |elem| elem.to_s }enarray.map(&:to_s). Désactivée par défaut car elle modifie l'arité du bloc, ce qui peut perturber le code de réflexion.
Le plugin prend également en charge diverses options centrales de Prettier, dont :
-
printWidth- Par défaut à 80 caractères, modifiable selon vos préférences. -
tabWidth- Par défaut à 2 caractères. -
trailingComma- Par défaut"none", mais vous pouvez choisir"all"pour ajouter des virgules finales dans les tableaux littéraux, hachages littéraux et listes d'arguments s'étendant sur plusieurs lignes.
Globalement, le style de Prettier correspond au guide de style Ruby, soit la configuration par défaut de Rubocop. Toutefois, avec Prettier, vous pourriez souhaiter désactiver les règles Formatting/* de Rubocop pour accélérer vos exécutions de linter.
Prochaines étapes​
Nous travaillerons prochainement sur :
-
La prise en charge des nouvelles syntaxes de Ruby 3, dont l'assignation à droite et le filtrage par motif avancé.
-
L'amélioration des performances, comme dans ces expérimentations.
-
L'intégration du langage Ruby dans le playground de Prettier.
-
Prise en charge des modèles HTML ERB via un autre plugin, comme dans cette expérimentation.
Aujourd'hui, vous pouvez tester le plugin en ligne de commande en suivant les instructions du README. N'hésitez surtout pas à signaler tout bug que vous trouverez, nous travaillons activement à les corriger dès leur apparition. Et n'hésitez pas non plus à commencer à contribuer au projet si cela vous intéresse.
