Skip to content

Commit d4f9a16

Browse files
authored
Update: add support for JSXFragments in indent rule (fixes #12208) (#12210)
1 parent c6af95f commit d4f9a16

File tree

2 files changed

+426
-0
lines changed

2 files changed

+426
-0
lines changed

lib/rules/indent.js

+28
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ const KNOWN_NODES = new Set([
8181
"WhileStatement",
8282
"WithStatement",
8383
"YieldExpression",
84+
"JSXFragment",
85+
"JSXOpeningFragment",
86+
"JSXClosingFragment",
8487
"JSXIdentifier",
8588
"JSXNamespacedName",
8689
"JSXMemberExpression",
@@ -1453,6 +1456,31 @@ module.exports = {
14531456
offsets.setDesiredOffsets(node.name.range, firstToken, 1);
14541457
},
14551458

1459+
JSXFragment(node) {
1460+
const firstOpeningToken = sourceCode.getFirstToken(node.openingFragment);
1461+
const firstClosingToken = sourceCode.getFirstToken(node.closingFragment);
1462+
1463+
addElementListIndent(node.children, firstOpeningToken, firstClosingToken, 1);
1464+
},
1465+
1466+
JSXOpeningFragment(node) {
1467+
const firstToken = sourceCode.getFirstToken(node);
1468+
const closingToken = sourceCode.getLastToken(node);
1469+
1470+
offsets.setDesiredOffsets(node.range, firstToken, 1);
1471+
offsets.matchOffsetOf(firstToken, closingToken);
1472+
},
1473+
1474+
JSXClosingFragment(node) {
1475+
const firstToken = sourceCode.getFirstToken(node);
1476+
const slashToken = sourceCode.getLastToken(node, { skip: 1 });
1477+
const closingToken = sourceCode.getLastToken(node);
1478+
const tokenToMatch = astUtils.isTokenOnSameLine(slashToken, closingToken) ? slashToken : closingToken;
1479+
1480+
offsets.setDesiredOffsets(node.range, firstToken, 1);
1481+
offsets.matchOffsetOf(firstToken, tokenToMatch);
1482+
},
1483+
14561484
JSXExpressionContainer(node) {
14571485
const openingCurly = sourceCode.getFirstToken(node);
14581486
const closingCurly = sourceCode.getLastToken(node);

0 commit comments

Comments
 (0)