Collapse multiple JSX whitespaces

master
Karl O'Keeffe 2017-10-03 20:51:18 +01:00
parent a6096ee799
commit e9b82074a6
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>