Browse Source

Merge pull request #462 from Demonthos/fix_hot_reload_paths

fix path separator for hot reloading
Demonthos 3 years ago
parent
commit
7f5ad96c0b
2 changed files with 18 additions and 13 deletions
  1. 6 7
      packages/rsx_interpreter/src/lib.rs
  2. 12 6
      packages/rsx_interpreter/tests/render.rs

+ 6 - 7
packages/rsx_interpreter/src/lib.rs

@@ -24,7 +24,8 @@ lazy_static! {
 // the location of the code relative to the current crate based on [std::panic::Location]
 #[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
 pub struct CodeLocation {
-    pub file: String,
+    pub crate_path: String,
+    pub file_path: String,
     pub line: u32,
     pub column: u32,
 }
@@ -83,14 +84,12 @@ macro_rules! get_line_num {
     () => {{
         let line = line!();
         let column = column!();
-        let file = file!();
+        let file_path = file!().to_string();
+        let crate_path = env!("CARGO_MANIFEST_DIR").to_string();
 
-        #[cfg(windows)]
-        let file = env!("CARGO_MANIFEST_DIR").to_string() + "\\" + file!();
-        #[cfg(unix)]
-        let file = env!("CARGO_MANIFEST_DIR").to_string() + "/" + file!();
         CodeLocation {
-            file: file.to_string(),
+            crate_path,
+            file_path,
             line: line,
             column: column,
         }

+ 12 - 6
packages/rsx_interpreter/tests/render.rs

@@ -10,7 +10,8 @@ fn render_basic() {
     let dom = VirtualDom::new(Base);
     let static_vnodes = rsx!(div{"hello world"});
     let location = CodeLocation {
-        file: String::new(),
+        file_path: String::new(),
+        crate_path: String::new(),
         line: 0,
         column: 0,
     };
@@ -55,7 +56,8 @@ fn render_nested() {
         }
     };
     let location = CodeLocation {
-        file: String::new(),
+        file_path: String::new(),
+        crate_path: String::new(),
         line: 1,
         column: 0,
     };
@@ -106,7 +108,8 @@ fn render_component() {
         }
     };
     let location = CodeLocation {
-        file: String::new(),
+        file_path: String::new(),
+        crate_path: String::new(),
         line: 2,
         column: 0,
     };
@@ -157,7 +160,8 @@ fn render_iterator() {
         }
     };
     let location = CodeLocation {
-        file: String::new(),
+        file_path: String::new(),
+        crate_path: String::new(),
         line: 3,
         column: 0,
     };
@@ -210,7 +214,8 @@ fn render_captured_variable() {
         }
     };
     let location = CodeLocation {
-        file: String::new(),
+        file_path: String::new(),
+        crate_path: String::new(),
         line: 4,
         column: 0,
     };
@@ -261,7 +266,8 @@ fn render_listener() {
         }
     };
     let location = CodeLocation {
-        file: String::new(),
+        file_path: String::new(),
+        crate_path: String::new(),
         line: 5,
         column: 0,
     };