From f543f6a6f28dbb2676b37df4811826a6a1cc8abf Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 17 Mar 2026 14:55:51 +0800 Subject: Update regex patterns for cmd_output macros --- gen/Cargo.toml | 2 +- gen/src/gen_override_renderer.rs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'gen') diff --git a/gen/Cargo.toml b/gen/Cargo.toml index 186082b..52c7d8a 100644 --- a/gen/Cargo.toml +++ b/gen/Cargo.toml @@ -6,7 +6,7 @@ version.workspace = true [dependencies] just_fmt = "0.1.2" -tokio = { version = "1", features = ["rt", "rt-multi-thread"] } +tokio = { version = "1", features = ["full"] } chrono = "0.4" toml = "0.9" regex = "1.12" diff --git a/gen/src/gen_override_renderer.rs b/gen/src/gen_override_renderer.rs index 63b3464..cb78e01 100644 --- a/gen/src/gen_override_renderer.rs +++ b/gen/src/gen_override_renderer.rs @@ -163,7 +163,7 @@ pub fn get_output_types(code: &String) -> Option> { let mut output_types = Vec::new(); // Find all cmd_output! macros - let cmd_output_re = Regex::new(r"cmd_output!\s*\(\s*([^,]+)\s*=>\s*[^)]+\s*\)").ok()?; + let cmd_output_re = Regex::new(r"cmd_output!\s*\(\s*([A-Za-z_][A-Za-z0-9_:]*)\s*=>").ok()?; for cap in cmd_output_re.captures_iter(code) { let type_name = cap[1].trim(); output_types.push(type_name.to_string()); @@ -171,12 +171,15 @@ pub fn get_output_types(code: &String) -> Option> { // Find all early_cmd_output! macros let early_cmd_output_re = - Regex::new(r"early_cmd_output!\s*\(\s*([^,]+)\s*=>\s*[^)]+\s*\)").ok()?; + Regex::new(r"early_cmd_output!\s*\(\s*([A-Za-z_][A-Za-z0-9_:]*)\s*=>").ok()?; for cap in early_cmd_output_re.captures_iter(code) { let type_name = cap[1].trim(); output_types.push(type_name.to_string()); } + output_types.sort(); + output_types.dedup(); + Some(output_types) } -- cgit