diff --git a/src/printer.js b/src/printer.js index d39bbc2c..ed98b218 100644 --- a/src/printer.js +++ b/src/printer.js @@ -2482,6 +2482,7 @@ function printJSXChildren(path, options, print, jsxWhitespace) { const beginSpace = /^\s+/.test(line); if (beginSpace) { children.push(jsxWhitespace); + children.push(softline); } const stripped = line.replace(/^\s+|\s+$/g, ""); @@ -2491,6 +2492,7 @@ function printJSXChildren(path, options, print, jsxWhitespace) { const endSpace = /\s+$/.test(line); if (endSpace) { + children.push(softline); children.push(jsxWhitespace); } }); diff --git a/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap b/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap index 095e3106..10ec614a 100644 --- a/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap +++ b/tests/jsx-significant-space/__snapshots__/jsfmt.spec.js.snap @@ -65,6 +65,16 @@ similar_2 = similar_3 = ; + +regression_not_broken_end = +
+ long text long text long text long text long text long text long text long text url long text long text +
+ +regression_not_broken_begin = +
+
long text long text long text long text long text long text long text long texturl long text long text +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ after = ( @@ -81,7 +91,8 @@ before = ( before_break1 = ( - {\\" \\"}foo + {\\" \\"} + foo ); @@ -90,13 +101,15 @@ before_break2 = ( - {\\" \\"}foo + {\\" \\"} + foo ); after_break = ( - foo{\\" \\"} + foo + {\\" \\"} ); @@ -162,5 +175,26 @@ similar_3 = ( ); + +regression_not_broken_end = ( +
+ long text long text long text long text long text long text long text long text + {\\" \\"} + url + {\\" \\"} + long text long text +
+); + +regression_not_broken_begin = ( +
+
+ {\\" \\"} + long text long text long text long text long text long text long text long text + url + {\\" \\"} + long text long text +
+); " `; diff --git a/tests/jsx-significant-space/test.js b/tests/jsx-significant-space/test.js index 31354e0c..6f25e76b 100644 --- a/tests/jsx-significant-space/test.js +++ b/tests/jsx-significant-space/test.js @@ -62,3 +62,13 @@ similar_2 = similar_3 = ; + +not_broken_end = +
+ long text long text long text long text long text long text long text long text url long text long text +
+ +not_broken_begin = +
+
long text long text long text long text long text long text long text long texturl long text long text +