@@ -70,7 +70,11 @@ impl<'a> StringFormat<'a> {
70
70
}
71
71
}
72
72
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 > {
74
78
let max_chars_with_indent = fmt. max_chars_with_indent ( ) ?;
75
79
let max_chars_without_indent = fmt. max_chars_without_indent ( ) ?;
76
80
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>
129
133
result. push_str ( fmt. line_end ) ;
130
134
result. push_str ( & indent_with_newline) ;
131
135
result. push_str ( fmt. line_start ) ;
132
- cur_max_chars = max_chars_with_indent ;
136
+ cur_max_chars = newline_max_chars ;
133
137
cur_start += len;
134
138
}
135
139
SnippetState :: EndWithLineFeed ( line, len) => {
@@ -358,7 +362,7 @@ mod test {
358
362
fn issue343 ( ) {
359
363
let config = Default :: default ( ) ;
360
364
let fmt = StringFormat :: new ( Shape :: legacy ( 2 , Indent :: empty ( ) ) , & config) ;
361
- rewrite_string ( "eq_" , & fmt) ;
365
+ rewrite_string ( "eq_" , & fmt, 2 ) ;
362
366
}
363
367
364
368
#[ test]
@@ -463,7 +467,7 @@ mod test {
463
467
let mut config: Config = Default :: default ( ) ;
464
468
config. set ( ) . max_width ( 27 ) ;
465
469
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 ) ;
467
471
assert_eq ! (
468
472
rewritten_string,
469
473
Some ( "\" Nulla\n consequat erat at massa. \\ \n Vivamus id mi.\" " . to_string( ) )
@@ -477,11 +481,11 @@ mod test {
477
481
let mut fmt = StringFormat :: new ( Shape :: legacy ( 25 , Indent :: empty ( ) ) , & config) ;
478
482
479
483
fmt. trim_end = true ;
480
- let rewritten_string = rewrite_string ( string, & fmt) ;
484
+ let rewritten_string = rewrite_string ( string, & fmt, 25 ) ;
481
485
assert_eq ! ( rewritten_string, Some ( "\" Vivamus id mi.\" " . to_string( ) ) ) ;
482
486
483
487
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 ) ;
485
489
assert_eq ! ( rewritten_string, Some ( "\" Vivamus id mi. \" " . to_string( ) ) ) ;
486
490
}
487
491
@@ -499,7 +503,7 @@ mod test {
499
503
config : & config,
500
504
} ;
501
505
502
- let rewritten_string = rewrite_string ( string, & fmt) ;
506
+ let rewritten_string = rewrite_string ( string, & fmt, 100 ) ;
503
507
assert_eq ! (
504
508
rewritten_string,
505
509
Some ( "Vivamus id mi.\n // Vivamus id mi." . to_string( ) )
@@ -521,7 +525,7 @@ mod test {
521
525
} ;
522
526
523
527
assert_eq ! (
524
- rewrite_string( comment, & fmt) ,
528
+ rewrite_string( comment, & fmt, 30 ) ,
525
529
Some (
526
530
"Aenean metus.\n // Vestibulum ac lacus. Vivamus\n // porttitor"
527
531
. to_string( )
@@ -544,7 +548,7 @@ mod test {
544
548
} ;
545
549
546
550
assert_eq ! (
547
- rewrite_string( comment, & fmt) ,
551
+ rewrite_string( comment, & fmt, 30 ) ,
548
552
Some (
549
553
"Aenean metus.\n // Vestibulum ac lacus. Vivamus@\n // porttitor"
550
554
. to_string( )
@@ -567,7 +571,7 @@ mod test {
567
571
568
572
let comment = "Aenean metus. Vestibulum\n \n ac lacus. Vivamus porttitor" ;
569
573
assert_eq ! (
570
- rewrite_string( comment, & fmt) ,
574
+ rewrite_string( comment, & fmt, 30 ) ,
571
575
Some (
572
576
"Aenean metus. Vestibulum\n //\n // ac lacus. Vivamus porttitor" . to_string( )
573
577
)
@@ -576,7 +580,7 @@ mod test {
576
580
fmt. shape = Shape :: legacy ( 15 , Indent :: from_width ( & config, 4 ) ) ;
577
581
let comment = "Aenean\n \n metus. Vestibulum ac lacus. Vivamus porttitor" ;
578
582
assert_eq ! (
579
- rewrite_string( comment, & fmt) ,
583
+ rewrite_string( comment, & fmt, 15 ) ,
580
584
Some (
581
585
r#"Aenean
582
586
//
@@ -603,21 +607,21 @@ mod test {
603
607
604
608
let comment = "Aenean\n \n metus. Vestibulum ac lacus.\n \n " ;
605
609
assert_eq ! (
606
- rewrite_string( comment, & fmt) ,
610
+ rewrite_string( comment, & fmt, 20 ) ,
607
611
Some (
608
612
"Aenean\n //\n // metus. Vestibulum ac\n // lacus.\n //\n " . to_string( )
609
613
)
610
614
) ;
611
615
612
616
let comment = "Aenean\n \n metus. Vestibulum ac lacus.\n " ;
613
617
assert_eq ! (
614
- rewrite_string( comment, & fmt) ,
618
+ rewrite_string( comment, & fmt, 20 ) ,
615
619
Some ( "Aenean\n //\n // metus. Vestibulum ac\n // lacus.\n " . to_string( ) )
616
620
) ;
617
621
618
622
let comment = "Aenean\n \n metus. Vestibulum ac lacus." ;
619
623
assert_eq ! (
620
- rewrite_string( comment, & fmt) ,
624
+ rewrite_string( comment, & fmt, 20 ) ,
621
625
Some ( "Aenean\n //\n // metus. Vestibulum ac\n // lacus." . to_string( ) )
622
626
) ;
623
627
}
@@ -637,22 +641,22 @@ mod test {
637
641
638
642
let comment = "Aenean metus. Vestibulum ac lacus." ;
639
643
assert_eq ! (
640
- rewrite_string( comment, & fmt) ,
644
+ rewrite_string( comment, & fmt, 13 ) ,
641
645
Some ( "Aenean metus.\n // Vestibulum ac\n // lacus." . to_string( ) )
642
646
) ;
643
647
644
648
fmt. trim_end = false ;
645
649
let comment = "Vestibulum ac lacus." ;
646
650
assert_eq ! (
647
- rewrite_string( comment, & fmt) ,
651
+ rewrite_string( comment, & fmt, 13 ) ,
648
652
Some ( "Vestibulum \n // ac lacus." . to_string( ) )
649
653
) ;
650
654
651
655
fmt. trim_end = true ;
652
656
fmt. line_end = "\\ " ;
653
657
let comment = "Vestibulum ac lacus." ;
654
658
assert_eq ! (
655
- rewrite_string( comment, & fmt) ,
659
+ rewrite_string( comment, & fmt, 13 ) ,
656
660
Some ( "Vestibulum\\ \n // ac lacus." . to_string( ) )
657
661
) ;
658
662
}
0 commit comments