Closed
Description
For the sake of people with 80-character terminals, Rust code is limited to 78 characters in width. So why do error messages on 80-character terminals look like this:
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:24:0: 29:1 wa
rning: type, variant, or trait must be camel case
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:24 trait file
search {
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:25 fn sys
root() -> Path;
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:26 fn lib
_search_paths() -> ~[Path];
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:27 fn get
_target_lib_path() -> Path;
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:28 fn get
_target_lib_file_path(file: &Path) -> Path;
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs:29 }
This is a pathological case, but I still manage to hit this frequently even though my term is often well wider than 80 characters.
Here's how Java formats its error messages:
jello.java:3: cannot find symbol
symbol : variable Exception
location: class jello
throw Exception;
^
1 error
Taking inspiration from this, Rust error messages could instead look like:
Warning: type, variant, or trait must be camel case
/home/ben/code/rust-projects/rust/src/rustc/metadata/filesearch.rs 24:0-29:1
trait filesearch {
fn sysroot() -> Path;
fn lib_search_paths() -> ~[Path];
fn get_target_lib_path() -> Path;
fn get_target_lib_file_path(file: &Path) -> Path;
}