compare_properties example block.
This commit is contained in:
@@ -16,6 +16,7 @@ use nom::combinator::verify;
|
||||
use nom::multi::many0;
|
||||
use nom::multi::many_till;
|
||||
use nom::sequence::tuple;
|
||||
use nom::InputTake;
|
||||
|
||||
use super::keyword::affiliated_keyword;
|
||||
use super::org_source::OrgSource;
|
||||
@@ -160,7 +161,20 @@ pub(crate) fn example_block<'b, 'g, 'r, 's>(
|
||||
) -> Res<OrgSource<'s>, ExampleBlock<'s>> {
|
||||
let (remaining, affiliated_keywords) = many0(affiliated_keyword)(input)?;
|
||||
let (remaining, _) = lesser_block_begin("example")(context, remaining)?;
|
||||
let (remaining, parameters) = opt(tuple((space1, example_switches)))(remaining)?;
|
||||
let (remaining, parameters) = opt(alt((
|
||||
map(tuple((space1, example_switches)), |(_, switches)| switches),
|
||||
map(space1, |ws: OrgSource<'_>| {
|
||||
let source = ws.take(0);
|
||||
ExampleSrcSwitches {
|
||||
source: source.into(),
|
||||
number_lines: None,
|
||||
retain_labels: RetainLabels::Yes,
|
||||
preserve_indent: None,
|
||||
use_labels: true,
|
||||
label_format: None,
|
||||
}
|
||||
}),
|
||||
)))(remaining)?;
|
||||
let (remaining, _nl) = recognize(tuple((space0, line_ending)))(remaining)?;
|
||||
let lesser_block_end_specialized = lesser_block_end("example");
|
||||
let contexts = [
|
||||
@@ -174,7 +188,6 @@ pub(crate) fn example_block<'b, 'g, 'r, 's>(
|
||||
let parser_context = context.with_additional_node(&contexts[0]);
|
||||
let parser_context = parser_context.with_additional_node(&contexts[1]);
|
||||
let parser_context = parser_context.with_additional_node(&contexts[2]);
|
||||
let parameters = parameters.map(|(_, parameters)| parameters);
|
||||
|
||||
let (remaining, contents) = content(&parser_context, remaining)?;
|
||||
let (remaining, _end) = lesser_block_end_specialized(&parser_context, remaining)?;
|
||||
@@ -185,11 +198,7 @@ pub(crate) fn example_block<'b, 'g, 'r, 's>(
|
||||
let (switches, number_lines, preserve_indent, retain_labels, use_labels, label_format) = {
|
||||
if let Some(parameters) = parameters {
|
||||
(
|
||||
if parameters.source.len() == 0 {
|
||||
None
|
||||
} else {
|
||||
Some(parameters.source)
|
||||
},
|
||||
Some(parameters.source),
|
||||
parameters.number_lines,
|
||||
parameters.preserve_indent,
|
||||
parameters.retain_labels,
|
||||
|
||||
Reference in New Issue
Block a user