summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/layout
diff options
context:
space:
mode:
authorSébastien d'Herbais de Thun <sebastien.d.herbais@gmail.com>2023-11-15 14:49:29 +0100
committerGitHub <noreply@github.com>2023-11-15 14:49:29 +0100
commitf39a8bc01521d55da5296dccef8fb7dd9d3f6327 (patch)
treebb4c1ee2d47e24853ce214d7f2ed2c349b12dd16 /crates/typst-library/src/layout
parentf56813a7789fc176a6008b4bfc48612509ef95cc (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.rs10
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)
}
}