summaryrefslogtreecommitdiff
path: root/src/ide/analyze.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-06-26 13:57:21 +0200
committerLaurenz <laurmaedje@gmail.com>2023-06-27 18:40:17 +0200
commit7b92bd7c340d9f9c094ed2fa57912049317d9b20 (patch)
treeb91399526ba94d87309d09d864df2935dd7a4d0a /src/ide/analyze.rs
parent9c7f31870b4e1bf37df79ebbe1df9a56df83d878 (diff)
Basic package management
Diffstat (limited to 'src/ide/analyze.rs')
-rw-r--r--src/ide/analyze.rs20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/ide/analyze.rs b/src/ide/analyze.rs
index ba3a9b78..55ec8281 100644
--- a/src/ide/analyze.rs
+++ b/src/ide/analyze.rs
@@ -1,5 +1,3 @@
-use std::path::PathBuf;
-
use comemo::Track;
use ecow::EcoString;
@@ -7,7 +5,6 @@ use crate::doc::Frame;
use crate::eval::{eval, Module, Route, Tracer, Value};
use crate::model::{Introspector, Label};
use crate::syntax::{ast, LinkedNode, Source, SyntaxKind};
-use crate::util::PathExt;
use crate::World;
/// Try to determine a set of possible values for an expression.
@@ -42,7 +39,7 @@ pub fn analyze_expr(world: &(dyn World + 'static), node: &LinkedNode) -> Vec<Val
world.track(),
route.track(),
tracer.track_mut(),
- world.main(),
+ &world.main(),
)
.and_then(|module| {
typst::model::typeset(
@@ -66,18 +63,11 @@ pub fn analyze_import(
source: &Source,
path: &str,
) -> Option<Module> {
- let full: PathBuf = if let Some(path) = path.strip_prefix('/') {
- world.root().join(path).normalize()
- } else if let Some(dir) = source.path().parent() {
- dir.join(path).normalize()
- } else {
- path.into()
- };
let route = Route::default();
let mut tracer = Tracer::default();
- let id = world.resolve(&full).ok()?;
- let source = world.source(id);
- eval(world.track(), route.track(), tracer.track_mut(), source).ok()
+ let id = source.id().join(path).ok()?;
+ let source = world.source(id).ok()?;
+ eval(world.track(), route.track(), tracer.track_mut(), &source).ok()
}
/// Find all labels and details for them.
@@ -112,7 +102,7 @@ pub fn analyze_labels(
let split = output.len();
// Bibliography keys.
- for (key, detail) in (items.bibliography_keys)(world.track(), introspector.track()) {
+ for (key, detail) in (items.bibliography_keys)(introspector.track()) {
output.push((Label(key), detail));
}