diff options
| author | Myriad-Dreamin <35292584+Myriad-Dreamin@users.noreply.github.com> | 2024-04-02 04:54:49 +0800 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2024-05-17 14:27:58 +0200 |
| commit | b4885930d3b85b1448894cc3b4ed14138b240c47 (patch) | |
| tree | b94a09c1e769e24176bb71bfd97fafbf441eecbe | |
| parent | d007df3ecc1e198481ec1000c8953516f317ff91 (diff) | |
Fix source path resolution in import analysis (#3842)
| -rw-r--r-- | crates/typst-ide/src/analyze.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crates/typst-ide/src/analyze.rs b/crates/typst-ide/src/analyze.rs index 9d67b322..47214481 100644 --- a/crates/typst-ide/src/analyze.rs +++ b/crates/typst-ide/src/analyze.rs @@ -50,6 +50,9 @@ pub fn analyze_expr( /// Try to load a module from the current source file. pub fn analyze_import(world: &dyn World, source: &LinkedNode) -> Option<Value> { + // Use span in the node for resolving imports with relative paths. + let source_span = source.span(); + let (source, _) = analyze_expr(world, source).into_iter().next()?; if source.scope().is_some() { return Some(source); @@ -73,7 +76,7 @@ pub fn analyze_import(world: &dyn World, source: &LinkedNode) -> Option<Value> { Scopes::new(Some(world.library())), Span::detached(), ); - typst::eval::import(&mut vm, source, Span::detached(), true) + typst::eval::import(&mut vm, source, source_span, true) .ok() .map(Value::Module) } |
