eslint-plugin-jsdoc 36.0.8 → 37.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,7 +18,7 @@ JSDoc linting rules for ESLint.
18
18
  * [`maxLines` and `minLines`](#eslint-plugin-jsdoc-settings-maxlines-and-minlines)
19
19
  * [Mode](#eslint-plugin-jsdoc-settings-mode)
20
20
  * [Alias Preference](#eslint-plugin-jsdoc-settings-alias-preference)
21
- * [`@override`/`@augments`/`@extends`/`@implements` Without Accompanying `@param`/`@description`/`@example`/`@returns`](#eslint-plugin-jsdoc-settings-override-augments-extends-implements-without-accompanying-param-description-example-returns)
21
+ * [`@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields`](#eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields)
22
22
  * [Settings to Configure `check-types` and `no-undefined-types`](#eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types)
23
23
  * [`structuredTags`](#eslint-plugin-jsdoc-settings-structuredtags)
24
24
  * [Advanced](#eslint-plugin-jsdoc-advanced)
@@ -250,10 +250,8 @@ how many line breaks to add when a block is missing.
250
250
  types/namepaths (Closure allows types on some tags which the others do not,
251
251
  so these tags will additionally be checked in "closure" mode)
252
252
  - For type-checking rules, impacts parsing of types (through
253
- [jsdoctypeparser](https://github.com/jsdoctypeparser/jsdoctypeparser)
254
- dependency); note that some TypeScript features are
255
- [not yet](https://github.com/gajus/eslint-plugin-jsdoc/issues/145)
256
- [supported](https://github.com/jsdoctypeparser/jsdoctypeparser/issues/50)
253
+ [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser)
254
+ dependency)
257
255
  - Check preferred tag names
258
256
  - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and
259
257
  avoids checking in other rules)
@@ -389,14 +387,15 @@ This setting is utilized by the the rule for tag name checking
389
387
  - `require-returns-description`
390
388
  - `require-returns-type`
391
389
 
392
- <a name="eslint-plugin-jsdoc-settings-override-augments-extends-implements-without-accompanying-param-description-example-returns"></a>
393
- ### <code>@override</code>/<code>@augments</code>/<code>@extends</code>/<code>@implements</code> Without Accompanying <code>@param</code>/<code>@description</code>/<code>@example</code>/<code>@returns</code>
390
+ <a name="eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields"></a>
391
+ ### <code>@override</code>/<code>@augments</code>/<code>@extends</code>/<code>@implements</code>/<code>@ignore</code> Without Accompanying <code>@param</code>/<code>@description</code>/<code>@example</code>/<code>@returns</code>/<code>@throws</code>/<code>@yields</code>
394
392
 
395
393
  The following settings allows the element(s) they reference to be omitted
396
394
  on the JSDoc comment block of the function or that of its parent class
397
395
  for any of the "require" rules (i.e., `require-param`, `require-description`,
398
- `require-example`, or `require-returns`).
396
+ `require-example`, `require-returns`, `require-throws`, `require-yields`).
399
397
 
398
+ * `settings.jsdoc.ignoreReplacesDocs` (`@ignore`) - Defaults to `true`
400
399
  * `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true`
401
400
  * `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias
402
401
  `@extends`) - Defaults to `false`.
@@ -409,6 +408,7 @@ The format of the configuration is as follows:
409
408
  "rules": {},
410
409
  "settings": {
411
410
  "jsdoc": {
411
+ "ignoreReplacesDocs": true,
412
412
  "overrideReplacesDocs": true,
413
413
  "augmentsExtendsReplacesDocs": true,
414
414
  "implementsReplacesDocs": true
@@ -577,7 +577,7 @@ properties:
577
577
  declaration of the function expression for
578
578
  `const quux = function () {}`, the associated comment would,
579
579
  in both cases, generally be expected to be on the line above both, rather
580
- than to be immediately preceding the funciton (in the case of the
580
+ than to be immediately preceding the function (in the case of the
581
581
  function). See [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment)
582
582
  for the precise structure of the comment (and comment type) nodes.
583
583
 
@@ -945,6 +945,9 @@ function quux (foo) {
945
945
  <a name="eslint-plugin-jsdoc-rules-check-examples"></a>
946
946
  ### <code>check-examples</code>
947
947
 
948
+ > **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for
949
+ > [issue 14745](https://github.com/eslint/eslint/issues/14745)).
950
+
948
951
  Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also
949
952
  has options to lint the default values of optional `@param`/`@arg`/`@argument`
950
953
  and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags.
@@ -1932,6 +1935,20 @@ function quux () {
1932
1935
  * ```
1933
1936
  */
1934
1937
  // "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}]
1938
+
1939
+ /**
1940
+ * @example
1941
+ * ```
1942
+ * @MyDecorator({
1943
+ * myOptions: 42
1944
+ * })
1945
+ * export class MyClass {}
1946
+ * ```
1947
+ */
1948
+ function MyDecorator(options: { myOptions: number }) {
1949
+ return (Base: Function) => {};
1950
+ }
1951
+ // "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":["example","MyDecorator"]}]
1935
1952
  ````
1936
1953
 
1937
1954
 
@@ -4751,7 +4768,7 @@ behavior.
4751
4768
  See also the documentation on `settings.jsdoc.preferredTypes` which impacts
4752
4769
  the behavior of `check-types`.
4753
4770
 
4754
- Note that if there is an error [parsing](https://github.com/jsdoctypeparser/jsdoctypeparser)
4771
+ Note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser)
4755
4772
  types for a tag, the function will silently ignore that tag, leaving it to
4756
4773
  the `valid-types` rule to report parsing errors.
4757
4774
 
@@ -5737,7 +5754,7 @@ If present as an array, will be used in place of SPDX identifiers.
5737
5754
  A string to be converted into a `RegExp` (with `u` flag) and whose first
5738
5755
  parenthetical grouping, if present, will match the portion of the license
5739
5756
  description to check (if no grouping is present, then the whole portion
5740
- matched will be used). Defaults to `/([^\n]*)/gu`, i.e., the SPDX expression
5757
+ matched will be used). Defaults to `/([^\n\r]*)/gu`, i.e., the SPDX expression
5741
5758
  is expected before any line breaks.
5742
5759
 
5743
5760
  Note that the `/` delimiters are optional, but necessary to add flags.
@@ -5999,6 +6016,12 @@ function quux (foo) {
5999
6016
  function quux (foo) {
6000
6017
 
6001
6018
  }
6019
+
6020
+ /**
6021
+ * @module test
6022
+ * @license MIT
6023
+ */
6024
+ 'use strict';
6002
6025
  ````
6003
6026
 
6004
6027
 
@@ -6894,7 +6917,7 @@ class MyClass {
6894
6917
  */
6895
6918
  myClassField = 1
6896
6919
  }
6897
- // "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassProperty"]}]
6920
+ // "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}]
6898
6921
  // Message: JSDoc description does not satisfy the regex pattern.
6899
6922
 
6900
6923
  /**
@@ -7162,7 +7185,7 @@ class MyClass {
7162
7185
  */
7163
7186
  myClassField = 1
7164
7187
  }
7165
- // "jsdoc/match-description": ["error"|"warn", {"contexts":["ClassProperty"]}]
7188
+ // "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}]
7166
7189
 
7167
7190
  /**
7168
7191
  * Foo.
@@ -7341,7 +7364,7 @@ be applied, however.
7341
7364
  |||
7342
7365
  |---|---|
7343
7366
  |Context|everywhere|
7344
- |Tags|(The tags specifie by `tags`, including any tag if `*` is set)|
7367
+ |Tags|(The tags specified by `tags`, including any tag if `*` is set)|
7345
7368
  |Recommended|false|
7346
7369
  |Settings|`structuredTags`|
7347
7370
  |Options|`match`|
@@ -9147,7 +9170,7 @@ The following types are always considered defined.
9147
9170
  Note that preferred types indicated within `settings.jsdoc.preferredTypes` will
9148
9171
  also be assumed to be defined.
9149
9172
 
9150
- Also note that if there is an error [parsing](https://github.com/jsdoctypeparser/jsdoctypeparser)
9173
+ Also note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser)
9151
9174
  types for a tag, the function will silently ignore that tag, leaving it to
9152
9175
  the `valid-types` rule to report parsing errors.
9153
9176
 
@@ -10741,7 +10764,7 @@ An options object may have any of the following properties:
10741
10764
  | Aliases | `desc` |
10742
10765
  | Recommended | false |
10743
10766
  | Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` |
10744
- | Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
10767
+ | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
10745
10768
 
10746
10769
  The following patterns are considered problems:
10747
10770
 
@@ -11320,7 +11343,7 @@ report a missing example description after this is added.
11320
11343
  |Tags|`example`|
11321
11344
  |Recommended|false|
11322
11345
  |Options|`exemptedBy`, `exemptNoArguments`, `avoidExampleOnConstructors`, `contexts`|
11323
- |Settings|`overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
11346
+ |Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
11324
11347
 
11325
11348
  The following patterns are considered problems:
11326
11349
 
@@ -12793,7 +12816,7 @@ class Animal {
12793
12816
  @SomeAnnotation('optionalParameter')
12794
12817
  tail: boolean;
12795
12818
  }
12796
- // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ClassProperty"]}]
12819
+ // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"]}]
12797
12820
  // Message: Missing JSDoc comment.
12798
12821
 
12799
12822
  @Entity('users')
@@ -12887,7 +12910,7 @@ export class MyComponentComponent {
12887
12910
  @Input()
12888
12911
  public value = new EventEmitter();
12889
12912
  }
12890
- // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["ClassProperty:has(Decorator[expression.callee.name=\"Input\"])"]}]
12913
+ // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition > Decorator[expression.callee.name=\"Input\"]"]}]
12891
12914
  // Message: Missing JSDoc comment.
12892
12915
 
12893
12916
  requestAnimationFrame(draw)
@@ -12931,6 +12954,12 @@ function comment () {
12931
12954
  }
12932
12955
  // "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"fixerMessage":" TODO: add comment"}]
12933
12956
  // Message: Missing JSDoc comment.
12957
+
12958
+ export class InovaAutoCompleteComponent {
12959
+ public disabled = false;
12960
+ }
12961
+ // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}]
12962
+ // Message: Missing JSDoc comment.
12934
12963
  ````
12935
12964
 
12936
12965
  The following patterns are not considered problems:
@@ -12958,7 +12987,7 @@ export class Foo {
12958
12987
  // "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}]
12959
12988
 
12960
12989
  /** This is comment */
12961
- function someFunciton() {
12990
+ function someFunction() {
12962
12991
  interface FooBar {
12963
12992
  fooBar: string;
12964
12993
  }
@@ -14525,7 +14554,7 @@ supplied as default values. Defaults to `false`.
14525
14554
  | Aliases | `arg`, `argument` |
14526
14555
  |Recommended | true|
14527
14556
  | Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`|
14528
- | Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
14557
+ | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
14529
14558
 
14530
14559
  The following patterns are considered problems:
14531
14560
 
@@ -14717,6 +14746,15 @@ function quux (foo) {
14717
14746
  // Settings: {"jsdoc":{"overrideReplacesDocs":false}}
14718
14747
  // Message: Missing JSDoc @param "foo" declaration.
14719
14748
 
14749
+ /**
14750
+ * @ignore
14751
+ */
14752
+ function quux (foo) {
14753
+
14754
+ }
14755
+ // Settings: {"jsdoc":{"ignoreReplacesDocs":false}}
14756
+ // Message: Missing JSDoc @param "foo" declaration.
14757
+
14720
14758
  /**
14721
14759
  * @implements
14722
14760
  */
@@ -14756,6 +14794,20 @@ class A {
14756
14794
  // Settings: {"jsdoc":{"overrideReplacesDocs":false}}
14757
14795
  // Message: Missing JSDoc @param "foo" declaration.
14758
14796
 
14797
+ /**
14798
+ * @ignore
14799
+ */
14800
+ class A {
14801
+ /**
14802
+ *
14803
+ */
14804
+ quux (foo) {
14805
+
14806
+ }
14807
+ }
14808
+ // Settings: {"jsdoc":{"ignoreReplacesDocs":false}}
14809
+ // Message: Missing JSDoc @param "foo" declaration.
14810
+
14759
14811
  /**
14760
14812
  * @implements
14761
14813
  */
@@ -15296,6 +15348,14 @@ function quux (foo) {
15296
15348
  }
15297
15349
  // Settings: {"jsdoc":{"overrideReplacesDocs":true}}
15298
15350
 
15351
+ /**
15352
+ * @ignore
15353
+ */
15354
+ function quux (foo) {
15355
+
15356
+ }
15357
+ // Settings: {"jsdoc":{"ignoreReplacesDocs":true}}
15358
+
15299
15359
  /**
15300
15360
  * @implements
15301
15361
  */
@@ -15404,6 +15464,19 @@ class A {
15404
15464
  }
15405
15465
  // Settings: {"jsdoc":{"overrideReplacesDocs":true}}
15406
15466
 
15467
+ /**
15468
+ * @ignore
15469
+ */
15470
+ class A {
15471
+ /**
15472
+ *
15473
+ */
15474
+ quux (foo) {
15475
+
15476
+ }
15477
+ }
15478
+ // Settings: {"jsdoc":{"ignoreReplacesDocs":true}}
15479
+
15407
15480
  /**
15408
15481
  * @implements
15409
15482
  */
@@ -17005,7 +17078,7 @@ Will also report if multiple `@returns` tags are present.
17005
17078
  | Aliases | `return` |
17006
17079
  |Recommended|true|
17007
17080
  | Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` |
17008
- | Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
17081
+ | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
17009
17082
 
17010
17083
  The following patterns are considered problems:
17011
17084
 
@@ -18049,7 +18122,7 @@ Requires that throw statements are documented.
18049
18122
  | Aliases | `exception` |
18050
18123
  |Recommended|true|
18051
18124
  | Options | `contexts`, `exemptedBy` |
18052
- | Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
18125
+ | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
18053
18126
 
18054
18127
  The following patterns are considered problems:
18055
18128
 
@@ -18359,7 +18432,7 @@ option to expect a non-standard `@next` tag.
18359
18432
  |Aliases|`yield`|
18360
18433
  |Recommended|true|
18361
18434
  | Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` |
18362
- | Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
18435
+ | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
18363
18436
 
18364
18437
  The following patterns are considered problems:
18365
18438
 
@@ -19934,10 +20007,10 @@ The following patterns are not considered problems:
19934
20007
 
19935
20008
  Requires all types to be valid JSDoc, Closure, or TypeScript compiler types
19936
20009
  without syntax errors. Note that what determines a valid type is handled by
19937
- our type parsing engine, [jsdoctypeparser](https://github.com/jsdoctypeparser/jsdoctypeparser),
20010
+ our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser),
19938
20011
  using [`settings.jsdoc.mode`](#eslint-plugin-jsdoc-settings-mode) to
19939
- determine whether to use jsdoctypeparser's "permissive" mode or the stricter
19940
- "jsdoc", "typescript", "closure" modes.
20012
+ determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or
20013
+ the stricter "jsdoc", "typescript", "closure" modes.
19941
20014
 
19942
20015
  The following tags have their "type" portions (the segment within brackets)
19943
20016
  checked (though those portions may sometimes be confined to namepaths,
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = iterateJsdoc;
7
+ exports.getSettings = void 0;
7
8
  Object.defineProperty(exports, "parseComment", {
8
9
  enumerable: true,
9
10
  get: function () {
10
11
  return _jsdoccomment.parseComment;
11
12
  }
12
13
  });
13
- exports.getSettings = void 0;
14
14
 
15
15
  var _jsdoccomment = require("@es-joy/jsdoccomment");
16
16
 
@@ -87,6 +87,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl
87
87
  const {
88
88
  tagNamePreference,
89
89
  overrideReplacesDocs,
90
+ ignoreReplacesDocs,
90
91
  implementsReplacesDocs,
91
92
  augmentsExtendsReplacesDocs,
92
93
  maxLines,
@@ -476,7 +477,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl
476
477
  utils.avoidDocs = () => {
477
478
  var _context$options$0$ex, _context$options$;
478
479
 
479
- if (overrideReplacesDocs !== false && (utils.hasTag('override') || utils.classHasTag('override')) || implementsReplacesDocs !== false && (utils.hasTag('implements') || utils.classHasTag('implements')) || augmentsExtendsReplacesDocs && (utils.hasATag(['augments', 'extends']) || utils.classHasTag('augments') || utils.classHasTag('extends'))) {
480
+ if (ignoreReplacesDocs !== false && (utils.hasTag('ignore') || utils.classHasTag('ignore')) || overrideReplacesDocs !== false && (utils.hasTag('override') || utils.classHasTag('override')) || implementsReplacesDocs !== false && (utils.hasTag('implements') || utils.classHasTag('implements')) || augmentsExtendsReplacesDocs && (utils.hasATag(['augments', 'extends']) || utils.classHasTag('augments') || utils.classHasTag('extends'))) {
480
481
  return true;
481
482
  }
482
483
 
@@ -651,9 +652,9 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl
651
652
  };
652
653
 
653
654
  const getSettings = context => {
654
- var _context$settings$jsd, _context$settings$jsd2, _context$settings$jsd3, _context$settings$jsd4, _context$settings$jsd5, _context$settings$jsd6, _context$settings$jsd7, _context$settings$jsd8, _context$settings$jsd9, _context$settings$jsd10, _context$settings$jsd11, _context$settings$jsd12, _context$settings$jsd13, _context$settings$jsd14, _context$settings$jsd15, _context$settings$jsd16, _context$settings$jsd17;
655
+ var _context$settings$jsd, _context$settings$jsd2, _context$settings$jsd3, _context$settings$jsd4, _context$settings$jsd5, _context$settings$jsd6, _context$settings$jsd7, _context$settings$jsd8, _context$settings$jsd9, _context$settings$jsd10, _context$settings$jsd11, _context$settings$jsd12, _context$settings$jsd13, _context$settings$jsd14, _context$settings$jsd15, _context$settings$jsd16, _context$settings$jsd17, _context$settings$jsd18;
655
656
 
656
- /* eslint-disable sort-keys-fix/sort-keys-fix */
657
+ /* eslint-disable canonical/sort-keys */
657
658
  const settings = {
658
659
  // All rules
659
660
  ignorePrivate: Boolean((_context$settings$jsd = context.settings.jsdoc) === null || _context$settings$jsd === void 0 ? void 0 : _context$settings$jsd.ignorePrivate),
@@ -666,14 +667,16 @@ const getSettings = context => {
666
667
  preferredTypes: (_context$settings$jsd9 = (_context$settings$jsd10 = context.settings.jsdoc) === null || _context$settings$jsd10 === void 0 ? void 0 : _context$settings$jsd10.preferredTypes) !== null && _context$settings$jsd9 !== void 0 ? _context$settings$jsd9 : {},
667
668
  // `check-types`, `no-undefined-types`, `valid-types`
668
669
  structuredTags: (_context$settings$jsd11 = (_context$settings$jsd12 = context.settings.jsdoc) === null || _context$settings$jsd12 === void 0 ? void 0 : _context$settings$jsd12.structuredTags) !== null && _context$settings$jsd11 !== void 0 ? _context$settings$jsd11 : {},
669
- // `require-param`, `require-description`, `require-example`, `require-returns`
670
+ // `require-param`, `require-description`, `require-example`,
671
+ // `require-returns`, `require-throw`, `require-yields`
670
672
  overrideReplacesDocs: (_context$settings$jsd13 = context.settings.jsdoc) === null || _context$settings$jsd13 === void 0 ? void 0 : _context$settings$jsd13.overrideReplacesDocs,
671
- implementsReplacesDocs: (_context$settings$jsd14 = context.settings.jsdoc) === null || _context$settings$jsd14 === void 0 ? void 0 : _context$settings$jsd14.implementsReplacesDocs,
672
- augmentsExtendsReplacesDocs: (_context$settings$jsd15 = context.settings.jsdoc) === null || _context$settings$jsd15 === void 0 ? void 0 : _context$settings$jsd15.augmentsExtendsReplacesDocs,
673
+ ignoreReplacesDocs: (_context$settings$jsd14 = context.settings.jsdoc) === null || _context$settings$jsd14 === void 0 ? void 0 : _context$settings$jsd14.ignoreReplacesDocs,
674
+ implementsReplacesDocs: (_context$settings$jsd15 = context.settings.jsdoc) === null || _context$settings$jsd15 === void 0 ? void 0 : _context$settings$jsd15.implementsReplacesDocs,
675
+ augmentsExtendsReplacesDocs: (_context$settings$jsd16 = context.settings.jsdoc) === null || _context$settings$jsd16 === void 0 ? void 0 : _context$settings$jsd16.augmentsExtendsReplacesDocs,
673
676
  // Many rules, e.g., `check-tag-names`
674
- mode: (_context$settings$jsd16 = (_context$settings$jsd17 = context.settings.jsdoc) === null || _context$settings$jsd17 === void 0 ? void 0 : _context$settings$jsd17.mode) !== null && _context$settings$jsd16 !== void 0 ? _context$settings$jsd16 : context.parserPath.includes('@typescript-eslint') ? 'typescript' : 'jsdoc'
677
+ mode: (_context$settings$jsd17 = (_context$settings$jsd18 = context.settings.jsdoc) === null || _context$settings$jsd18 === void 0 ? void 0 : _context$settings$jsd18.mode) !== null && _context$settings$jsd17 !== void 0 ? _context$settings$jsd17 : context.parserPath.includes('@typescript-eslint') ? 'typescript' : 'jsdoc'
675
678
  };
676
- /* eslint-enable sort-keys-fix/sort-keys-fix */
679
+ /* eslint-enable canonical/sort-keys */
677
680
 
678
681
  _jsdocUtils.default.setTagStructure(settings.mode);
679
682
 
@@ -721,7 +724,8 @@ const makeReport = (context, commentNode) => {
721
724
  start: {
722
725
  line: lineNumber
723
726
  }
724
- };
727
+ }; // Todo: Remove ignore once `check-examples` can be restored for ESLint 8+
728
+ // istanbul ignore if
725
729
 
726
730
  if (jsdocLoc.column) {
727
731
  const colNumber = commentNode.loc.start.column + jsdocLoc.column;
@@ -824,7 +828,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveContexts) => {
824
828
  } = sourceCode;
825
829
  const utils = getBasicUtils(context, settings);
826
830
  jsdocNodes.forEach(jsdocNode => {
827
- if (!/^\/\*\*\s/.test(sourceCode.getText(jsdocNode))) {
831
+ if (!/^\/\*\*\s/u.test(sourceCode.getText(jsdocNode))) {
828
832
  return;
829
833
  }
830
834