From 83f939991583f5c6c2b250ef080e863a7c520e40 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin Date: Mon, 31 Mar 2025 00:52:08 +0800 Subject: [PATCH 1/8] Add tests about label precison --- crates/typst-ide/src/definition.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/typst-ide/src/definition.rs b/crates/typst-ide/src/definition.rs index 69d702b3b..a54329892 100644 --- a/crates/typst-ide/src/definition.rs +++ b/crates/typst-ide/src/definition.rs @@ -182,6 +182,12 @@ mod tests { #[test] fn test_definition_ref() { test("#figure[] See @hi", -2, Side::After).must_be_at("main.typ", 1..9); + let source = + r#"#let test1(body) = figure(body); #test1([Test1]) @fig:test1"#; + test(source, -2, Side::After).must_be_at("main.typ", 19..31); + let source = r#"#let test1(body) = figure(body); #test1([Test1]) @fig:test1 +#let test2(body) = test1(body); #test2([Test2]) ; @fig:test2"#; + test(source, -2, Side::After).must_be_at("main.typ", 19..31); } #[test] From 8a7a4d154d71046df47571c1121f6c8700ebe4a4 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin Date: Mon, 7 Oct 2024 11:55:29 +0800 Subject: [PATCH 2/8] feat: record label position --- crates/typst-eval/src/markup.rs | 2 +- crates/typst-library/src/foundations/content.rs | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/crates/typst-eval/src/markup.rs b/crates/typst-eval/src/markup.rs index 5beefa912..22b413d66 100644 --- a/crates/typst-eval/src/markup.rs +++ b/crates/typst-eval/src/markup.rs @@ -62,7 +62,7 @@ fn eval_markup<'a>( )); } - *elem = std::mem::take(elem).labelled(label); + *elem = std::mem::take(elem).labelled(label, expr.span()); } else { vm.engine.sink.warn(warning!( expr.span(), diff --git a/crates/typst-library/src/foundations/content.rs b/crates/typst-library/src/foundations/content.rs index daf6c2dd9..827c654c8 100644 --- a/crates/typst-library/src/foundations/content.rs +++ b/crates/typst-library/src/foundations/content.rs @@ -82,6 +82,8 @@ pub struct Content { struct Inner { /// An optional label attached to the element. label: Option