なっく日報

技術やら生活やらのメモ

ESLintで拡張子をみてテキストをゴニョゴニョできる話

久しぶりにESLintの話題を。

公式ドキュメントに書いてあるのですが、ESLintプラグインでは拡張子毎にprocessorを設定できるそう。

http://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins

processor is 何?

このeslint-plugin-markdownがわかりやすいかもしれません。

github.com

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 (mysticateaさん、ありがとうございます)

  • テキストの中身をみて、pluginをOFFにするとか (eslint-plugin-disable がまさにそれ)

  • /* eslint no-var: 0 */ みたいなコメントを一行目に強引につけて、ファイルの中身に応じて、動的にルールをON/OFFする(ES2015とES5が混じっている環境で使いたい)

など。

まとめ

使いたい(使うかも)