diff --git a/src/alejandra_engine/src/rules/key_value.rs b/src/alejandra_engine/src/rules/key_value.rs index d13f056..fee527a 100644 --- a/src/alejandra_engine/src/rules/key_value.rs +++ b/src/alejandra_engine/src/rules/key_value.rs @@ -55,6 +55,19 @@ pub(crate) fn rule( // peek: expr let child_expr = children.get_next().unwrap(); + let child_expr = + if matches!(child_expr.kind(), rnix::SyntaxKind::NODE_PAREN) { + let mut children: Vec = + child_expr.as_node().unwrap().children_with_tokens().collect(); + + if children.len() == 3 { + children.swap_remove(1) + } else { + child_expr + } + } else { + child_expr + }; // peek: /**/ let mut comments_after = std::collections::LinkedList::new(); diff --git a/src/alejandra_engine/tests/cases/key_value/in b/src/alejandra_engine/tests/cases/key_value/in index 218eed8..75c2bf9 100644 --- a/src/alejandra_engine/tests/cases/key_value/in +++ b/src/alejandra_engine/tests/cases/key_value/in @@ -1,5 +1,7 @@ rec /**/ { + a = (((4))); + a = {a = 1 ;}; diff --git a/src/alejandra_engine/tests/cases/key_value/out b/src/alejandra_engine/tests/cases/key_value/out index 518a676..8a9f4a8 100644 --- a/src/alejandra_engine/tests/cases/key_value/out +++ b/src/alejandra_engine/tests/cases/key_value/out @@ -1,6 +1,8 @@ rec /**/ { + a = 4; + a = {a = 1;}; b = {