From 829616dd6cf57969e685efd5d2c38bc3f7b81c8d Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Wed, 6 Dec 2017 05:01:00 +1100 Subject: [PATCH] Fix multiparser trailing comma regression (#3405) * Fix multiparser trailing comma regression * Refactor trailing comma application --- src/multiparser.js | 7 ++--- .../__snapshots__/jsfmt.spec.js.snap | 30 +++++++++++++++++++ tests/multiparser_markdown_js/jsfmt.spec.js | 1 + .../multiparser_markdown_js/trailing-comma.md | 12 ++++++++ 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 tests/multiparser_markdown_js/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/multiparser_markdown_js/jsfmt.spec.js create mode 100644 tests/multiparser_markdown_js/trailing-comma.md diff --git a/src/multiparser.js b/src/multiparser.js index 70a770cb..7476186a 100644 --- a/src/multiparser.js +++ b/src/multiparser.js @@ -26,12 +26,11 @@ function printSubtree(path, print, options) { function parseAndPrint(text, partialNextOptions, parentOptions) { const nextOptions = Object.assign({}, parentOptions, partialNextOptions, { parentParser: parentOptions.parser, - trailingComma: - partialNextOptions.parser === "json" - ? "none" - : partialNextOptions.trailingComma, originalText: text }); + if (nextOptions.parser === "json") { + nextOptions.trailingComma = "none"; + } const ast = require("./parser").parse(text, nextOptions); const astComments = ast.comments; delete ast.comments; diff --git a/tests/multiparser_markdown_js/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_markdown_js/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 00000000..4c94e48e --- /dev/null +++ b/tests/multiparser_markdown_js/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,30 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`trailing-comma.md 1`] = ` +### Some heading + +\`\`\`js +someFunctionCall( + foo, + bar, + foobar, + sometehingReallyLongAndHairy, + somethingElse, + breakNow, +); +\`\`\` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +### Some heading + +\`\`\`js +someFunctionCall( + foo, + bar, + foobar, + sometehingReallyLongAndHairy, + somethingElse, + breakNow, +); +\`\`\` + +`; diff --git a/tests/multiparser_markdown_js/jsfmt.spec.js b/tests/multiparser_markdown_js/jsfmt.spec.js new file mode 100644 index 00000000..6fafe58e --- /dev/null +++ b/tests/multiparser_markdown_js/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["markdown"], { trailingComma: "all" }); diff --git a/tests/multiparser_markdown_js/trailing-comma.md b/tests/multiparser_markdown_js/trailing-comma.md new file mode 100644 index 00000000..8ea8ca7a --- /dev/null +++ b/tests/multiparser_markdown_js/trailing-comma.md @@ -0,0 +1,12 @@ +### Some heading + +```js +someFunctionCall( + foo, + bar, + foobar, + sometehingReallyLongAndHairy, + somethingElse, + breakNow, +); +```