diff --git a/changelog_unreleased/markdown/11373.md b/changelog_unreleased/markdown/11373.md new file mode 100644 index 000000000000..8eb18b15ed75 --- /dev/null +++ b/changelog_unreleased/markdown/11373.md @@ -0,0 +1,15 @@ +#### Preserve inline code line breaks if `--prose-wrap=preserve` (#11373 by @andersk) + + +```markdown + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod `tempor +incididunt` ut labore et dolore magna aliqua. + + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod `tempor incididunt` ut labore et dolore magna aliqua. + + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod `tempor +incididunt` ut labore et dolore magna aliqua. +``` diff --git a/src/language-markdown/print-preprocess.js b/src/language-markdown/print-preprocess.js index fa1b04335ec1..96cf53694a4d 100644 --- a/src/language-markdown/print-preprocess.js +++ b/src/language-markdown/print-preprocess.js @@ -9,7 +9,7 @@ const isSingleCharRegex = /^.$/su; function preprocess(ast, options) { ast = restoreUnescapedCharacter(ast, options); ast = mergeContinuousTexts(ast); - ast = transformInlineCode(ast); + ast = transformInlineCode(ast, options); ast = transformIndentedCodeblockAndMarkItsParentList(ast, options); ast = markAlignedList(ast, options); ast = splitTextIntoSentences(ast, options); @@ -28,9 +28,9 @@ function transformImportExport(ast) { }); } -function transformInlineCode(ast) { +function transformInlineCode(ast, options) { return mapAst(ast, (node) => { - if (node.type !== "inlineCode") { + if (node.type !== "inlineCode" || options.proseWrap === "preserve") { return node; } diff --git a/tests/format/markdown/prose-wrap-preserve/__snapshots__/jsfmt.spec.js.snap b/tests/format/markdown/prose-wrap-preserve/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000000..3e177ccb63b7 --- /dev/null +++ b/tests/format/markdown/prose-wrap-preserve/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,26 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`inline-code-newline.md - {"proseWrap":"preserve"} format 1`] = ` +====================================options===================================== +parsers: ["markdown"] +printWidth: 80 +proseWrap: "preserve" + | printWidth +=====================================input====================================== +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \`tempor +incididunt\` ut labore et dolore magna aliqua. Ut enim ad minim veniam, \`quis +nostrud\` exercitation ullamco laboris nisi ut aliquip ex ea commodo \`consequat. +Duis\` aute irure dolor in reprehenderit in voluptate velit esse cillum dolore \`eu +fugiat\` nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in +culpa qui officia deserunt mollit anim id est laborum. + +=====================================output===================================== +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \`tempor +incididunt\` ut labore et dolore magna aliqua. Ut enim ad minim veniam, \`quis +nostrud\` exercitation ullamco laboris nisi ut aliquip ex ea commodo \`consequat. +Duis\` aute irure dolor in reprehenderit in voluptate velit esse cillum dolore \`eu +fugiat\` nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in +culpa qui officia deserunt mollit anim id est laborum. + +================================================================================ +`; diff --git a/tests/format/markdown/prose-wrap-preserve/inline-code-newline.md b/tests/format/markdown/prose-wrap-preserve/inline-code-newline.md new file mode 100644 index 000000000000..c2b9f6b8cf82 --- /dev/null +++ b/tests/format/markdown/prose-wrap-preserve/inline-code-newline.md @@ -0,0 +1,6 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod `tempor +incididunt` ut labore et dolore magna aliqua. Ut enim ad minim veniam, `quis +nostrud` exercitation ullamco laboris nisi ut aliquip ex ea commodo `consequat. +Duis` aute irure dolor in reprehenderit in voluptate velit esse cillum dolore `eu +fugiat` nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in +culpa qui officia deserunt mollit anim id est laborum. diff --git a/tests/format/markdown/prose-wrap-preserve/jsfmt.spec.js b/tests/format/markdown/prose-wrap-preserve/jsfmt.spec.js new file mode 100644 index 000000000000..9080881c6d92 --- /dev/null +++ b/tests/format/markdown/prose-wrap-preserve/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["markdown"], { proseWrap: "preserve" });