diff options
| author | Theo Belaire <theo.belaire@gmail.com> | 2015-05-01 21:13:27 +0200 |
|---|---|---|
| committer | Oliver Schneider <git1984941651981@oli-obk.de> | 2015-06-24 12:25:01 +0200 |
| commit | 599bf45ac9afc309332388fe4bc42a100e3d1586 (patch) | |
| tree | c8fc69c1c3833e685a7b06930501b5c845047b10 /src/libsyntax | |
| parent | e749f724b07121e965120f6974aa0b3fda888944 (diff) | |
| download | rust-599bf45ac9afc309332388fe4bc42a100e3d1586.tar.gz rust-599bf45ac9afc309332388fe4bc42a100e3d1586.zip | |
Indent code past the widest line number
Fixes #11715
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/diagnostic.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index 14dd9978b87..6c2e3dc6330 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -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. |
