opencode / packages /web /src /content /docs /es /formatters.mdx
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
0dbc9de verified
Raw
History Blame Contribute Delete
9.9 kB
---
title: Formateadores
description: OpenCode utiliza formateadores espec铆ficos del idioma.
---
OpenCode formatea autom谩ticamente los archivos despu茅s de escribirlos o editarlos utilizando formateadores espec铆ficos del idioma. Esto garantiza que el c贸digo generado siga los estilos de c贸digo de su proyecto.
---
## Integrados
OpenCode viene con varios formateadores integrados para lenguajes y marcos populares. A continuaci贸n se muestra una lista de los formateadores, las extensiones de archivo compatibles y los comandos u opciones de configuraci贸n que necesita.
| Formateador | Extensiones | Requisitos |
| -------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| gofmt | .go | Comando `gofmt` disponible |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Comando `mix` disponible |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y [m谩s](https://prettier.io/docs/en/index.html) | dependencia `prettier` en `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y [m谩s](https://biomejs.dev/) | `biome.json(c)` archivo de configuraci贸n |
| zig | .zig, .zon | Comando `zig` disponible |
| clang-format | .c, .cpp, .h, .hpp, .ino y [m谩s](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` archivo de configuraci贸n |
| ktlint | .kt, .kts | Comando `ktlint` disponible |
| ruff | .py, .pyi | Comando `ruff` disponible con configuraci贸n |
| rustfmt | .rs | Comando `rustfmt` disponible |
| cargo fmt | .rs | Comando `cargo fmt` disponible |
| uv | .py, .pyi | Comando `uv` disponible |
| rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponible |
| standardrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponible |
| htmlbeautifier | .erb, .html.erb | Comando `htmlbeautifier` disponible |
| air | .R | Comando `air` disponible |
| dart | .dart | Comando `dart` disponible |
| dfmt | .d | Comando `dfmt` disponible |
| ocamlformat | .ml, .mli | Comando `ocamlformat` disponible y archivo de configuraci贸n `.ocamlformat` |
| terraform | .tf, .tfvars | Comando `terraform` disponible |
| gleam | .gleam | Comando `gleam` disponible |
| nixfmt | .nix | Comando `nixfmt` disponible |
| shfmt | .sh, .bash | Comando `shfmt` disponible |
| pint | .php | dependencia `laravel/pint` en `composer.json` |
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | Dependencia de `oxfmt` en `package.json` y un [indicador de variable de entorno experimental](/docs/cli/#experimental) |
| ormolu | .hs | Comando `ormolu` disponible |
Entonces, si su proyecto tiene `prettier` en su `package.json`, OpenCode lo usar谩 autom谩ticamente.
---
## C贸mo funciona
Cuando OpenCode escribe o edita un archivo:
1. Comprueba la extensi贸n del archivo con todos los formateadores habilitados.
2. Ejecuta el comando de formateo apropiado en el archivo.
3. Aplica los cambios de formato autom谩ticamente.
Este proceso ocurre en segundo plano, lo que garantiza que los estilos de su c贸digo se mantengan sin ning煤n paso manual.
---
## Configuraci贸n
Puede personalizar los formateadores a trav茅s de la secci贸n `formatter` en su configuraci贸n OpenCode.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"formatter": {}
}
```
Cada configuraci贸n del formateador admite lo siguiente:
| Propiedad | Tipo | Descripci贸n |
| ------------- | -------- | --------------------------------------------------------------- |
| `disabled` | booleano | Establezca esto en `true` para deshabilitar el formateador |
| `command` | cadena[] | El comando a ejecutar para formatear |
| `environment` | objeto | Variables de entorno para configurar al ejecutar el formateador |
| `extensions` | cadena[] | Extensiones de archivo que este formateador deber铆a manejar |
Veamos algunos ejemplos.
---
### Deshabilitar formateadores
Para deshabilitar **todos** los formateadores globalmente, configure `formatter` en `false`:
```json title="opencode.json" {3}
{
"$schema": "https://opencode.ai/config.json",
"formatter": false
}
```
Para deshabilitar un formateador **espec铆fico**, establezca `disabled` en `true`:
```json title="opencode.json" {5}
{
"$schema": "https://opencode.ai/config.json",
"formatter": {
"prettier": {
"disabled": true
}
}
}
```
---
### Formateadores personalizados
Puede anular los formateadores integrados o agregar otros nuevos especificando el comando, las variables de entorno y las extensiones de archivo:
```json title="opencode.json" {4-14}
{
"$schema": "https://opencode.ai/config.json",
"formatter": {
"prettier": {
"command": ["npx", "prettier", "--write", "$FILE"],
"environment": {
"NODE_ENV": "development"
},
"extensions": [".js", ".ts", ".jsx", ".tsx"]
},
"custom-markdown-formatter": {
"command": ["deno", "fmt", "$FILE"],
"extensions": [".md"]
}
}
}
```
El marcador de posici贸n **`$FILE`** en el comando se reemplazar谩 con la ruta al archivo que se est谩 formateando.