- ESLint hat im vergangenen Juli angekündigt, ESLint künftig zu einem allgemeineren Linter weiterzuentwickeln, der Linting-Funktionen für alle Sprachen bereitstellt
- In den vergangenen Monaten wurde daran gearbeitet, JavaScript-spezifische Teile herauszulösen; als Ergebnis unterstützt ESLint nun Linting für JSON und Markdown
JSON-Linting mit @eslint/json
- Das Plugin
@eslint/json ist ein offiziell unterstütztes Sprach-Plugin
- Das Plugin bietet Parsing für JSON, JSONC (JSON mit Kommentaren) und JSON5
- Um das Plugin zu verwenden, muss es über npm installiert und die Konfigurationsdatei aktualisiert werden
- Das Plugin enthält einige eingebaute Regeln; weitere Vorschläge sind willkommen
Markdown-Linting mit @eslint/markdown
- Das Plugin
@eslint/markdown ist die Next-Generation-Version von eslint-plugin-markdown und ein offiziell unterstütztes Sprach-Plugin
- Das Plugin bietet Parsing und Regeln für CommonMark und GitHub-Flavored Markdown
- Um das Plugin zu verwenden, muss es über npm installiert und die Konfigurationsdatei aktualisiert werden
- Wie beim JSON-Plugin gibt es eingebaute Regeln; weitere Vorschläge sind willkommen
Eigene Regeln schreiben und Code Explorer nutzen
@eslint/json und @eslint/markdown parsen Quellcode wie JavaScript in ein AST und führen Regeln durch Traversierung des AST aus
- Daher lassen sich, genau wie bei JavaScript, auch für JSON und Markdown eigene Regeln schreiben
- Der wichtigste Unterschied ist das AST-Format: JSON verwendet Momoa AST, Markdown verwendet mdast
- Da es nicht viele Ressourcen gibt, die bei der Untersuchung anderer AST-Formate helfen, wurde Code Explorer veröffentlicht
- Mit Code Explorer lassen sich ASTs verschiedener Sprachen ansehen und erkunden, um beim Erstellen eigener Regeln zu helfen
Sprach-Plugins schreiben
- ESLint-Sprachen sind so konzipiert, dass sie über den neuen Schlüssel
languages in jedes Plugin aufgenommen werden können
- Die Plugins
@eslint/json und @eslint/markdown bieten nicht nur Linting für JSON und Markdown, sondern dienen auch als Beispiel dafür, wie man Sprachen erstellt
- In der Sprach-Dokumentation kann nachgelesen werden, wie sich eigene Sprachen erstellen lassen
Fazit
- Das Linting von anderen Sprachen als JavaScript stand auf der ESLint-Roadmap, daher ist das Erreichen dieses Meilensteins besonders spannend
- Das langfristige Ziel von ESLint ist es, alle Arten von Dateien, die in Webprojekten verwendet werden können, über offiziell unterstützte Sprach-Plugins oder von der Community geschriebene Plugins linten zu können
- Mit JavaScript, JSON und Markdown ist ESLint auf diesem Weg bereits gut vorangekommen
1 Kommentare
Markdown ist gut.