diff --git a/packages/autofmt/src/buffer.rs b/packages/autofmt/src/buffer.rs index fd3d33f59..46f564dee 100644 --- a/packages/autofmt/src/buffer.rs +++ b/packages/autofmt/src/buffer.rs @@ -127,7 +127,9 @@ impl Buffer { for child in children { // Exprs handle their own indenting/line breaks if !matches!(child, BodyNode::RawExpr(_)) { - self.write_comments(child.span())?; + if self.current_span_is_primary(child.span()) { + self.write_comments(child.span())?; + } self.tabbed_line()?; } diff --git a/packages/autofmt/tests/samples.rs b/packages/autofmt/tests/samples.rs index 29332b7da..8948ee183 100644 --- a/packages/autofmt/tests/samples.rs +++ b/packages/autofmt/tests/samples.rs @@ -23,3 +23,4 @@ twoway! ("complex" => complex); twoway! ("tiny" => tiny); twoway! ("tinynoopt" => tinynoopt); + diff --git a/packages/autofmt/tests/samples/comments.rsx b/packages/autofmt/tests/samples/comments.rsx index 655a556e3..89089e32e 100644 --- a/packages/autofmt/tests/samples/comments.rsx +++ b/packages/autofmt/tests/samples/comments.rsx @@ -1,4 +1,9 @@ rsx! { + div { + // Comments + class: "asdasd", + "hello world" + } div { // My comment here 1 // My comment here 2 diff --git a/packages/autofmt/tests/wrong.rs b/packages/autofmt/tests/wrong.rs new file mode 100644 index 000000000..f15849573 --- /dev/null +++ b/packages/autofmt/tests/wrong.rs @@ -0,0 +1,14 @@ +macro_rules! twoway { + ($val:literal => $name:ident) => { + #[test] + fn $name() { + let src_right = include_str!(concat!("./wrong/", $val, ".rsx")); + let src_wrong = include_str!(concat!("./wrong/", $val, ".wrong.rsx")); + let formatted = dioxus_autofmt::fmt_file(src_wrong); + let out = dioxus_autofmt::apply_formats(src_wrong, formatted); + pretty_assertions::assert_eq!(&src_right, &out); + } + }; +} + +twoway!("comments" => comments); diff --git a/packages/autofmt/tests/wrong/comments.rsx b/packages/autofmt/tests/wrong/comments.rsx new file mode 100644 index 000000000..8720b6359 --- /dev/null +++ b/packages/autofmt/tests/wrong/comments.rsx @@ -0,0 +1,7 @@ +rsx! { + div { + // Comments + class: "asdasd", + "hello world" + } +} diff --git a/packages/autofmt/tests/wrong/comments.wrong.rsx b/packages/autofmt/tests/wrong/comments.wrong.rsx new file mode 100644 index 000000000..be7108269 --- /dev/null +++ b/packages/autofmt/tests/wrong/comments.wrong.rsx @@ -0,0 +1,5 @@ +rsx! { + div { + // Comments + class: "asdasd", "hello world" } +}