@@ -252,15 +252,48 @@ ESLintのように与えられたコードを読み取ってチェックする
252
252
## どういう用途に向いていない?
253
253
254
254
逆に与えられたコード(AST)を書き換えするようなことをする場合には、
255
- プラグインが同時に処理を行うためプラグイン間で競合するような変更がある場合に破綻してしまいます 。
255
+ ルールを同時に処理を行うためルール間で競合するような変更がある場合に破綻してしまいます 。
256
256
257
257
そのため、この仕組みに加えてもう一つ抽象レイヤーを設けないと対応は難しいと思います。
258
258
259
259
つまり、read-writeなプラグインのアーキテクチャとしては単純にこのパターンだけでは難しい部分が出てくるでしょう。
260
260
261
+ > ** NOTE** ESLint 2.0でautofixing、つまり書き換えの機能の導入が予定されています。
262
+ > これは` SourceCode ` 抽象オブジェクトをルールに、書き換えのコマンドを蓄積して最後に実際に書き換えを行うという抽象レイヤーを設けています。
263
+ > - [ Implement autofixing · Issue #3134 · eslint/eslint] ( https://github.com/eslint/eslint/issues/3134 " Implement autofixing · Issue #3134 · eslint/eslint ")
264
+
261
265
## この仕組みを使ってるもの
262
266
263
267
- [ azu/textlint] ( https://github.com/azu/textlint " azu/textlint ")
264
268
- テキストやMarkdownをパースしてASTにしてLintするツール
265
269
266
- ## エコシステム
270
+ ## エコシステム
271
+
272
+ ESLintのルールはただのJavaScriptファイルであり、またESLintは主に開発時に使うツールとなっています。
273
+
274
+ ルール自体を[ npm] ( https://www.npmjs.com/ " npm ") で公開したり、ルールや設定をまとめたものをESLintでは"Plugin"と呼び、
275
+ こちらもnpmで公開して利用するのが一般的な使い方になっています。
276
+
277
+ また、ESLintはデフォルトで有効なルールがないので、設定ファイルを作るか、
278
+ [ sindresorhus/xo] ( https://github.com/sindresorhus/xo " sindresorhus/xo ") といったESLintのラッパーを利用する形となります。
279
+
280
+ ESLint公式の設定として` eslint:recommended ` が用意されていて、これを` extends ` することで推奨の設定を継承できます。
281
+
282
+ ``` json
283
+ {
284
+ "extends" : " eslint:recommended"
285
+ }
286
+ ```
287
+
288
+ これらの設定自体もJavaScriptで表現できるため、設定もnpmで公開して利用できるようになっています。
289
+
290
+ - [ Shareable Configs - ESLint - Pluggable JavaScript linter] ( http://eslint.org/docs/developer-guide/shareable-configs " Documentation - ESLint - Pluggable JavaScript linter ")
291
+
292
+ これはコーディングルールが多種多様なように、ESLintで必要なルールも個人差があるので、
293
+ 柔軟に対応できるようにするためでもあり、_ The pluggable linting utility_を表現している仕組みとなってます。
294
+
295
+ このように、ESLintルールや設定といった殆どの部分をJavaScriptのモジュールの仕組みで利用できるようにし、
296
+ それらを[ npm] ( https://www.npmjs.com/ " npm ") を使って公開しやすいような形を取っています。
297
+
298
+ 設定なしで使えるのが一番楽ですが、そこが現実として難しいため、
299
+ 柔軟な設定のしくみと設定を共有しやすい形を持っていると言えます。
0 commit comments