Skip to content

Commit 22096fb

Browse files
committed
feat: add fixer to check-tag-names
1 parent 070f535 commit 22096fb

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

src/rules/checkTagNames.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,22 @@ import _ from 'lodash';
22
import iterateJsdoc from '../iterateJsdoc';
33

44
export default iterateJsdoc(({
5+
sourceCode,
56
jsdoc,
67
report,
7-
utils
8+
utils,
9+
jsdocNode
810
}) => {
911
_.forEach(jsdoc.tags, (jsdocTag) => {
1012
if (utils.isValidTag(jsdocTag.tag)) {
1113
const preferredTagName = utils.getPreferredTagName(jsdocTag.tag);
1214

1315
if (preferredTagName !== jsdocTag.tag) {
14-
report('Invalid JSDoc tag (preference). Replace "' + jsdocTag.tag + '" JSDoc tag with "' + preferredTagName + '".', null, jsdocTag);
16+
report('Invalid JSDoc tag (preference). Replace "' + jsdocTag.tag + '" JSDoc tag with "' + preferredTagName + '".', (fixer) => {
17+
const replacement = sourceCode.getText(jsdocNode).replace(jsdocTag.tag, preferredTagName);
18+
19+
return fixer.replaceText(jsdocNode, replacement);
20+
});
1521
}
1622
} else {
1723
report('Invalid JSDoc tag name "' + jsdocTag.tag + '".', null, jsdocTag);

src/tagNames.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ export default {
7171
package: [],
7272
param: [
7373
'arg',
74-
'argument'
74+
'argument',
75+
'parameter'
7576
],
7677
private: [],
7778
property: [

test/rules/assertions/checkTagNames.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export default {
4747
`,
4848
errors: [
4949
{
50-
line: 3,
50+
line: 2,
5151
message: 'Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "param".'
5252
}
5353
]
@@ -63,7 +63,7 @@ export default {
6363
`,
6464
errors: [
6565
{
66-
line: 3,
66+
line: 2,
6767
message: 'Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "arg".'
6868
}
6969
],
@@ -75,6 +75,29 @@ export default {
7575
}
7676
}
7777
},
78+
{
79+
code: `
80+
/**
81+
* @param foo
82+
*/
83+
function quux (foo) {
84+
85+
}
86+
`,
87+
errors: [
88+
{
89+
line: 2,
90+
message: 'Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "parameter".'
91+
}
92+
],
93+
settings: {
94+
jsdoc: {
95+
tagNamePreference: {
96+
param: 'parameter'
97+
}
98+
}
99+
}
100+
},
78101
{
79102
code: `
80103
/**

0 commit comments

Comments
 (0)