6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ESLint v3.16.0

Last updated at Posted at 2017-02-21

v3.15.0 | 次 v3.17.0

ESLint 3.16.0 がリリースされました。
いくつかの機能追加・バグ修正が行われています。

今回はプラグイン開発者向けの変更が主です。

質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。


✨ 本体の変更

#7810: トークン・コメントを取得する API を改善

プラグイン・カスタム ルール開発者向けです。
AST ノードを構成するトークン・コメントを取得するための公開 API が改善されました。

includeComments オプション

従来は、トークンを取得するときと、トークンかコメントを取得するときとで異なるメソッドを利用していました。

sourceCode.getTokenAfter(node);
sourceCode.getTokenOrCommentAfter(node);

トークンを取得するメソッドが 10 種類 (Before, After, Between, First, Last, それぞれ単数・複数) あるのに対して、トークンかコメントを取得するメソッドは 2 種類だけでした。今回、各メソッドに取得対象にコメントを含めるオプションが追加され、getTokenOrCommentAftergetTokenOrCommentBeforeは非推奨になりました。

sourceCode.getTokenAfter(node);
sourceCode.getTokenAfter(node, {includeComments: true});

filter オプション

ルールを書いていると「ノードの次のトークンを取得したいが、閉じカッコは無視したい」というような場合がよくあります。従来はループ文を用いて探索する必要がありました。

let operatorToken = sourceCode.getTokenAfter(node.left);   
while (operatorToken.value === ")") {    
    operatorToken = sourceCode.getTokenAfter(operatorToken);    
} 

今回、指定した条件にマッチしないトークンを無視するための filter オプションが追加されました。

const operatorToken = sourceCode.getTokenAfter(node.left, {filter: t => t.value !== ")"});

#8035, #8054: 大きなファイル向けの性能改善

eslint --fix 等のアルゴリズムを見直して、計算量 (O(n)的なやつ) を改善しました。
大きなファイルをチェックする時の性能が改善していると思います。

💡 新しいルール

今回はありません。

🔧 オプションが追加されたルール

今回はありません。

✒️ eslint --fix をサポートしたルール

#7841: no-unused-labels

foo: while (a) { foo(a) }

// gets fixed to:

while (a) { foo(a) }

おまけ

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?