11 Punkte von xguru 2024-10-05 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
laeyoung 2024-10-07

Markdown ist gut.