フォーマッター (oxfmt)
現在、Oxc に Prettier および Biome フォーマッターを移植中であり、高パフォーマンスかつ Prettier と互換性のあるフォーマッターの構築を目指しています。
アーキテクチャの概要
Oxc フォーマッターは、Prettier と同じコア概念に基づいて設計されていますが、顕著なパフォーマンス最適化が施されています。
- ドキュメントモデル: Prettier および Biome のドキュメント IR(中間表現)を使用
- プレーンプリント: Wadler のプレーンプリントアルゴリズムを実装
- AST 統合: Oxc の高速パーサーを活用して最適なパフォーマンスを達成
パフォーマンスに関する考慮事項
最適化戦略
- メモリアレイン: AST はバンプアロケータで割り当て
- 文字列インターニング: 共通する文字列の再利用
- 遅延評価: 高コストな計算を遅らせる
現在の課題
技術的な課題
- コメント処理: コメントの配置やフォーマットを保持すること
- JavaScript の特殊性: JavaScript 語法の端境ケースに対応すること
- パフォーマンスと互換性のバランス: 速度と正確な Prettier 出力の両立
- メモリ管理: 大容量ファイルの効率的扱い
欠落している機能
- [ ] プラグインシステムとの互換性
- [x] 設定ファイルのサポート
- [ ] エディタ統合
- [x] CLI ツール
- [x] 言語サーバープロトコル
