Skip to content

Commit b68d534

Browse files
authored
prevent-abbreviations: Use message IDs (#1461)
1 parent 7af9a6f commit b68d534

File tree

2 files changed

+38
-25
lines changed

2 files changed

+38
-25
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"enquirer": "2.3.6",
6262
"eslint": "^7.28.0",
6363
"eslint-ava-rule-tester": "^4.0.0",
64-
"eslint-plugin-eslint-plugin": "^3.1.0",
64+
"eslint-plugin-eslint-plugin": "^3.5.3",
6565
"eslint-remote-tester": "^1.2.0",
6666
"execa": "^5.1.1",
6767
"listr": "^0.14.3",

rules/prevent-abbreviations.js

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ const {defaultReplacements, defaultAllowList, defaultIgnore} = require('./shared
1212
const {renameVariable} = require('./fix/index.js');
1313
const getScopes = require('./utils/get-scopes.js');
1414

15+
const MESSAGE_ID_REPLACE = 'replace';
16+
const MESSAGE_ID_SUGGESTION = 'suggestion';
17+
const anotherNameMessage = 'A more descriptive name will do too.';
18+
const messages = {
19+
[MESSAGE_ID_REPLACE]: `The {{nameTypeText}} \`{{discouragedName}}\` should be named \`{{replacement}}\`. ${anotherNameMessage}`,
20+
[MESSAGE_ID_SUGGESTION]: `Please rename the {{nameTypeText}} \`{{discouragedName}}\`. Suggested names are: {{replacementsText}}. ${anotherNameMessage}`,
21+
};
22+
1523
const isUpperCase = string => string === string.toUpperCase();
1624
const isUpperFirst = string => isUpperCase(string[0]);
1725

@@ -139,33 +147,37 @@ const getNameReplacements = (name, options, limit = 3) => {
139147
};
140148
};
141149

142-
const anotherNameMessage = 'A more descriptive name will do too.';
143-
144-
const formatMessage = (discouragedName, replacements, nameTypeText) => {
145-
const message = [];
150+
const getMessage = (discouragedName, replacements, nameTypeText) => {
146151
const {total, samples = []} = replacements;
147152

148153
if (total === 1) {
149-
message.push(`The ${nameTypeText} \`${discouragedName}\` should be named \`${samples[0]}\`.`);
150-
} else {
151-
let replacementsText = samples
152-
.map(replacement => `\`${replacement}\``)
153-
.join(', ');
154-
155-
const omittedReplacementsCount = total - samples.length;
156-
if (omittedReplacementsCount > 0) {
157-
replacementsText += `, ... (${omittedReplacementsCount > 99 ? '99+' : omittedReplacementsCount} more omitted)`;
158-
}
159-
160-
message.push(
161-
`Please rename the ${nameTypeText} \`${discouragedName}\`.`,
162-
`Suggested names are: ${replacementsText}.`,
163-
);
154+
return {
155+
messageId: MESSAGE_ID_REPLACE,
156+
data: {
157+
nameTypeText,
158+
discouragedName,
159+
replacement: samples[0],
160+
},
161+
};
164162
}
165163

166-
message.push(anotherNameMessage);
164+
let replacementsText = samples
165+
.map(replacement => `\`${replacement}\``)
166+
.join(', ');
167+
168+
const omittedReplacementsCount = total - samples.length;
169+
if (omittedReplacementsCount > 0) {
170+
replacementsText += `, ... (${omittedReplacementsCount > 99 ? '99+' : omittedReplacementsCount} more omitted)`;
171+
}
167172

168-
return message.join(' ');
173+
return {
174+
messageId: MESSAGE_ID_SUGGESTION,
175+
data: {
176+
nameTypeText,
177+
discouragedName,
178+
replacementsText,
179+
},
180+
};
169181
};
170182

171183
const isExportedIdentifier = identifier => {
@@ -422,8 +434,8 @@ const create = context => {
422434
);
423435

424436
const problem = {
437+
...getMessage(definition.name.name, variableReplacements, 'variable'),
425438
node: definition.name,
426-
message: formatMessage(definition.name.name, variableReplacements, 'variable'),
427439
};
428440

429441
if (variableReplacements.total === 1 && shouldFix(variable) && variableReplacements.samples[0]) {
@@ -478,8 +490,8 @@ const create = context => {
478490
}
479491

480492
const problem = {
493+
...getMessage(node.name, identifierReplacements, 'property'),
481494
node,
482-
message: formatMessage(node.name, identifierReplacements, 'property'),
483495
};
484496

485497
context.report(problem);
@@ -508,8 +520,8 @@ const create = context => {
508520
filenameReplacements.samples = filenameReplacements.samples.map(replacement => `${replacement}${extension}`);
509521

510522
context.report({
523+
...getMessage(filenameWithExtension, filenameReplacements, 'filename'),
511524
node,
512-
message: formatMessage(filenameWithExtension, filenameReplacements, 'filename'),
513525
});
514526
},
515527

@@ -609,5 +621,6 @@ module.exports = {
609621
},
610622
fixable: 'code',
611623
schema,
624+
messages,
612625
},
613626
};

0 commit comments

Comments
 (0)