Skip to content

Commit 8fceb2e

Browse files
committed
fix(check-tag-names): ensure replacement field overrides a default tag name preference; fixes #367
1 parent ea275f1 commit 8fceb2e

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,14 @@ function quux (foo) {
15501550
function quux () {
15511551

15521552
}
1553+
1554+
/**
1555+
* @extends Foo
1556+
*/
1557+
function quux () {
1558+
1559+
}
1560+
// Settings: {"jsdoc":{"tagNamePreference":{"augments":{"message":"@extends is to be used over @augments.","replacement":"extends"}}}}
15531561
````
15541562

15551563

src/jsdocUtils.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ const getJsdocParameterNames = (jsdoc : Object, targetTagName : string) : Array<
6161
};
6262

6363
const getPreferredTagName = (name : string, tagPreference : Object = {}) : string => {
64-
if (_.values(tagPreference).includes(name)) {
64+
const prefValues = _.values(tagPreference);
65+
if (prefValues.includes(name) || prefValues.some((prefVal) => {
66+
return prefVal && typeof prefVal === 'object' && prefVal.replacement === name;
67+
})) {
6568
return name;
6669
}
6770

test/rules/assertions/checkTagNames.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,5 +517,25 @@ export default {
517517
}
518518
`,
519519
},
520+
{
521+
code: `
522+
/**
523+
* @extends Foo
524+
*/
525+
function quux () {
526+
527+
}
528+
`,
529+
settings: {
530+
jsdoc: {
531+
tagNamePreference: {
532+
augments: {
533+
message: '@extends is to be used over @augments.',
534+
replacement: 'extends',
535+
},
536+
},
537+
},
538+
},
539+
},
520540
],
521541
};

0 commit comments

Comments
 (0)