From b4885930d3b85b1448894cc3b4ed14138b240c47 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin <35292584+Myriad-Dreamin@users.noreply.github.com> Date: Tue, 2 Apr 2024 04:54:49 +0800 Subject: [PATCH] Fix source path resolution in import analysis (#3842) --- crates/typst-ide/src/analyze.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/typst-ide/src/analyze.rs b/crates/typst-ide/src/analyze.rs index 9d67b322d..47214481d 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 { + // 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 { 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) }