summaryrefslogtreecommitdiff
path: root/support/texlab/src/features/inlay_hint/label.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/features/inlay_hint/label.rs')
-rw-r--r--support/texlab/src/features/inlay_hint/label.rs21
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);
+ }
}
}