- En juillet dernier, ESLint a annoncé son intention d’évoluer vers un linter plus généraliste, capable de fournir des fonctionnalités de linting pour tous les langages
- Pendant plusieurs mois, l’équipe a travaillé à extraire les parties spécifiques à JavaScript, et le résultat de ce travail est qu’ESLint prend désormais en charge le linting de JSON et de Markdown
Linting JSON avec @eslint/json
- Le plugin
@eslint/json est un plugin de langage officiellement pris en charge
- Ce plugin fournit le parsing pour JSON, JSONC (JSON avec commentaires) et JSON5
- Pour utiliser le plugin, il faut l’installer via npm et mettre à jour le fichier de configuration
- Le plugin inclut quelques règles intégrées, et l’équipe attend davantage de suggestions
Linting Markdown avec @eslint/markdown
- Le plugin
@eslint/markdown est la nouvelle génération de eslint-plugin-markdown, et constitue un plugin de langage officiellement pris en charge
- Ce plugin fournit le parsing et des règles pour CommonMark et GitHub-Flavored Markdown
- Pour utiliser le plugin, il faut l’installer via npm et mettre à jour le fichier de configuration
- Comme pour le plugin JSON, il existe des règles intégrées, et l’équipe attend davantage de suggestions
Écrire des règles personnalisées et utiliser Code Explorer
@eslint/json et @eslint/markdown analysent le code source en AST et parcourent cet AST pour exécuter les règles, comme en JavaScript
- Il est donc possible, comme avec JavaScript, d’écrire des règles personnalisées pour JSON et Markdown
- La principale différence réside dans le format d’AST : JSON utilise Momoa AST et Markdown utilise mdast
- Comme il existe peu de ressources pour aider à examiner d’autres formats d’AST, Code Explorer a été lancé
- Avec Code Explorer, il est possible de visualiser et d’explorer les AST de différents langages afin d’aider à créer des règles personnalisées
Écrire un plugin de langage
- Les langages ESLint sont conçus pour pouvoir être inclus dans n’importe quel plugin grâce à la nouvelle clé
languages
- Les plugins
@eslint/json et @eslint/markdown ne se contentent pas de fournir le linting de JSON et de Markdown ; ils servent aussi d’exemple de la manière de créer un langage
- Vous pouvez consulter la documentation des langages pour apprendre à créer votre propre langage
Conclusion
- Le linting de langages autres que JavaScript figurait sur la feuille de route d’ESLint, et cette étape importante suscite beaucoup d’enthousiasme
- L’objectif à long terme d’ESLint est de permettre le linting, via des plugins de langage officiellement pris en charge ou des plugins écrits par la communauté, de tous les types de fichiers utilisables dans les projets web
- Avec JavaScript, JSON et Markdown, cet objectif est déjà en bonne voie
1 commentaires
Le Markdown, c'est bien.