mirror of
https://github.com/typst/typst
synced 2025-05-24 05:55:28 +08:00
Label tooltip
This commit is contained in:
parent
5a6cadefda
commit
e6ad40004b
@ -27,7 +27,7 @@ pub fn tooltip(
|
|||||||
|
|
||||||
named_param_tooltip(world, &leaf)
|
named_param_tooltip(world, &leaf)
|
||||||
.or_else(|| font_tooltip(world, &leaf))
|
.or_else(|| font_tooltip(world, &leaf))
|
||||||
.or_else(|| ref_tooltip(world, frames, &leaf))
|
.or_else(|| label_tooltip(world, frames, &leaf))
|
||||||
.or_else(|| expr_tooltip(world, &leaf))
|
.or_else(|| expr_tooltip(world, &leaf))
|
||||||
.or_else(|| closure_tooltip(&leaf))
|
.or_else(|| closure_tooltip(&leaf))
|
||||||
}
|
}
|
||||||
@ -145,17 +145,18 @@ fn length_tooltip(length: Length) -> Option<Tooltip> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Tooltip for a hovered reference.
|
/// Tooltip for a hovered reference or label.
|
||||||
fn ref_tooltip(
|
fn label_tooltip(
|
||||||
world: &dyn World,
|
world: &dyn World,
|
||||||
frames: &[Frame],
|
frames: &[Frame],
|
||||||
leaf: &LinkedNode,
|
leaf: &LinkedNode,
|
||||||
) -> Option<Tooltip> {
|
) -> Option<Tooltip> {
|
||||||
if leaf.kind() != SyntaxKind::RefMarker {
|
let target = match leaf.kind() {
|
||||||
return None;
|
SyntaxKind::RefMarker => leaf.text().trim_start_matches('@'),
|
||||||
}
|
SyntaxKind::Label => leaf.text().trim_start_matches('<').trim_end_matches('>'),
|
||||||
|
_ => return None,
|
||||||
|
};
|
||||||
|
|
||||||
let target = leaf.text().trim_start_matches('@');
|
|
||||||
for (label, detail) in analyze_labels(world, frames).0 {
|
for (label, detail) in analyze_labels(world, frames).0 {
|
||||||
if label.0 == target {
|
if label.0 == target {
|
||||||
return Some(Tooltip::Text(detail?));
|
return Some(Tooltip::Text(detail?));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user