diff options
Diffstat (limited to 'support/texlab/crates/base-db/src/semantics/tex.rs')
-rw-r--r-- | support/texlab/crates/base-db/src/semantics/tex.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/support/texlab/crates/base-db/src/semantics/tex.rs b/support/texlab/crates/base-db/src/semantics/tex.rs index 46c805ba8a..1445ae12e7 100644 --- a/support/texlab/crates/base-db/src/semantics/tex.rs +++ b/support/texlab/crates/base-db/src/semantics/tex.rs @@ -105,6 +105,7 @@ impl Semantics { fn process_label_definition(&mut self, label: latex::LabelDefinition) { let Some(name) = label.name().and_then(|group| group.key()) else { return }; + let full_range = latex::small_range(&label); let mut objects = Vec::new(); for node in label.syntax().ancestors() { if let Some(section) = latex::Section::cast(node.clone()) { @@ -169,27 +170,32 @@ impl Semantics { kind: LabelKind::Definition, name: Span::from(&name), targets: objects, + full_range, }); } fn process_label_reference(&mut self, label: latex::LabelReference) { let Some(name_list) = label.name_list() else { return }; + let full_range = latex::small_range(&label); for name in name_list.keys() { self.labels.push(Label { kind: LabelKind::Reference, name: Span::from(&name), targets: Vec::new(), + full_range, }); } } fn process_label_reference_range(&mut self, label: latex::LabelReferenceRange) { + let full_range = latex::small_range(&label); if let Some(from) = label.from().and_then(|group| group.key()) { self.labels.push(Label { kind: LabelKind::ReferenceRange, name: Span::from(&from), targets: Vec::new(), + full_range, }); } @@ -198,6 +204,7 @@ impl Semantics { kind: LabelKind::ReferenceRange, name: Span::from(&to), targets: Vec::new(), + full_range, }); } } @@ -216,13 +223,11 @@ impl Semantics { fn process_theorem_definition(&mut self, theorem_def: latex::TheoremDefinition) { let Some(name) = theorem_def.name().and_then(|name| name.key()) else { return }; - let Some(description) = theorem_def - .heading() - .and_then(|group| group.content_text()) else { return }; + let Some(heading) = theorem_def.heading() else { return }; self.theorem_definitions.push(TheoremDefinition { name: Span::from(&name), - heading: description, + heading, }); } } @@ -265,6 +270,7 @@ pub struct Label { pub kind: LabelKind, pub name: Span, pub targets: Vec<LabelTarget>, + pub full_range: TextRange, } #[derive(Debug, Clone)] |