diff options
author | Norbert Preining <norbert@preining.info> | 2023-03-13 03:04:43 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-03-13 03:04:43 +0000 |
commit | e3c18c7072eebabaa706008b7fa42c73ec2ff83e (patch) | |
tree | bdd26a908e2baa0a97a38169346e53b9e6e51944 /support/texlab/src/features/inlay_hint/label.rs | |
parent | b3d8df92a44aa1df24a0869d728b45b0baeaa54c (diff) |
CTAN sync 202303130304
Diffstat (limited to 'support/texlab/src/features/inlay_hint/label.rs')
-rw-r--r-- | support/texlab/src/features/inlay_hint/label.rs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/support/texlab/src/features/inlay_hint/label.rs b/support/texlab/src/features/inlay_hint/label.rs index 5654f79bf4..ca52433e7b 100644 --- a/support/texlab/src/features/inlay_hint/label.rs +++ b/support/texlab/src/features/inlay_hint/label.rs @@ -2,7 +2,8 @@ use rowan::TextRange; use crate::{ db::{analysis::label, Document}, - util, Db, + util::{self, label::LabeledObject}, + Db, }; use super::InlayHintBuilder; @@ -23,7 +24,23 @@ pub(super) fn find_hints( .filter(|label| label.range(db).intersect(range).is_some()) { if let Some(rendered) = util::label::render(db, document, label) { - builder.push(label.range(db).end(), rendered.reference(db)); + if let Some(number) = &rendered.number { + let text = match &rendered.object { + LabeledObject::Section { prefix, .. } => { + format!("{} {}", prefix, number.text(db)) + } + LabeledObject::Float { kind, .. } => { + format!("{} {}", kind.as_str(), number.text(db)) + } + LabeledObject::Theorem { kind, .. } => { + format!("{} {}", kind.text(db), number.text(db)) + } + LabeledObject::Equation => format!("Equation ({})", number.text(db)), + LabeledObject::EnumItem => format!("Item {}", number.text(db)), + }; + + builder.push(label.range(db).end(), text); + } } } |