Skip to content

Commit a367c48

Browse files
committed
feat(check-tag-names): allow rejecting normally valid tag names and/or providing custom error messages when suggesting tags to reject or replace (fixes #108)
Reporting normally valid tags may be of interest for tags like `@todo`. This is implemented by allowing the user to set targeted `tagNamePreference` tags to `false` or to an object with only a `message` and no `replacement` Custom messages for `check-tag-names` are implemented by allowing the user to set targeted `tagNamePreference` tags to an object with `message` and `replacement` (mirroring `preferredTypes` behavior). Note that for other rules leveraging `tagNamePreference` (via `utils.getPreferredTagName`) to find the user's preferred tag name, the `replacement` will be used in the likes of error messages but not the `message`. Also, for various (param, return, and description-related) rules which have used `tagNamePreference` (via the `utils.getPreferredTagName` utility), report to user if they have blocked (probably inadvertently) and not indicated a replacement for the relevant tag needed by the rule in the `tagNamePreference` setting. Also, ensure `require-param-name` and `check-examples` report preferred tag name (not necessarily `param` or `example`, respectively) and err if `example` is a rejected tag
1 parent 609d57b commit a367c48

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/iterateJsdoc.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,11 @@ const getSettings = (context) => {
256256
// `check-tag-names` and many require/param rules
257257
settings.tagNamePreference = _.get(context, 'settings.jsdoc.tagNamePreference') || {};
258258

259+
// `require-param`, `require-description`, `require-example`, `require-returns`
260+
settings.overrideReplacesDocs = _.get(context, 'settings.jsdoc.overrideReplacesDocs');
261+
settings.implementsReplacesDocs = _.get(context, 'settings.jsdoc.implementsReplacesDocs');
262+
settings.augmentsExtendsReplacesDocs = _.get(context, 'settings.jsdoc.augmentsExtendsReplacesDocs');
263+
259264
// `check-tag-names` only
260265
settings.additionalTagNames = _.get(context, 'settings.jsdoc.additionalTagNames') || {};
261266

@@ -271,11 +276,6 @@ const getSettings = (context) => {
271276
settings.captionRequired = Boolean(_.get(context, 'settings.jsdoc.captionRequired'));
272277
settings.noDefaultExampleRules = Boolean(_.get(context, 'settings.jsdoc.noDefaultExampleRules'));
273278

274-
// `require-param`, `require-description`, `require-example`, `require-returns`
275-
settings.overrideReplacesDocs = _.get(context, 'settings.jsdoc.overrideReplacesDocs');
276-
settings.implementsReplacesDocs = _.get(context, 'settings.jsdoc.implementsReplacesDocs');
277-
settings.augmentsExtendsReplacesDocs = _.get(context, 'settings.jsdoc.augmentsExtendsReplacesDocs');
278-
279279
// `require-param` only (deprecated)
280280
settings.allowOverrideWithoutParam = _.get(context, 'settings.jsdoc.allowOverrideWithoutParam');
281281
settings.allowImplementsWithoutParam = _.get(context, 'settings.jsdoc.allowImplementsWithoutParam');

0 commit comments

Comments
 (0)