From 5658798276e36001608b7b5049b771f2a2a0cca5 Mon Sep 17 00:00:00 2001 From: Kevin Amado Date: Wed, 9 Feb 2022 20:35:37 -0500 Subject: [PATCH] feat: paren without max-width --- src/rules/paren.rs | 28 ++++++++++++++++++---------- tests/cases/lambda/out | 4 +++- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/rules/paren.rs b/src/rules/paren.rs index 7971b24..365e180 100644 --- a/src/rules/paren.rs +++ b/src/rules/paren.rs @@ -4,9 +4,11 @@ pub fn rule( ) -> std::collections::LinkedList { let mut steps = std::collections::LinkedList::new(); - let mut children = crate::children::Children::new(build_ctx, node); + let mut children = crate::children::Children::new_with_configuration( + build_ctx, node, true, + ); - let layout = if children.has_comments() { + let layout = if children.has_comments() || children.has_newlines() { &crate::config::Layout::Tall } else { build_ctx.config.layout() @@ -23,10 +25,13 @@ pub fn rule( } // /**/ - children.drain_comments(|text| { - steps.push_back(crate::builder::Step::NewLine); - steps.push_back(crate::builder::Step::Pad); - steps.push_back(crate::builder::Step::Comment(text)); + children.drain_comments_and_newlines(|element| match element { + crate::children::DrainCommentOrNewline::Comment(text) => { + steps.push_back(crate::builder::Step::NewLine); + steps.push_back(crate::builder::Step::Pad); + steps.push_back(crate::builder::Step::Comment(text)); + } + crate::children::DrainCommentOrNewline::Newline(_) => {} }); // expr @@ -43,10 +48,13 @@ pub fn rule( } // /**/ - children.drain_comments(|text| { - steps.push_back(crate::builder::Step::NewLine); - steps.push_back(crate::builder::Step::Pad); - steps.push_back(crate::builder::Step::Comment(text)); + children.drain_comments_and_newlines(|element| match element { + crate::children::DrainCommentOrNewline::Comment(text) => { + steps.push_back(crate::builder::Step::NewLine); + steps.push_back(crate::builder::Step::Pad); + steps.push_back(crate::builder::Step::Comment(text)); + } + crate::children::DrainCommentOrNewline::Newline(_) => {} }); // ) diff --git a/tests/cases/lambda/out b/tests/cases/lambda/out index 7958151..a8309a9 100644 --- a/tests/cases/lambda/out +++ b/tests/cases/lambda/out @@ -47,7 +47,9 @@ */ d ) - (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) + ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ) ( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa )