diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-03-17 14:55:51 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-03-17 14:55:51 +0800 |
| commit | f543f6a6f28dbb2676b37df4811826a6a1cc8abf (patch) | |
| tree | 851839c32bcf4f94653b4c589ca18176af16d5c0 /gen/src/gen_override_renderer.rs | |
| parent | 92670ec92b555383fc31cf42b15d4ea38f8e9c8f (diff) | |
Update regex patterns for cmd_output macros
Diffstat (limited to 'gen/src/gen_override_renderer.rs')
| -rw-r--r-- | gen/src/gen_override_renderer.rs | 7 |
1 files changed, 5 insertions, 2 deletions
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<Vec<String>> { 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<Vec<String>> { // 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) } |
