diff options
Diffstat (limited to 'support/texlab/src/citation/field/text.rs')
-rw-r--r-- | support/texlab/src/citation/field/text.rs | 16 |
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 |