From 28adb7a0c2186f69d18cd475fc594832f6fbdaa4 Mon Sep 17 00:00:00 2001 From: Josh Suereth <Joshua.Suereth@gmail.com> Date: Wed, 8 May 2024 21:00:20 -0400 Subject: [PATCH] Fix #151 - expand id parsing Current parsing is a bit inflexible, improve parsing to include more. --- crates/weaver_semconv_gen/src/parser.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/weaver_semconv_gen/src/parser.rs b/crates/weaver_semconv_gen/src/parser.rs index 948dfd5a..e62ef907 100644 --- a/crates/weaver_semconv_gen/src/parser.rs +++ b/crates/weaver_semconv_gen/src/parser.rs @@ -72,7 +72,10 @@ fn parse_markdown_gen_parameters(input: &str) -> IResult<&str, Vec<MarkdownGenPa /// nom parser for semconv ids. fn parse_id(input: &str) -> IResult<&str, &str> { - recognize(many0_count(alt((alpha1, tag("."), tag("_"), tag("-")))))(input) + recognize(pair( + alpha1, // First character must be alpha, then anything is accepted. + many0_count(alt((alphanumeric1, tag("."), tag("_"), tag("-")))), + ))(input) } /// nom parser for <!-- semconv {id}({args}) --> @@ -134,6 +137,9 @@ mod tests { assert!(is_markdown_snippet_directive( "<!-- semconv registry.user_agent -->" )); + assert!(is_markdown_snippet_directive( + "<!-- semconv registry.user_agent.p99 -->" + )); assert!(is_markdown_snippet_directive( "<!-- semconv my.id(full) -->" ));