diff --git a/src/rules/__snapshots__/brackets-same-line.test.ts.snap b/src/rules/__snapshots__/brackets-same-line.test.ts.snap
index 02f31b8..2d4aea1 100644
--- a/src/rules/__snapshots__/brackets-same-line.test.ts.snap
+++ b/src/rules/__snapshots__/brackets-same-line.test.ts.snap
@@ -28,3 +28,6 @@ exports[`brackets-same-line > invalid >
invalid >
1`] = `"
"`;
+
+exports[`brackets-same-line > invalid >
Text
1`] = `"
Text
"`;
diff --git a/src/rules/brackets-same-line.test.ts b/src/rules/brackets-same-line.test.ts
index d1c27a9..637a65b 100644
--- a/src/rules/brackets-same-line.test.ts
+++ b/src/rules/brackets-same-line.test.ts
@@ -35,6 +35,9 @@ const invalids = [
>
Text
`,
+ `Text
`,
+
``,
]
diff --git a/src/rules/brackets-same-line.ts b/src/rules/brackets-same-line.ts
index 15a982b..f9b966b 100644
--- a/src/rules/brackets-same-line.ts
+++ b/src/rules/brackets-same-line.ts
@@ -46,6 +46,28 @@ export default createEslintRule({
},
})
}
+
+ if (!node.endTag)
+ return
+
+ const endBracketOrphaned = node.endTag.loc.start.line !== node.endTag.loc.end.line
+ if (endBracketOrphaned) {
+ context.report({
+ // @ts-expect-error - type conversion from SvelteAttribute to node not handled
+ node: node.endTag,
+ loc: {
+ start: node.endTag.loc.start,
+ end: node.endTag.loc.end,
+ },
+ messageId: 'bracketOnNextLine',
+ *fix(fixer) {
+ const from = node.endTag!.range[0]
+ const to = node.endTag!.range[1]
+ const code = context.getSourceCode().text.slice(from, to)
+ yield fixer.replaceTextRange([from, to], code.replace(/\s+/g, ''))
+ },
+ })
+ }
},
}
},