Español
Documentación
Formateadores

Formateadores

OpenCode usa formateadores específicos de cada lenguaje.

OpenCode puede formatear archivos después de escribirlos o editarlos usando formateadores específicos de cada lenguaje. Los formateadores están deshabilitados por defecto; habilítalos en tu configuración antes de que OpenCode los ejecute.


Integrados

OpenCode incluye varios formateadores integrados para lenguajes y frameworks populares. A continuación se muestra una lista de los formateadores, las extensiones de archivo admitidas y los comandos u opciones de configuración que necesita.

FormateadorExtensionesRequisitos
air.RComando air disponible
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y más (opens in a new tab)Archivo de configuración biome.json(c)
cargofmt.rsComando cargo fmt disponible
clang-format.c, .cpp, .h, .hpp, .ino y más (opens in a new tab)Archivo de configuración .clang-format
cljfmt.clj, .cljs, .cljc, .ednComando cljfmt disponible
dart.dartComando dart disponible
dfmt.dComando dfmt disponible
gleam.gleamComando gleam disponible
gofmt.goComando gofmt disponible
htmlbeautifier.erb, .html.erbComando htmlbeautifier disponible
ktlint.kt, .ktsComando ktlint disponible
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfaceComando mix disponible
nixfmt.nixComando nixfmt disponible
ocamlformat.ml, .mliComando ocamlformat disponible y archivo de configuración .ocamlformat
ormolu.hsComando ormolu disponible
oxfmt (Experimental).js, .jsx, .ts, .tsxDependencia oxfmt en package.json y una opción de variable de entorno experimental
pint.phpDependencia laravel/pint en composer.json
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y más (opens in a new tab)Dependencia prettier en package.json
rubocop.rb, .rake, .gemspec, .ruComando rubocop disponible
ruff.py, .pyiComando ruff disponible con configuración
rustfmt.rsComando rustfmt disponible
shfmt.sh, .bashComando shfmt disponible
standardrb.rb, .rake, .gemspec, .ruComando standardrb disponible
terraform.tf, .tfvarsComando terraform disponible
uv.py, .pyiComando uv disponible
zig.zig, .zonComando zig disponible

Cuando los formateadores están habilitados, OpenCode usará prettier para los archivos coincidentes si tu proyecto tiene prettier en el package.json.


Cómo funciona

Cuando OpenCode escribe o edita un archivo y los formateadores están habilitados, este:

  1. Comprueba la extensión del archivo contra todos los formateadores habilitados.
  2. Ejecuta el comando del formateador apropiado sobre el archivo.
  3. Aplica los cambios de formateo.

Este proceso ocurre en segundo plano para los formateadores habilitados.


Configurar

Puedes habilitar y personalizar los formateadores a través de la sección formatter en tu configuración de OpenCode.

Para habilitar todos los formateadores integrados, establece formatter en true.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": true
}

Usa un objeto para mantener los integrados habilitados mientras configuras anulaciones o formateadores personalizados.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": {}
}

Cada configuración de formateador admite lo siguiente:

PropiedadTipoDescripción
disabledbooleanEstablécela en true para deshabilitar el formateador
commandstring[]El comando a ejecutar para formatear. Obligatorio para formateadores personalizados; opcional para los integrados.
environmentobjectVariables de entorno a establecer al ejecutar el formateador
extensionsstring[]Extensiones de archivo que este formateador debe gestionar

Veamos algunos ejemplos.


Deshabilitar formateadores

Si se omite formatter, todos los formateadores quedan deshabilitados. Para deshabilitar todos los formateadores después de que otra configuración los haya habilitado, establece formatter en false:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": false
}

Para deshabilitar un formateador específico, establece disabled en true:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": {
    "prettier": {
      "disabled": true
    }
  }
}

Formateadores personalizados

Puedes configurar formateadores integrados con opciones como environment o extensions. Para agregar un formateador personalizado, especifica un command y extensions:

opencode.json
{
  "$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 $FILE en el comando se reemplazará por la ruta del archivo que se está formateando.