11 puntos por xguru 2024-10-05 | 1 comentarios | Compartir por WhatsApp
  • 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

 
laeyoung 2024-10-07

El markdown está bueno.