Hoppa till huvudinnehållet

Tekniska detaljer

Inofficiell Beta-översättning

Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →

Denna skrivare är en fork av recasts skrivare med dess algoritm ersatt av den som beskrivs av Wadler i "A prettier printer". Det kan fortfarande finnas kvarstående kod från recast som behöver städas upp.

Grundidén är att skrivaren tar ett AST (Abstract Syntax Tree) och returnerar en mellanrepresentation av utdata, som sedan används för att generera en sträng. Fördelen är att skrivaren kan "mäta" mellanrepresentationen och avgöra om utdata får plats på en rad, och i så fall bryta vid behov.

Det innebär att större delen av logiken för att skriva ut ett AST handlar om att generera en abstrakt representation av utdata med vissa kommandon. Till exempel skulle ["(", line, arg, line, ")"] representera en sammanlänkning av öppna parenteser, ett argument och stängande parenteser. Men om detta inte får plats på en rad kan skrivaren bryta vid punkten där line är specificerat.

Playground har ett specialläge för att utforska hur Prettiers mellanrepresentation skrivs ut. För att komma dit, öppna sidofältet (knappen "Visa alternativ") och ställ in parser-alternativet till specialvärdet doc-explorer.

Fler (preliminära) detaljer finns i commands.md.