Indent code past the widest line number

Fixes #11715
This commit is contained in:
Theo Belaire 2015-05-01 21:13:27 +02:00 committed by Oliver Schneider
parent e749f724b0
commit 599bf45ac9

View file

@ -594,12 +594,18 @@ fn highlight_lines(err: &mut EmitterWriter,
let display_line_infos = &lines.lines[..display_lines];
let display_line_strings = &line_strings[..display_lines];
// Calculate the widest number to format evenly and fix #11715
assert!(display_line_infos.len() > 0);
let mut max_line_num = display_line_infos[display_line_infos.len() - 1].line_index + 1;
let mut digits = 0;
while max_line_num > 0 { max_line_num /= 10; digits += 1; }
// Print the offending lines
for (line_info, line) in display_line_infos.iter().zip(display_line_strings) {
try!(write!(&mut err.dst, "{}:{} {}\n",
try!(write!(&mut err.dst, "{}:{:>width$} {}\n",
fm.name,
line_info.line_index + 1,
line));
line,
width=digits));
}
// If we elided something, put an ellipsis.