Guía9 min

EditorConfig para coding agents: indent y newlines del repo, no los tuyos

Resumen

Un .editorconfig define estilos por glob: indent_style, indent_size, end_of_line, charset, trim_trailing_whitespace, insert_final_newline. Un agente que reescribe un archivo a 2 espacios en un repo de tabs genera un diff enorme. Spec 0.17.2.

GitHub
Un archivo .editorconfig con root true e indent tabs, que el agente debe respetar

Qué resuelve

Esta pieza se queda en la decisión práctica: qué instalar, qué riesgo agrega y cómo aplicarlo sin romper operación.

El agente “formatea el archivo” y el PR es 400 líneas de whitespace. Casi siempre faltó leer .editorconfig. La spec 0.17.2: archivos INI-like, UTF-8, LF o CRLF, nombre .editorconfig en minúsculas. root = true para de dejar de buscar hacia arriba.

Cores parsean; plugins aplican al editor. Un coding agent es un editor: si no aplica los pares, miente el estilo del repo.

No sustituye Prettier (otra herramienta). El curso instalar un agente no cubre indent. gitignore no define tabs.

Pares que importan

Spec (supported pairs, no-normative indent section + pares comunes):

KeyValores típicosSi el agente ignora
roottrue / falseSigue buscando padres
indent_styletab / spaceDiff de indent en todo el file
indent_sizeentero o tab2 vs 4
tab_widthenteroTabs mal medidos
end_of_linelf / crlf / crTodo el archivo “cambió”
charsetutf-8BOM de más
trim_trailing_whitespacetrue/falseRuido o espacios significativos
insert_final_newlinetrue/falsePOSIX vs “sin newline at EOF”

Secciones: [*.md], [Makefile] — globs con / como separador. No \\ aunque estés en Windows.

Sin comentarios inline (spec ≥0.15). # o ; al inicio de línea.

Secciones glob e indent_style

Cómo debe leerlo el agente

  1. Busca .editorconfig desde el archivo hacia la raíz, para en root = true.
  2. Última sección que matchea gana para cada key (el core aplica en orden).
  3. Escribe solo el cambio pedido, con ese indent. No “prettier de paso”.
  4. Si no hay archivo: no inventes 2 spaces. Copia un vecino del mismo glob.

Makefile y Go suelen ser tabs. Un [Makefile] indent_style = tab no es opcional.

Receta AGENTS.md

Honor .editorconfig (indent_style/size, eol, charset, final newline).
Do not reformat whole files.
Do not add a new .editorconfig unless the ticket says so.

Agente editando con el indent del glob

FAQ

¿Prettier gana? Si el repo tiene ambos, el ticket/CI dice cuál. No pelees con pnpm lint.

¿YAML 2 spaces? Solo si el glob lo dice. Mira [*.{yml,yaml}].

¿max_line_length? Algunos cores lo soportan; no está en todos. No lo uses para reflow masivo.

¿Crear .editorconfig? Solo si el repo no tiene y el humano lo pidió. root = true en la raíz.

Un diff de “solo trailing spaces” en un millar de líneas es el olor de trim_trailing_whitespace = true aplicado a un árbol que nunca se recortó. No “arregles” el repo entero en el mismo PR que un bugfix. El style masivo es un ticket aparte, con su propio review.

Verificado 2026-09-03 contra EditorConfig Specification 0.17.2 (formato, globs, no inline comments).