格式化工具 (Formatters)
使用特定语言的格式化程序自动美化代码
OpenCode 在写入或编辑文件后,会自动使用特定语言的格式化工具。这确保了生成的代码符合您项目的代码风格。
工作原理 (How it works)
当 OpenCode 写入或修改文件时,它会执行以下操作:
- 根据所有已启用的格式化工具检查文件的 扩展名
- 对该文件运行相应的 格式化命令
- 自动应用格式化更改
内置格式化工具 (Built-in)
OpenCode 为流行语言和框架预置了多种格式化工具。以下是内置列表及其要求:
| 格式化工具 | 支持的扩展名 | 运行要求 |
|---|---|---|
| gofmt | .go | 环境中需安装 gofmt 命令 |
| mix | .ex, .exs, .eex, .heex, .leex 等 | 环境中需安装 mix 命令 |
| prettier | .js, .ts, .jsx, .tsx, .html, .css, .md, .json, .yaml 等 | package.json 中需包含 prettier 依赖 |
| biome | .js, .ts, .jsx, .tsx, .json, .jsonc | package.json 中需包含 @biomejs/biome 依赖 |
配置 (Configure)
您可以通过
opencode.json 中的 formatter 字段自定义格式化行为。每个格式化配置支持以下属性:
- disabled: (boolean) 设置为
true可禁用该格式化工具。 - command: (string[]) 要运行的格式化命令。
- environment: (object) 运行命令时的环境变量。
- extensions: (string[]) 该工具适用的文件扩展名列表。
禁用格式化工具 (Disabling formatters)
- 全局禁用: 将
formatter设置为false。
{
"formatter": false
}
- 禁用特定工具:
{
"formatter": {
"prettier": {
"disabled": true
}
}
}
自定义格式化工具 (Custom formatters)
您可以覆盖内置工具或添加全新的格式化程序。例如,自定义
prettier 的运行方式或添加不支持的语言:opencode.json
{
"formatter": {
"prettier": {
"command": ["npx", "prettier", "--write", "$FILE"],
"environment": {
"NODE_ENV": "development"
},
"extensions": [".js", ".ts", ".jsx", ".tsx"]
}
}
}
[!TIP] 在命令中使用$FILE占位符来代表当前正在被格式化的文件。