From 502d61dc9fb9bc72edbb56be848e92d4ad17a506 Mon Sep 17 00:00:00 2001 From: Cameron Date: Sat, 2 Dec 2023 07:44:25 +0000 Subject: [PATCH] fix(prettier) fix use chain formatting (#1605) --- crates/oxc_prettier/src/format/assignment.rs | 21 ++++++++++---------- crates/oxc_prettier/src/lib.rs | 1 + tasks/prettier_conformance/prettier.snap.md | 3 +-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/crates/oxc_prettier/src/format/assignment.rs b/crates/oxc_prettier/src/format/assignment.rs index fe938878a..850f5bbec 100644 --- a/crates/oxc_prettier/src/format/assignment.rs +++ b/crates/oxc_prettier/src/format/assignment.rs @@ -146,16 +146,17 @@ fn choose_layout<'a>( let is_tail = !is_assignment(right_expr); - let should_use_chain_formatting = matches!(p.parent_kind(), AstKind::AssignmentExpression(_)) - && matches!( - p.parent_parent_kind(), - Some(AstKind::AssignmentExpression(_) | AstKind::VariableDeclarator(_)) - ) - && (!is_tail - || !matches!( - p.nth_parent_kind(3), - Some(AstKind::ExpressionStatement(_) | AstKind::VariableDeclaration(_)) - )); + let should_use_chain_formatting = + matches!(assignment_like_node, AssignmentLikeNode::AssignmentExpression(_)) + && matches!( + p.parent_kind(), + AstKind::AssignmentExpression(_) | AstKind::VariableDeclarator(_) + ) + && (!is_tail + || !matches!( + p.parent_parent_kind(), + Some(AstKind::ExpressionStatement(_) | AstKind::VariableDeclaration(_)) + )); if should_use_chain_formatting { if !is_tail { diff --git a/crates/oxc_prettier/src/lib.rs b/crates/oxc_prettier/src/lib.rs index fb81ad34a..e851eeda7 100644 --- a/crates/oxc_prettier/src/lib.rs +++ b/crates/oxc_prettier/src/lib.rs @@ -108,6 +108,7 @@ impl<'a> Prettier<'a> { (len >= 3).then(|| self.nodes[len - 3]) } + #[allow(unused)] fn nth_parent_kind(&self, n: usize) -> Option> { let len = self.nodes.len(); (len > n).then(|| self.nodes[len - n - 1]) diff --git a/tasks/prettier_conformance/prettier.snap.md b/tasks/prettier_conformance/prettier.snap.md index 2f44845eb..7ebd6df1c 100644 --- a/tasks/prettier_conformance/prettier.snap.md +++ b/tasks/prettier_conformance/prettier.snap.md @@ -1,4 +1,4 @@ -Compatibility: 216/561 (38.50%) +Compatibility: 217/561 (38.68%) # Failed @@ -48,7 +48,6 @@ Compatibility: 216/561 (38.50%) * assignment/issue-15534.js * assignment/issue-2482-2.js * assignment/issue-2540.js -* assignment/issue-3819.js * assignment/issue-6922.js * assignment/issue-7572.js * assignment/lone-arg.js