ESLintがJavaScript以外にも対応言語を広げるとの方針を説明。まずはJSON、Markdownへの対応プラグインを開発
今回は「ESLintがJavaScript以外にも対応言語を広げるとの方針を説明。まずはJSON、Markdownへの対応プラグインを開発」についてご紹介します。
関連ワード (解析、追加、開発等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
JavaScriptコードの構文やスタイルをチェックできる「ESLint」の開発者であるNicholas C. Zakas氏は、ESLintのブログに投稿した記事「What’s coming next for ESLint」で、今後ESLintをJavaScriptだけでなく他の言語にも対応させていく方針を説明しました。
We're excited to share our plans for the future of ESLint:https://t.co/4joAwfRqkR
— ESLint (@geteslint) July 5, 2024
ESLintはJavaScriptの構文やスタイルなどをチェック
ESLintはその名前にあるように、いわゆるリンター(Linter)と呼ばれるツールです。JavaScriptのコードを静的に解析し、構文や基本的なエラーなどをチェックし、あらかじめ設定した規約に沿ったコーディングスタイルへの統一などを自動化してくれます。
ESLintはもともとJavaScriptのためのツールとして開発されました。しかし2年前にESLintのTSC(テクニカルステアリングコミッティ)は、ESLintをJavaScript以外の言語もサポートできるようにするという方針を決定します。
そして約1年前には、プラグインによってあらゆるプログラミング言語用のパーサやルールなどを定義できるようにするための仕様「ESLint Language Plugins」が策定されました。
これ以後、この仕様を実現するためにルールAPIの変更、ESLintのコアのリファクタリングによるJavaScript依存部分の抽出などが行われてきました。
そして間もなく(コントリビュート次第であるため時期未定ながら)、公式のプラグインとしてJavaScript、JSON、Markdown対応の3つが登場することが明らかにされました。
@eslint/jsプラグイン
ルールやドキュメントを含め、JavaScriptに関連するすべての機能を徐々に@eslint/jsパッケージに移していく予定。 既存のEspreeを再利用し、Espree、eslint-scope、eslint-visitor-keysなどすべてのコアJavaScriptルールをMonorepoに変換。 これにより、JavaScript関連のすべてを単一のリポジトリで扱うことができるようになるとしています。
@eslint/jsonプラグイン
最初の言語プラグインはJSONになる予定。このプラグインには解析ロジックと関連するルールやドキュメントが含まれます。
@eslint/markdownプラグイン
他のプラグインとの整合性のために、既存のeslint-plugin-markdownが@eslint/markdownにリネームされ、Markdown固有のルールなどが追加される予定です。
多言語対応により開発がシンプルになる
ESLintが多言語対応することで、開発がシンプルになるとNicholas C. Zakas氏は次のように書いています。
Turning ESLint into a language-agnostic linter that anyone can write plugins for will simplify development by reducing the number of linting tools and editor extensions any one project needs.
ESLintを言語にとらわれないリンターにし、誰もがプラグインを書くことができるようにすることで、ひとつのプロジェクトが必要とするリントツールやエディタ拡張の数を減らすことができ、開発がシンプルになるでしょう。