Merge pull request #2973 from karl/jsx-collapse-multiple-jsx-whitespaces

Collapse multiple JSX whitespaces
master
Alex Rattray 2017-10-03 23:31:16 -07:00 committed by GitHub
commit a7223d8262
3 changed files with 34 additions and 1 deletions

View File

@ -4148,11 +4148,16 @@ function printJSXElement(path, options, print) {
children[i] === jsxWhitespace &&
children[i + 1] === "" &&
(children[i + 2] === softline || children[i + 2] === hardline);
const isDoubleJSXWhitespace =
children[i] === jsxWhitespace &&
children[i + 1] === "" &&
children[i + 2] === jsxWhitespace;
if (
(isPairOfHardlines && containsText) ||
isPairOfEmptyStrings ||
isLineFollowedByJSXWhitespace
isLineFollowedByJSXWhitespace ||
isDoubleJSXWhitespace
) {
children.splice(i, 2);
} else if (isJSXWhitespaceFollowedByLine) {

View File

@ -298,7 +298,16 @@ x =
</div>
</div>
x =
<div>
{" "} <div>text</div>
</div>
// NOTE: Multiple JSX whitespaces are collapsed into a single space.
x =
<div>
{" "}{" "}{" "}
</div>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Wrapping text
x = (
@ -679,4 +688,14 @@ x = (
</div>
);
x = (
<div>
{" "}
<div>text</div>
</div>
);
// NOTE: Multiple JSX whitespaces are collapsed into a single space.
x = <div> </div>;
`;

View File

@ -295,4 +295,13 @@ x =
</div>
</div>
x =
<div>
{" "} <div>text</div>
</div>
// NOTE: Multiple JSX whitespaces are collapsed into a single space.
x =
<div>
{" "}{" "}{" "}
</div>