summaryrefslogtreecommitdiff
path: root/support/texlab/src/syntax/latex/kind.rs
blob: 90b68145a7ce1361762481dbea23b3d3b5ae9f10 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash, PartialOrd, Ord)]
#[allow(non_camel_case_types)]
#[repr(u16)]
pub enum SyntaxKind {
    ERROR = 0,
    MISSING,

    WHITESPACE,
    COMMENT,
    L_CURLY,
    R_CURLY,
    L_BRACK,
    R_BRACK,
    L_PAREN,
    R_PAREN,
    COMMA,
    EQUALITY_SIGN,
    WORD,
    DOLLAR,
    GENERIC_COMMAND_NAME,
    BEGIN_ENVIRONMENT_NAME,
    END_ENVIRONMENT_NAME,
    BEGIN_EQUATION_NAME,
    END_EQUATION_NAME,
    PART_NAME,
    CHAPTER_NAME,
    SECTION_NAME,
    SUBSECTION_NAME,
    SUBSUBSECTION_NAME,
    PARAGRAPH_NAME,
    SUBPARAGRAPH_NAME,
    ENUM_ITEM_NAME,
    CAPTION_NAME,
    CITATION_NAME,
    PACKAGE_INCLUDE_NAME,
    CLASS_INCLUDE_NAME,
    LATEX_INCLUDE_NAME,
    BIBLATEX_INCLUDE_NAME,
    BIBTEX_INCLUDE_NAME,
    GRAPHICS_INCLUDE_NAME,
    SVG_INCLUDE_NAME,
    INKSCAPE_INCLUDE_NAME,
    VERBATIM_INCLUDE_NAME,
    IMPORT_NAME,
    LABEL_DEFINITION_NAME,
    LABEL_REFERENCE_NAME,
    LABEL_REFERENCE_RANGE_NAME,
    LABEL_NUMBER_NAME,
    COMMAND_DEFINITION_NAME,
    MATH_OPERATOR_NAME,
    GLOSSARY_ENTRY_DEFINITION_NAME,
    GLOSSARY_ENTRY_REFERENCE_NAME,
    ACRONYM_DEFINITION_NAME,
    ACRONYM_DECLARATION_NAME,
    ACRONYM_REFERENCE_NAME,
    THEOREM_DEFINITION_NAME,
    COLOR_REFERENCE_NAME,
    COLOR_DEFINITION_NAME,
    COLOR_SET_DEFINITION_NAME,
    TIKZ_LIBRARY_IMPORT_NAME,
    ENVIRONMENT_DEFINIITION_NAME,

    PREAMBLE,
    TEXT,
    KEY,
    VALUE,
    KEY_VALUE_PAIR,
    KEY_VALUE_BODY,
    CURLY_GROUP,
    CURLY_GROUP_WORD,
    CURLY_GROUP_WORD_LIST,
    CURLY_GROUP_COMMAND,
    CURLY_GROUP_KEY_VALUE,
    BRACK_GROUP,
    BRACK_GROUP_WORD,
    BRACK_GROUP_KEY_VALUE,
    PAREN_GROUP,
    MIXED_GROUP,
    GENERIC_COMMAND,
    ENVIRONMENT,
    BEGIN,
    END,
    EQUATION,
    PART,
    CHAPTER,
    SECTION,
    SUBSECTION,
    SUBSUBSECTION,
    PARAGRAPH,
    SUBPARAGRAPH,
    ENUM_ITEM,
    FORMULA,
    CAPTION,
    CITATION,
    PACKAGE_INCLUDE,
    CLASS_INCLUDE,
    LATEX_INCLUDE,
    BIBLATEX_INCLUDE,
    BIBTEX_INCLUDE,
    GRAPHICS_INCLUDE,
    SVG_INCLUDE,
    INKSCAPE_INCLUDE,
    VERBATIM_INCLUDE,
    IMPORT,
    LABEL_DEFINITION,
    LABEL_REFERENCE,
    LABEL_REFERENCE_RANGE,
    LABEL_NUMBER,
    COMMAND_DEFINITION,
    MATH_OPERATOR,
    GLOSSARY_ENTRY_DEFINITION,
    GLOSSARY_ENTRY_REFERENCE,
    ACRONYM_DEFINITION,
    ACRONYM_DECLARATION,
    ACRONYM_REFERENCE,
    THEOREM_DEFINITION,
    COLOR_REFERENCE,
    COLOR_DEFINITION,
    COLOR_SET_DEFINITION,
    TIKZ_LIBRARY_IMPORT,
    ENVIRONMENT_DEFINITION,
    ROOT,
}

impl SyntaxKind {
    pub fn is_command_name(&self) -> bool {
        use SyntaxKind::*;
        matches!(
            self,
            GENERIC_COMMAND_NAME
                | BEGIN_ENVIRONMENT_NAME
                | END_ENVIRONMENT_NAME
                | BEGIN_EQUATION_NAME
                | END_EQUATION_NAME
                | PART_NAME
                | CHAPTER_NAME
                | SECTION_NAME
                | SUBSECTION_NAME
                | SUBSUBSECTION_NAME
                | PARAGRAPH_NAME
                | SUBPARAGRAPH_NAME
                | ENUM_ITEM_NAME
                | CAPTION_NAME
                | CITATION_NAME
                | PACKAGE_INCLUDE_NAME
                | CLASS_INCLUDE_NAME
                | LATEX_INCLUDE_NAME
                | BIBLATEX_INCLUDE_NAME
                | BIBTEX_INCLUDE_NAME
                | GRAPHICS_INCLUDE_NAME
                | SVG_INCLUDE_NAME
                | INKSCAPE_INCLUDE_NAME
                | VERBATIM_INCLUDE_NAME
                | IMPORT_NAME
                | LABEL_DEFINITION_NAME
                | LABEL_REFERENCE_NAME
                | LABEL_REFERENCE_RANGE_NAME
                | LABEL_NUMBER_NAME
                | COMMAND_DEFINITION_NAME
                | MATH_OPERATOR_NAME
                | GLOSSARY_ENTRY_DEFINITION_NAME
                | GLOSSARY_ENTRY_REFERENCE_NAME
                | ACRONYM_DEFINITION_NAME
                | ACRONYM_DECLARATION_NAME
                | ACRONYM_REFERENCE_NAME
                | THEOREM_DEFINITION_NAME
                | COLOR_REFERENCE_NAME
                | COLOR_DEFINITION_NAME
                | COLOR_SET_DEFINITION_NAME
                | TIKZ_LIBRARY_IMPORT_NAME
        )
    }
}

impl From<SyntaxKind> for cstree::SyntaxKind {
    fn from(kind: SyntaxKind) -> Self {
        Self(kind as u16)
    }
}