Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite94a3be

Browse files
authored
feat(no-unused-class-name): support regex forallowedClassNames option (#1257)
1 parent30ba201 commite94a3be

File tree

8 files changed

+23
-4
lines changed

8 files changed

+23
-4
lines changed

‎.changeset/forty-signs-smoke.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'eslint-plugin-svelte':minor
3+
---
4+
5+
feat(no-unused-class-name): support regex for`allowedClassNames` option

‎docs/rules/no-unused-class-name.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ This rule is aimed at reducing unused classes in the HTML template. While `svelt
5353
"svelte/no-unused-class-name": [
5454
"error",
5555
{
56-
"allowedClassNames": ["class-name-one","class-name-two"]
56+
"allowedClassNames": ["class-name-one","class-name-two","/^regex-.*$/"]// You can also use regex to match class names
5757
}
5858
]
5959
}

‎packages/eslint-plugin-svelte/src/rules/no-unused-class-name.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { AnyNode } from 'postcss';
44
importtype{NodeasSelectorNode}from'postcss-selector-parser';
55
import{findClassesInAttribute}from'../utils/ast-utils.js';
66
importtype{SourceCode}from'../types.js';
7+
import{toRegExp}from'../utils/regexp.js';
78

89
exportdefaultcreateRule('no-unused-class-name',{
910
meta:{
@@ -57,7 +58,12 @@ export default createRule('no-unused-class-name', {
5758
?findClassesInPostCSSNode(styleContext.sourceAst,sourceCode.parserServices)
5859
:[];
5960
for(constclassNameinclassesUsedInTemplate){
60-
if(!allowedClassNames.includes(className)&&!classesUsedInStyle.includes(className)){
61+
if(
62+
!allowedClassNames.some((allowedClassName:string)=>
63+
toRegExp(allowedClassName).test(className)
64+
)&&
65+
!classesUsedInStyle.includes(className)
66+
){
6167
context.report({
6268
loc:classesUsedInTemplate[className],
6369
message:`Unused class "${className}".`
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"options": [{"allowedClassNames": ["div-class"] }]
2+
"options": [{"allowedClassNames": ["div-class","/^p-\\d{1,2}$/"] }]
33
}

‎packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/allowed-class-names/partially-allowed-class-name01-errors.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22
line:3
33
column:1
44
suggestions:null
5+
-message:Unused class "p-100".
6+
line:5
7+
column:1
8+
suggestions:null
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
<divclass="div-class">Hello</div>
22

33
<spanclass="span-class">World!</span>
4+
5+
<spanclass="p-100">Regex!</span>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"options": [{"allowedClassNames": ["div-class","span-class"] }]
2+
"options": [{"allowedClassNames": ["div-class","span-class","/^p-\\d{1,2}$/"] }]
33
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
<divclass="div-class">Hello</div>
22

33
<spanclass="span-class">World!</span>
4+
5+
<spanclass="p-2">Regex!</span>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp