-
Notifications
You must be signed in to change notification settings - Fork 8
/
pest.tmLanguage
228 lines (228 loc) · 8.03 KB
/
pest.tmLanguage
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>$schema</key>
<string>https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json</string>
<key>name</key>
<string>Pest</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#keywords</string>
</dict>
<dict>
<key>include</key>
<string>#strings</string>
</dict>
<dict>
<key>include</key>
<string>#tags</string>
</dict>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>include</key>
<string>#multilinecomments</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>keywords</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>keyword.control.pest</string>
<key>match</key>
<string>\b(PUSH|POP|PEEK|POP_ALL|PEEK_ALL)\b</string>
</dict>
<dict>
<key>name</key>
<string>variable.language.implicit.pest</string>
<key>match</key>
<string>\b(WHITESPACE|COMMENT)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.borders.pest</string>
<key>match</key>
<string>\b(SOI|EOI)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.ascii.pest</string>
<key>match</key>
<string>\b(NEWLINE|ASCII_DIGIT|ASCII_NONZERO_DIGIT|ASCII_BIN_DIGIT|ASCII_OCT_DIGIT|ASCII_HEX_DIGIT|ASCII_ALPHA_LOWER|ASCII_ALPHA_UPPER|ASCII_ALPHA|ASCII_ALPHANUMERIC)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.letter.pest</string>
<key>match</key>
<string>\b(ANY|LETTER|CASED_LETTER|UPPERCASE_LETTER|LOWERCASE_LETTER|TITLECASE_LETTER|MODIFIER_LETTER|OTHER_LETTER)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.mark.pest</string>
<key>match</key>
<string>\b(MARK|COMBINING_SPACING_MARK|ENCLOSING_MARK|NONSPACING_MARK)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.number.pest</string>
<key>match</key>
<string>\b(NUMBER|DECIMAL_NUMBER|LETTER_NUMBER|OTHER_NUMBER)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.punctuation.pest</string>
<key>match</key>
<string>\b(PUNCTUATION|CONNECTOR_PUNCTUATION|DASH_PUNCTUATION|OPEN_PUNCTUATION|CLOSE_PUNCTUATION|INITIAL_PUNCTUATION|FINAL_PUNCTUATION|OTHER_PUNCTUATION)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.symbol.pest</string>
<key>match</key>
<string>\b(SYMBOL|MATH_SYMBOL|CURRENCY_SYMBOL|MODIFIER_SYMBOL|OTHER_SYMBOL)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.separator.pest</string>
<key>match</key>
<string>\b(SEPARATOR|SPACE_SEPARATOR|LINE_SEPARATOR|PARAGRAPH_SEPARATOR)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.other.pest</string>
<key>match</key>
<string>\b(CONTROL|FORMAT|SURROGATE|PRIVATE_USE|UNASSIGNED)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.language.character.unicode.binary.pest</string>
<key>match</key>
<string>\b(ALPHABETIC|BIDI_CONTROL|CASE_IGNORABLE|CASED|CHANGES_WHEN_CASEFOLDED|CHANGES_WHEN_CASEMAPPED|CHANGES_WHEN_LOWERCASED|CHANGES_WHEN_TITLECASED|CHANGES_WHEN_UPPERCASED|DASH|DEFAULT_IGNORABLE_CODE_POINT|DEPRECATED|DIACRITIC|EXTENDER|GRAPHEME_BASE|GRAPHEME_EXTEND|GRAPHEME_LINK|HEX_DIGIT|HYPHEN|IDS_BINARY_OPERATOR|IDS_TRINARY_OPERATOR|ID_CONTINUE|ID_START|IDEOGRAPHIC|JOIN_CONTROL|LOGICAL_ORDER_EXCEPTION|LOWERCASE|MATH|NONCHARACTER_CODE_POINT|OTHER_ALPHABETIC|OTHER_DEFAULT_IGNORABLE_CODE_POINT|OTHER_GRAPHEME_EXTEND|OTHER_ID_CONTINUE|OTHER_ID_START|OTHER_LOWERCASE|OTHER_MATH|OTHER_UPPERCASE|PATTERN_SYNTAX|PATTERN_WHITE_SPACE|PREPENDED_CONCATENATION_MARK|QUOTATION_MARK|RADICAL|REGIONAL_INDICATOR|SENTENCE_TERMINAL|SOFT_DOTTED|TERMINAL_PUNCTUATION|UNIFIED_IDEOGRAPH|UPPERCASE|VARIATION_SELECTOR|WHITE_SPACE|XID_CONTINUE|XID_START)\b</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.pest</string>
<key>match</key>
<string>-|\.\.|!|~|_|@|\$</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.repetition.pest</string>
<key>match</key>
<string>\+|\*|\?|{\s*[0-9]+\s*,\s*}|{\s*,\s*[0-9]+\s*}|{\s*[0-9]+\s*,\s*[0-9]+\s*}</string>
</dict>
<dict>
<key>name</key>
<string>variable.name.pest</string>
<key>match</key>
<string>[A-Za-z_][A-Za-z0-9_]*</string>
</dict>
</array>
</dict>
<key>strings</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>string.quoted.double.pest</string>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#characterescape</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>string.quoted.single.pest</string>
<key>begin</key>
<string>'</string>
<key>end</key>
<string>'</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#characterescape</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>tags</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>entity.name.tag.pest</string>
<key>match</key>
<string>#[A-Za-z_][A-Za-z0-9_]*</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.assignment.pest</string>
<key>match</key>
<string>=</string>
</dict>
</array>
</dict>
<key>comments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>comment.line.pest</string>
<key>match</key>
<string>//.*</string>
</dict>
</array>
</dict>
<key>multilinecomments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>comment.block.pest</string>
<key>begin</key>
<string>/\*</string>
<key>end</key>
<string>\*/</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#multilinecomments</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>characterescape</key>
<dict>
<key>name</key>
<string>constant.character.escape.pest</string>
<key>match</key>
<string>((\\u\{[a-fA-F0-9]{4}\})|(\\.))</string>
</dict>
</dict>
<key>scopeName</key>
<string>source.pest</string>
</dict>
</plist>