From 4a60f26a229c7d1f384e2bd2570d0b6a3ee1f1c6 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin Date: Mon, 31 Mar 2025 00:46:09 +0800 Subject: [PATCH] Precisely find label definition --- crates/typst-ide/src/definition.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/typst-ide/src/definition.rs b/crates/typst-ide/src/definition.rs index a54329892..1ba198b02 100644 --- a/crates/typst-ide/src/definition.rs +++ b/crates/typst-ide/src/definition.rs @@ -75,7 +75,10 @@ pub fn definition( let label = Label::new(PicoStr::intern(node.cast::()?.target())); let selector = Selector::Label(label); let elem = document?.introspector.query_first(&selector)?; - return Some(Definition::Span(elem.span())); + let labelled_at = elem.labelled_at().or(elem.span()); + if !labelled_at.is_detached() { + return Some(Definition::Span(labelled_at)); + } } _ => {}