diff options
Diffstat (limited to 'support/texlab/src/syntax/bibtex/kind.rs')
-rw-r--r-- | support/texlab/src/syntax/bibtex/kind.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/support/texlab/src/syntax/bibtex/kind.rs b/support/texlab/src/syntax/bibtex/kind.rs new file mode 100644 index 0000000000..fcb26b69bd --- /dev/null +++ b/support/texlab/src/syntax/bibtex/kind.rs @@ -0,0 +1,51 @@ +#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash, PartialOrd, Ord)] +#[allow(non_camel_case_types)] +#[repr(u16)] +pub enum SyntaxKind { + ERROR = 0, + MISSING, + + WHITESPACE, + PREAMBLE_TYPE, + STRING_TYPE, + COMMENT_TYPE, + ENTRY_TYPE, + WORD, + L_CURLY, + R_CURLY, + L_PAREN, + R_PAREN, + COMMA, + HASH, + QUOTE, + EQUALITY_SIGN, + COMMAND_NAME, + + JUNK, + PREAMBLE, + STRING, + COMMENT, + ENTRY, + FIELD, + VALUE, + TOKEN, + BRACE_GROUP, + QUOTE_GROUP, + ROOT, +} + +impl SyntaxKind { + pub fn is_type(&self) -> bool { + use SyntaxKind::*; + matches!( + self, + PREAMBLE_TYPE | STRING_TYPE | COMMENT_TYPE | ENTRY_TYPE + ) + } +} + +impl From<SyntaxKind> for cstree::SyntaxKind { + fn from(kind: SyntaxKind) -> Self { + Self(kind as u16) + } +} |