Wiki

SublimeText: Cobra.tmlanguage

File Cobra.tmlanguage, 8.3 KB (added by BOOMER, 11 years ago)
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0">
4<dict>
5    <key>fileTypes</key>
6    <array>
7        <string>cobra</string>
8    </array>
9    <key>name</key>
10    <string>Cobra</string>
11    <key>patterns</key>
12    <array>
13        <dict>
14            <key>match</key>
15            <string>(#).*$</string>
16            <key>name</key>
17            <string>comment.line.cobra</string>
18        </dict>
19        <dict>
20            <key>match</key>
21            <string>\b(?i:(0x\h*)L?)</string>
22            <key>name</key>
23            <string>constant.numeric.hexadecimal.cobra</string>
24        </dict>
25        <dict>
26            <key>match</key>
27            <string>\b(?i:(0[0-7]+)L?)</string>
28            <key>name</key>
29            <string>constant.numeric.octal.cobra</string>
30        </dict>
31        <dict>
32            <key>match</key>
33            <string>\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^a-zA-Z_])</string>
34            <key>name</key>
35            <string>constant.numeric.float.cobra</string>
36        </dict>
37        <dict>
38            <key>match</key>
39            <string>(?&lt;=[^0-9a-zA-Z_])(?i:(\.\d+(e[\-\+]?\d+)?))</string>
40            <key>name</key>
41            <string>constant.numeric.float.cobra</string>
42        </dict>
43        <dict>
44            <key>match</key>
45            <string>\b(?i:(\d+e[\-\+]?\d+))</string>
46            <key>name</key>
47            <string>constant.numeric.float.cobra</string>
48        </dict>
49        <dict>
50            <key>match</key>
51            <string>\b(?i:([1-9]+[0-9]*|0)L)</string>
52            <key>name</key>
53            <string>constant.numeric.integer.long.decimal.cobra</string>
54        </dict>
55        <dict>
56            <key>match</key>
57            <string>\b([1-9]+[0-9]*|0)</string>
58            <key>name</key>
59            <string>constant.numeric.integer.decimal.cobra</string>
60        </dict>
61        <dict>
62            <key>match</key>
63            <string>\b(branch|on|else|catch|finally|for|if|try|while|break|continue|pass|raise|return|using|yield)\b</string>
64            <key>name</key>
65            <string>keyword.control.cobra</string>
66        </dict>
67        <dict>
68            <key>match</key>
69            <string>\b(and|in|not|or)\b</string>
70            <key>name</key>
71            <string>keyword.operator.logical.cobra</string>
72        </dict>
73        <dict>
74            <key>match</key>
75            <string>\b(as|from|assert|print|var|invariant|is)\b</string>
76            <key>name</key>
77            <string>keyword.other.cobra</string>
78        </dict>
79        <dict>
80            <key>match</key>
81            <string>&lt;\=|&gt;\=|\=\=|&lt;|&gt;|&lt;&gt;</string>
82            <key>name</key>
83            <string>keyword.operator.comparison.cobra</string>
84        </dict>
85        <dict>
86            <key>match</key>
87            <string>\=|\+\=|-\=|\*\=|/\=|//\=|%\=|&amp;\=|\|\=|\^\=|&gt;&gt;\=|&lt;&lt;\=|\*\*\=</string>
88            <key>name</key>
89            <string>keyword.operator.assignment.cobra</string>
90        </dict>
91        <dict>
92            <key>match</key>
93            <string>\+|\-|\*|\*\*|/|//|%|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~</string>
94            <key>name</key>
95            <string>keyword.operator.arithmetic.cobra</string>
96        </dict>
97        <dict>
98            <key>captures</key>
99            <dict>
100                <key>1</key>
101                <dict>
102                    <key>name</key>
103                    <string>keyword.other.namespacing.cobra</string>
104                </dict>
105                <key>2</key>
106                <dict>
107                    <key>name</key>
108                    <string>constant.class.cobra</string>
109                </dict>
110            </dict>
111            <key>match</key>
112            <string>\s*(use|namespace)\s+([a-zA-Z0-9_.]+)$</string>
113        </dict>
114        <dict>
115            <key>match</key>
116            <string>\b(def|cue|get|set|test|ensure|body|require)\b</string>
117            <key>name</key>
118            <string>storage.type.function.cobra</string>
119        </dict>
120        <dict>
121            <key>captures</key>
122            <dict>
123                <key>2</key>
124                <dict>
125                    <key>name</key>
126                    <string>support.type.nillible-marker.cobra</string>
127                </dict>
128            </dict>
129            <key>match</key>
130            <string>\b(nil|bool|char|int|uint|float|decimal|number|dynamic|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\b(\?)?</string>
131            <key>name</key>
132            <string>support.type.primitive.cobra</string>
133        </dict>
134        <dict>
135            <key>match</key>
136            <string>\b(String|List|Dictionary|Set|Stack|Queue|TextWriter|TextReader|StringBuilder)(?:\?)?\s*(&lt;of\s*[a-zA-Z0-9_]+&gt;)\b</string>
137            <key>name</key>
138            <string>support.class.cobra</string>
139        </dict>
140        <dict>
141            <key>include</key>
142            <string>#strings</string>
143        </dict>
144        <dict>
145            <key>begin</key>
146            <string>^\s*(""")</string>
147            <key>end</key>
148            <string>"""\s*$</string>
149            <key>name</key>
150            <string>comment.block.cobra</string>
151        </dict>
152        <dict>
153            <key>captures</key>
154            <dict>
155                <key>1</key>
156                <dict>
157                    <key>name</key>
158                    <string>keyword.operator.declaration.cobra</string>
159                </dict>
160                <key>2</key>
161                <dict>
162                    <key>name</key>
163                    <string>support.private-variable.cobra</string>
164                </dict>
165                <key>3</key>
166                <dict>
167                    <key>name</key>
168                    <string>keyword.operator.specifier.cobra</string>
169                </dict>
170                <key>4</key>
171                <dict>
172                    <key>name</key>
173                    <string>support.other.type.cobra</string>
174                </dict>
175            </dict>
176            <key>match</key>
177            <string>^\s+(var)\s+(_[\w_]+)\s+(as)?(\s+[\w_&lt;&gt;\s?]+)</string>
178        </dict>
179        <dict>
180            <key>captures</key>
181            <dict>
182                <key>1</key>
183                <dict>
184                    <key>name</key>
185                    <string>entity.name.enumeration.cobras</string>
186                </dict>
187            </dict>
188            <key>match</key>
189            <string>\s*(?:enum|interface|struct|mixin)\s+([\w_]+)</string>
190            <key>name</key>
191            <string>keyword.operator.enumeration.cobra</string>
192        </dict>
193        <dict>
194            <key>captures</key>
195            <dict>
196                <key>1</key>
197                <dict>
198                    <key>name</key>
199                    <string>operator.name.is.cobra</string>
200                </dict>
201                <key>2</key>
202                <dict>
203                    <key>name</key>
204                    <string>constant.other.modifier.cobra</string>
205                </dict>
206            </dict>
207            <key>match</key>
208            <string>\s*(is|has)\s+(shared|partial)\s*</string>
209            <key>name</key>
210            <string>keyword.operator.enumeration.cobra</string>
211        </dict>
212        <dict>
213            <key>captures</key>
214            <dict>
215                <key>1</key>
216                <dict>
217                    <key>name</key>
218                    <string>operator.name.is.cobra</string>
219                </dict>
220                <key>2</key>
221                <dict>
222                    <key>name</key>
223                    <string>constant.other.interface.cobra</string>
224                </dict>
225            </dict>
226            <key>match</key>
227            <string>\s*(implements|inherits)\s+([a-zA-Z_][\w_]*)\s*</string>
228            <key>name</key>
229            <string>keyword.operator.enumeration.cobra</string>
230        </dict>
231        <dict>
232            <key>captures</key>
233            <dict>
234                <key>1</key>
235                <dict>
236                    <key>name</key>
237                    <string>keyword.operator.method.cobra</string>
238                </dict>
239                <key>2</key>
240                <dict>
241                    <key>name</key>
242                    <string>entity.name.type.cobra</string>
243                </dict>
244            </dict>
245            <key>match</key>
246            <string>^\s+(def|cue|get|pro|sig)\s+([a-zA-Z_]\w+)</string>
247            <key>name</key>
248            <string>meta.type.method.cobra</string>
249        </dict>
250        <dict>
251            <key>captures</key>
252            <dict>
253                <key>1</key>
254                <dict>
255                    <key>name</key>
256                    <string>keyword.operator.class-definition.cobra</string>
257                </dict>
258                <key>2</key>
259                <dict>
260                    <key>name</key>
261                    <string>entity.name.user-defined-type.cobra</string>
262                </dict>
263            </dict>
264            <key>match</key>
265            <string>^\s*(class)\s+([a-zA-Z_][\w_]*)\s*</string>
266        </dict>
267    </array>
268    <key>repository</key>
269    <dict>
270        <key>escaped-characters</key>
271        <dict>
272            <key>match</key>
273            <string>(\\x[0-9A-F]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)</string>
274            <key>name</key>
275            <string>constant.character.escape.cobra</string>
276        </dict>
277        <key>strings</key>
278        <dict>
279            <key>patterns</key>
280            <array>
281                <dict>
282                    <key>begin</key>
283                    <string>(?&lt;!')r?'(?!')</string>
284                    <key>end</key>
285                    <string>'</string>
286                    <key>name</key>
287                    <string>string.quoted.single.cobra</string>
288                    <key>patterns</key>
289                    <array>
290                        <dict>
291                            <key>include</key>
292                            <string>#escaped-characters</string>
293                        </dict>
294                        <dict>
295                            <key>include</key>
296                            <string>#varsub</string>
297                        </dict>
298                    </array>
299                </dict>
300                <dict>
301                    <key>begin</key>
302                    <string>(?&lt;!")r?"(?!")</string>
303                    <key>end</key>
304                    <string>"</string>
305                    <key>name</key>
306                    <string>string.quoted.double.cobra</string>
307                    <key>patterns</key>
308                    <array>
309                        <dict>
310                            <key>include</key>
311                            <string>#escaped-characters</string>
312                        </dict>
313                        <dict>
314                            <key>include</key>
315                            <string>#varsub</string>
316                        </dict>
317                    </array>
318                </dict>
319            </array>
320        </dict>
321        <key>varsub</key>
322        <dict>
323            <key>match</key>
324            <string>(\[[\w.]+\])</string>
325            <key>name</key>
326            <string>support.other.variable-substitution.cobra</string>
327        </dict>
328    </dict>
329    <key>scopeName</key>
330    <string>source.cobra</string>
331</dict>
332</plist>