From 8d10da6738e8b0bcf24202d7ac942706fbbe56b4 Mon Sep 17 00:00:00 2001 From: Kevin Amado Date: Fri, 18 Feb 2022 12:02:32 -0500 Subject: [PATCH] feat: inline beggining at --- src/rules/pattern.rs | 19 ++++++++++++------- tests/cases/pattern/in | 5 +++++ tests/cases/pattern/out | 6 ++++++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/rules/pattern.rs b/src/rules/pattern.rs index 517b4926..c5c90c86 100644 --- a/src/rules/pattern.rs +++ b/src/rules/pattern.rs @@ -35,8 +35,10 @@ pub fn rule( }; // x @ + let mut at = false; let child = children.peek_next().unwrap(); if let rnix::SyntaxKind::NODE_PAT_BIND = child.element.kind() { + at = true; match layout { crate::config::Layout::Tall => { steps.push_back(crate::builder::Step::FormatWider( @@ -47,25 +49,28 @@ pub fn rule( steps.push_back(crate::builder::Step::Format(child.element)); } } - if !has_comments && items_count <= 1 { - steps.push_back(crate::builder::Step::Whitespace); - } else { - steps.push_back(crate::builder::Step::NewLine); - steps.push_back(crate::builder::Step::Pad); - } children.move_next(); } // /**/ + let mut comment = false; children.drain_comments_and_newlines(|element| match element { crate::children::DrainCommentOrNewline::Comment(text) => { - steps.push_back(crate::builder::Step::Comment(text)); steps.push_back(crate::builder::Step::NewLine); steps.push_back(crate::builder::Step::Pad); + steps.push_back(crate::builder::Step::Comment(text)); + comment = true; } crate::children::DrainCommentOrNewline::Newline(_) => {} }); + if comment { + steps.push_back(crate::builder::Step::NewLine); + steps.push_back(crate::builder::Step::Pad); + } else if at { + steps.push_back(crate::builder::Step::Whitespace); + } + // { let child = children.get_next().unwrap(); steps.push_back(crate::builder::Step::Format(child.element)); diff --git a/tests/cases/pattern/in b/tests/cases/pattern/in index 0fd7c763..f4daa99f 100644 --- a/tests/cases/pattern/in +++ b/tests/cases/pattern/in @@ -1,4 +1,9 @@ [ + (a@{ + self, + gomod2nix, + mach-nix, + }: _) ({ self, gomod2nix, diff --git a/tests/cases/pattern/out b/tests/cases/pattern/out index 1f1d57ce..3e1eae65 100644 --- a/tests/cases/pattern/out +++ b/tests/cases/pattern/out @@ -1,4 +1,10 @@ [ + (a @ { + self, + gomod2nix, + mach-nix, + }: + _) ({ self, gomod2nix,