Skip to content

Commit

Permalink
Chore: use meta.messages in some rules (2/4) (refs #9870) (#10773)
Browse files Browse the repository at this point in the history
* Chore: use meta.messages in global-require

* Chore: use meta.messages in guard-for-in

* Chore: use meta.messages in handle-callback-err

* Chore: use meta.messages in id-blacklist

* Chore: use meta.messages in id-length

* Chore: use meta.messages in id-match

* Chore: use meta.messages in implicit-linebreak

* Chore: use meta.messages in indent-legacy

* Chore: use meta.messages in indent

* Chore: use meta.messages in jsx-quotes

* Chore: use meta.messages in init-declarations

* Chore: use messageId in rule key-spacing

* Chore: use messageId in rule linebreak-style

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule max-len

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule line-comment-position

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule lines-around-comment

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule lines-around-directive

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule lines-between-class-members

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule max-depth

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* global-require

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule max-lines-per-functions

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule max-lines

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule max-nested-callbacks

* Chore: use messageId in rule max-params

* Chore: use messageId in rule max-statements-per-line

* Chore: use messageId in rule max-statements-per-function

* Chore: fix max-lines-per-function

* Chore: use messageId in rule max-statements

* Chore: use messageId in rule new-cap

* Chore: use messageId in rule multiline-ternary

* Chore: use messageId in rule multiline-comment-style

* Chore: use messageId in rule newline-after-var

* Chore: use messageId in rule new-parens

* Chore: use messageId in rule newline-before-return

* Chore: use messageId in rule newline-per-chained-call

* Chore: use messageId in rule no-async-promise-executor

* Chore: use messageId in rule keyword-spacing

* Chore: use messageId in rule yoda

* Chore: fix wrap-iife (+1 squashed commits)

Squashed commits:

[9959b8f] Chore: use messageId in rule wrap-iife

* Chore: use messageId in rule unicode-bom

* Chore: use messageId in rule use-isnan

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule valid-typeof

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule vars-on-top

Signed-off-by: weiran.zsd <weiran.zsd@outlook.com>

* Chore: use messageId in rule yield-star-spacing

* Chore: use messageId in rule valid-jsdoc

* Chore: use messageId in rule template-curly-spacing

* Chore: use messageId in rule template-tag-spacing

* Chore: use meta.messages in switch-colon-spacing

* Chore: use meta.messages in strict

* Chore: use meta.messages in symbol-description

* Chore: use meta.messages in no-duplicate-import

* Chore: use meta.messages in no-fallthrough

* Chore: use meta.messages in space-unary-ops

* Fix: rule spae-unary-ops messages

* Chore: use messageId in rule space-unary-ops

* Chore: use messages in rule no-floating-decimal

* Chore: use messages in rule no-invalid-meta

* Fix: rule space-unary-ops messages

* Chore: use messages in rule no-unexpected-multiline

* Chore: use messages in rule no-unsafe-negation

* Chore: use messages in rule no-undef

* Chore: use messages in rule no-unused-labels

* Chore: use messages in rule operator-assignment

* Chore: use messages in rule prefer-const

* Chore: fix failing tests

* Chore: fix cli-engine tests failing

Signed-off-by: weiran.zsd <weiran.zsd@alibaba-inc.com>

* Chore: convert no-unsafe-negation to single messagesId + data (+3 squashed commits)
Squashed commits:
[407f0f2] Fix: yield-star-spacing messages

Signed-off-by: weiran.zsd <weiran.zsd@alibaba-inc.com>
[66ab408] Chore: do not dynamically generating messageId
[ff4a3b12] Chore: indent rule messageId expected => wrongIndentation
  • Loading branch information
aladdin-add authored and kaicataldo committed Jan 18, 2019
1 parent aa56247 commit eb5c401
Show file tree
Hide file tree
Showing 117 changed files with 2,088 additions and 2,033 deletions.
7 changes: 5 additions & 2 deletions lib/rules/global-require.js
Expand Up @@ -57,7 +57,10 @@ module.exports = {
url: "https://eslint.org/docs/rules/global-require"
},

schema: []
schema: [],
messages: {
unexpected: "Unexpected require()."
}
},

create(context) {
Expand All @@ -69,7 +72,7 @@ module.exports = {
const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.indexOf(parent.type) > -1);

if (!isGoodRequire) {
context.report({ node, message: "Unexpected require()." });
context.report({ node, messageId: "unexpected" });
}
}
}
Expand Down
7 changes: 5 additions & 2 deletions lib/rules/guard-for-in.js
Expand Up @@ -20,7 +20,10 @@ module.exports = {
url: "https://eslint.org/docs/rules/guard-for-in"
},

schema: []
schema: [],
messages: {
wrap: "The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype."
}
},

create(context) {
Expand Down Expand Up @@ -65,7 +68,7 @@ module.exports = {
}
}

context.report({ node, message: "The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype." });
context.report({ node, messageId: "wrap" });
}
};

Expand Down
7 changes: 5 additions & 2 deletions lib/rules/handle-callback-err.js
Expand Up @@ -24,7 +24,10 @@ module.exports = {
{
type: "string"
}
]
],
messages: {
expected: "Expected error to be handled."
}
},

create(context) {
Expand Down Expand Up @@ -77,7 +80,7 @@ module.exports = {

if (firstParameter && matchesConfiguredErrorName(firstParameter.name)) {
if (firstParameter.references.length === 0) {
context.report({ node, message: "Expected error to be handled." });
context.report({ node, messageId: "expected" });
}
}
}
Expand Down
5 changes: 4 additions & 1 deletion lib/rules/id-blacklist.js
Expand Up @@ -27,6 +27,9 @@ module.exports = {
type: "string"
},
uniqueItems: true
},
messages: {
blacklisted: "Identifier '{{name}}' is blacklisted."
}
},

Expand Down Expand Up @@ -72,7 +75,7 @@ module.exports = {
function report(node) {
context.report({
node,
message: "Identifier '{{name}}' is blacklisted.",
messageId: "blacklisted",
data: {
name: node.name
}
Expand Down
10 changes: 6 additions & 4 deletions lib/rules/id-length.js
Expand Up @@ -44,7 +44,11 @@ module.exports = {
},
additionalProperties: false
}
]
],
messages: {
tooShort: "Identifier name '{{name}}' is too short (< {{min}}).",
tooLong: "Identifier name '{{name}}' is too long (> {{max}})."
}
},

create(context) {
Expand Down Expand Up @@ -107,9 +111,7 @@ module.exports = {
if (isValidExpression && (isValidExpression === true || isValidExpression(parent, node))) {
context.report({
node,
message: isShort
? "Identifier name '{{name}}' is too short (< {{min}})."
: "Identifier name '{{name}}' is too long (> {{max}}).",
messageId: isShort ? "tooShort" : "tooLong",
data: { name, min: minLength, max: maxLength }
});
}
Expand Down
7 changes: 5 additions & 2 deletions lib/rules/id-match.js
Expand Up @@ -38,7 +38,10 @@ module.exports = {
}
}
}
]
],
messages: {
notMatch: "Identifier '{{name}}' does not match the pattern '{{pattern}}'."
}
},

create(context) {
Expand Down Expand Up @@ -116,7 +119,7 @@ module.exports = {
if (!reported.has(node)) {
context.report({
node,
message: "Identifier '{{name}}' does not match the pattern '{{pattern}}'.",
messageId: "notMatch",
data: {
name: node.name,
pattern
Expand Down
10 changes: 7 additions & 3 deletions lib/rules/implicit-arrow-linebreak.js
Expand Up @@ -30,7 +30,11 @@ module.exports = {
{
enum: ["beside", "below"]
}
]
],
messages: {
expected: "Expected a linebreak before this expression.",
unexpected: "Expected no linebreak before this expression."
}
},

create(context) {
Expand Down Expand Up @@ -210,13 +214,13 @@ module.exports = {
if (tokenBefore.loc.end.line === fixerTarget.loc.start.line && option === "below") {
context.report({
node: fixerTarget,
message: "Expected a linebreak before this expression.",
messageId: "expected",
fix: fixer => fixer.insertTextBefore(fixerTarget, "\n")
});
} else if (tokenBefore.loc.end.line !== fixerTarget.loc.start.line && option === "beside") {
context.report({
node: fixerTarget,
message: "Expected no linebreak before this expression.",
messageId: "unexpected",
fix: autoFixBesides(tokenBefore, fixerTarget, node)
});
}
Expand Down
16 changes: 11 additions & 5 deletions lib/rules/indent-legacy.js
Expand Up @@ -169,7 +169,10 @@ module.exports = {
},
additionalProperties: false
}
]
],
messages: {
expected: "Expected indentation of {{expected}} but found {{actual}}."
}
},

create(context) {
Expand Down Expand Up @@ -268,7 +271,7 @@ module.exports = {
* @param {int} actualTabs The actual number of indentation tabs that were found on this line
* @returns {string} An error message for this line
*/
function createErrorMessage(expectedAmount, actualSpaces, actualTabs) {
function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
Expand All @@ -288,8 +291,10 @@ module.exports = {
} else {
foundStatement = "0";
}

return `Expected indentation of ${expectedStatement} but found ${foundStatement}.`;
return {
expected: expectedStatement,
actual: foundStatement
};
}

/**
Expand Down Expand Up @@ -318,7 +323,8 @@ module.exports = {
context.report({
node,
loc,
message: createErrorMessage(needed, gottenSpaces, gottenTabs),
messageId: "expected",
data: createErrorMessageData(needed, gottenSpaces, gottenTabs),
fix: fixer => fixer.replaceTextRange(textRange, desiredIndent)
});
}
Expand Down
16 changes: 11 additions & 5 deletions lib/rules/indent.js
Expand Up @@ -599,7 +599,10 @@ module.exports = {
},
additionalProperties: false
}
]
],
messages: {
wrongIndentation: "Expected indentation of {{expected}} but found {{actual}}."
}
},

create(context) {
Expand Down Expand Up @@ -671,7 +674,7 @@ module.exports = {
* @param {int} actualTabs The actual number of indentation tabs that were found on this line
* @returns {string} An error message for this line
*/
function createErrorMessage(expectedAmount, actualSpaces, actualTabs) {
function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
Expand All @@ -689,8 +692,10 @@ module.exports = {
} else {
foundStatement = "0";
}

return `Expected indentation of ${expectedStatement} but found ${foundStatement}.`;
return {
expected: expectedStatement,
actual: foundStatement
};
}

/**
Expand All @@ -706,7 +711,8 @@ module.exports = {

context.report({
node: token,
message: createErrorMessage(neededIndent.length, numSpaces, numTabs),
messageId: "wrongIndentation",
data: createErrorMessageData(neededIndent.length, numSpaces, numTabs),
loc: {
start: { line: token.loc.start.line, column: 0 },
end: { line: token.loc.start.line, column: token.loc.start.column }
Expand Down
23 changes: 11 additions & 12 deletions lib/rules/init-declarations.js
Expand Up @@ -85,6 +85,10 @@ module.exports = {
maxItems: 2
}
]
},
messages: {
initialized: "Variable '{{idName}}' should be initialized on declaration.",
notInitialized: "Variable '{{idName}}' should not be initialized on declaration."
}
},

Expand All @@ -111,23 +115,18 @@ module.exports = {
id = declaration.id,
initialized = isInitialized(declaration),
isIgnoredForLoop = params.ignoreForLoopInit && isForLoop(node.parent);

if (id.type !== "Identifier") {
continue;
}
let messageId = "";

if (mode === MODE_ALWAYS && !initialized) {
context.report({
node: declaration,
message: "Variable '{{idName}}' should be initialized on declaration.",
data: {
idName: id.name
}
});
messageId = "initialized";
} else if (mode === MODE_NEVER && kind !== "const" && initialized && !isIgnoredForLoop) {
messageId = "notInitialized";
}

if (id.type === "Identifier" && messageId) {
context.report({
node: declaration,
message: "Variable '{{idName}}' should not be initialized on declaration.",
messageId,
data: {
idName: id.name
}
Expand Down
7 changes: 5 additions & 2 deletions lib/rules/jsx-quotes.js
Expand Up @@ -53,7 +53,10 @@ module.exports = {
{
enum: ["prefer-single", "prefer-double"]
}
]
],
messages: {
unexpected: "Unexpected usage of {{description}}."
}
},

create(context) {
Expand All @@ -77,7 +80,7 @@ module.exports = {
if (attributeValue && astUtils.isStringLiteral(attributeValue) && !usesExpectedQuotes(attributeValue)) {
context.report({
node: attributeValue,
message: "Unexpected usage of {{description}}.",
messageId: "unexpected",
data: {
description: setting.description
},
Expand Down
24 changes: 16 additions & 8 deletions lib/rules/key-spacing.js
Expand Up @@ -121,11 +121,6 @@ function initOptions(toOptions, fromOptions) {
// Rule Definition
//------------------------------------------------------------------------------

const messages = {
key: "{{error}} space after {{computed}}key '{{key}}'.",
value: "{{error}} space before value for {{computed}}key '{{key}}'."
};

module.exports = {
meta: {
type: "layout",
Expand Down Expand Up @@ -297,7 +292,13 @@ module.exports = {
additionalProperties: false
}
]
}]
}],
messages: {
extraKey: "Extra space after {{computed}}key '{{key}}'.",
extraValue: "Extra space before value for {{computed}}key '{{key}}'.",
missingKey: "Missing space after {{computed}}key '{{key}}'.",
missingValue: "Missing space before value for {{computed}}key '{{key}}'."
}
},

create(context) {
Expand Down Expand Up @@ -460,12 +461,19 @@ module.exports = {
}
}

let messageId = "";

if (isExtra) {
messageId = side === "key" ? "extraKey" : "extraValue";
} else {
messageId = side === "key" ? "missingKey" : "missingValue";
}

context.report({
node: property[side],
loc: locStart,
message: messages[side],
messageId,
data: {
error: isExtra ? "Extra" : "Missing",
computed: property.computed ? "computed " : "",
key: getKey(property)
},
Expand Down

0 comments on commit eb5c401

Please sign in to comment.