質問: function () { var a, b, c, varend; //処理 }; ``` 未使用の変数varendが万人受けするとは思っていないのですが マイルールということにしといてください。 で、これをESLintで処理したときに、 当たり前のなのですが、インデントの数があわないよ。 というエラーがでます。 ここで、ESLintのルールを作成して、varendの行だけを 除外したいのですが、 行い方がわかりませんでした。 参考になるURLでもよいので、 教えていただけましたら幸いです。 このライブラリで使用しています。 stsLib.js/.eslintrc.js at master · standard-software/stsLib.js ESLintの使い方は、このファイルを作る程度にしか理解しておりません。 ご存知でしたら、教えてください。 よろしくおねがいします。 --- 追記: --- ソースの特定行に eslint-disable-line をコメントで書く方法は rio.irikamiさん に教えていただき、動作確認できました。ありがとうございます。 さらになのですが、自分の理想とするのは、ソースコード側にコメントを書く方法ではなく .eslintrc.js の方に設定を書きたくて、特定の単語を含むパターンの場合は、disable-line などになる方法があれば、もっとよいのにな、と思っています。 このような方法をご存じでしたら、教えてください。 var の部分だけはインデントチェックしない、というような方法も探したのですが、 これも、なさそうでした。 自分の書き方以外にも、次のような書き方をした場合、 eslintでインデントチェックしたくない、という場面があるように思います。 こういうものを除外することはできないでしょうか? ``` var a1, a2, a3, b1, b2, b3; ```
回答: 一般にeslintの対象からあるソースコードの一部を除外する方法として、Configuring ESLintに説明のある*Disabling Rules with Inline Comments*があります。具体的には、lintをスキップする指示となるコメントをソースコードに書いておくことができます。 質問のコードでいえば、行末の単一行スキップ`// eslint-disable-line`が適当かと思われます。 ``` var a, b, c, varend; // eslint-disable-line ``` その他書き方がいろいろありますので、詳細は前述のドキュメントを参照ください。 スタイルに関して蛇足ですが... * 「巻き上げ問題に対処」したいのであれば、varのかわりにconst/letが有効です。ブロック冒頭の変数宣言は古いCなどに影響されたのかもしれませんが、すくなくともjsにおいては倫理的意義を除いて意味がありません。必要となるスコープで適宜const/letで宣言するほうがむしろ安全です。 * 「開発中に変数をコメントアウトすることもよくある」とわかっているならば、*そもそもcomma operatorを用いた変数宣言をやめる(それぞれvar/let/constをつける)べき*です。ご提案の記法を採択するメリットが私には思いつきません。 これらはある種主観的な意見かつ質問の主旨から外れますので参考程度におねがいします。