summaryrefslogtreecommitdiff
path: root/support/texlab/src/citation/field/text.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/citation/field/text.rs')
-rw-r--r--support/texlab/src/citation/field/text.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/support/texlab/src/citation/field/text.rs b/support/texlab/src/citation/field/text.rs
index 87119bd47c..9b3a0b02b2 100644
--- a/support/texlab/src/citation/field/text.rs
+++ b/support/texlab/src/citation/field/text.rs
@@ -5,8 +5,8 @@ use rustc_hash::FxHashSet;
use strum::EnumString;
use crate::syntax::bibtex::{
- Accent, Command, CurlyGroup, Field, HasAccentName, HasCommandName, HasName, HasValue, HasWord,
- Join, Literal, QuoteGroup, Root, SyntaxKind::*, SyntaxToken, Value,
+ Accent, Command, CurlyGroup, HasAccentName, HasCommandName, HasName, HasValue, HasWord, Join,
+ Literal, QuoteGroup, Root, SyntaxKind::*, SyntaxToken, Value,
};
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash, EnumString)]
@@ -73,9 +73,9 @@ pub struct TextFieldData {
}
impl TextFieldData {
- pub fn parse(field: &Field) -> Option<Self> {
+ pub fn parse(value: &Value) -> Option<Self> {
let mut builder = TextFieldDataBuilder::default();
- builder.visit_value(&field.value()?)?;
+ builder.visit_value(value)?;
Some(builder.data)
}
}
@@ -90,7 +90,7 @@ impl TextFieldDataBuilder {
fn visit_value(&mut self, value: &Value) -> Option<()> {
match value {
Value::Literal(lit) => {
- self.visit_literal(lit)?;
+ self.visit_literal(lit);
}
Value::CurlyGroup(group) => {
self.visit_curly_group(group)?;
@@ -112,7 +112,7 @@ impl TextFieldDataBuilder {
Some(())
}
- fn visit_literal(&mut self, lit: &Literal) -> Option<()> {
+ fn visit_literal(&mut self, lit: &Literal) {
if lit
.name_token()
.and_then(|name| self.visit_string_reference(&name))
@@ -122,12 +122,10 @@ impl TextFieldDataBuilder {
.text()
.for_each_chunk(|text| self.data.text.push_str(text));
}
-
- Some(())
}
fn visit_string_reference(&mut self, name: &SyntaxToken) -> Option<()> {
- let root = Root::cast(name.ancestors().last()?)?;
+ let root = Root::cast(name.parent_ancestors().last()?)?;
let name = name.text();
let value = root