diff --git a/main/main.rs b/main/main.rs index 0d67241c3..65b70d38d 100644 --- a/main/main.rs +++ b/main/main.rs @@ -44,7 +44,22 @@ fn main() { let loader = Rc::new(RefCell::new(loader)); let typesetter = Typesetter::new(loader.clone()); - let layouts = block_on(typesetter.typeset(&src)).output; + let pass = block_on(typesetter.typeset(&src)); + let layouts = pass.output; + + let mut feedback = pass.feedback; + feedback.diagnostics.sort(); + for diagnostic in feedback.diagnostics { + let span = diagnostic.span; + println!( + "{}: {}:{}:{} - {}:{}: {}", + format!("{:?}", diagnostic.v.level).to_lowercase(), + src_path.display(), + span.start.line + 1, span.start.column + 1, + span.end.line + 1, span.end.column + 1, + diagnostic.v.message, + ); + } let file = File::create(&dest_path) .expect("failed to create output file"); diff --git a/tests/test_typeset.rs b/tests/test_typeset.rs index 4d8533935..5bb02dc75 100644 --- a/tests/test_typeset.rs +++ b/tests/test_typeset.rs @@ -3,6 +3,7 @@ use std::env; use std::ffi::OsStr; use std::fs::{self, File}; use std::io::BufWriter; +use std::path::Path; use std::rc::Rc; use fontdock::fs::{FsIndex, FsProvider}; @@ -41,7 +42,7 @@ fn main() { let name = path.file_stem().unwrap().to_string_lossy().to_string(); if filter.matches(&name) { let src = fs::read_to_string(&path).unwrap(); - filtered.push((name, src)); + filtered.push((name, path, src)); } } @@ -72,14 +73,15 @@ fn main() { margins: Value4::with_all(None), }); - for (name, src) in filtered { - test(&name, &src, &mut typesetter, &loader) + for (name, path, src) in filtered { + test(&name, &src, &path, &mut typesetter, &loader) } } fn test( name: &str, src: &str, + path: &Path, typesetter: &mut Typesetter, loader: &SharedFontLoader, ) { @@ -91,9 +93,14 @@ fn test( feedback.diagnostics.sort(); for diagnostic in feedback.diagnostics { + let span = diagnostic.span; println!( - " {:?} {:?}: {}", - diagnostic.v.level, diagnostic.span, diagnostic.v.message, + " {:?}: {}:{}:{} - {}:{}: {}", + diagnostic.v.level, + path.display(), + span.start.line + 1, span.start.column + 1, + span.end.line + 1, span.end.column + 1, + diagnostic.v.message, ); }