diff options
Diffstat (limited to 'support/texlab/crates/parser')
3 files changed, 31 insertions, 1 deletions
diff --git a/support/texlab/crates/parser/src/bibtex.rs b/support/texlab/crates/parser/src/bibtex.rs index 193203016e..d74254b2c5 100644 --- a/support/texlab/crates/parser/src/bibtex.rs +++ b/support/texlab/crates/parser/src/bibtex.rs @@ -181,7 +181,9 @@ fn accent(mut ptr: TokenPtr<ContentToken>) -> TokenPtr<ContentToken> { ptr.expect(ContentToken::Whitespace); } - ptr.expect(ContentToken::Word); + if ptr.at(ContentToken::Word) || ptr.at(ContentToken::CommandName) { + ptr.bump(); + } if group { ptr.expect(ContentToken::Whitespace); diff --git a/support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@issue_945.txt.snap b/support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@issue_945.txt.snap new file mode 100644 index 0000000000..11a2955b1c --- /dev/null +++ b/support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@issue_945.txt.snap @@ -0,0 +1,27 @@ +--- +source: crates/parser/src/bibtex.rs +expression: root +input_file: crates/parser/src/test_data/bibtex/issue_945.txt +--- +ROOT@0..33 + ENTRY@0..33 + TYPE@0..8 "@article" + L_DELIM@8..9 "{" + NAME@9..13 "test" + COMMA@13..14 "," + WHITESPACE@14..15 " " + FIELD@15..32 + NAME@15..21 "author" + WHITESPACE@21..22 " " + EQ@22..23 "=" + WHITESPACE@23..24 " " + CURLY_GROUP@24..32 + L_CURLY@24..25 "{" + ACCENT@25..31 + ACCENT_NAME@25..27 "\\\"" + L_CURLY@27..28 "{" + COMMAND_NAME@28..30 "\\i" + R_CURLY@30..31 "}" + R_CURLY@31..32 "}" + R_DELIM@32..33 "}" + diff --git a/support/texlab/crates/parser/src/test_data/bibtex/issue_945.txt b/support/texlab/crates/parser/src/test_data/bibtex/issue_945.txt new file mode 100644 index 0000000000..e50835d51f --- /dev/null +++ b/support/texlab/crates/parser/src/test_data/bibtex/issue_945.txt @@ -0,0 +1 @@ +@article{test, author = {\"{\i}}}
\ No newline at end of file |