From 1549936e6879d2cf4bad0e266054a910159a3b46 Mon Sep 17 00:00:00 2001 From: Benjamin Tan Date: Wed, 11 Jan 2017 21:56:10 +0800 Subject: [PATCH] Break long `exports` into multiple lines. Ref #19. --- src/printer.js | 22 ++++++++++++++++--- .../__snapshots__/jsfmt.spec.js.snap | 14 ++++++++++++ .../__snapshots__/jsfmt.spec.js.snap | 14 ++++++++++++ .../prettier/__snapshots__/jsfmt.spec.js.snap | 13 +++++++++++ tests/prettier/exports.js | 1 + 5 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 tests/prettier/exports.js diff --git a/src/printer.js b/src/printer.js index 3e338908..d2372cce 100644 --- a/src/printer.js +++ b/src/printer.js @@ -1866,9 +1866,25 @@ function printExportDeclaration(path, options, print) { } else { parts.push( decl.exportKind === "type" ? "type " : "", - shouldPrintSpaces ? "{ " : "{", - join(", ", path.map(print, "specifiers")), - shouldPrintSpaces ? " }" : "}" + conditionalGroup([ + concat([ + shouldPrintSpaces ? "{ " : "{", + join(", ", path.map(print, "specifiers")), + shouldPrintSpaces ? " }" : "}" + ]), + concat([ + "{", + indent( + options.tabWidth, + concat([ + hardline, + join(concat([",", hardline]), path.map(print, "specifiers")) + ]) + ), + hardline, + "}" + ]) + ]) ); } diff --git a/tests/declare_export/__snapshots__/jsfmt.spec.js.snap b/tests/declare_export/__snapshots__/jsfmt.spec.js.snap index aa2d614d..e524afbc 100644 --- a/tests/declare_export/__snapshots__/jsfmt.spec.js.snap +++ b/tests/declare_export/__snapshots__/jsfmt.spec.js.snap @@ -352,8 +352,15 @@ declare export { * @flow */ +<<<<<<< bbe2524dab164d43febc1a8d549a76e26eb9d483 declare export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\"; " +======= +declare export { + numberValue1, + numberValue2 as numberValue2_renamed +} from \"ES6_ExportFrom_Source1\";" +>>>>>>> Break long `exports` into multiple lines. `; exports[`test ES6_ExportFrom_Intermediary2.js 1`] = ` @@ -372,8 +379,15 @@ declare export { * @flow */ +<<<<<<< bbe2524dab164d43febc1a8d549a76e26eb9d483 declare export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\"; " +======= +declare export { + numberValue1, + numberValue2 as numberValue2_renamed2 +} from \"ES6_ExportFrom_Source2\";" +>>>>>>> Break long `exports` into multiple lines. `; exports[`test ES6_ExportFrom_Source1.js 1`] = ` diff --git a/tests/es6modules/__snapshots__/jsfmt.spec.js.snap b/tests/es6modules/__snapshots__/jsfmt.spec.js.snap index 2bc7d5b3..a9449b82 100644 --- a/tests/es6modules/__snapshots__/jsfmt.spec.js.snap +++ b/tests/es6modules/__snapshots__/jsfmt.spec.js.snap @@ -429,8 +429,15 @@ export { * @flow */ +<<<<<<< bbe2524dab164d43febc1a8d549a76e26eb9d483 export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\"; " +======= +export { + numberValue1, + numberValue2 as numberValue2_renamed +} from \"ES6_ExportFrom_Source1\";" +>>>>>>> Break long `exports` into multiple lines. `; exports[`test ES6_ExportFrom_Intermediary2.js 1`] = ` @@ -449,8 +456,15 @@ export { * @flow */ +<<<<<<< bbe2524dab164d43febc1a8d549a76e26eb9d483 export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\"; " +======= +export { + numberValue1, + numberValue2 as numberValue2_renamed2 +} from \"ES6_ExportFrom_Source2\";" +>>>>>>> Break long `exports` into multiple lines. `; exports[`test ES6_ExportFrom_Source1.js 1`] = ` diff --git a/tests/prettier/__snapshots__/jsfmt.spec.js.snap b/tests/prettier/__snapshots__/jsfmt.spec.js.snap index 8fb274d1..1bcf18dc 100644 --- a/tests/prettier/__snapshots__/jsfmt.spec.js.snap +++ b/tests/prettier/__snapshots__/jsfmt.spec.js.snap @@ -1,3 +1,4 @@ +<<<<<<< bbe2524dab164d43febc1a8d549a76e26eb9d483 exports[`test directives.js 1`] = ` "\"use strict\"; @@ -11,6 +12,18 @@ function fn() { \"use strict\"; } " +======= +exports[`test exports.js 1`] = ` +"export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from \"exports\"; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +export { + value1, + value2 as value2_renamed, + value3, + value4 as value4_renamed, + value5 +} from \"exports\";" +>>>>>>> Break long `exports` into multiple lines. `; exports[`test optional-type-name.js 1`] = ` diff --git a/tests/prettier/exports.js b/tests/prettier/exports.js new file mode 100644 index 00000000..e3699c9f --- /dev/null +++ b/tests/prettier/exports.js @@ -0,0 +1 @@ +export { value1, value2 as value2_renamed, value3, value4 as value4_renamed, value5 } from "exports";