diff options
| author | Sébastien d'Herbais de Thun <sebastien.d.herbais@gmail.com> | 2023-11-15 14:49:29 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-15 14:49:29 +0100 |
| commit | f39a8bc01521d55da5296dccef8fb7dd9d3f6327 (patch) | |
| tree | bb4c1ee2d47e24853ce214d7f2ed2c349b12dd16 /crates/typst-library/src/layout | |
| parent | f56813a7789fc176a6008b4bfc48612509ef95cc (diff) | |
Add span information to realized `ParElem` (#2675)
Diffstat (limited to 'crates/typst-library/src/layout')
| -rw-r--r-- | crates/typst-library/src/layout/mod.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/crates/typst-library/src/layout/mod.rs b/crates/typst-library/src/layout/mod.rs index d31f6841..77e62dd3 100644 --- a/crates/typst-library/src/layout/mod.rs +++ b/crates/typst-library/src/layout/mod.rs @@ -637,7 +637,15 @@ impl<'a> ParBuilder<'a> { fn finish(self) -> (Content, StyleChain<'a>) { let (children, shared) = self.0.finish(); - (ParElem::new(children.to_vec()).pack(), shared) + + // Find the first span that isn't detached. + let span = children + .iter() + .map(|(cnt, _)| cnt.span()) + .find(|span| !span.is_detached()) + .unwrap_or_else(Span::detached); + + (ParElem::new(children.to_vec()).spanned(span).pack(), shared) } } |
