summaryrefslogtreecommitdiff
path: root/support/texlab/src/syntax/bibtex/kind.rs
blob: fcb26b69bdbad8bb55bdf4385dcdca2586a4b7eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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)
    }
}