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) }