From f1874c7955644705c9cd0dcf15298cd7d7b963af Mon Sep 17 00:00:00 2001 From: Dunqing Date: Tue, 21 Nov 2023 18:50:26 +0800 Subject: [PATCH] feat(prettier): should be newline if break in AssigmentExpression (#1484) --- crates/oxc_prettier/src/format/mod.rs | 7 +++---- crates/oxc_prettier/src/printer/mod.rs | 2 +- tasks/prettier_conformance/prettier.snap.md | 6 +----- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/crates/oxc_prettier/src/format/mod.rs b/crates/oxc_prettier/src/format/mod.rs index 2ee26bbe2..3be496e69 100644 --- a/crates/oxc_prettier/src/format/mod.rs +++ b/crates/oxc_prettier/src/format/mod.rs @@ -30,7 +30,7 @@ use oxc_span::{GetSpan, Span}; use crate::{ array, doc::{Doc, Group, Separator}, - format, group, hardline, indent, line, softline, ss, string, wrap, Prettier, + format, group, hardline, indent, indent_if_break, line, softline, ss, string, wrap, Prettier, }; use self::{ @@ -1557,13 +1557,12 @@ impl<'a> Format<'a> for ConditionalExpression<'a> { impl<'a> Format<'a> for AssignmentExpression<'a> { fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> { wrap!(p, self, AssignmentExpression, { - array![ + group![ p, format!(p, self.left), ss!(" "), string!(p, self.operator.as_str()), - ss!(" "), - format!(p, self.right) + indent_if_break!(p, line!(), format!(p, self.right)) ] }) } diff --git a/crates/oxc_prettier/src/printer/mod.rs b/crates/oxc_prettier/src/printer/mod.rs index cf34c8824..6e212109f 100644 --- a/crates/oxc_prettier/src/printer/mod.rs +++ b/crates/oxc_prettier/src/printer/mod.rs @@ -126,7 +126,7 @@ impl<'a> Printer<'a> { } Mode::Break => { self.cmds.extend(docs.into_iter().rev().map(|doc| { - Command::new(Indent { length: indent.length + 1 }, Mode::Flat, doc) + Command::new(Indent { length: indent.length + 1 }, Mode::Break, doc) })); } } diff --git a/tasks/prettier_conformance/prettier.snap.md b/tasks/prettier_conformance/prettier.snap.md index 2be724717..1616584ce 100644 --- a/tasks/prettier_conformance/prettier.snap.md +++ b/tasks/prettier_conformance/prettier.snap.md @@ -1,4 +1,4 @@ -Compatibility: 134/601 (22.30%) +Compatibility: 138/601 (22.96%) # Failed @@ -61,10 +61,8 @@ Compatibility: 134/601 (22.30%) * assignment/destructuring.js * assignment/discussion-15196.js * assignment/issue-10218.js -* assignment/issue-1419.js * assignment/issue-15534.js * assignment/issue-1966.js -* assignment/issue-2482-1.js * assignment/issue-2482-2.js * assignment/issue-2540.js * assignment/issue-3819.js @@ -73,7 +71,6 @@ Compatibility: 134/601 (22.30%) * assignment/issue-6922.js * assignment/issue-7091.js * assignment/issue-7572.js -* assignment/issue-7961.js * assignment/issue-8218.js * assignment/lone-arg.js * assignment/sequence.js @@ -664,7 +661,6 @@ Compatibility: 134/601 (22.30%) ### variable_declarator * variable_declarator/multiple.js -* variable_declarator/string.js ### while * while/indent.js