diff options
| author | Sébastien d'Herbais de Thun <sebastien.d.herbais@gmail.com> | 2023-11-30 12:57:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-30 12:57:04 +0100 |
| commit | 5bdec9e1d81f0193e88e136453945481021440e1 (patch) | |
| tree | e054220ee900d5a5ce89830641004d6c0b68fc94 /crates/typst-ide/src/analyze.rs | |
| parent | 79c2d1f29eb0be9d9dfd20f48fa8f54388fada6b (diff) | |
Optimized labels & introspector (#2801)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
Diffstat (limited to 'crates/typst-ide/src/analyze.rs')
| -rw-r--r-- | crates/typst-ide/src/analyze.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/typst-ide/src/analyze.rs b/crates/typst-ide/src/analyze.rs index 8c5117f7..e78f0c12 100644 --- a/crates/typst-ide/src/analyze.rs +++ b/crates/typst-ide/src/analyze.rs @@ -4,8 +4,7 @@ use typst::engine::{Engine, Route}; use typst::eval::{Tracer, Vm}; use typst::foundations::{Label, Scopes, Value}; use typst::introspection::{Introspector, Locator}; -use typst::layout::Frame; -use typst::model::BibliographyElem; +use typst::model::{BibliographyElem, Document}; use typst::syntax::{ast, LinkedNode, Span, SyntaxKind}; use typst::World; @@ -75,12 +74,11 @@ pub fn analyze_import(world: &dyn World, source: &LinkedNode) -> Option<Value> { /// - All labels and descriptions for them, if available /// - A split offset: All labels before this offset belong to nodes, all after /// belong to a bibliography. -pub fn analyze_labels(frames: &[Frame]) -> (Vec<(Label, Option<EcoString>)>, usize) { +pub fn analyze_labels(document: &Document) -> (Vec<(Label, Option<EcoString>)>, usize) { let mut output = vec![]; - let introspector = Introspector::new(frames); // Labels in the document. - for elem in introspector.all() { + for elem in document.introspector.all() { let Some(label) = elem.label() else { continue }; let details = elem .get_by_name("caption") @@ -98,7 +96,7 @@ pub fn analyze_labels(frames: &[Frame]) -> (Vec<(Label, Option<EcoString>)>, usi let split = output.len(); // Bibliography keys. - for (key, detail) in BibliographyElem::keys(introspector.track()) { + for (key, detail) in BibliographyElem::keys(document.introspector.track()) { output.push((Label::new(&key), detail)); } |
