---
url: /docs/contribute/formatter.md
---

# 格式化器 (oxfmt)

我们目前正在将 Prettier 和 Biome Formatter 移植到 Oxc，以创建一个高性能、与 Prettier 兼容的格式化器。

## 架构概述

Oxc 格式化器围绕与 Prettier 相同的核心概念构建，但进行了显著的性能优化：

* **文档模型**：使用 Prettier 和 Biome 的文档 IR（中间表示）
* **美化打印**：实现 Wadler 的美化打印算法
* **AST 集成**：利用 Oxc 的快速解析器实现最佳性能

## 性能考量

### 优化策略

* **内存 Arena**：AST 分配在 bump 分配器中
* **字符串驻留**：复用常见字符串
* **惰性求值**：推迟昂贵的计算

## 当前挑战

### 技术挑战

1. **注释处理**：保留注释位置和格式
2. **JavaScript 怪癖**：处理 JavaScript 语法中的边缘情况
3. **性能与兼容性**：平衡速度与精确的 Prettier 输出
4. **内存管理**：高效处理大文件

### 缺失功能

* \[ ] 插件系统兼容性
* \[x] 配置文件支持
* \[ ] 编辑器集成
* \[x] CLI 工具
* \[x] 语言服务器协议
