ESLintで拡張子をみてテキストをゴニョゴニョできる話
久しぶりにESLintの話題を。
公式ドキュメントに書いてあるのですが、ESLintプラグインでは拡張子毎にprocessorを設定できるそう。
http://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins
processor is 何?
このeslint-plugin-markdownがわかりやすいかもしれません。
markdownからJavaScriptのコード部分だけを抜き出し、lintできるというプラグインです。
↓のpreprocess
という関数の部分を見ればわかりますが、markdownのテキストからJavaScriptのコード部分だけを抜き出すということをやっています。
https://github.com/eslint/eslint-plugin-markdown/blob/f97e0c01beb7cc6dad21d828ea80e4fbe55317af/lib/processor.js#L43
抜き出したコード部分を配列で返せば、ESLint本体側でそれらをlintしてくれる挙動になっています。
※ちなみにmarkdownをパースする箇所では、昨日の記事で書いたプレゼンテーションツールのremarkが使われていましたw
どんな場合に使えるか?
ぱっとプラグインが見つからなかったですが、HTMLファイルの
<script>〜</script>
の中身のチェックにも使えそう
→ ありました eslint-plugin-html - npm (mysticateaさん、ありがとうございます)テキストの中身をみて、pluginをOFFにするとか (eslint-plugin-disable がまさにそれ)
/* eslint no-var: 0 */
みたいなコメントを一行目に強引につけて、ファイルの中身に応じて、動的にルールをON/OFFする(ES2015とES5が混じっている環境で使いたい)
など。
まとめ
使いたい(使うかも)