ESLint v2.8.0

前 [v2.6.0] | 次 [v2.9.0]

<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="en" dir="ltr">ESLint v2.8.0 released: <a href="https://t.co/DnXHJH72rF">https://t.co/DnXHJH72rF</a></p>&mdash; ESLint (@geteslint) <a href="https://twitter.com/geteslint/status/721029948970938372">April 15, 2016</a></blockquote>

小さな機能改善といくつかのバグ修正が行われました。
質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。

- 日本語の Issue 管理リポジトリ: https://github.com/eslint/eslint-jp
- チャット: https://gitter.im/eslint/eslint-jp

今回は機能改善等よりも、JSCS チームが ESLint チームに合流したことのほうが大きなニュースですね。

<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="en" dir="ltr">Welcoming JSCS to ESLint! <a href="https://t.co/UIMmL3jsQn">https://t.co/UIMmL3jsQn</a></p>&mdash; ESLint (@geteslint) <a href="https://twitter.com/geteslint/status/720668382987587584">April 14, 2016</a></blockquote>

また、ロゴが変わりました。
このロゴで法的な手続きとかするらしいです (商標対策)。

----

以下は機能改善のピックアップです。

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

## [#3065]: [no-extra-parens]

```js
/*eslint no-extra-parens: ["error", "all", {"nestedBinaryExpressions": false}]*/

x = a || (b && c);
x = a + (b * c);
x = (a * b) / c;
```

構文上意味のないカッコであっても、ネストされた二項演算子を囲むものは許容するオプションが追加されました。
特に `&&` と `||` が混在する場合はカッコをつけるべしというコーディング スタイルは多そうですね。

## [#4127]: [space-before-function-paren]

```js
/*eslint space-before-function-paren: ["error", {"anonymous": "ignore", "named": "never"}]*/

// ignore にすると空白の有無にかかわらず警告されない
var bar = function() {};
var bar = function () {};

// "named": "never" なので名前付き関数は空白無しで
var bar = function bar() {};
```

空白があっても無くても警告しない (無視する) ためのオプションが追加されました。

このルールは、匿名関数と名前付き関数で異なる設定を適用できます。
今回の無視オプション追加によって、例えば名前付き関数だけを警告する、ということができるようになりました。

## [#5234]: [quotes]

```js
/*eslint quotes: ["error", "double", {"avoidEscape": true, "allowTemplateLiterals": true}]*/

var foo = "double";
var foo = 'a string containing "double" quotes';
var foo = `a string containing "double" quotes`;
```

埋込式を持たないテンプレート リテラルを許容するオプションが追加されました。
デフォルトでは`"double"`や`"single"`を指定した場合、埋込式を持たないテンプレート リテラルは警告されます (文字列リテラルに単純変換できるため)。

## [#5675]: [prefer-arrow-callback]

```js
/*eslint prefer-arrow-callback: ["error", {"allowNamedFunctions": true}]*/

foo(function bar() {});
```

名前付き関数式を警告しないためのオプションが追加されました。
名前付き関数式は、デバッグ時にスタック トレースを読みやすくしてくれます。

## [#5757]: [no-fallthrough]

```js
/*eslint no-fallthrough: ["error", {"commentPattern": "ふぉーるするー"}]*/

switch(foo) {
    case 1:
        doSomething();
        // ふぉーるするー
    case 2:
        doSomething();
}
```

意図的に fall through を行っていることを示すコメント文をカスタマイズできるようになりました。
デフォルトは `/falls?\s?through/i` になっています。

## [#5800]: [no-empty]

```js
/*eslint no-empty: ["error", {"allowEmptyCatch": true}]*/

try {
    doSomething();
} catch (ex) {}
```

空の `catch` ブロックを許可するオプションが追加されました。

この要求は過去に何度もあったのですが、そのたびに Reject されていました。
今回、JSCS がこのオプションを持っているため、移行支援のために追加された次第です。

----

今回はほとんど活動できてなかったので、次回は頑張りたいな...

[v2.6.0]: http://qiita.com/mysticatea/items/0242786a3746c2c0d078
[v2.9.0]: http://qiita.com/mysticatea/items/1d377b67465664009ad5
[#3065]: https://github.com/eslint/eslint/issues/3065
[#4127]: https://github.com/eslint/eslint/issues/4127
[#5234]: https://github.com/eslint/eslint/issues/5234
[#5675]: https://github.com/eslint/eslint/issues/5675
[#5757]: https://github.com/eslint/eslint/issues/5757
[#5800]: https://github.com/eslint/eslint/issues/5800
[no-extra-parens]: http://eslint.org/docs/rules/no-extra-parens
[space-before-function-paren]: http://eslint.org/docs/rules/space-before-function-paren
[quotes]: http://eslint.org/docs/rules/quotes
[prefer-arrow-callback]: http://eslint.org/docs/rules/prefer-arrow-callback
[no-fallthrough]: http://eslint.org/docs/rules/no-fallthrough
[no-empty]: http://eslint.org/docs/rules/no-empty

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>