diff --git a/src/rules/attr_set.rs b/src/rules/attr_set.rs index 8b5dc2b..c268e55 100644 --- a/src/rules/attr_set.rs +++ b/src/rules/attr_set.rs @@ -127,7 +127,9 @@ pub fn rule( steps.push_back(crate::builder::Step::Pad); } crate::config::Layout::Wide => { - steps.push_back(crate::builder::Step::Whitespace); + if items_count > 0 { + steps.push_back(crate::builder::Step::Whitespace); + } } } steps.push_back(crate::builder::Step::Format(child.element)); diff --git a/src/rules/list.rs b/src/rules/list.rs index f626538..ec29c40 100644 --- a/src/rules/list.rs +++ b/src/rules/list.rs @@ -69,7 +69,9 @@ pub fn rule( )); } crate::config::Layout::Wide => { - steps.push_back(crate::builder::Step::Whitespace); + if item_index > 1 { + steps.push_back(crate::builder::Step::Whitespace); + } steps .push_back(crate::builder::Step::Format(child.element)); } @@ -87,9 +89,7 @@ pub fn rule( steps.push_back(crate::builder::Step::NewLine); steps.push_back(crate::builder::Step::Pad); } - crate::config::Layout::Wide => { - steps.push_back(crate::builder::Step::Whitespace); - } + crate::config::Layout::Wide => {} } steps.push_back(crate::builder::Step::Format(child.element)); diff --git a/src/rules/pattern.rs b/src/rules/pattern.rs index 435191c..517b492 100644 --- a/src/rules/pattern.rs +++ b/src/rules/pattern.rs @@ -153,8 +153,9 @@ pub fn rule( // } let child = children.get_next().unwrap(); steps.push_back(crate::builder::Step::Dedent); - if !has_comments_between_curly_b && items_count <= 1 { + if !has_comments_between_curly_b && items_count == 1 { steps.push_back(crate::builder::Step::Whitespace); + } else if !has_comments_between_curly_b && items_count == 0 { } else { if let rnix::SyntaxKind::NODE_PAT_ENTRY = last_kind { steps.push_back(crate::builder::Step::Token( diff --git a/tests/cases/attr_set/out b/tests/cases/attr_set/out index ab1c249..8383df3 100644 --- a/tests/cases/attr_set/out +++ b/tests/cases/attr_set/out @@ -1,5 +1,5 @@ [ - { } + {} { /* a @@ -101,7 +101,7 @@ a = { a = rec { a = { - a = rec { a = { a = rec { a = { a = rec { a = { }; }; }; }; }; }; + a = rec { a = { a = rec { a = { a = rec { a = {}; }; }; }; }; }; }; }; }; diff --git a/tests/cases/idioms/out b/tests/cases/idioms/out index de4a4bf..8b7aa32 100644 --- a/tests/cases/idioms/out +++ b/tests/cases/idioms/out @@ -19,7 +19,7 @@ url = "example/${version}"; }; meta = with lib; { - maintainers = with maintainers; [ someone ]; + maintainers = with maintainers; [someone]; description = "something"; }; } diff --git a/tests/cases/key_value/out b/tests/cases/key_value/out index f6b348a..a13d348 100644 --- a/tests/cases/key_value/out +++ b/tests/cases/key_value/out @@ -94,13 +94,13 @@ rec b = 1; c = 2; }; - n = pkgs: { }; + n = pkgs: {}; o = { pkgs, ... }: - { }; + {}; a /* @@ -117,6 +117,6 @@ rec ; p = - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa { } + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa {} a; } diff --git a/tests/cases/lambda/out b/tests/cases/lambda/out index 02bb310..17a06a9 100644 --- a/tests/cases/lambda/out +++ b/tests/cases/lambda/out @@ -7,7 +7,7 @@ d ) ( - { }: + {}: b: /* c @@ -16,7 +16,7 @@ ) ( a: - { }: + {}: /* c */ @@ -57,14 +57,14 @@ ) ( { - pkgs ? import ./.. { }, + pkgs ? import ./.. {}, locationsXml, }: null ) ( a: b: c: - { }: + {}: a: b: c: a ) diff --git a/tests/cases/lists/out b/tests/cases/lists/out index f97478d..03e2b54 100644 --- a/tests/cases/lists/out +++ b/tests/cases/lists/out @@ -1,11 +1,11 @@ [ - [ 1 ] + [1] [ 1 ] - [ b d ] + [b d] [ b d diff --git a/tests/cases/pat_bind/out b/tests/cases/pat_bind/out index 812edb9..ab77d04 100644 --- a/tests/cases/pat_bind/out +++ b/tests/cases/pat_bind/out @@ -1,19 +1,19 @@ [ - ({ } @ a: _) + ({} @ a: _) ( - { } @ + {} @ /**/ a: _ ) ( - { } + {} /**/ @ a: _ ) ( - { } + {} /**/ @ /**/ @@ -21,17 +21,17 @@ _ ) - (a @ { }: _) + (a @ {}: _) ( a @ /**/ - { }: + {}: _ ) ( a /**/ - @ { }: + @ {}: _ ) ( @@ -39,7 +39,7 @@ /**/ @ /**/ - { }: + {}: _ ) ] diff --git a/tests/cases/pattern/out b/tests/cases/pattern/out index bbf081b..4b6e84f 100644 --- a/tests/cases/pattern/out +++ b/tests/cases/pattern/out @@ -8,7 +8,7 @@ @ inp: _ ) - ({ }: _) + ({}: _) ({ a }: _) ( {