فهرست منبع

fix: autofmt on single line rsx calls

Jonathan Kelley 3 سال پیش
والد
کامیت
3d47cb48fa

+ 5 - 1
packages/autofmt/src/lib.rs

@@ -47,7 +47,7 @@ pub fn fmt_file(contents: &str) -> Vec<FormattedBlock> {
             continue;
             continue;
         }
         }
 
 
-        let indent_level = {
+        let mut indent_level = {
             // walk backwards from start until we find a new line
             // walk backwards from start until we find a new line
             let mut lines = contents[..start].lines().rev();
             let mut lines = contents[..start].lines().rev();
             match lines.next() {
             match lines.next() {
@@ -71,6 +71,10 @@ pub fn fmt_file(contents: &str) -> Vec<FormattedBlock> {
 
 
         if new.len() <= 80 && !new.contains('\n') {
         if new.len() <= 80 && !new.contains('\n') {
             new = format!(" {new} ");
             new = format!(" {new} ");
+
+            // if the new string is not multiline, don't try to adjust the marker ending
+            // We want to trim off any indentation that there might be
+            indent_level = 0;
         }
         }
 
 
         let end_marker = end + bracket_end - indent_level * 4 - 1;
         let end_marker = end + bracket_end - indent_level * 4 - 1;

+ 2 - 0
packages/autofmt/tests/wrong.rs

@@ -12,3 +12,5 @@ macro_rules! twoway {
 }
 }
 
 
 twoway!("comments" => comments);
 twoway!("comments" => comments);
+
+twoway!("multi" => multi);

+ 3 - 0
packages/autofmt/tests/wrong/multi.rsx

@@ -0,0 +1,3 @@
+fn app(cx: Scope) -> Element {
+    cx.render(rsx! { div { "hello world" } })
+}

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

@@ -0,0 +1,5 @@
+fn app(cx: Scope) -> Element {
+    cx.render(rsx! {
+        div {"hello world" }
+    })
+}

+ 8 - 12
packages/router/examples/simple.rs

@@ -11,14 +11,14 @@ fn main() {
 
 
 fn app(cx: Scope) -> Element {
 fn app(cx: Scope) -> Element {
     cx.render(rsx! {
     cx.render(rsx! {
-        Router {
+        Router { 
             h1 { "Your app here" }
             h1 { "Your app here" }
             ul {
             ul {
-                Link { to: "/", li { "home"  }}
-                Link { to: "/blog", li { "blog"  }}
-                Link { to: "/blog/tim", li { "tims' blog"  }}
-                Link { to: "/blog/bill", li { "bills' blog"  }}
-                Link { to: "/apples", li { "go to apples"  }}
+                Link { to: "/", li { "home" } }
+                Link { to: "/blog", li { "blog" } }
+                Link { to: "/blog/tim", li { "tims' blog" } }
+                Link { to: "/blog/bill", li { "bills' blog" } }
+                Link { to: "/apples", li { "go to apples" } }
             }
             }
             Route { to: "/", Home {} }
             Route { to: "/", Home {} }
             Route { to: "/blog/", BlogList {} }
             Route { to: "/blog/", BlogList {} }
@@ -30,15 +30,11 @@ fn app(cx: Scope) -> Element {
 }
 }
 
 
 fn Home(cx: Scope) -> Element {
 fn Home(cx: Scope) -> Element {
-    cx.render(rsx! {
-        h1 { "Home" }
-    })
+    cx.render(rsx! { h1 { "Home" } })
 }
 }
 
 
 fn BlogList(cx: Scope) -> Element {
 fn BlogList(cx: Scope) -> Element {
-    cx.render(rsx! {
-        div { "Blog List" }
-    })
+    cx.render(rsx! { div { "Blog List" } })
 }
 }
 
 
 fn BlogPost(cx: Scope) -> Element {
 fn BlogPost(cx: Scope) -> Element {