From 7cc279f7ae122f4c40592004dde89792c636b3c8 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 30 Sep 2020 17:25:09 +0200 Subject: =?UTF-8?q?Replace=20line/column=20with=20byte=20positions=20?= =?UTF-8?q?=F0=9F=94=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_typeset.rs | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) (limited to 'tests') diff --git a/tests/test_typeset.rs b/tests/test_typeset.rs index e9051d10..2c8a093d 100644 --- a/tests/test_typeset.rs +++ b/tests/test_typeset.rs @@ -19,7 +19,8 @@ use typstc::layout::MultiLayout; use typstc::length::Length; use typstc::paper::PaperClass; use typstc::style::PageStyle; -use typstc::Typesetter; +use typstc::syntax::LineMap; +use typstc::{Feedback, Pass, Typesetter}; const TEST_DIR: &str = "tests"; const OUT_DIR: &str = "tests/out"; @@ -79,29 +80,35 @@ fn main() { fn test( name: &str, src: &str, - path: &Path, + src_path: &Path, typesetter: &mut Typesetter, loader: &SharedFontLoader, ) { println!("Testing {}.", name); - let typeset = block_on(typesetter.typeset(src)); - let layouts = typeset.output; - let mut feedback = typeset.feedback; - - feedback.diagnostics.sort(); - for diagnostic in feedback.diagnostics { - let span = diagnostic.span; - println!( - " {:?}: {}:{}:{} - {}:{}: {}", - diagnostic.v.level, - path.display(), - span.start.line + 1, - span.start.column + 1, - span.end.line + 1, - span.end.column + 1, - diagnostic.v.message, - ); + let Pass { + output: layouts, + feedback: Feedback { mut diagnostics, .. }, + } = block_on(typesetter.typeset(&src)); + + if !diagnostics.is_empty() { + diagnostics.sort(); + + let map = LineMap::new(&src); + for diagnostic in diagnostics { + let span = diagnostic.span; + let start = map.location(span.start); + let end = map.location(span.end); + + println!( + " {}: {}:{}-{}: {}", + diagnostic.v.level, + src_path.display(), + start, + end, + diagnostic.v.message, + ); + } } let loader = loader.borrow(); -- cgit v1.2.3