summaryrefslogtreecommitdiff
path: root/support/texlab/src/syntax/bibtex/parser.rs
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-04 03:02:48 +0000
committerNorbert Preining <norbert@preining.info>2021-06-04 03:02:48 +0000
commita5ae129f3aa3a3a0aeaa21c55b75a1d543fe4111 (patch)
treefe5e1e212aec203e668df8581a17374cdde352a1 /support/texlab/src/syntax/bibtex/parser.rs
parentd231c6331f53a048d29c2f847254a9f56d5ee2dd (diff)
CTAN sync 202106040302
Diffstat (limited to 'support/texlab/src/syntax/bibtex/parser.rs')
-rw-r--r--support/texlab/src/syntax/bibtex/parser.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/support/texlab/src/syntax/bibtex/parser.rs b/support/texlab/src/syntax/bibtex/parser.rs
index ffdb1c94a0..6e8c4b3b59 100644
--- a/support/texlab/src/syntax/bibtex/parser.rs
+++ b/support/texlab/src/syntax/bibtex/parser.rs
@@ -174,7 +174,7 @@ impl<'a> Parser<'a> {
self.builder.finish_node();
return;
}
- self.eat();
+ self.key();
while let Some(kind) = self.peek() {
match kind {
@@ -190,6 +190,18 @@ impl<'a> Parser<'a> {
self.builder.finish_node();
}
+ fn key(&mut self) {
+ self.builder.start_node(KEY.into());
+ while self
+ .peek()
+ .filter(|&kind| matches!(kind, WORD | WHITESPACE))
+ .is_some()
+ {
+ self.eat();
+ }
+ self.builder.finish_node();
+ }
+
fn field(&mut self) {
self.builder.start_node(FIELD.into());
self.eat();