Parse plain list item checkboxes.

This commit is contained in:
Tom Alexander
2023-09-15 15:30:13 -04:00
parent fd41ad9c29
commit bfe67b1f75
4 changed files with 49 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ use super::util::assert_name;
use super::util::get_property;
use crate::types::AngleLink;
use crate::types::Bold;
use crate::types::CheckboxType;
use crate::types::Citation;
use crate::types::CitationReference;
use crate::types::Clock;
@@ -799,7 +800,26 @@ fn compare_plain_list_item<'s>(
contents_status,
)?);
// TODO: compare :bullet :checkbox :counter :pre-blank
// TODO: compare :bullet :counter :pre-blank
// Compare checkbox
let checkbox = get_property(emacs, ":checkbox")?
.map(Token::as_atom)
.map_or(Ok(None), |r| r.map(Some))?
.unwrap_or("nil");
match (checkbox, &rust.checkbox) {
("nil", None) => {}
("off", Some((CheckboxType::Off, _))) => {}
("trans", Some((CheckboxType::Trans, _))) => {}
("on", Some((CheckboxType::On, _))) => {}
_ => {
this_status = DiffStatus::Bad;
message = Some(format!(
"Checkbox mismatch (emacs != rust) {:?} != {:?}",
checkbox, rust.checkbox
));
}
};
Ok(DiffResult {
status: this_status,