diff --git a/src/compare/diff.rs b/src/compare/diff.rs index 92b33839..b60d73df 100644 --- a/src/compare/diff.rs +++ b/src/compare/diff.rs @@ -3185,10 +3185,21 @@ fn compare_latex_fragment<'b, 's>( emacs: &'b Token<'s>, rust: &'b LatexFragment<'s>, ) -> Result, Box> { - let this_status = DiffStatus::Good; - let message = None; + let mut this_status = DiffStatus::Good; + let mut message = None; - // TODO: Compare :value + if let Some((new_status, new_message)) = compare_properties!( + emacs, + rust, + ( + EmacsField::Required(":value"), + |r| Some(r.value), + compare_property_quoted_string + ) + )? { + this_status = new_status; + message = new_message; + } Ok(DiffResult { status: this_status, diff --git a/src/parser/latex_fragment.rs b/src/parser/latex_fragment.rs index f7355bce..96c99af4 100644 --- a/src/parser/latex_fragment.rs +++ b/src/parser/latex_fragment.rs @@ -36,6 +36,7 @@ pub(crate) fn latex_fragment<'b, 'g, 'r, 's>( parser_with_context!(dollar_char_fragment)(context), parser_with_context!(bordered_dollar_fragment)(context), ))(input)?; + let value = get_consumed(input, remaining); let (remaining, _trailing_whitespace) = maybe_consume_object_trailing_whitespace_if_not_exiting(context, remaining)?; let source = get_consumed(input, remaining); @@ -43,6 +44,7 @@ pub(crate) fn latex_fragment<'b, 'g, 'r, 's>( remaining, LatexFragment { source: source.into(), + value: value.into(), }, )) } diff --git a/src/types/object.rs b/src/types/object.rs index 78546530..62cf5070 100644 --- a/src/types/object.rs +++ b/src/types/object.rs @@ -180,6 +180,7 @@ pub struct Entity<'s> { #[derive(Debug, PartialEq)] pub struct LatexFragment<'s> { pub source: &'s str, + pub value: &'s str, } #[derive(Debug, PartialEq)]