Skip to content

Commit 78f9b61

Browse files
committed
fix(require-description-complete-sentence): validate tags without names (e.g., beyond param/returns); fixes #333
1 parent d75fd6f commit 78f9b61

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

src/rules/requireDescriptionCompleteSentence.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,19 @@ export default iterateJsdoc(({
139139
validateDescription(description, report, jsdocNode, sourceCode, matchingJsdocTag);
140140
});
141141

142-
const tags = jsdoc.tags.filter((tag) => {
143-
return ['param', 'arg', 'argument', 'returns', 'return'].includes(tag.tag);
144-
});
142+
const {tagsWithNames, tagsWithoutNames} = utils.getTagsByType(jsdoc.tags);
145143

146-
tags.some((tag) => {
144+
tagsWithNames.some((tag) => {
147145
const description = _.trimStart(tag.description, '- ');
148146

149147
return validateDescription(description, report, jsdocNode, sourceCode, tag);
150148
});
149+
150+
tagsWithoutNames.some((tag) => {
151+
const description = (tag.name + ' ' + tag.description).trim();
152+
153+
return validateDescription(description, report, jsdocNode, sourceCode, tag);
154+
});
151155
}, {
152156
iterateAllJsdocs: true,
153157
meta: {

test/rules/assertions/requireDescriptionCompleteSentence.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,20 @@ export default {
500500
501501
}
502502
`
503+
},
504+
{
505+
code: `
506+
/**
507+
* @typedef {Object} Hello World
508+
* hello world
509+
*/
510+
`,
511+
errors: [
512+
{
513+
line: 3,
514+
message: 'Sentence must end with a period.'
515+
}
516+
]
503517
}
504518
],
505519
valid: [

0 commit comments

Comments
 (0)