Skip to content

Commit 9fe4989

Browse files
brettz9chiawendt
authored andcommitted
feat(check-examples): apply to all contexts
1 parent 7400ee7 commit 9fe4989

File tree

4 files changed

+70
-9
lines changed

4 files changed

+70
-9
lines changed

.README/rules/check-examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ decreasing precedence:
9898

9999
|||
100100
|---|---|
101-
|Context|`ArrowFunctionExpression`, `ClassDeclaration`, `FunctionDeclaration`, `FunctionExpression`|
101+
|Context|everywhere|
102102
|Tags|`example`|
103103
|Options| *See above* |
104104

README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ decreasing precedence:
566566

567567
|||
568568
|---|---|
569-
|Context|`ArrowFunctionExpression`, `ClassDeclaration`, `FunctionDeclaration`, `FunctionExpression`|
569+
|Context|everywhere|
570570
|Tags|`example`|
571571
|Options| *See above* |
572572

@@ -612,6 +612,16 @@ function quux () {
612612
// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"eslintrcForExamples":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}]
613613
// Message: @example error (semi): Extra semicolon.
614614

615+
/**
616+
* @example
617+
* ```js alert('hello'); ```
618+
*/
619+
var quux = {
620+
621+
};
622+
// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"eslintrcForExamples":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}]
623+
// Message: @example error (semi): Extra semicolon.
624+
615625
/**
616626
* @example ```
617627
* js alert('hello'); ```
@@ -797,6 +807,16 @@ function quux () {}
797807
*/
798808
function quux () {}
799809
// Options: [{"allowInlineConfig":true,"baseConfig":{"rules":{"semi":["error","always"]}},"eslintrcForExamples":false,"noDefaultExampleRules":true}]
810+
811+
/**
812+
* @example ```js
813+
alert('hello')
814+
```
815+
*/
816+
var quux = {
817+
818+
};
819+
// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"eslintrcForExamples":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}]
800820
````
801821

802822

src/rules/checkExamples.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ export default iterateJsdoc(({
231231
});
232232
});
233233
}, {
234+
iterateAllJsdocs: true,
234235
meta: {
235236
schema: [
236237
{
@@ -276,11 +277,5 @@ export default iterateJsdoc(({
276277
}
277278
],
278279
type: 'suggestion'
279-
},
280-
returns: [
281-
'ArrowFunctionExpression',
282-
'ClassDeclaration',
283-
'FunctionDeclaration',
284-
'FunctionExpression'
285-
]
280+
}
286281
});

test/rules/assertions/checkExamples.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,31 @@ export default {
107107
exampleCodeRegex: '```js ([\\s\\S]*)```'
108108
}]
109109
},
110+
{
111+
code: `
112+
/**
113+
* @example
114+
* \`\`\`js alert('hello'); \`\`\`
115+
*/
116+
var quux = {
117+
118+
};
119+
`,
120+
errors: [
121+
{
122+
message: '@example error (semi): Extra semicolon.'
123+
}
124+
],
125+
options: [{
126+
baseConfig: {
127+
rules: {
128+
semi: ['error', 'never']
129+
}
130+
},
131+
eslintrcForExamples: false,
132+
exampleCodeRegex: '```js ([\\s\\S]*)```'
133+
}]
134+
},
110135
{
111136
code: `
112137
/**
@@ -544,6 +569,27 @@ export default {
544569
eslintrcForExamples: false,
545570
noDefaultExampleRules: true
546571
}]
572+
},
573+
{
574+
code: `
575+
/**
576+
* @example \`\`\`js
577+
alert('hello')
578+
\`\`\`
579+
*/
580+
var quux = {
581+
582+
};
583+
`,
584+
options: [{
585+
baseConfig: {
586+
rules: {
587+
semi: ['error', 'never']
588+
}
589+
},
590+
eslintrcForExamples: false,
591+
exampleCodeRegex: '```js([\\s\\S]*)```'
592+
}]
547593
}
548594
]
549595
};

0 commit comments

Comments
 (0)