Détails techniques
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 →
Cette imprimante est un fork de l'imprimante de recast dont l'algorithme a été remplacé par celui décrit par Wadler dans « A prettier printer ». Il reste peut-être du code de recast qui doit être nettoyé.
L'idée de base est que l'imprimante prend un AST et retourne une représentation intermédiaire de la sortie, puis l'imprimante utilise celle-ci pour générer une chaîne de caractères. L'avantage est que l'imprimante peut « mesurer » la représentation intermédiaire (IR) et vérifier si la sortie tiendra sur une ligne, et sinon, effectuer un saut de ligne.
Cela signifie que la majeure partie de la logique d'impression d'un AST implique de générer une représentation abstraite de la sortie avec certaines commandes. Par exemple, ["(", line, arg, line, ")"] représenterait une concaténation de parenthèses ouvrantes, d'un argument et de parenthèses fermantes. Mais si cela ne tient pas sur une ligne, l'imprimante peut effectuer un saut de ligne à l'endroit où line est spécifié.
Le Playground dispose d'un mode spécial pour explorer comment la représentation intermédiaire de Prettier est imprimée. Pour y accéder, ouvrez la barre latérale (le bouton « Show options ») et définissez l'option parser sur la valeur spéciale doc-explorer.
Plus de détails (approximatifs) sont disponibles dans commands.md.