From 44553cc3e428e8de017ac5dc73ff34bcd051b33d Mon Sep 17 00:00:00 2001 From: rami3l Date: Mon, 9 Dec 2024 13:41:04 +0800 Subject: [PATCH] fix(tool): add `///|` before embedded toplevels --- crates/moon/src/cli/tool/embed.rs | 14 ++++++++---- crates/moon/tests/test_cases/mod.rs | 35 ++++++++++++++++------------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/crates/moon/src/cli/tool/embed.rs b/crates/moon/src/cli/tool/embed.rs index e843848b..224e2640 100644 --- a/crates/moon/src/cli/tool/embed.rs +++ b/crates/moon/src/cli/tool/embed.rs @@ -40,8 +40,11 @@ pub fn run_embed_text(cmd: Embed) -> anyhow::Result { let input = std::fs::read_to_string(&cmd.input)?; let name = cmd.name.unwrap_or_else(|| "resource".to_string()); let mut content = format!( - "// Generated by `moon tool embed --text`{}, do not edit.\n\n\ - let {} : String =\n", + r#"// Generated by `moon tool embed --text`{}, do not edit. + +///| +let {} : String = +"#, if cmd.timestamp { format!(" on {}", chrono::Local::now().format("%Y-%m-%d %H:%M:%S")) } else { @@ -60,8 +63,11 @@ pub fn run_embed_bin(cmd: Embed) -> anyhow::Result { let input = std::fs::read(&cmd.input)?; let name = cmd.name.unwrap_or_else(|| "resource".to_string()); let mut content = format!( - "// Generated by `moon tool embed --binary`{}, do not edit.\n\n\ - let {} : Bytes = Bytes::of([\n", + r#"// Generated by `moon tool embed --binary`{}, do not edit. + +///| +let {} : Bytes = Bytes::of([ +"#, if cmd.timestamp { format!(" on {}", chrono::Local::now().format("%Y-%m-%d %H:%M:%S")) } else { diff --git a/crates/moon/tests/test_cases/mod.rs b/crates/moon/tests/test_cases/mod.rs index 385440d7..aecb8eb6 100644 --- a/crates/moon/tests/test_cases/mod.rs +++ b/crates/moon/tests/test_cases/mod.rs @@ -7073,9 +7073,9 @@ fn test_pre_build() { expect![[r#" Executed 3 pre-build tasks, now up to date Warning: [1002] - ╭─[$ROOT/src/lib/a.mbt:3:5] + ╭─[$ROOT/src/lib/a.mbt:4:5] │ - 3 │ let resource : String = + 4 │ let resource : String = │ ────┬─── │ ╰───── Warning: Unused toplevel variable 'resource'. Note if the body contains side effect, it will not happen. Use `fn init { .. }` to wrap the effect. ───╯ @@ -7086,9 +7086,9 @@ fn test_pre_build() { get_stderr(&dir, ["build"]), expect![[r#" Warning: [1002] - ╭─[$ROOT/src/lib/a.mbt:3:5] + ╭─[$ROOT/src/lib/a.mbt:4:5] │ - 3 │ let resource : String = + 4 │ let resource : String = │ ────┬─── │ ╰───── Warning: Unused toplevel variable 'resource'. Note if the body contains side effect, it will not happen. Use `fn init { .. }` to wrap the effect. ───╯ @@ -7099,13 +7099,14 @@ fn test_pre_build() { check( read(dir.join("src/lib/a.mbt")), expect![[r#" - // Generated by `moon tool embed --text`, do not edit. + // Generated by `moon tool embed --text`, do not edit. - let resource : String = - #|hello, - #|world - #| - "#]], + ///| + let resource : String = + #|hello, + #|world + #| + "#]], ); let content = read(dir.join("src/lib/b.mbt")); check( @@ -7113,6 +7114,7 @@ fn test_pre_build() { expect![[r#" // Generated by `moon tool embed --binary`, do not edit. + ///| let _b : Bytes = Bytes::of([ 0x4d, 0x6f, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, @@ -7140,13 +7142,14 @@ fn test_pre_build() { check( read(dir.join("src/lib/c.mbt")), expect![[r#" - // Generated by `moon tool embed --text`, do not edit. + // Generated by `moon tool embed --text`, do not edit. - let _c : String = - #|hello, - #|world - #| - "#]], + ///| + let _c : String = + #|hello, + #|world + #| + "#]], ); }