技術細節
這個列印器是 recast 列印器的分支,其演算法已替換為 Wadler 在「更漂亮的列印器」中描述的演算法。可能還有一些 recast 的程式碼需要清理。
基本概念是列印器接收一個 AST 並返回輸出的中間表示形式 (IR),然後列印器使用它來產生字串。優點是列印器可以「測量」IR 並查看輸出是否適合一行,如果不適合則斷行。
這意味著列印 AST 的大部分邏輯都涉及生成包含特定指令的輸出抽象表示。例如,["(", line, arg, line, ")"]
將表示括號、參數和括號的串聯。但如果它不適合一行,則列印器可以在指定 line
的地方斷行。
程式碼遊樂場 有一個特殊模式可以探索 Prettier 的中間表示形式是如何被列印的。要進入該模式,請打開側邊欄(「顯示選項」按鈕)并将 parser
選項設定為特殊值 doc-explorer
。
更多(粗略的)細節可以在 commands.md 中找到。