diff --git a/src/renderer/source_map.rs b/src/renderer/source_map.rs
index 8f602e1..a4c4202 100644
--- a/src/renderer/source_map.rs
+++ b/src/renderer/source_map.rs
@@ -556,10 +556,8 @@ impl<'a> SourceMap<'a> {
}
}
}
- // remove trailing newlines
- while buf.ends_with('\n') {
- buf.pop();
- }
+ // remove trailing whitespace
+ buf.truncate(buf.trim_end().len());
if highlights.iter().all(|parts| parts.is_empty()) {
None
} else {
diff --git a/tests/color/main.rs b/tests/color/main.rs
index 6c165fd..f1297d2 100644
--- a/tests/color/main.rs
+++ b/tests/color/main.rs
@@ -16,6 +16,7 @@ mod highlight_source;
mod highlight_source_multi_width_chars;
mod highlight_source_zero_width_chars;
mod issue_9;
+mod multiline_removal_indent;
mod multiline_removal_last_line_tabs;
mod multiline_removal_suggestion;
mod multiple_annotations;
diff --git a/tests/color/multiline_removal_indent.ascii.term.svg b/tests/color/multiline_removal_indent.ascii.term.svg
new file mode 100644
index 0000000..53509d3
--- /dev/null
+++ b/tests/color/multiline_removal_indent.ascii.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/multiline_removal_indent.rs b/tests/color/multiline_removal_indent.rs
new file mode 100644
index 0000000..6cbb6e6
--- /dev/null
+++ b/tests/color/multiline_removal_indent.rs
@@ -0,0 +1,19 @@
+use annotate_snippets::{Group, Level, Patch, Renderer, Snippet, renderer::DecorStyle};
+
+use snapbox::{assert_data_eq, file};
+
+#[test]
+fn test() {
+ let report = &[Group::with_level(Level::ERROR).element(
+ Snippet::source("do\n local function f()\n print()\n end\nend\n")
+ .patch(Patch::new(5..41, "")),
+ )];
+
+ let expected_ascii = file!["multiline_removal_indent.ascii.term.svg": TermSvg];
+ let renderer = Renderer::styled();
+ assert_data_eq!(renderer.render(report), expected_ascii);
+
+ let expected_unicode = file!["multiline_removal_indent.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(report), expected_unicode);
+}
diff --git a/tests/color/multiline_removal_indent.unicode.term.svg b/tests/color/multiline_removal_indent.unicode.term.svg
new file mode 100644
index 0000000..ab2fd07
--- /dev/null
+++ b/tests/color/multiline_removal_indent.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/multiple_highlight_duplicated.ascii.term.svg b/tests/color/multiple_highlight_duplicated.ascii.term.svg
index 8009a49..59c32f5 100644
--- a/tests/color/multiple_highlight_duplicated.ascii.term.svg
+++ b/tests/color/multiple_highlight_duplicated.ascii.term.svg
@@ -65,7 +65,7 @@
|
- 23 - String::from(""),
+ 23 - String::from(""),
|
diff --git a/tests/color/multiple_highlight_duplicated.unicode.term.svg b/tests/color/multiple_highlight_duplicated.unicode.term.svg
index e4308a3..153c284 100644
--- a/tests/color/multiple_highlight_duplicated.unicode.term.svg
+++ b/tests/color/multiple_highlight_duplicated.unicode.term.svg
@@ -65,7 +65,7 @@
├╴
- 23 - String::from(""),
+ 23 - String::from(""),
├╴