a custom rule eliottvincent/import-group-comment: it ensures import statements are preceded by a comment stating their type
a rule from the official plugin jsdoc/require-jsdoc: it enforces JSDoc comments on functions and classes
I expect both these rules to work in Vue SFC files.
What actually happened?
When a Vue SFC file contains two script tags, one with setup keyword (to make use of Vue Composition API) and a regular one, both of these rules will fail (check the file res/example/not_ok.vue in the repro example).
When a Vue SFC file contains only one script tag, these rules work fine (check the file res/example/ok_1.vue in the repro example).
When a Vue SFC file contains two regular script tags (no setup keyword), these rules work fine as well (check the file res/example/ok_2.vue in the repro example).
This is the raw output:
/vue-eslint-parser-script-repro/res/example/not_ok.vue
8:1 error Import "#imports" should be in the "NPM" group eliottvincent/import-group-comment
9:1 error Import "vue-i18n" should be in the "NPM" group eliottvincent/import-group-comment
30:5 error Missing JSDoc comment jsdoc/require-jsdoc
✖ 3 problems (3 errors, 0 warnings)
1 error and 0 warnings potentially fixable with the `--fix` option.
Checklist
Tell us about your environment
Please show your full configuration:
What did you do?
What did you expect to happen? I have two rules:
eliottvincent/import-group-comment
: it ensuresimport
statements are preceded by a comment stating their typejsdoc/require-jsdoc
: it enforces JSDoc comments on functions and classesI expect both these rules to work in Vue SFC files.
What actually happened?
When a Vue SFC file contains two
script
tags, one withsetup
keyword (to make use of Vue Composition API) and a regular one, both of these rules will fail (check the fileres/example/not_ok.vue
in the repro example).When a Vue SFC file contains only one
script
tag, these rules work fine (check the fileres/example/ok_1.vue
in the repro example).When a Vue SFC file contains two regular
script
tags (nosetup
keyword), these rules work fine as well (check the fileres/example/ok_2.vue
in the repro example).This is the raw output:
Repository to reproduce this issue
https://github.com/eliottvincent/vue-eslint-parser-script-repro
I suspect the culprit is the
getCommentsBefore
method which returns an empty array when both rule fails.