Skip to content

Commit 15cb179

Browse files
authored
Add reportUnusedDisableDirectives option to svelte/comment-directive rule (#171)
1 parent f7a8d48 commit 15cb179

File tree

3 files changed

+246
-173
lines changed

3 files changed

+246
-173
lines changed

docs/rules/comment-directive.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,41 @@ The `eslint-disable`-like comments can include descriptions to explain why the c
6464

6565
## :wrench: Options
6666

67-
Nothing.
67+
```json
68+
{
69+
"svelte/comment-directive": [
70+
"error",
71+
{
72+
"reportUnusedDisableDirectives": false
73+
}
74+
]
75+
}
76+
```
77+
78+
- `reportUnusedDisableDirectives` ... If `true`, to report unused `eslint-disable` HTML comments. default `false`
79+
80+
### `{ "reportUnusedDisableDirectives": true }`
81+
82+
<ESLintCodeBlock>
83+
84+
<!--eslint-skip-->
85+
86+
```svelte
87+
<script>
88+
/* eslint svelte/comment-directive: ["error", { "reportUnusedDisableDirectives": true }], no-undef: "error" */
89+
import DefinedComponent from "./DefinedComponent.svelte"
90+
</script>
91+
92+
<!-- ✓ GOOD -->
93+
<!-- eslint-disable-next-line no-undef -->
94+
<UndefComponent />
95+
96+
<!-- ✗ BAD -->
97+
<!-- eslint-disable-next-line no-undef -->
98+
<DefinedComponent />
99+
```
100+
101+
</ESLintCodeBlock>
68102

69103
## :books: Further Reading
70104

src/rules/comment-directive.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,14 @@ export default createRule("comment-directive", {
4444
additionalProperties: false,
4545
},
4646
],
47-
messages: {},
47+
messages: {
48+
unused: "Unused {{kind}} directive (no problems were reported).",
49+
unusedRule:
50+
"Unused {{kind}} directive (no problems were reported from '{{rule}}').",
51+
unusedEnable: "Unused {{kind}} directive (reporting is not suppressed).",
52+
unusedEnableRule:
53+
"Unused {{kind}} directive (reporting from '{{rule}}' is not suppressed).",
54+
},
4855
type: "problem",
4956
},
5057
create(context) {
@@ -121,7 +128,7 @@ export default createRule("comment-directive", {
121128
data: { rule: rule.ruleId, kind: parsed.type },
122129
})
123130
}
124-
directives.disableBlock(comment.loc.start, rule.ruleId, {
131+
directives.disableBlock(comment.loc.end, rule.ruleId, {
125132
loc: rule.loc.start,
126133
})
127134
}
@@ -133,7 +140,7 @@ export default createRule("comment-directive", {
133140
data: { kind: parsed.type },
134141
})
135142
}
136-
directives.disableBlock(comment.loc.start, ALL_RULES, {
143+
directives.disableBlock(comment.loc.end, ALL_RULES, {
137144
loc: comment.loc.start,
138145
})
139146
}
@@ -143,7 +150,7 @@ export default createRule("comment-directive", {
143150
if (reportUnusedDisableDirectives) {
144151
context.report({
145152
loc: rule.loc,
146-
messageId: "unusedRule",
153+
messageId: "unusedEnableRule",
147154
data: { rule: rule.ruleId, kind: parsed.type },
148155
})
149156
}
@@ -155,7 +162,7 @@ export default createRule("comment-directive", {
155162
if (reportUnusedDisableDirectives) {
156163
context.report({
157164
loc: comment.loc,
158-
messageId: "unused",
165+
messageId: "unusedEnable",
159166
data: { kind: parsed.type },
160167
})
161168
}

0 commit comments

Comments
 (0)