diff --git a/src/language-js/parse/postprocess/index.js b/src/language-js/parse/postprocess/index.js index 93b6163be..14e62aca9 100644 --- a/src/language-js/parse/postprocess/index.js +++ b/src/language-js/parse/postprocess/index.js @@ -105,15 +105,6 @@ function postprocess(ast, options) { } break; - case "SequenceExpression": { - // Babel (unlike other parsers) includes spaces and comments in the range. Let's unify this. - const lastExpression = node.expressions.at(-1); - node.range = [ - locStart(node), - Math.min(locEnd(lastExpression), locEnd(node)), - ]; - break; - } // For hack-style pipeline case "TopicReference": options.__isUsingHackPipeline = true; diff --git a/tests/config/format-test.js b/tests/config/format-test.js index 51c51d695..08b644b8a 100644 --- a/tests/config/format-test.js +++ b/tests/config/format-test.js @@ -37,6 +37,7 @@ const unstableTests = new Map( "typescript/prettier-ignore/mapped-types.ts", "js/comments/html-like/comment.js", "js/for/continue-and-break-comment-without-blocks.js", + "js/sequence-expression/parenthesized.js", "typescript/satisfies-operators/comments-unstable.ts", ].map((fixture) => { const [file, isUnstable = () => true] = Array.isArray(fixture) diff --git a/tests/format/js/sequence-expression/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/sequence-expression/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000..1d5f22c6c --- /dev/null +++ b/tests/format/js/sequence-expression/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,97 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`export-default.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +export default (1, +2); + +=====================================output===================================== +export default (1, 2); + +================================================================================ +`; + +exports[`ignore.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== ++ + // prettier-ignore + ( + ( + first + ) + , + ( + last + ) + ) +; + +=====================================output===================================== ++( + // prettier-ignore + ( + first + ) + , + ( + last + ) +); + +================================================================================ +`; + +exports[`parenthesized.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +console.log( + /* 1 */ + ( + /* 2 */ + ( + /* 3 */ + first + /* 4 */ + ) + /* 5 */ + , + /* 6 */ + ( + /* 7 */ + last + /* 8 */ + ) + /* 9 */ + ) + /* 10 */ +); + +=====================================output===================================== +console.log( + /* 1 */ + /* 2 */ + (/* 3 */ + first, + /* 4 */ + /* 5 */ + /* 6 */ + /* 7 */ + last), + /* 8 */ + /* 9 */ + /* 10 */ +); + +================================================================================ +`; diff --git a/tests/format/js/sequence-parentheses/export-default.js b/tests/format/js/sequence-expression/export-default.js similarity index 100% rename from tests/format/js/sequence-parentheses/export-default.js rename to tests/format/js/sequence-expression/export-default.js diff --git a/tests/format/js/sequence-expression/ignore.js b/tests/format/js/sequence-expression/ignore.js new file mode 100644 index 000000000..585b2e526 --- /dev/null +++ b/tests/format/js/sequence-expression/ignore.js @@ -0,0 +1,12 @@ ++ + // prettier-ignore + ( + ( + first + ) + , + ( + last + ) + ) +; diff --git a/tests/format/js/sequence-parentheses/jsfmt.spec.js b/tests/format/js/sequence-expression/jsfmt.spec.js similarity index 100% rename from tests/format/js/sequence-parentheses/jsfmt.spec.js rename to tests/format/js/sequence-expression/jsfmt.spec.js diff --git a/tests/format/js/sequence-expression/parenthesized.js b/tests/format/js/sequence-expression/parenthesized.js new file mode 100644 index 000000000..5fc2a7032 --- /dev/null +++ b/tests/format/js/sequence-expression/parenthesized.js @@ -0,0 +1,21 @@ +console.log( + /* 1 */ + ( + /* 2 */ + ( + /* 3 */ + first + /* 4 */ + ) + /* 5 */ + , + /* 6 */ + ( + /* 7 */ + last + /* 8 */ + ) + /* 9 */ + ) + /* 10 */ +); diff --git a/tests/format/js/sequence-parentheses/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/sequence-parentheses/__snapshots__/jsfmt.spec.js.snap deleted file mode 100644 index b42c3bcb1..000000000 --- a/tests/format/js/sequence-parentheses/__snapshots__/jsfmt.spec.js.snap +++ /dev/null @@ -1,16 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`export-default.js format 1`] = ` -====================================options===================================== -parsers: ["babel", "flow", "typescript"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default (1, -2); - -=====================================output===================================== -export default (1, 2); - -================================================================================ -`;