@@ -70,7 +70,11 @@ impl<'a> StringFormat<'a> {
7070 }
7171}
7272
73- pub fn rewrite_string < ' a > ( orig : & str , fmt : & StringFormat < ' a > ) -> Option < String > {
73+ pub fn rewrite_string < ' a > (
74+ orig : & str ,
75+ fmt : & StringFormat < ' a > ,
76+ newline_max_chars : usize ,
77+ ) -> Option < String > {
7478 let max_chars_with_indent = fmt. max_chars_with_indent ( ) ?;
7579 let max_chars_without_indent = fmt. max_chars_without_indent ( ) ?;
7680 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>
129133 result. push_str ( fmt. line_end ) ;
130134 result. push_str ( & indent_with_newline) ;
131135 result. push_str ( fmt. line_start ) ;
132- cur_max_chars = max_chars_with_indent ;
136+ cur_max_chars = newline_max_chars ;
133137 cur_start += len;
134138 }
135139 SnippetState :: EndWithLineFeed ( line, len) => {
@@ -358,7 +362,7 @@ mod test {
358362 fn issue343 ( ) {
359363 let config = Default :: default ( ) ;
360364 let fmt = StringFormat :: new ( Shape :: legacy ( 2 , Indent :: empty ( ) ) , & config) ;
361- rewrite_string ( "eq_" , & fmt) ;
365+ rewrite_string ( "eq_" , & fmt, 2 ) ;
362366 }
363367
364368 #[ test]
@@ -463,7 +467,7 @@ mod test {
463467 let mut config: Config = Default :: default ( ) ;
464468 config. set ( ) . max_width ( 27 ) ;
465469 let fmt = StringFormat :: new ( Shape :: legacy ( 25 , Indent :: empty ( ) ) , & config) ;
466- let rewritten_string = rewrite_string ( string, & fmt) ;
470+ let rewritten_string = rewrite_string ( string, & fmt, 27 ) ;
467471 assert_eq ! (
468472 rewritten_string,
469473 Some ( "\" Nulla\n consequat erat at massa. \\ \n Vivamus id mi.\" " . to_string( ) )
@@ -477,11 +481,11 @@ mod test {
477481 let mut fmt = StringFormat :: new ( Shape :: legacy ( 25 , Indent :: empty ( ) ) , & config) ;
478482
479483 fmt. trim_end = true ;
480- let rewritten_string = rewrite_string ( string, & fmt) ;
484+ let rewritten_string = rewrite_string ( string, & fmt, 25 ) ;
481485 assert_eq ! ( rewritten_string, Some ( "\" Vivamus id mi.\" " . to_string( ) ) ) ;
482486
483487 fmt. trim_end = false ; // default value of trim_end
484- let rewritten_string = rewrite_string ( string, & fmt) ;
488+ let rewritten_string = rewrite_string ( string, & fmt, 25 ) ;
485489 assert_eq ! ( rewritten_string, Some ( "\" Vivamus id mi. \" " . to_string( ) ) ) ;
486490 }
487491
@@ -499,7 +503,7 @@ mod test {
499503 config : & config,
500504 } ;
501505
502- let rewritten_string = rewrite_string ( string, & fmt) ;
506+ let rewritten_string = rewrite_string ( string, & fmt, 100 ) ;
503507 assert_eq ! (
504508 rewritten_string,
505509 Some ( "Vivamus id mi.\n // Vivamus id mi." . to_string( ) )
@@ -521,7 +525,7 @@ mod test {
521525 } ;
522526
523527 assert_eq ! (
524- rewrite_string( comment, & fmt) ,
528+ rewrite_string( comment, & fmt, 30 ) ,
525529 Some (
526530 "Aenean metus.\n // Vestibulum ac lacus. Vivamus\n // porttitor"
527531 . to_string( )
@@ -544,7 +548,7 @@ mod test {
544548 } ;
545549
546550 assert_eq ! (
547- rewrite_string( comment, & fmt) ,
551+ rewrite_string( comment, & fmt, 30 ) ,
548552 Some (
549553 "Aenean metus.\n // Vestibulum ac lacus. Vivamus@\n // porttitor"
550554 . to_string( )
@@ -567,7 +571,7 @@ mod test {
567571
568572 let comment = "Aenean metus. Vestibulum\n \n ac lacus. Vivamus porttitor" ;
569573 assert_eq ! (
570- rewrite_string( comment, & fmt) ,
574+ rewrite_string( comment, & fmt, 30 ) ,
571575 Some (
572576 "Aenean metus. Vestibulum\n //\n // ac lacus. Vivamus porttitor" . to_string( )
573577 )
@@ -576,7 +580,7 @@ mod test {
576580 fmt. shape = Shape :: legacy ( 15 , Indent :: from_width ( & config, 4 ) ) ;
577581 let comment = "Aenean\n \n metus. Vestibulum ac lacus. Vivamus porttitor" ;
578582 assert_eq ! (
579- rewrite_string( comment, & fmt) ,
583+ rewrite_string( comment, & fmt, 15 ) ,
580584 Some (
581585 r#"Aenean
582586 //
@@ -603,21 +607,21 @@ mod test {
603607
604608 let comment = "Aenean\n \n metus. Vestibulum ac lacus.\n \n " ;
605609 assert_eq ! (
606- rewrite_string( comment, & fmt) ,
610+ rewrite_string( comment, & fmt, 20 ) ,
607611 Some (
608612 "Aenean\n //\n // metus. Vestibulum ac\n // lacus.\n //\n " . to_string( )
609613 )
610614 ) ;
611615
612616 let comment = "Aenean\n \n metus. Vestibulum ac lacus.\n " ;
613617 assert_eq ! (
614- rewrite_string( comment, & fmt) ,
618+ rewrite_string( comment, & fmt, 20 ) ,
615619 Some ( "Aenean\n //\n // metus. Vestibulum ac\n // lacus.\n " . to_string( ) )
616620 ) ;
617621
618622 let comment = "Aenean\n \n metus. Vestibulum ac lacus." ;
619623 assert_eq ! (
620- rewrite_string( comment, & fmt) ,
624+ rewrite_string( comment, & fmt, 20 ) ,
621625 Some ( "Aenean\n //\n // metus. Vestibulum ac\n // lacus." . to_string( ) )
622626 ) ;
623627 }
@@ -637,22 +641,22 @@ mod test {
637641
638642 let comment = "Aenean metus. Vestibulum ac lacus." ;
639643 assert_eq ! (
640- rewrite_string( comment, & fmt) ,
644+ rewrite_string( comment, & fmt, 13 ) ,
641645 Some ( "Aenean metus.\n // Vestibulum ac\n // lacus." . to_string( ) )
642646 ) ;
643647
644648 fmt. trim_end = false ;
645649 let comment = "Vestibulum ac lacus." ;
646650 assert_eq ! (
647- rewrite_string( comment, & fmt) ,
651+ rewrite_string( comment, & fmt, 13 ) ,
648652 Some ( "Vestibulum \n // ac lacus." . to_string( ) )
649653 ) ;
650654
651655 fmt. trim_end = true ;
652656 fmt. line_end = "\\ " ;
653657 let comment = "Vestibulum ac lacus." ;
654658 assert_eq ! (
655- rewrite_string( comment, & fmt) ,
659+ rewrite_string( comment, & fmt, 13 ) ,
656660 Some ( "Vestibulum\\ \n // ac lacus." . to_string( ) )
657661 ) ;
658662 }
0 commit comments