eslint-plugin-jsdoc 43.1.1 → 44.0.0

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.
Files changed (109) hide show
  1. package/README.md +58 -24393
  2. package/dist/WarnSettings.js.map +1 -1
  3. package/dist/alignTransform.js.map +1 -1
  4. package/dist/bin/generateRule.js.map +1 -1
  5. package/dist/exportParser.js.map +1 -1
  6. package/dist/generateRule.js.map +1 -1
  7. package/dist/iterateJsdoc.js +2 -2
  8. package/dist/iterateJsdoc.js.map +1 -1
  9. package/dist/jsdocUtils.js.map +1 -1
  10. package/dist/rules/checkAccess.js.map +1 -1
  11. package/dist/rules/checkExamples.js.map +1 -1
  12. package/dist/rules/checkLineAlignment.js.map +1 -1
  13. package/dist/rules/checkParamNames.js.map +1 -1
  14. package/dist/rules/checkPropertyNames.js.map +1 -1
  15. package/dist/rules/checkTagNames.js.map +1 -1
  16. package/dist/rules/checkTypes.js.map +1 -1
  17. package/dist/rules/checkValues.js.map +1 -1
  18. package/dist/rules/emptyTags.js.map +1 -1
  19. package/dist/rules/implementsOnClasses.js.map +1 -1
  20. package/dist/rules/informativeDocs.js.map +1 -1
  21. package/dist/rules/matchDescription.js.map +1 -1
  22. package/dist/rules/matchName.js.map +1 -1
  23. package/dist/rules/multilineBlocks.js.map +1 -1
  24. package/dist/rules/noBadBlocks.js.map +1 -1
  25. package/dist/rules/noBlankBlockDescriptions.js.map +1 -1
  26. package/dist/rules/noBlankBlocks.js.map +1 -1
  27. package/dist/rules/noDefaults.js.map +1 -1
  28. package/dist/rules/noMultiAsterisks.js.map +1 -1
  29. package/dist/rules/noTypes.js.map +1 -1
  30. package/dist/rules/noUndefinedTypes.js.map +1 -1
  31. package/dist/rules/requireDescription.js.map +1 -1
  32. package/dist/rules/requireDescriptionCompleteSentence.js.map +1 -1
  33. package/dist/rules/requireExample.js.map +1 -1
  34. package/dist/rules/requireFileOverview.js.map +1 -1
  35. package/dist/rules/requireHyphenBeforeParamDescription.js.map +1 -1
  36. package/dist/rules/requireJsdoc.js.map +1 -1
  37. package/dist/rules/requireParam.js.map +1 -1
  38. package/dist/rules/requireParamDescription.js.map +1 -1
  39. package/dist/rules/requireParamName.js.map +1 -1
  40. package/dist/rules/requireParamType.js.map +1 -1
  41. package/dist/rules/requirePropertyDescription.js.map +1 -1
  42. package/dist/rules/requirePropertyName.js.map +1 -1
  43. package/dist/rules/requirePropertyType.js.map +1 -1
  44. package/dist/rules/requireReturns.js.map +1 -1
  45. package/dist/rules/requireReturnsCheck.js.map +1 -1
  46. package/dist/rules/requireReturnsDescription.js.map +1 -1
  47. package/dist/rules/requireThrows.js.map +1 -1
  48. package/dist/rules/requireYields.js.map +1 -1
  49. package/dist/rules/requireYieldsCheck.js.map +1 -1
  50. package/dist/rules/sortTags.js.map +1 -1
  51. package/dist/rules/tagLines.js.map +1 -1
  52. package/dist/rules/textEscaping.js.map +1 -1
  53. package/dist/rules/validTypes.js.map +1 -1
  54. package/dist/utils/hasReturnValue.js.map +1 -1
  55. package/docs/advanced.md +102 -0
  56. package/docs/rules/check-access.md +193 -0
  57. package/docs/rules/check-alignment.md +169 -0
  58. package/docs/rules/check-examples.md +784 -0
  59. package/docs/rules/check-indentation.md +296 -0
  60. package/docs/rules/check-line-alignment.md +995 -0
  61. package/docs/rules/check-param-names.md +1035 -0
  62. package/docs/rules/check-property-names.md +244 -0
  63. package/docs/rules/check-syntax.md +80 -0
  64. package/docs/rules/check-tag-names.md +1117 -0
  65. package/docs/rules/check-types.md +1198 -0
  66. package/docs/rules/check-values.md +409 -0
  67. package/docs/rules/empty-tags.md +220 -0
  68. package/docs/rules/implements-on-classes.md +219 -0
  69. package/docs/rules/informative-docs.md +400 -0
  70. package/docs/rules/match-description.md +979 -0
  71. package/docs/rules/match-name.md +243 -0
  72. package/docs/rules/multiline-blocks.md +398 -0
  73. package/docs/rules/no-bad-blocks.md +174 -0
  74. package/docs/rules/no-blank-block-descriptions.md +91 -0
  75. package/docs/rules/no-blank-blocks.md +98 -0
  76. package/docs/rules/no-defaults.md +207 -0
  77. package/docs/rules/no-missing-syntax.md +269 -0
  78. package/docs/rules/no-multi-asterisks.md +278 -0
  79. package/docs/rules/no-restricted-syntax.md +377 -0
  80. package/docs/rules/no-types.md +168 -0
  81. package/docs/rules/no-undefined-types.md +731 -0
  82. package/docs/rules/require-asterisk-prefix.md +297 -0
  83. package/docs/rules/require-description-complete-sentence.md +584 -0
  84. package/docs/rules/require-description.md +820 -0
  85. package/docs/rules/require-example.md +390 -0
  86. package/docs/rules/require-file-overview.md +317 -0
  87. package/docs/rules/require-hyphen-before-param-description.md +258 -0
  88. package/docs/rules/require-jsdoc.md +1837 -0
  89. package/docs/rules/require-param-description.md +1816 -0
  90. package/docs/rules/require-param-name.md +238 -0
  91. package/docs/rules/require-param-type.md +163 -0
  92. package/docs/rules/require-param.md +227 -0
  93. package/docs/rules/require-property-description.md +128 -0
  94. package/docs/rules/require-property-name.md +88 -0
  95. package/docs/rules/require-property-type.md +79 -0
  96. package/docs/rules/require-property.md +79 -0
  97. package/docs/rules/require-returns-check.md +1164 -0
  98. package/docs/rules/require-returns-description.md +1053 -0
  99. package/docs/rules/require-returns-type.md +181 -0
  100. package/docs/rules/require-returns.md +144 -0
  101. package/docs/rules/require-throws.md +326 -0
  102. package/docs/rules/require-yields-check.md +823 -0
  103. package/docs/rules/require-yields.md +544 -0
  104. package/docs/rules/sort-tags.md +635 -0
  105. package/docs/rules/tag-lines.md +551 -0
  106. package/docs/rules/text-escaping.md +177 -0
  107. package/docs/rules/valid-types.md +834 -0
  108. package/docs/settings.md +355 -0
  109. package/package.json +15 -15
@@ -0,0 +1,584 @@
1
+ <a name="user-content-require-description"></a>
2
+ <a name="require-description"></a>
3
+ # <code>require-description</code>
4
+
5
+ * [Options](#user-content-require-description-options)
6
+ * [Context and settings](#user-content-require-description-context-and-settings)
7
+ * [Failing examples](#user-content-require-description-failing-examples)
8
+ * [Passing examples](#user-content-require-description-passing-examples)
9
+
10
+
11
+ Requires that all functions have a description.
12
+
13
+ * All functions must have an implicit description (e.g., text above tags) or
14
+ have the option `descriptionStyle` set to `tag` (requiring `@description`
15
+ (or `@desc` if that is set as your preferred tag name)).
16
+ * Every jsdoc block description (or `@description` tag if `descriptionStyle`
17
+ is `"tag"`) must have a non-empty description that explains the purpose of
18
+ the method.
19
+
20
+ <a name="user-content-require-description-options"></a>
21
+ <a name="require-description-options"></a>
22
+ ## Options
23
+
24
+ An options object may have any of the following properties:
25
+
26
+ - `contexts` - Set to an array of strings representing the AST context
27
+ where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6
28
+ classes). Overrides the default contexts (see below). Set to `"any"` if
29
+ you want the rule to apply to any jsdoc block throughout your files.
30
+ - `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the
31
+ document block avoids the need for a `@description`. Defaults to an
32
+ array with `inheritdoc`. If you set this array, it will overwrite the
33
+ default, so be sure to add back `inheritdoc` if you wish its presence
34
+ to cause exemption of the rule.
35
+ - `descriptionStyle` - Whether to accept implicit descriptions (`"body"`) or
36
+ `@description` tags (`"tag"`) as satisfying the rule. Set to `"any"` to
37
+ accept either style. Defaults to `"body"`.
38
+ - `checkConstructors` - A value indicating whether `constructor`s should be
39
+ checked. Defaults to `true`.
40
+ - `checkGetters` - A value indicating whether getters should be checked.
41
+ Defaults to `true`.
42
+ - `checkSetters` - A value indicating whether setters should be checked.
43
+ Defaults to `true`.
44
+
45
+ <a name="user-content-require-description-context-and-settings"></a>
46
+ <a name="require-description-context-and-settings"></a>
47
+ ## Context and settings
48
+
49
+ | | |
50
+ | -------- | ---------------------- |
51
+ | Context | `ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled |
52
+ | Tags | `description` or jsdoc block |
53
+ | Aliases | `desc` |
54
+ | Recommended | false |
55
+ | Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` |
56
+ | Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
57
+
58
+ <a name="user-content-require-description-failing-examples"></a>
59
+ <a name="require-description-failing-examples"></a>
60
+ ## Failing examples
61
+
62
+ The following patterns are considered problems:
63
+
64
+ ````js
65
+ /**
66
+ *
67
+ */
68
+ function quux () {
69
+
70
+ }
71
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
72
+ // Message: Missing JSDoc @description declaration.
73
+
74
+ /**
75
+ *
76
+ */
77
+ function quux () {
78
+
79
+ }
80
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}]
81
+ // Message: Missing JSDoc block description or @description declaration.
82
+
83
+ /**
84
+ *
85
+ */
86
+ function quux () {
87
+
88
+ }
89
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}]
90
+ // Message: Missing JSDoc block description.
91
+
92
+ /**
93
+ * @desc Not a blank description
94
+ */
95
+ function quux () {
96
+
97
+ }
98
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}]
99
+ // Message: Remove the @desc tag to leave a plain block description or add additional description text above the @desc line.
100
+
101
+ /**
102
+ * @description Not a blank description
103
+ */
104
+ function quux () {
105
+
106
+ }
107
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}]
108
+ // Message: Remove the @description tag to leave a plain block description or add additional description text above the @description line.
109
+
110
+ /**
111
+ *
112
+ */
113
+ class quux {
114
+
115
+ }
116
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}]
117
+ // Message: Missing JSDoc @description declaration.
118
+
119
+ /**
120
+ *
121
+ */
122
+ class quux {
123
+
124
+ }
125
+ // Settings: {"jsdoc":{"contexts":["ClassDeclaration"]}}
126
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
127
+ // Message: Missing JSDoc @description declaration.
128
+
129
+ /**
130
+ *
131
+ */
132
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["any"],"descriptionStyle":"tag"}]
133
+ // Message: Missing JSDoc @description declaration.
134
+
135
+ /**
136
+ *
137
+ */
138
+ class quux {
139
+
140
+ }
141
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}]
142
+ // Message: Missing JSDoc @description declaration.
143
+
144
+ /**
145
+ *
146
+ */
147
+ class quux {
148
+
149
+ }
150
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}]
151
+ // Message: Missing JSDoc @description declaration.
152
+
153
+ /**
154
+ * @description
155
+ */
156
+ function quux () {
157
+
158
+ }
159
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
160
+ // Message: Missing JSDoc @description description.
161
+
162
+ /**
163
+ *
164
+ */
165
+ interface quux {
166
+
167
+ }
168
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["TSInterfaceDeclaration"],"descriptionStyle":"tag"}]
169
+ // Message: Missing JSDoc @description declaration.
170
+
171
+ /**
172
+ *
173
+ */
174
+ var quux = class {
175
+
176
+ };
177
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassExpression"],"descriptionStyle":"tag"}]
178
+ // Message: Missing JSDoc @description declaration.
179
+
180
+ /**
181
+ *
182
+ */
183
+ var quux = {
184
+
185
+ };
186
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["ObjectExpression"],"descriptionStyle":"tag"}]
187
+ // Message: Missing JSDoc @description declaration.
188
+
189
+ /**
190
+ * @someDesc
191
+ */
192
+ function quux () {
193
+
194
+ }
195
+ // Settings: {"jsdoc":{"tagNamePreference":{"description":{"message":"Please avoid `{{tagName}}`; use `{{replacement}}` instead","replacement":"someDesc"}}}}
196
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
197
+ // Message: Missing JSDoc @someDesc description.
198
+
199
+ /**
200
+ * @description
201
+ */
202
+ function quux () {
203
+
204
+ }
205
+ // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
206
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
207
+ // Message: Unexpected tag `@description`
208
+
209
+ /**
210
+ * @description
211
+ */
212
+ function quux () {
213
+
214
+ }
215
+ // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
216
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}]
217
+ // Message: Missing JSDoc block description or @description declaration.
218
+
219
+ /**
220
+ *
221
+ */
222
+ function quux () {
223
+ }
224
+ // "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["notPresent"]}]
225
+ // Message: Missing JSDoc block description.
226
+
227
+ class TestClass {
228
+ /**
229
+ *
230
+ */
231
+ constructor() { }
232
+ }
233
+ // Message: Missing JSDoc block description.
234
+
235
+ class TestClass {
236
+ /**
237
+ *
238
+ */
239
+ constructor() { }
240
+ }
241
+ // "jsdoc/require-description": ["error"|"warn", {"checkConstructors":true}]
242
+ // Message: Missing JSDoc block description.
243
+
244
+ class TestClass {
245
+ /**
246
+ *
247
+ */
248
+ get Test() { }
249
+ }
250
+ // Message: Missing JSDoc block description.
251
+
252
+ class TestClass {
253
+ /**
254
+ *
255
+ */
256
+ get Test() { }
257
+ }
258
+ // "jsdoc/require-description": ["error"|"warn", {"checkGetters":true}]
259
+ // Message: Missing JSDoc block description.
260
+
261
+ class TestClass {
262
+ /**
263
+ *
264
+ */
265
+ set Test(value) { }
266
+ }
267
+ // Message: Missing JSDoc block description.
268
+
269
+ class TestClass {
270
+ /**
271
+ *
272
+ */
273
+ set Test(value) { }
274
+ }
275
+ // "jsdoc/require-description": ["error"|"warn", {"checkSetters":true}]
276
+ // Message: Missing JSDoc block description.
277
+
278
+ /**
279
+ *
280
+ */
281
+ class Foo {
282
+ /**
283
+ *
284
+ */
285
+ constructor() {}
286
+
287
+ /**
288
+ *
289
+ */
290
+ bar() {}
291
+ }
292
+ // "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false,"contexts":["MethodDefinition"]}]
293
+ // Message: Missing JSDoc block description.
294
+
295
+ /**
296
+ * @implements {Bar}
297
+ */
298
+ class quux {
299
+
300
+ }
301
+ // Settings: {"jsdoc":{"implementsReplacesDocs":false}}
302
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}]
303
+ // Message: Missing JSDoc @description declaration.
304
+
305
+ /**
306
+ * Has some
307
+ * description already.
308
+ * @implements {Bar}
309
+ */
310
+ class quux {
311
+
312
+ }
313
+ // Settings: {"jsdoc":{"implementsReplacesDocs":false}}
314
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"Bar\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}]
315
+ // Message: Missing JSDoc @description declaration.
316
+
317
+ /**
318
+ * @implements {Bar
319
+ * | Foo}
320
+ */
321
+ class quux {
322
+
323
+ }
324
+ // Settings: {"jsdoc":{"implementsReplacesDocs":false}}
325
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTypeUnion > JsdocTypeName[value=\"Bar\"]:nth-child(1))","context":"ClassDeclaration"}],"descriptionStyle":"tag"}]
326
+ // Message: Missing JSDoc @description declaration.
327
+
328
+ /**
329
+ * @implements {Bar}
330
+ */
331
+ class quux {
332
+
333
+ }
334
+ // Settings: {"jsdoc":{"implementsReplacesDocs":false}}
335
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}]
336
+ // Message: Missing JSDoc @description declaration.
337
+
338
+ /**
339
+ * @implements {Bar}
340
+ */
341
+ class quux {
342
+
343
+ }
344
+ // Settings: {"jsdoc":{"implementsReplacesDocs":false}}
345
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[tag=\"implements\"])","context":"any"}],"descriptionStyle":"tag"}]
346
+ // Message: Missing JSDoc @description declaration.
347
+ ````
348
+
349
+
350
+
351
+ <a name="user-content-require-description-passing-examples"></a>
352
+ <a name="require-description-passing-examples"></a>
353
+ ## Passing examples
354
+
355
+ The following patterns are not considered problems:
356
+
357
+ ````js
358
+ /**
359
+ *
360
+ */
361
+
362
+ /**
363
+ * @description
364
+ * // arbitrary description content
365
+ */
366
+ function quux () {
367
+
368
+ }
369
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
370
+
371
+ /**
372
+ * @description
373
+ * quux(); // does something useful
374
+ */
375
+ function quux () {
376
+
377
+ }
378
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
379
+
380
+ /**
381
+ * @description <caption>Valid usage</caption>
382
+ * quux(); // does something useful
383
+ *
384
+ * @description <caption>Invalid usage</caption>
385
+ * quux('random unwanted arg'); // results in an error
386
+ */
387
+ function quux () {
388
+
389
+ }
390
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
391
+
392
+ /**
393
+ *
394
+ */
395
+ class quux {
396
+
397
+ }
398
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
399
+
400
+ /**
401
+ *
402
+ */
403
+ function quux () {
404
+
405
+ }
406
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["ClassDeclaration"]}]
407
+
408
+ /**
409
+ * @type {MyCallback}
410
+ */
411
+ function quux () {
412
+
413
+ }
414
+ // "jsdoc/require-description": ["error"|"warn", {"exemptedBy":["type"]}]
415
+
416
+ /**
417
+ *
418
+ */
419
+ interface quux {
420
+
421
+ }
422
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
423
+
424
+ interface quux {
425
+ /**
426
+ * If the thing should be checked.
427
+ */
428
+ checked?: boolean
429
+ }
430
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":["TSPropertySignature"]}]
431
+
432
+ /**
433
+ *
434
+ */
435
+ var quux = class {
436
+
437
+ };
438
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
439
+
440
+ /**
441
+ *
442
+ */
443
+ var quux = {
444
+
445
+ };
446
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
447
+
448
+ /**
449
+ * Has an implicit description
450
+ */
451
+ function quux () {
452
+
453
+ }
454
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"body"}]
455
+
456
+ /**
457
+ * Has an implicit description
458
+ */
459
+ function quux () {
460
+
461
+ }
462
+
463
+ /**
464
+ * Has an implicit description
465
+ */
466
+ function quux () {
467
+
468
+ }
469
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}]
470
+
471
+ /**
472
+ * @description Has an explicit description
473
+ */
474
+ function quux () {
475
+
476
+ }
477
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"any"}]
478
+
479
+ /**
480
+ *
481
+ */
482
+ function quux () {
483
+
484
+ }
485
+ // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
486
+
487
+ class TestClass {
488
+ /**
489
+ * Test.
490
+ */
491
+ constructor() { }
492
+ }
493
+
494
+ class TestClass {
495
+ /**
496
+ *
497
+ */
498
+ constructor() { }
499
+ }
500
+ // "jsdoc/require-description": ["error"|"warn", {"checkConstructors":false}]
501
+
502
+ class TestClass {
503
+ /**
504
+ * Test.
505
+ */
506
+ get Test() { }
507
+ }
508
+
509
+ class TestClass {
510
+ /**
511
+ *
512
+ */
513
+ get Test() { }
514
+ }
515
+ // "jsdoc/require-description": ["error"|"warn", {"checkGetters":false}]
516
+
517
+ class TestClass {
518
+ /**
519
+ * Test.
520
+ */
521
+ set Test(value) { }
522
+ }
523
+
524
+ class TestClass {
525
+ /**
526
+ *
527
+ */
528
+ set Test(value) { }
529
+ }
530
+ // "jsdoc/require-description": ["error"|"warn", {"checkSetters":false}]
531
+
532
+ /**
533
+ * Multi
534
+ * line
535
+ */
536
+ function quux () {
537
+
538
+ }
539
+
540
+ /** Single line */
541
+ function quux () {
542
+
543
+ }
544
+
545
+ /** @description something */
546
+ function quux () {
547
+
548
+ }
549
+ // "jsdoc/require-description": ["error"|"warn", {"descriptionStyle":"tag"}]
550
+
551
+ /**
552
+ * @implements {Bar}
553
+ */
554
+ class quux {
555
+
556
+ }
557
+ // Settings: {"jsdoc":{"implementsReplacesDocs":false}}
558
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=/\\s{4}/]:has(JsdocTag[rawType=\"class\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}]
559
+
560
+ /**
561
+ * Has some
562
+ * description already.
563
+ */
564
+ class quux {
565
+
566
+ }
567
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"ClassDeclaration"}],"descriptionStyle":"tag"}]
568
+
569
+ /**
570
+ * Has some
571
+ * description already.
572
+ */
573
+ class quux {
574
+
575
+ }
576
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}]
577
+
578
+ /**
579
+ * Has some
580
+ * description already.
581
+ */
582
+ // "jsdoc/require-description": ["error"|"warn", {"contexts":[{"comment":"JsdocBlock[postDelimiter=\"\"]:has(JsdocTag[rawType=\"{Bar}\"])","context":"any"}],"descriptionStyle":"tag"}]
583
+ ````
584
+