Skip to content

Commit 9714749

Browse files
authored
fix: ignore indent for inline style tags (#415)
1 parent fe306ed commit 9714749

File tree

3 files changed

+34
-16
lines changed

3 files changed

+34
-16
lines changed

.changeset/gorgeous-buckets-train.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-svelte": patch
3+
---
4+
5+
fix: ignore indent for inline style tags in `svelte/indent` rule

src/rules/indent-helpers/svelte.ts

+21-16
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,28 @@ export function defineVisitor(context: IndentContext): NodeListener {
3434
node.children.forEach((n) => offsets.ignore(n))
3535
},
3636
SvelteElement(node: AST.SvelteElement) {
37-
if (
38-
(node.name.type !== "Identifier" && node.name.type !== "SvelteName") ||
39-
!PREFORMATTED_ELEMENT_NAMES.includes(node.name.name)
40-
) {
41-
if (node.endTag) {
42-
offsets.setOffsetElementList(
43-
node.children.filter(isNotEmptyTextNode),
44-
node.startTag,
45-
node.endTag,
46-
1,
47-
)
37+
if (node.name.type === "Identifier" || node.name.type === "SvelteName") {
38+
if (PREFORMATTED_ELEMENT_NAMES.includes(node.name.name)) {
39+
const startTagToken = sourceCode.getFirstToken(node)
40+
const endTagToken =
41+
node.endTag && sourceCode.getFirstToken(node.endTag)
42+
offsets.setOffsetToken(endTagToken, 0, startTagToken)
43+
node.children.forEach((n) => offsets.ignore(n))
44+
return
4845
}
49-
} else {
50-
const startTagToken = sourceCode.getFirstToken(node)
51-
const endTagToken = node.endTag && sourceCode.getFirstToken(node.endTag)
52-
offsets.setOffsetToken(endTagToken, 0, startTagToken)
53-
node.children.forEach((n) => offsets.ignore(n))
46+
if (node.name.name === "style") {
47+
// Inline style tag
48+
node.children.forEach((n) => offsets.ignore(n))
49+
return
50+
}
51+
}
52+
if (node.endTag) {
53+
offsets.setOffsetElementList(
54+
node.children.filter(isNotEmptyTextNode),
55+
node.startTag,
56+
node.endTag,
57+
1,
58+
)
5459
}
5560
},
5661
// ----------------------------------------------------------------------
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<svg>
2+
<style>
3+
/* prettier-ignore */
4+
.test {
5+
fill: red;
6+
}
7+
</style>
8+
</svg>

0 commit comments

Comments
 (0)