- En julio pasado, ESLint anunció su plan de transformarse en un linter de uso más general para ofrecer capacidades de linting para todos los lenguajes
- Durante varios meses trabajó en extraer las partes específicas de JavaScript, y como resultado de ese trabajo ESLint ahora admite linting de JSON y Markdown
Linting de JSON con @eslint/json
- El plugin
@eslint/json es un plugin de lenguaje con soporte oficial
- Este plugin ofrece parsing para JSON, JSONC (JSON con comentarios) y JSON5
- Para usar el plugin, hay que instalarlo desde npm y actualizar el archivo de configuración
- El plugin incluye algunas reglas integradas y están esperando más propuestas
Linting de Markdown con @eslint/markdown
- El plugin
@eslint/markdown es la siguiente generación de eslint-plugin-markdown y es un plugin de lenguaje con soporte oficial
- Este plugin ofrece parsing y reglas para CommonMark y GitHub-Flavored Markdown
- Para usar el plugin, hay que instalarlo desde npm y actualizar el archivo de configuración
- Igual que el plugin de JSON, incluye reglas integradas y están esperando más propuestas
Escritura de reglas personalizadas y uso de Code Explorer
@eslint/json y @eslint/markdown, al igual que JavaScript, analizan el código fuente como un AST y recorren ese AST para ejecutar reglas
- Por lo tanto, igual que con JavaScript, se pueden escribir reglas personalizadas para JSON y Markdown
- La principal diferencia está en el formato del AST: JSON usa Momoa AST y Markdown usa mdast
- Como no hay muchos recursos que ayuden a inspeccionar otros formatos de AST, lanzaron Code Explorer
- Con Code Explorer se puede ver y explorar el AST de varios lenguajes para ayudar a crear reglas personalizadas
Cómo escribir plugins de lenguaje
- Los lenguajes de ESLint fueron diseñados para poder incluirse en cualquier plugin usando la nueva clave
languages
- Los plugins
@eslint/json y @eslint/markdown no solo ofrecen linting para JSON y Markdown, sino que también se presentan como ejemplos de cómo crear un lenguaje
- Se puede consultar la documentación de lenguajes para aprender a crear uno propio
Conclusión
- Hacer linting de lenguajes distintos de JavaScript ya estaba en la hoja de ruta de ESLint, por lo que llegar a este hito les entusiasma mucho
- El objetivo de largo plazo de ESLint es permitir hacer linting, mediante plugins de lenguaje con soporte oficial o plugins creados por la comunidad, de todo tipo de archivos que puedan usarse en proyectos web
- Con JavaScript, JSON y Markdown ya van bien encaminados hacia esa meta
1 comentarios
El markdown está bueno.