ESLint v4.15.0 has been released: https://t.co/2I6huwUEBW
— ESLint (@geteslint) January 7, 2018
ESLint 4.15.0 がリリースされました。
小さな機能追加とバグ修正が含まれています。
質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。
🚀 本体への機能追加
#9165: messageId
ルール・プラグイン開発者向け。
従来は各検証ルールがエラーを報告する場合、context.report({ node, message: "Oops!" })
のように、エラーメッセージを直接報告していました。この機能追加によって、次のように messageId
を利用して、エラーメッセージを分離できるようになります。
ルール
module.exports = {
meta: {
description: "Disallow 'foo' as identifier.",
messages: {
avoidName: "Avoid using variables named '{{name}}'.",
},
schema: [],
},
create(context) {
return {
Identifier(node) {
if (node.name === "foo") {
context.report({
node,
messageId: "avoidName",
data: { name: "foo" },
});
}
}
};
}
};
テスト
const RuleTester = require("eslint").RuleTester
const rule = require("../../../lib/rules/no-foo")
var ruleTester = new RuleTester()
ruleTester.run("no-foo", rule, {
valid: [
"bar",
"baz",
],
invalid: [
{
code: "foo",
errors: [
{ messageId: 'avoidName', data: { name: "foo" } },
],
},
],
})
エラーメッセージの i18n を行うための布石です。
詳細はこちらを御覧ください。
#9782: CLIEngine#getRules()
エディタの拡張機能などのツール開発者向け。
CLIEngine
クラスに、現在ロードされているルールの一覧を取得するメソッド getRules()
が追加されました。
💡 新しいルール
特になし。
🔧 オプションが追加されたルール
#9752: indent ignoreComments
インデント ルールにコメントを無視するオプションが追加されました。
✒️ eslint --fix
をサポートしたルール
特になし。