@@ -713,8 +713,7 @@ impl HumanEmitter {
713
713
Style :: LineNumber ,
714
714
) ;
715
715
}
716
- buffer. puts ( line_offset, 0 , & self . maybe_anonymized ( line_index) , Style :: LineNumber ) ;
717
-
716
+ self . draw_line_num ( buffer, line_index, line_offset, width_offset - 3 ) ;
718
717
self . draw_col_separator_no_space ( buffer, line_offset, width_offset - 2 ) ;
719
718
left
720
719
}
@@ -2128,12 +2127,7 @@ impl HumanEmitter {
2128
2127
// Account for a suggestion to completely remove a line(s) with whitespace (#94192).
2129
2128
let line_end = sm. lookup_char_pos ( parts[ 0 ] . span . hi ( ) ) . line ;
2130
2129
for line in line_start..=line_end {
2131
- buffer. puts (
2132
- row_num - 1 + line - line_start,
2133
- 0 ,
2134
- & self . maybe_anonymized ( line) ,
2135
- Style :: LineNumber ,
2136
- ) ;
2130
+ self . draw_line_num ( & mut buffer, line, row_num -1 + line - line_start, max_line_num_len) ;
2137
2131
buffer. puts (
2138
2132
row_num - 1 + line - line_start,
2139
2133
max_line_num_len + 1 ,
@@ -2612,12 +2606,7 @@ impl HumanEmitter {
2612
2606
// For more info: https://github.com/rust-lang/rust/issues/92741
2613
2607
let lines_to_remove = file_lines. lines . iter ( ) . take ( file_lines. lines . len ( ) - 1 ) ;
2614
2608
for ( index, line_to_remove) in lines_to_remove. enumerate ( ) {
2615
- buffer. puts (
2616
- * row_num - 1 ,
2617
- 0 ,
2618
- & self . maybe_anonymized ( line_num + index) ,
2619
- Style :: LineNumber ,
2620
- ) ;
2609
+ self . draw_line_num ( buffer, line_num + index, * row_num - 1 , max_line_num_len) ;
2621
2610
buffer. puts ( * row_num - 1 , max_line_num_len + 1 , "- " , Style :: Removal ) ;
2622
2611
let line = normalize_whitespace (
2623
2612
& file_lines. file . get_line ( line_to_remove. line_index ) . unwrap ( ) ,
@@ -2634,12 +2623,7 @@ impl HumanEmitter {
2634
2623
let last_line_index = file_lines. lines [ file_lines. lines . len ( ) - 1 ] . line_index ;
2635
2624
let last_line = & file_lines. file . get_line ( last_line_index) . unwrap ( ) ;
2636
2625
if last_line != line_to_add {
2637
- buffer. puts (
2638
- * row_num - 1 ,
2639
- 0 ,
2640
- & self . maybe_anonymized ( line_num + file_lines. lines . len ( ) - 1 ) ,
2641
- Style :: LineNumber ,
2642
- ) ;
2626
+ self . draw_line_num ( buffer, line_num + file_lines. lines . len ( ) - 1 , * row_num - 1 , max_line_num_len) ;
2643
2627
buffer. puts ( * row_num - 1 , max_line_num_len + 1 , "- " , Style :: Removal ) ;
2644
2628
buffer. puts (
2645
2629
* row_num - 1 ,
@@ -2661,7 +2645,7 @@ impl HumanEmitter {
2661
2645
// 2 - .await
2662
2646
// |
2663
2647
// *row_num -= 1;
2664
- buffer . puts ( * row_num , 0 , & self . maybe_anonymized ( line_num ) , Style :: LineNumber ) ;
2648
+ self . draw_line_num ( buffer , line_num , * row_num , max_line_num_len ) ;
2665
2649
buffer. puts ( * row_num, max_line_num_len + 1 , "+ " , Style :: Addition ) ;
2666
2650
buffer. append ( * row_num, & normalize_whitespace ( line_to_add) , Style :: NoStyle ) ;
2667
2651
} else {
@@ -2671,7 +2655,7 @@ impl HumanEmitter {
2671
2655
* row_num -= 2 ;
2672
2656
}
2673
2657
} else if is_multiline {
2674
- buffer . puts ( * row_num , 0 , & self . maybe_anonymized ( line_num ) , Style :: LineNumber ) ;
2658
+ self . draw_line_num ( buffer , line_num , * row_num , max_line_num_len ) ;
2675
2659
match & highlight_parts {
2676
2660
[ SubstitutionHighlight { start : 0 , end } ] if * end == line_to_add. len ( ) => {
2677
2661
buffer. puts ( * row_num, max_line_num_len + 1 , "+ " , Style :: Addition ) ;
@@ -2702,11 +2686,11 @@ impl HumanEmitter {
2702
2686
Style :: NoStyle ,
2703
2687
) ;
2704
2688
} else if let DisplaySuggestion :: Add = show_code_change {
2705
- buffer . puts ( * row_num , 0 , & self . maybe_anonymized ( line_num ) , Style :: LineNumber ) ;
2689
+ self . draw_line_num ( buffer , line_num , * row_num , max_line_num_len ) ;
2706
2690
buffer. puts ( * row_num, max_line_num_len + 1 , "+ " , Style :: Addition ) ;
2707
2691
buffer. append ( * row_num, & normalize_whitespace ( line_to_add) , Style :: NoStyle ) ;
2708
2692
} else {
2709
- buffer . puts ( * row_num , 0 , & self . maybe_anonymized ( line_num ) , Style :: LineNumber ) ;
2693
+ self . draw_line_num ( buffer , line_num , * row_num , max_line_num_len ) ;
2710
2694
self . draw_col_separator ( buffer, * row_num, max_line_num_len + 1 ) ;
2711
2695
buffer. append ( * row_num, & normalize_whitespace ( line_to_add) , Style :: NoStyle ) ;
2712
2696
}
@@ -3016,6 +3000,22 @@ impl HumanEmitter {
3016
3000
OutputTheme :: Unicode => "…" ,
3017
3001
}
3018
3002
}
3003
+
3004
+ fn draw_line_num (
3005
+ & self ,
3006
+ buffer : & mut StyledBuffer ,
3007
+ line_num : usize ,
3008
+ line_offset : usize ,
3009
+ max_line_num_len : usize ,
3010
+ ) {
3011
+ let line_num = self . maybe_anonymized ( line_num) ;
3012
+ buffer. puts (
3013
+ line_offset,
3014
+ max_line_num_len. saturating_sub ( str_width ( & line_num) ) ,
3015
+ & line_num,
3016
+ Style :: LineNumber ,
3017
+ ) ;
3018
+ }
3019
3019
}
3020
3020
3021
3021
#[ derive( Debug , Clone , Copy ) ]
0 commit comments