diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-09-30 17:25:09 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-09-30 17:25:09 +0200 |
| commit | 7cc279f7ae122f4c40592004dde89792c636b3c8 (patch) | |
| tree | a71d3567950c147d41bfa649ca6cd76edb47cc4f /tests | |
| parent | 3c3730425f0a9a4241c4f57cb7f4d00b71db201e (diff) | |
Replace line/column with byte positions 🔢
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_typeset.rs | 45 |
1 files changed, 26 insertions, 19 deletions
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(); |
