1. mysticatea

    Posted

    mysticatea
Changes in title
+ESLint v3.18.0
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,96 @@
+前 [v3.17.0] | 次 -
+
+<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">ESLint v3.18.0 has been released: <a href="https://t.co/ajPcRN19PJ">https://t.co/ajPcRN19PJ</a></p>&mdash; ESLint (@geteslint) <a href="https://twitter.com/geteslint/status/842857107129061377">2017年3月17日</a></blockquote>
+<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+
+ESLint 3.18.0 がリリースされました。
+いくつかの機能追加・バグ修正が行われています。
+
+質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。
+
+- :globe_with_meridians: [日本語 Issue 管理リポジトリ](https://github.com/eslint/eslint-jp)
+- :speech_balloon: [日本語サポート チャット](https://gitter.im/eslint/eslint-jp)
+- :globe_with_meridians: [本家リポジトリ](https://github.com/eslint/eslint)
+- :speech_balloon: [本家サポート チャット](https://gitter.im/eslint/eslint)
+
+----
+
+# ✨ 本体の変更
+
+## [#5407]: [AST Selectors]
+
+プラグイン・カスタム ルール開発者向けです。
+
+各ルールは AST の種類毎にイベントハンドラを書くことで実装されていますが、そのイベント名に [AST Selectors] を利用できるようになりました。
+例えば、`let`定義を調べたい場合のコードは次のように完結になります。
+
+```js:例.(before)
+exports.create = (context) => ({
+ VariableDeclaration(node) {
+ if (node.kind === "let") {
+ // 調べる
+ }
+ }
+})
+```
+
+```js:例.(after)
+exports.create = (context) => ({
+ "VariableDeclaration[kind=let]"(node) {
+ // 調べる
+ }
+})
+```
+
+これに伴い、[no-restricted-syntax] ルールのオプションとしても [AST Selectors] が利用できるようになりました。
+
+```json:例.(xdescribe関数呼び出しを禁止する)
+{
+ "rules": {
+ "no-restricted-syntax": [
+ "error",
+ "CallExpression[callee.name='xdescribe']"
+ ]
+ }
+}
+```
+
+# 💡 新しいルール
+
+今回はありません。
+
+# 🔧 オプションが追加されたルール
+
+## [#7632]: [no-unused-expressions] \(`allowTaggedTemplates`)
+
+タグ付きテンプレートを副作用を持つ式として扱うオプションが追加されました。
+
+```js
+/*eslint no-unused-expressions: [error, {allowTaggedTemplates: true}] */
+
+//✘ BAD
+`hello, ${world}!`
+
+//✔ GOOD
+tag`hello, ${world}!`
+```
+
+# ✒️ `eslint --fix` をサポートしたルール
+
+今回はありません。
+
+----
+
+[v3.17.0]: http://qiita.com/mysticatea/items/a2d72c76671c2197c712
+[#5407]: https://github.com/eslint/eslint/issues/5407
+[#7632]: https://github.com/eslint/eslint/issues/7632
+[#9999]: https://github.com/eslint/eslint/issues/9999
+[no-restricted-syntax]: http://eslint.org/docs/rules/no-restricted-syntax
+[no-unused-expressions]: http://eslint.org/docs/rules/no-unused-expressions
+[xxxx]: http://eslint.org/docs/rules/xxxx
+
+[AST Selectors]: http://eslint.org/docs/developer-guide/selectors
+
+<!--
+![JSCS Icon](http://jscs.info/favicon.ico) JSCS 互換ルールです。
+-->