Formatters
OpenCode tự động format code sau khi viết hoặc chỉnh sửa.
Tổng quan
OpenCode tự động format files sau khi được viết hoặc edit, sử dụng các formatters dành riêng cho từng ngôn ngữ. Điều này đảm bảo code được generate theo đúng coding style của project bạn.
Built-in Formatters
| Formatter | Extensions | Yêu cầu |
|---|---|---|
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml | prettier trong package.json |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json | biome.json(c) config file |
| gofmt | .go | gofmt command |
| rustfmt | .rs | rustfmt command |
| cargofmt | .rs | cargo fmt command |
| ruff | .py, .pyi | ruff command |
| dart | .dart | dart command |
| shfmt | .sh, .bash | shfmt command |
| clang-format | .c, .cpp, .h, .hpp | .clang-format config |
Nếu project có prettier trong package.json, OpenCode sẽ tự động dùng nó.
Cách hoạt động
Khi OpenCode viết hoặc edit file:
- Kiểm tra extension với tất cả formatters đã bật
- Chạy formatter command phù hợp
- Áp dụng formatting changes tự động
Cấu hình
{
"$schema": "https://opencode.ai/config.json",
"formatter": {}
}
Disable formatters
Tắt tất cả:
{ "formatter": false }
Tắt một formatter cụ thể:
{
"formatter": {
"prettier": { "disabled": true }
}
}
Custom formatters
{
"formatter": {
"prettier": {
"command": ["npx", "prettier", "--write", "$FILE"],
"environment": { "NODE_ENV": "development" },
"extensions": [".js", ".ts", ".jsx", ".tsx"]
},
"custom-md": {
"command": ["deno", "fmt", "$FILE"],
"extensions": [".md"]
}
}
}
$FILE sẽ được thay bằng đường dẫn file đang format.