Add real handling for preserve indent.

Now that I know which flag changes this setting, we can handle it properly.
This commit is contained in:
Tom Alexander
2023-10-04 19:23:47 -04:00
parent e1e4ac75e4
commit 87ac18e6b2
3 changed files with 46 additions and 21 deletions

View File

@@ -1618,11 +1618,14 @@ fn compare_example_block<'b, 's>(
};
// Compare preserve-indent
let preserve_indent = get_property_boolean(emacs, ":preserve-indent")?;
if preserve_indent {
// I don't know what :preserve-indent is for, but it seems to always be nil. This is here to alert me to value being non-nil so I can investigate.
let preserve_indent: Option<CharOffsetInLine> =
get_property_numeric(emacs, ":preserve-indent")?;
if preserve_indent != rust.preserve_indent {
this_status = DiffStatus::Bad;
message = Some(format!("Non-nil :preserve-indent {:?}", preserve_indent));
message = Some(format!(
"Prserve indent mismatch (emacs != rust) {:?} != {:?}",
preserve_indent, rust.preserve_indent
));
}
// Compare retain-labels
@@ -1731,8 +1734,6 @@ fn compare_src_block<'b, 's>(
let mut this_status = DiffStatus::Good;
let mut message = None;
// TODO: Compare :parameters
// Compare language
let language = get_property_quoted_string(emacs, ":language")?;
if language.as_ref().map(String::as_str) != rust.language {
@@ -1771,7 +1772,7 @@ fn compare_src_block<'b, 's>(
}
}
// Compare switches
// Compare parameters
let parameters = get_property_quoted_string(emacs, ":parameters")?;
match (parameters.as_ref().map(String::as_str), rust.parameters) {
(None, None) => {}
@@ -1830,11 +1831,14 @@ fn compare_src_block<'b, 's>(
};
// Compare preserve-indent
let preserve_indent = get_property_boolean(emacs, ":preserve-indent")?;
if preserve_indent {
// I don't know what :preserve-indent is for, but it seems to always be nil. This is here to alert me to value being non-nil so I can investigate.
let preserve_indent: Option<CharOffsetInLine> =
get_property_numeric(emacs, ":preserve-indent")?;
if preserve_indent != rust.preserve_indent {
this_status = DiffStatus::Bad;
message = Some(format!("Non-nil :preserve-indent {:?}", preserve_indent));
message = Some(format!(
"Prserve indent mismatch (emacs != rust) {:?} != {:?}",
preserve_indent, rust.preserve_indent
));
}
// Compare retain-labels