EditorConfig¶
Modular Text Editor respeta los archivos
.editorconfig, de modo que el editor se ajusta
automáticamente a las convenciones de cada proyecto —sangría, finales de línea,
juego de caracteres, espacios sobrantes y salto de línea final— sin ninguna
configuración manual. Es una función integrada del editor, no un plugin.
Es silenciosa y automática: no hay comandos de menú. El editor lee los archivos
.editorconfig que se aplican a un archivo cuando lo abres y cuando lo guardas.
Cómo funciona¶
Cuando abres un archivo, el editor sube desde la carpeta del archivo recogiendo
archivos .editorconfig hasta llegar a uno marcado con root = true (o a la
raíz de la unidad). Ganan las reglas del archivo más cercano, y las secciones
posteriores anulan a las anteriores. Los ajustes resultantes se aplican así:
- Al abrir —
indent_style,indent_sizeytab_widthse aplican al documento para que la tecla Tab, el retroceso que reduce la sangría y la sangría automática sigan la convención del proyecto. El.editorconfigde un proyecto tiene precedencia sobre tu ajuste global de sangría (consulta Pares automáticos y sangría ▸ precedencia). - Al guardar — se recortan los espacios sobrantes al final, se añade o elimina el salto de línea final, se normalizan los finales de línea y el archivo se escribe en el juego de caracteres solicitado.
Los ajustes del proyecto se aplican en silencio, pero se pueden anular: siempre puedes cambiar la sangría a mano, y toda la función se puede desactivar (consulta Ajustes).
Ajustes¶
Preferencias ▸ General:
- Aplicar los ajustes de .editorconfig del proyecto — activa o desactiva toda
la función (activada de forma predeterminada). Cuando está desactivada, el
editor ignora
.editorconfigpor completo: ni aplica las claves estándar ni expone las claves por plugin descritas más abajo.
Propiedades admitidas¶
EditorConfig define un conjunto pequeño y fijo de propiedades. La tabla muestra todas ellas y qué hace el editor con cada una. Los nombres de las propiedades y los valores conocidos no distinguen mayúsculas de minúsculas.
| Propiedad | Valores aceptados | Qué hace el editor |
|---|---|---|
root |
true / false (debe aparecer antes de la primera [sección]) |
true detiene la búsqueda en este archivo: es la configuración más alta. |
indent_style |
tab / space |
Elige tabulaciones o espacios para sangrar. |
indent_size |
un número entero, o tab |
Fija cuántas columnas ocupa un nivel de sangría (tab sigue a tab_width). |
tab_width |
un número entero | Fija la anchura visual de una tabulación; de forma predeterminada toma el valor de indent_size. |
end_of_line |
lf / cr / crlf |
Normaliza los finales de línea al guardar. |
charset |
latin1 / utf-8 / utf-8-bom / utf-16be / utf-16le |
Escribe el archivo con esta codificación al guardar. |
trim_trailing_whitespace |
true / false |
true elimina los espacios y tabulaciones del final de cada línea al guardar. |
insert_final_newline |
true / false |
true garantiza que el archivo termine con exactamente un salto de línea; false elimina los saltos finales. |
max_line_length |
un número entero, o off |
Reconocida, pero aún no aplicada. |
spelling_language |
un código de idioma, p. ej. en-US |
Reconocida, pero aún no aplicada. |
cualquier propiedad = unset |
unset |
Borra un valor puesto por una regla más amplia, restaurando el valor predeterminado del propio editor. |
Dos propiedades se leen pero aún no se aplican
max_line_length y spelling_language forman parte del estándar
EditorConfig, pero no están admitidas universalmente por los editores. El
editor las analiza (así que no provocan errores), pero todavía no actúa sobre
ellas.
end_of_line decide también qué inserta Intro
Un documento conserva normalmente los finales de línea que ya tenía su
archivo, y Intro inserta esos. Cuando se aplica un end_of_line, el
guardado normaliza el búfer y además pasa el documento a esa convención,
de modo que el siguiente Intro coincide con lo que se acaba de escribir en
el disco. El segmento de fin de línea de la barra de estado lo sigue.
Una marca de orden de bytes en el propio .editorconfig se ignora
Un .editorconfig guardado por un editor de Windows suele empezar con una
marca de orden de bytes UTF-8. El editor la elimina antes de analizarlo, así
que la primera propiedad del archivo —normalmente root = true— se lee con
normalidad.
Coincidencia de archivos (globs)¶
Cada encabezado [sección] es un glob que se compara con la ruta del archivo,
relativa a la carpeta que contiene el .editorconfig:
| Patrón | Coincide con |
|---|---|
* |
cualquier carácter salvo un separador de ruta (/) |
** |
cualquier carácter, incluido / (abarca carpetas) |
? |
exactamente un carácter que no sea / |
{a,b,c} |
cualquiera de las cadenas separadas por comas |
{1..9} |
cualquier entero del intervalo |
[abc] |
cualquier carácter individual del conjunto |
[!abc] |
cualquier carácter individual que no esté en el conjunto |
name |
un patrón sin / coincide en cualquier subcarpeta |
/name |
un / inicial ancla la coincidencia a la carpeta del archivo de configuración |
Ajustes por plugin¶
Además de las claves estándar, .editorconfig puede llevar también
configuración por plugin. Un plugin lee sus propios ajustes bajo el espacio
de nombres mte.<plugin-id>.<key>, y un valor del proyecto anula la
preferencia global del usuario (definida en Preferencias) para los archivos de
ese proyecto. Esto depende del mismo conmutador Aplicar los ajustes de
.editorconfig de arriba: desactívalo y estas claves también se ignoran.
Claves de plugin disponibles¶
Esta es la lista completa de ajustes de plugin que el editor respeta hoy
desde .editorconfig. Solo crece cuando un plugin se adhiere explícitamente;
cualquier clave que no aparezca aquí (incluidas las de plugins que no leen
.editorconfig) se analiza, pero no tiene efecto.
| Clave | Tipo | Predeterminado | Efecto |
|---|---|---|---|
mte.org.mte.url.enabled |
true / false |
el conmutador global del Resaltado de URL (Preferencias) | Activa o desactiva la detección y el resaltado de URL para los archivos de este proyecto. |
Ejemplo: desactivar el resaltado de URL en un proyecto, con independencia del conmutador global:
¿Por qué tan pocas?
Las claves por plugin se limitan a propósito a auténticas convenciones de
proyecto (ajustes que un equipo confirmaría y compartiría). La mayoría de
los ajustes de plugin —historial de búsqueda, intervalos de autoguardado, la
última carpeta abierta, las asociaciones de archivos del sistema operativo—
son estado personal o de la máquina y deliberadamente no pertenecen a un
.editorconfig compartido. La convención de proyecto clásica, la sangría,
está cubierta por las claves estándar de arriba. Puede que aparezcan aquí más
claves de plugin a medida que los plugins adopten la función.
Ejemplo¶
Un .editorconfig situado en la raíz de un proyecto, usando todas las
propiedades y formas de glob:
# Top-most config in the project: stop searching parent directories.
root = true
# Defaults for every file in this tree.
[*]
indent_style = space
indent_size = 4
tab_width = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
# max_line_length and spelling_language are recognised but not yet applied.
max_line_length = 100
spelling_language = en-US
# Makefiles must use real tabs.
[Makefile]
indent_style = tab
# 2-space indent for web/markup/data files (brace alternation).
[*.{js,ts,json,yml,yaml,html,css}]
indent_size = 2
# Markdown keeps trailing whitespace (two spaces = a hard line break).
[*.md]
trim_trailing_whitespace = false
# Windows batch files want CRLF and a legacy code page.
[*.{bat,cmd}]
end_of_line = crlf
charset = latin1
# '**' spans folders; '?' matches one character.
[docs/**.txt]
indent_size = 2
[log/file?.log]
indent_size = 8
# Integer-range and character-class globs.
[page{1..9}.txt]
indent_size = 1
[[Mm]akefile.inc]
indent_style = tab
# A leading '/' anchors to this file's folder only.
[/CHANGELOG.md]
max_line_length = off
# 'unset' clears a value set by a broader rule.
[lib/legacy/*]
indent_style = unset
indent_size = unset
# A plugin's own setting (URL Highlighter), overriding the global toggle here.
mte.org.mte.url.enabled = false
Los comentarios deben ir en su propia línea
EditorConfig no tiene comentarios en línea. Un # o un ; solo inician
un comentario al principio de una línea. Escribir indent_size = 4 # cuatro
hace que el valor sea 4 # cuatro, que no es válido y se ignora en
silencio: pon el comentario en la línea de arriba. (Esto coincide con todos
los demás editores que entienden EditorConfig.)