Przeglądaj źródła

fix: only apply comments if relevant

Jonathan Kelley 3 lat temu
rodzic
commit
19e6e43358

+ 3 - 1
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()?;
             }
 

+ 1 - 0
packages/autofmt/tests/samples.rs

@@ -23,3 +23,4 @@ twoway! ("complex" => complex);
 twoway! ("tiny" => tiny);
 
 twoway! ("tinynoopt" => tinynoopt);
+

+ 5 - 0
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

+ 14 - 0
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);

+ 7 - 0
packages/autofmt/tests/wrong/comments.rsx

@@ -0,0 +1,7 @@
+rsx! {
+    div {
+        // Comments
+        class: "asdasd",
+        "hello world"
+    }
+}

+ 5 - 0
packages/autofmt/tests/wrong/comments.wrong.rsx

@@ -0,0 +1,5 @@
+rsx! {
+    div {
+        // Comments
+        class: "asdasd", "hello world" }
+}