diff --git a/src/parser/babel_call.rs b/src/parser/babel_call.rs index c4bf312..2919422 100644 --- a/src/parser/babel_call.rs +++ b/src/parser/babel_call.rs @@ -113,17 +113,14 @@ fn babel_call_call<'s>(input: OrgSource<'s>) -> Res, OrgSource<'s> #[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))] fn inside_header<'s>(input: OrgSource<'s>) -> Res, OrgSource<'s>> { - let (remaining, _) = tag("[")(input)?; - - let contents_start = remaining; - let (remaining, contents) = opt(recognize(many_till( - anychar, - alt(( - peek(recognize(one_of("]"))), - recognize(tuple((space0, org_line_ending))), - )), - )))(remaining)?; - let (remaining, _) = tag("]")(remaining)?; + let (remaining, contents) = balanced_bracket( + |i| tag("[")(i), + |i| peek(tag("]"))(i), + |i| recognize(tuple((space0, org_line_ending)))(i), + |i| tag("]")(i), + |s| s.get_bracket_depth(), + )(input)?; + let (contents_start, _) = tag("[")(input)?; Ok((remaining, contents.unwrap_or(contents_start.take(0)))) } @@ -136,30 +133,6 @@ fn arguments<'s>(input: OrgSource<'s>) -> Res, Option 0, - // ))(remaining)?; - // let (remaining, _) = tag(")")(remaining)?; - // Ok((remaining, contents)) } #[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]