@@ -28,7 +28,7 @@ ESLintサイト上には、上記のように書かれていることからも
28
28
29
29
### MyLinter
30
30
31
- MyLinterは単純で以下の2つのメソッドを持つクラスとして実装しました 。
31
+ MyLinterは単純な2つのメソッドを持つクラスとして実装しました 。
32
32
33
33
- ` MyLinter#loadRule(rule): void `
34
34
- 利用するルールを登録する処理
@@ -37,11 +37,11 @@ MyLinterは単純で以下の2つのメソッドを持つクラスとして実
37
37
- ` code ` を受け取りルールによってLintした結果を返す
38
38
- Lint結果はエラーメッセージの配列とする
39
39
40
- 実際に実装したものが以下のようになっています 。
40
+ 実装したものが以下のようになっています 。
41
41
42
42
[ import, src/ESLint/MyLinter.js] ( ../../src/ESLint/MyLinter.js )
43
43
44
- MyLinterで [ no-console.js] ( #no-console.js ) を読み込ませて、
44
+ このMyLinterを使って、 ` MyLinter#load ` で [ no-console.js] ( #no-console.js ) を読み込ませて、
45
45
46
46
``` js
47
47
function add (x , y ){
@@ -55,16 +55,21 @@ add(1, 3);
55
55
56
56
[ import, src/ESLint/MyLinter-example.js] ( ../../src/ESLint/MyLinter-example.js )
57
57
58
- コードには` console ` というオブジェクトが含まれているので _ "Unexpected console statement."_ というエラーメッセージが取得出来ました 。
58
+ コードには` console ` という名前のオブジェクトが含まれているので、 _ "Unexpected console statement."_ というエラーメッセージが取得出来ました 。
59
59
60
60
### RuleContext
61
61
62
62
もう一度、[ MyLinter.js] ( #MyLinter.js ) を見てみると、` RuleContext ` というシンプルなクラスがあることに気づくと思います。
63
63
64
- この` RuleContext ` はいわゆるルールから使えるユーティリティメソッドをまとめたもので 、
64
+ この` RuleContext ` はルールから使えるユーティリティメソッドをまとめたもので 、
65
65
今回は` RuleContext#report ` というエラーメッセージをルールからMyLinterへ通知するものだけを実装しています。
66
66
67
- ESLintのプラグインアーキテクチャの特徴でもありますが、プラグインが本体の実装がについては知らなくて、
68
- Contextという本体から与えられたものだけを使うので、ルールが行える事を制御しやすい作りといえます。
67
+ ルールの実装の方を見てみると、直接オブジェクトをexportしてる訳ではなく、
68
+ ` context ` つまり` RuleContext ` のインスタンスを受け取っていることが分かると思います。
69
+
70
+ [ import, no-console.js] ( ../../src/ESLint/no-console.js )
71
+
72
+ このようにして、ルールは ` context ` という与えられたものだけを使うので、ルールができることを制御しやすくなり、
73
+ ルールがMyLinter本体の実装の詳細を知らなくても良くなります。
69
74
70
75
## エコシステム
0 commit comments