diff --git a/src/children.rs b/src/children.rs index 1a68b04..a1e5a7f 100644 --- a/src/children.rs +++ b/src/children.rs @@ -189,9 +189,7 @@ impl Children { .filter(|c| *c == '\n') .count(); - if count > 1 { - callback(DrainCommentOrNewline::Newline(count)); - } + callback(DrainCommentOrNewline::Newline(count)); self.move_next(); } _ => { diff --git a/src/rules/attr_set.rs b/src/rules/attr_set.rs index c268e55..e08190c 100644 --- a/src/rules/attr_set.rs +++ b/src/rules/attr_set.rs @@ -84,8 +84,8 @@ pub fn rule( steps.push_back(crate::builder::Step::Comment(text)); item_index += 1; } - crate::children::DrainCommentOrNewline::Newline(_) => { - if item_index > 0 && item_index < items_count { + crate::children::DrainCommentOrNewline::Newline(newlines) => { + if newlines > 1 && item_index > 0 && item_index < items_count { steps.push_back(crate::builder::Step::NewLine); } } diff --git a/src/rules/let_in.rs b/src/rules/let_in.rs index ae9a9e4..c377b3e 100644 --- a/src/rules/let_in.rs +++ b/src/rules/let_in.rs @@ -47,8 +47,8 @@ pub fn rule( steps.push_back(crate::builder::Step::Pad); steps.push_back(crate::builder::Step::Comment(text)); } - crate::children::DrainCommentOrNewline::Newline(_) => { - if item_index > 0 && item_index < items_count { + crate::children::DrainCommentOrNewline::Newline(newlines) => { + if newlines > 1 && item_index > 0 && item_index < items_count { steps.push_back(crate::builder::Step::NewLine); } } diff --git a/src/rules/list.rs b/src/rules/list.rs index ec29c40..589eebc 100644 --- a/src/rules/list.rs +++ b/src/rules/list.rs @@ -44,8 +44,11 @@ pub fn rule( steps.push_back(crate::builder::Step::Comment(text)); item_index += 1; } - crate::children::DrainCommentOrNewline::Newline(_) => { - if item_index > 0 && item_index < items_count { + crate::children::DrainCommentOrNewline::Newline(newlines) => { + if newlines > 1 + && item_index > 0 + && item_index < items_count + { steps.push_back(crate::builder::Step::NewLine); } } diff --git a/tests/cases/comment/in b/tests/cases/comment/in index 71932a4..bf90396 100644 --- a/tests/cases/comment/in +++ b/tests/cases/comment/in @@ -42,8 +42,17 @@ * test */ - [ - a # comment + [ # 1 + #2 + a # 3 + b + c # 4 + #5 + + #6 + + d + #7 ] { diff --git a/tests/cases/comment/out b/tests/cases/comment/out index ab3a6ca..3fd97e4 100644 --- a/tests/cases/comment/out +++ b/tests/cases/comment/out @@ -50,8 +50,19 @@ */ [ + # 1 + #2 a - # comment + # 3 + b + c + # 4 + #5 + + #6 + + d + #7 ] {