diff options
| author | Daniele D'Orazio <d.dorazio96@gmail.com> | 2018-10-15 04:18:37 +0200 |
|---|---|---|
| committer | Seiichi Uchida <seuchida@gmail.com> | 2018-10-15 11:18:37 +0900 |
| commit | 075aa909cd2bcdc603f45e0b65119c6a7e3b2030 (patch) | |
| tree | e8ef72dcced2f990a4f9493a06f1c69ccda5b4ab /src/string.rs | |
| parent | 51ddac33c59081bcd4f067633bd37443b69c60d0 (diff) | |
try to fix comment bad wrapping (#3099)
Diffstat (limited to 'src/string.rs')
| -rw-r--r-- | src/string.rs | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/string.rs b/src/string.rs index 2fe13db2139..ca063123e39 100644 --- a/src/string.rs +++ b/src/string.rs @@ -70,7 +70,11 @@ impl<'a> StringFormat<'a> { } } -pub fn rewrite_string<'a>(orig: &str, fmt: &StringFormat<'a>) -> Option<String> { +pub fn rewrite_string<'a>( + orig: &str, + fmt: &StringFormat<'a>, + newline_max_chars: usize, +) -> Option<String> { let max_chars_with_indent = fmt.max_chars_with_indent()?; let max_chars_without_indent = fmt.max_chars_without_indent()?; let indent_with_newline = fmt.shape.indent.to_string_with_newline(fmt.config); @@ -129,7 +133,7 @@ pub fn rewrite_string<'a>(orig: &str, fmt: &StringFormat<'a>) -> Option<String> result.push_str(fmt.line_end); result.push_str(&indent_with_newline); result.push_str(fmt.line_start); - cur_max_chars = max_chars_with_indent; + cur_max_chars = newline_max_chars; cur_start += len; } SnippetState::EndWithLineFeed(line, len) => { @@ -358,7 +362,7 @@ mod test { fn issue343() { let config = Default::default(); let fmt = StringFormat::new(Shape::legacy(2, Indent::empty()), &config); - rewrite_string("eq_", &fmt); + rewrite_string("eq_", &fmt, 2); } #[test] @@ -463,7 +467,7 @@ mod test { let mut config: Config = Default::default(); config.set().max_width(27); let fmt = StringFormat::new(Shape::legacy(25, Indent::empty()), &config); - let rewritten_string = rewrite_string(string, &fmt); + let rewritten_string = rewrite_string(string, &fmt, 27); assert_eq!( rewritten_string, Some("\"Nulla\nconsequat erat at massa. \\\n Vivamus id mi.\"".to_string()) @@ -477,11 +481,11 @@ mod test { let mut fmt = StringFormat::new(Shape::legacy(25, Indent::empty()), &config); fmt.trim_end = true; - let rewritten_string = rewrite_string(string, &fmt); + let rewritten_string = rewrite_string(string, &fmt, 25); 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); + let rewritten_string = rewrite_string(string, &fmt, 25); assert_eq!(rewritten_string, Some("\"Vivamus id mi. \"".to_string())); } @@ -499,7 +503,7 @@ mod test { config: &config, }; - let rewritten_string = rewrite_string(string, &fmt); + let rewritten_string = rewrite_string(string, &fmt, 100); assert_eq!( rewritten_string, Some("Vivamus id mi.\n // Vivamus id mi.".to_string()) @@ -521,7 +525,7 @@ mod test { }; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 30), Some( "Aenean metus.\n // Vestibulum ac lacus. Vivamus\n // porttitor" .to_string() @@ -544,7 +548,7 @@ mod test { }; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 30), Some( "Aenean metus.\n // Vestibulum ac lacus. Vivamus@\n // porttitor" .to_string() @@ -567,7 +571,7 @@ mod test { let comment = "Aenean metus. Vestibulum\n\nac lacus. Vivamus porttitor"; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 30), Some( "Aenean metus. Vestibulum\n //\n // ac lacus. Vivamus porttitor".to_string() ) @@ -576,7 +580,7 @@ mod test { fmt.shape = Shape::legacy(15, Indent::from_width(&config, 4)); let comment = "Aenean\n\nmetus. Vestibulum ac lacus. Vivamus porttitor"; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 15), Some( r#"Aenean // @@ -603,7 +607,7 @@ mod test { let comment = "Aenean\n\nmetus. Vestibulum ac lacus.\n\n"; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 20), Some( "Aenean\n //\n // metus. Vestibulum ac\n // lacus.\n //\n".to_string() ) @@ -611,13 +615,13 @@ mod test { let comment = "Aenean\n\nmetus. Vestibulum ac lacus.\n"; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 20), Some("Aenean\n //\n // metus. Vestibulum ac\n // lacus.\n".to_string()) ); let comment = "Aenean\n \nmetus. Vestibulum ac lacus."; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 20), Some("Aenean\n //\n // metus. Vestibulum ac\n // lacus.".to_string()) ); } @@ -637,14 +641,14 @@ mod test { let comment = "Aenean metus. Vestibulum ac lacus."; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 13), Some("Aenean metus.\n // Vestibulum ac\n // lacus.".to_string()) ); fmt.trim_end = false; let comment = "Vestibulum ac lacus."; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 13), Some("Vestibulum \n // ac lacus.".to_string()) ); @@ -652,7 +656,7 @@ mod test { fmt.line_end = "\\"; let comment = "Vestibulum ac lacus."; assert_eq!( - rewrite_string(comment, &fmt), + rewrite_string(comment, &fmt, 13), Some("Vestibulum\\\n // ac lacus.".to_string()) ); } |
