格式化工具 (oxfmt)
我们目前正在将 Prettier 和 Biome 格式化工具移植到 Oxc,以创建一个高性能、与 Prettier 兼容的格式化工具。
架构概览
Oxc 格式化工具基于与 Prettier 相同的核心概念,但进行了显著的性能优化:
- 文档模型:使用 Prettier 和 Biome 的文档中间表示(Intermediate Representation, IR)
- 美观打印:实现 Wadler 美观打印算法
- AST 集成:利用 Oxc 的快速解析器以实现最佳性能
性能考量
优化策略
- 内存区域:在堆栈分配器(bump allocator)中分配 AST
- 字符串驻留:重用常见字符串
- 惰性求值:推迟昂贵的计算
当前挑战
技术挑战
- 注释处理:保持注释位置和格式
- JavaScript 特殊情况:处理 JavaScript 语法中的边缘情况
- 性能与兼容性平衡:在速度与精确匹配 Prettier 输出之间取得平衡
- 内存管理:高效处理大型文件
缺失功能
- [ ] 插件系统兼容性
- [x] 配置文件支持
- [ ] 编辑器集成
- [x] CLI 工具
- [x] 语言服务器协议
