From 670209e9fcd3fcb18b806cccad88c98fdc5f5baa Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 11 Dec 2023 12:58:05 -0500 Subject: [PATCH] Fix post blank for comment. --- src/parser/comment.rs | 3 ++- src/types/lesser_element.rs | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/parser/comment.rs b/src/parser/comment.rs index 7523037..80bf16a 100644 --- a/src/parser/comment.rs +++ b/src/parser/comment.rs @@ -46,7 +46,7 @@ pub(crate) fn comment<'b, 'g, 'r, 's>( let (remaining, mut remaining_lines) = many0(preceded(not(exit_matcher), comment_line_matcher))(remaining)?; - let (remaining, _trailing_ws) = + let (remaining, post_blank) = maybe_consume_trailing_whitespace_if_not_exiting(context, remaining)?; let source = get_consumed(input, remaining); let mut value = Vec::with_capacity(remaining_lines.len() + 1); @@ -67,6 +67,7 @@ pub(crate) fn comment<'b, 'g, 'r, 's>( Comment { source: source.into(), value, + post_blank: post_blank.map(Into::<&str>::into), }, )) } diff --git a/src/types/lesser_element.rs b/src/types/lesser_element.rs index 7f0c491..17aca5d 100644 --- a/src/types/lesser_element.rs +++ b/src/types/lesser_element.rs @@ -35,6 +35,7 @@ pub struct Paragraph<'s> { pub struct Comment<'s> { pub source: &'s str, pub value: Vec<&'s str>, + pub post_blank: Option<&'s str>, } #[derive(Debug)] @@ -242,7 +243,11 @@ impl<'s> StandardProperties<'s> for Comment<'s> { } fn get_post_blank(&self) -> PostBlank { - 0 + self.post_blank + .map(|text| text.lines().count()) + .unwrap_or(0) + .try_into() + .expect("Too much post-blank to fit into a PostBlank.") } }