diff options
| author | Stéphane Campinas <stephane.campinas@gmail.com> | 2018-10-04 09:16:08 +0200 |
|---|---|---|
| committer | Stéphane Campinas <stephane.campinas@gmail.com> | 2018-10-08 14:48:13 +0200 |
| commit | f46082fbd8e5c347d018dd1889181fef2015c4bd (patch) | |
| tree | ea37c4ee69f73574184bc047edd4b7bcbf0f471e /src/string.rs | |
| parent | 1b2e72726f2e395578d4713f75743761677b6a4e (diff) | |
rewrite_string: trim trailing whitespace in case the last_line fits in the given shape
Diffstat (limited to 'src/string.rs')
| -rw-r--r-- | src/string.rs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/string.rs b/src/string.rs index 6f84a8e2c02..b5ba022a93c 100644 --- a/src/string.rs +++ b/src/string.rs @@ -98,7 +98,12 @@ pub fn rewrite_string<'a>(orig: &str, fmt: &StringFormat<'a>) -> Option<String> loop { // All the input starting at cur_start fits on the current line if graphemes.len() - cur_start <= cur_max_chars { - result.push_str(&graphemes[cur_start..].join("")); + let last_line = graphemes[cur_start..].join(""); + if fmt.trim_end { + result.push_str(&last_line.trim_right()); + } else { + result.push_str(&last_line); + } break; } @@ -363,4 +368,19 @@ mod test { Some("\"Nulla\nconsequat erat at massa. \\\n Vivamus id mi.\"".to_string()) ); } + + #[test] + fn last_line_fit_with_trailing_whitespaces() { + let string = "Vivamus id mi. "; + let config: Config = Default::default(); + let mut fmt = StringFormat::new(Shape::legacy(25, Indent::empty()), &config); + + fmt.trim_end = true; + let rewritten_string = rewrite_string(string, &fmt); + assert_eq!(rewritten_string, Some("\"Vivamus id mi.\"".to_string())); + + fmt.trim_end = false; // default value of trim_end + let rewritten_string = rewrite_string(string, &fmt); + assert_eq!(rewritten_string, Some("\"Vivamus id mi. \"".to_string())); + } } |
