1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0">
4 <dict>
5 <key>name</key>
6 <string>Lua</string>
7 <key>scopeName</key>
8 <string>source.lua</string>
9 <key>patterns</key>
10 <array>
11 <dict>
12 <key>begin</key>
13 <string>\b(?:(local)\s+)?(function)\b(?![,:])</string>
14 <key>beginCaptures</key>
15 <dict>
16 <key>1</key>
17 <dict>
18 <key>name</key>
19 <string>keyword.local.lua</string>
20 </dict>
21 <key>2</key>
22 <dict>
23 <key>name</key>
24 <string>keyword.control.lua</string>
25 </dict>
26 </dict>
27 <key>end</key>
28 <string>(?&lt;=[\)\-{}\[\]"'])</string>
29 <key>name</key>
30 <string>meta.function.lua</string>
31 <key>patterns</key>
32 <array>
33 <dict>
34 <key>include</key>
35 <string>#comment</string>
36 </dict>
37 <dict>
38 <key>begin</key>
39 <string>(\()</string>
40 <key>beginCaptures</key>
41 <dict>
42 <key>1</key>
43 <dict>
44 <key>name</key>
45 <string>punctuation.definition.parameters.begin.lua</string>
46 </dict>
47 </dict>
48 <key>end</key>
49 <string>(\))|(?=[\-\.{}\[\]"'])</string>
50 <key>endCaptures</key>
51 <dict>
52 <key>1</key>
53 <dict>
54 <key>name</key>
55 <string>punctuation.definition.parameters.finish.lua</string>
56 </dict>
57 </dict>
58 <key>name</key>
59 <string>meta.parameter.lua</string>
60 <key>patterns</key>
61 <array>
62 <dict>
63 <key>include</key>
64 <string>#comment</string>
65 </dict>
66 <dict>
67 <key>match</key>
68 <string>[a-zA-Z_][a-zA-Z0-9_]*</string>
69 <key>name</key>
70 <string>variable.parameter.function.lua</string>
71 </dict>
72 <dict>
73 <key>match</key>
74 <string>,</string>
75 <key>name</key>
76 <string>punctuation.separator.arguments.lua</string>
77 </dict>
78 <dict>
79 <key>begin</key>
80 <string>:</string>
81 <key>beginCaptures</key>
82 <dict>
83 <key>0</key>
84 <dict>
85 <key>name</key>
86 <string>punctuation.separator.arguments.lua</string>
87 </dict>
88 </dict>
89 <key>end</key>
90 <string>(?=[\),])</string>
91 <key>patterns</key>
92 <array>
93 <dict>
94 <key>include</key>
95 <string>#emmydoc.type</string>
96 </dict>
97 </array>
98 </dict>
99 </array>
100 </dict>
101 <dict>
102 <key>match</key>
103 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b\s*(?=:)</string>
104 <key>name</key>
105 <string>entity.name.class.lua</string>
106 </dict>
107 <dict>
108 <key>match</key>
109 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b</string>
110 <key>name</key>
111 <string>entity.name.function.lua</string>
112 </dict>
113 </array>
114 </dict>
115 <dict>
116 <key>match</key>
117 <string>(?&lt;![\w\d.])0[xX][0-9A-Fa-f]+(\.[0-9A-Fa-f]*)?([eE]-?\d*)?([pP][-+]\d+)?</string>
118 <key>name</key>
119 <string>constant.numeric.float.hexadecimal.lua</string>
120 </dict>
121 <dict>
122 <key>match</key>
123 <string>(?&lt;![\w\d.])0[xX]\.[0-9A-Fa-f]+([eE]-?\d*)?([pP][-+]\d+)?</string>
124 <key>name</key>
125 <string>constant.numeric.float.hexadecimal.lua</string>
126 </dict>
127 <dict>
128 <key>match</key>
129 <string>(?&lt;![\w\d.])0[xX][0-9A-Fa-f]+(?![pPeE.0-9])</string>
130 <key>name</key>
131 <string>constant.numeric.integer.hexadecimal.lua</string>
132 </dict>
133 <dict>
134 <key>match</key>
135 <string>(?&lt;![\w\d.])\d+(\.\d*)?([eE]-?\d*)?</string>
136 <key>name</key>
137 <string>constant.numeric.float.lua</string>
138 </dict>
139 <dict>
140 <key>match</key>
141 <string>(?&lt;![\w\d.])\.\d+([eE]-?\d*)?</string>
142 <key>name</key>
143 <string>constant.numeric.float.lua</string>
144 </dict>
145 <dict>
146 <key>match</key>
147 <string>(?&lt;![\w\d.])\d+(?![pPeE.0-9])</string>
148 <key>name</key>
149 <string>constant.numeric.integer.lua</string>
150 </dict>
151 <dict>
152 <key>include</key>
153 <string>#string</string>
154 </dict>
155 <dict>
156 <key>captures</key>
157 <dict>
158 <key>1</key>
159 <dict>
160 <key>name</key>
161 <string>punctuation.definition.comment.lua</string>
162 </dict>
163 </dict>
164 <key>match</key>
165 <string>\A(#!).*$\n?</string>
166 <key>name</key>
167 <string>comment.line.shebang.lua</string>
168 </dict>
169 <dict>
170 <key>include</key>
171 <string>#comment</string>
172 </dict>
173 <dict>
174 <key>captures</key>
175 <dict>
176 <key>1</key>
177 <dict>
178 <key>name</key>
179 <string>keyword.control.goto.lua</string>
180 </dict>
181 <key>2</key>
182 <dict>
183 <key>name</key>
184 <string>string.tag.lua</string>
185 </dict>
186 </dict>
187 <key>match</key>
188 <string>\b(goto)\s+([a-zA-Z_][a-zA-Z0-9_]*)</string>
189 </dict>
190 <dict>
191 <key>captures</key>
192 <dict>
193 <key>1</key>
194 <dict>
195 <key>name</key>
196 <string>punctuation.section.embedded.begin.lua</string>
197 </dict>
198 <key>2</key>
199 <dict>
200 <key>name</key>
201 <string>punctuation.section.embedded.end.lua</string>
202 </dict>
203 </dict>
204 <key>match</key>
205 <string>(::)\s*[a-zA-Z_][a-zA-Z0-9_]*\s*(::)</string>
206 <key>name</key>
207 <string>string.tag.lua</string>
208 </dict>
209 <dict>
210 <key>match</key>
211 <string>&lt;\s*(const|close)\s*&gt;</string>
212 <key>captures</key>
213 <dict>
214 <key>0</key>
215 <dict>
216 <key>name</key>
217 <string>storage.type.attribute.lua</string>
218 </dict>
219 </dict>
220 </dict>
221 <dict>
222 <key>match</key>
223 <string>\&lt;[a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*\&gt;</string>
224 <key>name</key>
225 <string>storage.type.generic.lua</string>
226 </dict>
227 <dict>
228 <key>match</key>
229 <string>\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\b</string>
230 <key>name</key>
231 <string>keyword.control.lua</string>
232 </dict>
233 <dict>
234 <key>match</key>
235 <string>\b(local)\b</string>
236 <key>name</key>
237 <string>keyword.local.lua</string>
238 </dict>
239 <dict>
240 <key>match</key>
241 <string>\b(function)\b(?![,:])</string>
242 <key>name</key>
243 <string>keyword.control.lua</string>
244 </dict>
245 <dict>
246 <key>match</key>
247 <string>(?&lt;![^.]\.|:)\b(false|nil(?!:)|true|_ENV|_G|_VERSION|math\.(pi|huge|maxinteger|mininteger)|utf8\.charpattern|io\.(stdin|stdout|stderr)|package\.(config|cpath|loaded|loaders|path|preload|searchers))\b|(?&lt;![.])\.{3}(?!\.)</string>
248 <key>name</key>
249 <string>constant.language.lua</string>
250 </dict>
251 <dict>
252 <key>match</key>
253 <string>(?&lt;![^.]\.|:)\b(self)\b</string>
254 <key>name</key>
255 <string>variable.language.self.lua</string>
256 </dict>
257 <dict>
258 <key>match</key>
259 <string>(?&lt;![^.]\.|:)\b(assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|loadstring|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\b(?!\s*=(?!=))</string>
260 <key>name</key>
261 <string>support.function.lua</string>
262 </dict>
263 <dict>
264 <key>match</key>
265 <string>(?&lt;![^.]\.|:)\b(async)\b(?!\s*=(?!=))</string>
266 <key>name</key>
267 <string>entity.name.tag.lua</string>
268 </dict>
269 <dict>
270 <key>match</key>
271 <string>(?&lt;![^.]\.|:)\b(coroutine\.(create|isyieldable|close|resume|running|status|wrap|yield)|string\.(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)|table\.(concat|insert|maxn|move|pack|remove|sort|unpack)|math\.(abs|acos|asin|atan2?|ceil|cosh?|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pow|rad|random|randomseed|sinh?|sqrt|tanh?|tointeger|type)|io\.(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|os\.(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(loadlib|seeall|searchpath)|debug\.(debug|[gs]etfenv|[gs]ethook|getinfo|[gs]etlocal|[gs]etmetatable|getregistry|[gs]etupvalue|[gs]etuservalue|set[Cc]stacklimit|traceback|upvalueid|upvaluejoin)|bit32\.(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)|utf8\.(char|codes|codepoint|len|offset))\b(?!\s*=(?!=))</string>
272 <key>name</key>
273 <string>support.function.library.lua</string>
274 </dict>
275 <dict>
276 <key>match</key>
277 <string>\b(and|or|not|\|\||\&amp;\&amp;|\!)\b</string>
278 <key>name</key>
279 <string>keyword.operator.lua</string>
280 </dict>
281 <dict>
282 <key>match</key>
283 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?=\s*(?:[({"']|\[\[))</string>
284 <key>name</key>
285 <string>support.function.any-method.lua</string>
286 </dict>
287 <dict>
288 <key>match</key>
289 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?=\s*\??:)</string>
290 <key>name</key>
291 <string>entity.name.class.lua</string>
292 </dict>
293 <dict>
294 <key>match</key>
295 <string>(?&lt;=[^.]\.|:)\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?!\s*=\s*\b(function)\b)</string>
296 <key>name</key>
297 <string>entity.other.attribute.lua</string>
298 </dict>
299 <dict>
300 <key>match</key>
301 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?!\s*=\s*\b(function)\b)</string>
302 <key>name</key>
303 <string>variable.other.lua</string>
304 </dict>
305 <dict>
306 <key>match</key>
307 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?=\s*=\s*\b(function)\b)</string>
308 <key>name</key>
309 <string>entity.name.function.lua</string>
310 </dict>
311 <dict>
312 <key>match</key>
313 <string>\+|-|%|#|\*|\/|\^|==?|~=|!=|&lt;=?|&gt;=?|(?&lt;!\.)\.{2}(?!\.)</string>
314 <key>name</key>
315 <string>keyword.operator.lua</string>
316 </dict>
317 </array>
318 <key>repository</key>
319 <dict>
320 <key>escaped_char</key>
321 <dict>
322 <key>patterns</key>
323 <array>
324 <dict>
325 <key>match</key>
326 <string>\\[abfnrtv\\"'\n]</string>
327 <key>name</key>
328 <string>constant.character.escape.lua</string>
329 </dict>
330 <dict>
331 <key>match</key>
332 <string>\\z[\n\t ]*</string>
333 <key>name</key>
334 <string>constant.character.escape.lua</string>
335 </dict>
336 <dict>
337 <key>match</key>
338 <string>\\\d{1,3}</string>
339 <key>name</key>
340 <string>constant.character.escape.byte.lua</string>
341 </dict>
342 <dict>
343 <key>match</key>
344 <string>\\x[0-9A-Fa-f][0-9A-Fa-f]</string>
345 <key>name</key>
346 <string>constant.character.escape.byte.lua</string>
347 </dict>
348 <dict>
349 <key>match</key>
350 <string>\\u\{[0-9A-Fa-f]+\}</string>
351 <key>name</key>
352 <string>constant.character.escape.unicode.lua</string>
353 </dict>
354 <dict>
355 <key>match</key>
356 <string>\\.</string>
357 <key>name</key>
358 <string>invalid.illegal.character.escape.lua</string>
359 </dict>
360 </array>
361 </dict>
362 <key>string</key>
363 <dict>
364 <key>patterns</key>
365 <array>
366 <dict>
367 <key>begin</key>
368 <string>'</string>
369 <key>beginCaptures</key>
370 <dict>
371 <key>0</key>
372 <dict>
373 <key>name</key>
374 <string>punctuation.definition.string.begin.lua</string>
375 </dict>
376 </dict>
377 <key>end</key>
378 <string>'[ \t]*|(?=\n)</string>
379 <key>endCaptures</key>
380 <dict>
381 <key>0</key>
382 <dict>
383 <key>name</key>
384 <string>punctuation.definition.string.end.lua</string>
385 </dict>
386 </dict>
387 <key>name</key>
388 <string>string.quoted.single.lua</string>
389 <key>patterns</key>
390 <array>
391 <dict>
392 <key>include</key>
393 <string>#escaped_char</string>
394 </dict>
395 </array>
396 </dict>
397 <dict>
398 <key>begin</key>
399 <string>"</string>
400 <key>beginCaptures</key>
401 <dict>
402 <key>0</key>
403 <dict>
404 <key>name</key>
405 <string>punctuation.definition.string.begin.lua</string>
406 </dict>
407 </dict>
408 <key>end</key>
409 <string>"[ \t]*|(?=\n)</string>
410 <key>endCaptures</key>
411 <dict>
412 <key>0</key>
413 <dict>
414 <key>name</key>
415 <string>punctuation.definition.string.end.lua</string>
416 </dict>
417 </dict>
418 <key>name</key>
419 <string>string.quoted.double.lua</string>
420 <key>patterns</key>
421 <array>
422 <dict>
423 <key>include</key>
424 <string>#escaped_char</string>
425 </dict>
426 </array>
427 </dict>
428 <dict>
429 <key>begin</key>
430 <string>`</string>
431 <key>beginCaptures</key>
432 <dict>
433 <key>0</key>
434 <dict>
435 <key>name</key>
436 <string>punctuation.definition.string.begin.lua</string>
437 </dict>
438 </dict>
439 <key>end</key>
440 <string>`[ \t]*|(?=\n)</string>
441 <key>endCaptures</key>
442 <dict>
443 <key>0</key>
444 <dict>
445 <key>name</key>
446 <string>punctuation.definition.string.end.lua</string>
447 </dict>
448 </dict>
449 <key>name</key>
450 <string>string.quoted.double.lua</string>
451 </dict>
452 <dict>
453 <key>begin</key>
454 <string>(?&lt;=\.cdef)\s*(\[(=*)\[)</string>
455 <key>beginCaptures</key>
456 <dict>
457 <key>0</key>
458 <dict>
459 <key>name</key>
460 <string>string.quoted.other.multiline.lua</string>
461 </dict>
462 <key>1</key>
463 <dict>
464 <key>name</key>
465 <string>punctuation.definition.string.begin.lua</string>
466 </dict>
467 </dict>
468 <key>contentName</key>
469 <string>meta.embedded.lua</string>
470 <key>end</key>
471 <string>(\]\2\])[ \t]*</string>
472 <key>endCaptures</key>
473 <dict>
474 <key>0</key>
475 <dict>
476 <key>name</key>
477 <string>string.quoted.other.multiline.lua</string>
478 </dict>
479 <key>1</key>
480 <dict>
481 <key>name</key>
482 <string>punctuation.definition.string.end.lua</string>
483 </dict>
484 </dict>
485 <key>patterns</key>
486 <array>
487 <dict>
488 <key>include</key>
489 <string>source.c</string>
490 </dict>
491 </array>
492 </dict>
493 <dict>
494 <key>begin</key>
495 <string>(?&lt;!--)\[(=*)\[</string>
496 <key>beginCaptures</key>
497 <dict>
498 <key>0</key>
499 <dict>
500 <key>name</key>
501 <string>punctuation.definition.string.begin.lua</string>
502 </dict>
503 </dict>
504 <key>end</key>
505 <string>\]\1\][ \t]*</string>
506 <key>endCaptures</key>
507 <dict>
508 <key>0</key>
509 <dict>
510 <key>name</key>
511 <string>punctuation.definition.string.end.lua</string>
512 </dict>
513 </dict>
514 <key>name</key>
515 <string>string.quoted.other.multiline.lua</string>
516 </dict>
517 </array>
518 </dict>
519 <key>comment</key>
520 <dict>
521 <key>patterns</key>
522 <array>
523 <dict>
524 <key>begin</key>
525 <string>(^[ \t]+)?(?=--)</string>
526 <key>beginCaptures</key>
527 <dict>
528 <key>1</key>
529 <dict>
530 <key>name</key>
531 <string>punctuation.whitespace.comment.leading.lua</string>
532 </dict>
533 </dict>
534 <key>end</key>
535 <string>(?!\G)((?!^)[ \t]+\n)?</string>
536 <key>endCaptures</key>
537 <dict>
538 <key>1</key>
539 <dict>
540 <key>name</key>
541 <string>punctuation.whitespace.comment.trailing.lua</string>
542 </dict>
543 </dict>
544 <key>patterns</key>
545 <array>
546 <dict>
547 <key>begin</key>
548 <string>--\[(=*)\[@@@</string>
549 <key>beginCaptures</key>
550 <dict>
551 <key>0</key>
552 <dict>
553 <key>name</key>
554 <string>punctuation.definition.comment.begin.lua</string>
555 </dict>
556 </dict>
557 <key>end</key>
558 <string>(--)?\]\1\]</string>
559 <key>endCaptures</key>
560 <dict>
561 <key>0</key>
562 <dict>
563 <key>name</key>
564 <string>punctuation.definition.comment.end.lua</string>
565 </dict>
566 </dict>
567 <key>name</key>
568 <string/>
569 <key>patterns</key>
570 <array>
571 <dict>
572 <key>include</key>
573 <string>source.lua</string>
574 </dict>
575 </array>
576 </dict>
577 <dict>
578 <key>begin</key>
579 <string>--\[(=*)\[</string>
580 <key>beginCaptures</key>
581 <dict>
582 <key>0</key>
583 <dict>
584 <key>name</key>
585 <string>punctuation.definition.comment.begin.lua</string>
586 </dict>
587 </dict>
588 <key>end</key>
589 <string>(--)?\]\1\]</string>
590 <key>endCaptures</key>
591 <dict>
592 <key>0</key>
593 <dict>
594 <key>name</key>
595 <string>punctuation.definition.comment.end.lua</string>
596 </dict>
597 </dict>
598 <key>name</key>
599 <string>comment.block.lua</string>
600 <key>patterns</key>
601 <array>
602 <dict>
603 <key>include</key>
604 <string>#emmydoc</string>
605 </dict>
606 <dict>
607 <key>include</key>
608 <string>#ldoc_tag</string>
609 </dict>
610 </array>
611 </dict>
612 <dict>
613 <key>begin</key>
614 <string>----</string>
615 <key>beginCaptures</key>
616 <dict>
617 <key>0</key>
618 <dict>
619 <key>name</key>
620 <string>punctuation.definition.comment.lua</string>
621 </dict>
622 </dict>
623 <key>end</key>
624 <string>\n</string>
625 <key>name</key>
626 <string>comment.line.double-dash.lua</string>
627 </dict>
628 <dict>
629 <key>begin</key>
630 <string>---</string>
631 <key>beginCaptures</key>
632 <dict>
633 <key>0</key>
634 <dict>
635 <key>name</key>
636 <string>punctuation.definition.comment.lua</string>
637 </dict>
638 </dict>
639 <key>end</key>
640 <string>\n</string>
641 <key>name</key>
642 <string>comment.line.double-dash.documentation.lua</string>
643 <key>patterns</key>
644 <array>
645 <dict>
646 <key>include</key>
647 <string>#emmydoc</string>
648 </dict>
649 <dict>
650 <key>include</key>
651 <string>#ldoc_tag</string>
652 </dict>
653 </array>
654 </dict>
655 <dict>
656 <key>begin</key>
657 <string>--</string>
658 <key>beginCaptures</key>
659 <dict>
660 <key>0</key>
661 <dict>
662 <key>name</key>
663 <string>punctuation.definition.comment.lua</string>
664 </dict>
665 </dict>
666 <key>end</key>
667 <string>\n</string>
668 <key>name</key>
669 <string>comment.line.double-dash.lua</string>
670 <key>patterns</key>
671 <array>
672 <dict>
673 <key>include</key>
674 <string>#ldoc_tag</string>
675 </dict>
676 </array>
677 </dict>
678 </array>
679 </dict>
680 <dict>
681 <key>begin</key>
682 <string>\/\*</string>
683 <key>beginCaptures</key>
684 <dict>
685 <key>0</key>
686 <dict>
687 <key>name</key>
688 <string>punctuation.definition.comment.begin.lua</string>
689 </dict>
690 </dict>
691 <key>end</key>
692 <string>\*\/</string>
693 <key>endCaptures</key>
694 <dict>
695 <key>0</key>
696 <dict>
697 <key>name</key>
698 <string>punctuation.definition.comment.end.lua</string>
699 </dict>
700 </dict>
701 <key>name</key>
702 <string>comment.block.lua</string>
703 <key>patterns</key>
704 <array>
705 <dict>
706 <key>include</key>
707 <string>#emmydoc</string>
708 </dict>
709 <dict>
710 <key>include</key>
711 <string>#ldoc_tag</string>
712 </dict>
713 </array>
714 </dict>
715 </array>
716 </dict>
717 <key>emmydoc</key>
718 <dict>
719 <key>patterns</key>
720 <array>
721 <dict>
722 <key>begin</key>
723 <string>(?&lt;=---)[ \t]*@class</string>
724 <key>beginCaptures</key>
725 <dict>
726 <key>0</key>
727 <dict>
728 <key>name</key>
729 <string>storage.type.annotation.lua</string>
730 </dict>
731 </dict>
732 <key>end</key>
733 <string>(?=[\n@#])</string>
734 <key>patterns</key>
735 <array>
736 <dict>
737 <key>match</key>
738 <string>\b([a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*)</string>
739 <key>name</key>
740 <string>support.class.lua</string>
741 </dict>
742 <dict>
743 <key>match</key>
744 <string>:|,</string>
745 <key>name</key>
746 <string>keyword.operator.lua</string>
747 </dict>
748 </array>
749 </dict>
750 <dict>
751 <key>begin</key>
752 <string>(?&lt;=---)[ \t]*@enum</string>
753 <key>beginCaptures</key>
754 <dict>
755 <key>0</key>
756 <dict>
757 <key>name</key>
758 <string>storage.type.annotation.lua</string>
759 </dict>
760 </dict>
761 <key>end</key>
762 <string>(?=[\n@#])</string>
763 <key>patterns</key>
764 <array>
765 <dict>
766 <key>begin</key>
767 <string>\b([a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*)</string>
768 <key>beginCaptures</key>
769 <dict>
770 <key>0</key>
771 <dict>
772 <key>name</key>
773 <string>variable.lua</string>
774 </dict>
775 </dict>
776 <key>end</key>
777 <string>(?=\n)</string>
778 </dict>
779 </array>
780 </dict>
781 <dict>
782 <key>begin</key>
783 <string>(?&lt;=---)[ \t]*@type</string>
784 <key>beginCaptures</key>
785 <dict>
786 <key>0</key>
787 <dict>
788 <key>name</key>
789 <string>storage.type.annotation.lua</string>
790 </dict>
791 </dict>
792 <key>end</key>
793 <string>(?=[\n@#])</string>
794 <key>patterns</key>
795 <array>
796 <dict>
797 <key>include</key>
798 <string>#emmydoc.type</string>
799 </dict>
800 </array>
801 </dict>
802 <dict>
803 <key>begin</key>
804 <string>(?&lt;=---)[ \t]*@alias</string>
805 <key>beginCaptures</key>
806 <dict>
807 <key>0</key>
808 <dict>
809 <key>name</key>
810 <string>storage.type.annotation.lua</string>
811 </dict>
812 </dict>
813 <key>end</key>
814 <string>(?=[\n@#])</string>
815 <key>patterns</key>
816 <array>
817 <dict>
818 <key>begin</key>
819 <string>\b([a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*)</string>
820 <key>beginCaptures</key>
821 <dict>
822 <key>0</key>
823 <dict>
824 <key>name</key>
825 <string>variable.lua</string>
826 </dict>
827 </dict>
828 <key>end</key>
829 <string>(?=[\n#])</string>
830 <key>patterns</key>
831 <array>
832 <dict>
833 <key>include</key>
834 <string>#emmydoc.type</string>
835 </dict>
836 </array>
837 </dict>
838 </array>
839 </dict>
840 <dict>
841 <key>begin</key>
842 <string>(?&lt;=---)[ \t]*(@operator)\s*(\b[a-z]+)?</string>
843 <key>beginCaptures</key>
844 <dict>
845 <key>1</key>
846 <dict>
847 <key>name</key>
848 <string>storage.type.annotation.lua</string>
849 </dict>
850 <key>2</key>
851 <dict>
852 <key>name</key>
853 <string>support.function.library.lua</string>
854 </dict>
855 </dict>
856 <key>end</key>
857 <string>(?=[\n@#])</string>
858 <key>patterns</key>
859 <array>
860 <dict>
861 <key>include</key>
862 <string>#emmydoc.type</string>
863 </dict>
864 </array>
865 </dict>
866 <dict>
867 <key>begin</key>
868 <string>(?&lt;=---)[ \t]*@cast</string>
869 <key>beginCaptures</key>
870 <dict>
871 <key>0</key>
872 <dict>
873 <key>name</key>
874 <string>storage.type.annotation.lua</string>
875 </dict>
876 </dict>
877 <key>end</key>
878 <string>(?=[\n@#])</string>
879 <key>patterns</key>
880 <array>
881 <dict>
882 <key>begin</key>
883 <string>\b([a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*)</string>
884 <key>beginCaptures</key>
885 <dict>
886 <key>0</key>
887 <dict>
888 <key>name</key>
889 <string>variable.other.lua</string>
890 </dict>
891 </dict>
892 <key>end</key>
893 <string>(?=\n)</string>
894 <key>patterns</key>
895 <array>
896 <dict>
897 <key>include</key>
898 <string>#emmydoc.type</string>
899 </dict>
900 <dict>
901 <key>match</key>
902 <string>([+-|])</string>
903 <key>name</key>
904 <string>keyword.operator.lua</string>
905 </dict>
906 </array>
907 </dict>
908 </array>
909 </dict>
910 <dict>
911 <key>begin</key>
912 <string>(?&lt;=---)[ \t]*@param</string>
913 <key>beginCaptures</key>
914 <dict>
915 <key>0</key>
916 <dict>
917 <key>name</key>
918 <string>storage.type.annotation.lua</string>
919 </dict>
920 </dict>
921 <key>end</key>
922 <string>(?=[\n@#])</string>
923 <key>patterns</key>
924 <array>
925 <dict>
926 <key>begin</key>
927 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b(\??)</string>
928 <key>beginCaptures</key>
929 <dict>
930 <key>1</key>
931 <dict>
932 <key>name</key>
933 <string>entity.name.variable.lua</string>
934 </dict>
935 <key>2</key>
936 <dict>
937 <key>name</key>
938 <string>keyword.operator.lua</string>
939 </dict>
940 </dict>
941 <key>end</key>
942 <string>(?=[\n#])</string>
943 <key>patterns</key>
944 <array>
945 <dict>
946 <key>include</key>
947 <string>#emmydoc.type</string>
948 </dict>
949 </array>
950 </dict>
951 </array>
952 </dict>
953 <dict>
954 <key>begin</key>
955 <string>(?&lt;=---)[ \t]*@return</string>
956 <key>beginCaptures</key>
957 <dict>
958 <key>0</key>
959 <dict>
960 <key>name</key>
961 <string>storage.type.annotation.lua</string>
962 </dict>
963 </dict>
964 <key>end</key>
965 <string>(?=[\n@#])</string>
966 <key>patterns</key>
967 <array>
968 <dict>
969 <key>match</key>
970 <string>\?</string>
971 <key>name</key>
972 <string>keyword.operator.lua</string>
973 </dict>
974 <dict>
975 <key>include</key>
976 <string>#emmydoc.type</string>
977 </dict>
978 </array>
979 </dict>
980 <dict>
981 <key>begin</key>
982 <string>(?&lt;=---)[ \t]*@field</string>
983 <key>beginCaptures</key>
984 <dict>
985 <key>0</key>
986 <dict>
987 <key>name</key>
988 <string>storage.type.annotation.lua</string>
989 </dict>
990 </dict>
991 <key>end</key>
992 <string>(?=[\n@#])</string>
993 <key>patterns</key>
994 <array>
995 <dict>
996 <key>begin</key>
997 <string>(\b([a-zA-Z_][a-zA-Z0-9_]*)\b|(\[))(\??)</string>
998 <key>beginCaptures</key>
999 <dict>
1000 <key>2</key>
1001 <dict>
1002 <key>name</key>
1003 <string>entity.name.variable.lua</string>
1004 </dict>
1005 <key>3</key>
1006 <dict>
1007 <key>name</key>
1008 <string>keyword.operator.lua</string>
1009 </dict>
1010 </dict>
1011 <key>end</key>
1012 <string>(?=[\n#])</string>
1013 <key>patterns</key>
1014 <array>
1015 <dict>
1016 <key>include</key>
1017 <string>#string</string>
1018 </dict>
1019 <dict>
1020 <key>include</key>
1021 <string>#emmydoc.type</string>
1022 </dict>
1023 <dict>
1024 <key>match</key>
1025 <string>\]</string>
1026 <key>name</key>
1027 <string>keyword.operator.lua</string>
1028 </dict>
1029 </array>
1030 </dict>
1031 </array>
1032 </dict>
1033 <dict>
1034 <key>begin</key>
1035 <string>(?&lt;=---)[ \t]*@generic</string>
1036 <key>beginCaptures</key>
1037 <dict>
1038 <key>0</key>
1039 <dict>
1040 <key>name</key>
1041 <string>storage.type.annotation.lua</string>
1042 </dict>
1043 </dict>
1044 <key>end</key>
1045 <string>(?=[\n@#])</string>
1046 <key>patterns</key>
1047 <array>
1048 <dict>
1049 <key>begin</key>
1050 <string>\b([a-zA-Z_][a-zA-Z0-9_]*)\b</string>
1051 <key>beginCaptures</key>
1052 <dict>
1053 <key>0</key>
1054 <dict>
1055 <key>name</key>
1056 <string>storage.type.generic.lua</string>
1057 </dict>
1058 </dict>
1059 <key>end</key>
1060 <string>(?=\n)|(,)</string>
1061 <key>endCaptures</key>
1062 <dict>
1063 <key>0</key>
1064 <dict>
1065 <key>name</key>
1066 <string>keyword.operator.lua</string>
1067 </dict>
1068 </dict>
1069 <key>patterns</key>
1070 <array>
1071 <dict>
1072 <key>match</key>
1073 <string>:</string>
1074 <key>name</key>
1075 <string>keyword.operator.lua</string>
1076 </dict>
1077 <dict>
1078 <key>include</key>
1079 <string>#emmydoc.type</string>
1080 </dict>
1081 </array>
1082 </dict>
1083 </array>
1084 </dict>
1085 <dict>
1086 <key>begin</key>
1087 <string>(?&lt;=---)[ \t]*@vararg</string>
1088 <key>beginCaptures</key>
1089 <dict>
1090 <key>0</key>
1091 <dict>
1092 <key>name</key>
1093 <string>storage.type.annotation.lua</string>
1094 </dict>
1095 </dict>
1096 <key>end</key>
1097 <string>(?=[\n@#])</string>
1098 <key>patterns</key>
1099 <array>
1100 <dict>
1101 <key>include</key>
1102 <string>#emmydoc.type</string>
1103 </dict>
1104 </array>
1105 </dict>
1106 <dict>
1107 <key>begin</key>
1108 <string>(?&lt;=---)[ \t]*@overload</string>
1109 <key>beginCaptures</key>
1110 <dict>
1111 <key>0</key>
1112 <dict>
1113 <key>name</key>
1114 <string>storage.type.annotation.lua</string>
1115 </dict>
1116 </dict>
1117 <key>end</key>
1118 <string>(?=[\n@#])</string>
1119 <key>patterns</key>
1120 <array>
1121 <dict>
1122 <key>include</key>
1123 <string>#emmydoc.type</string>
1124 </dict>
1125 </array>
1126 </dict>
1127 <dict>
1128 <key>begin</key>
1129 <string>(?&lt;=---)[ \t]*@deprecated</string>
1130 <key>beginCaptures</key>
1131 <dict>
1132 <key>0</key>
1133 <dict>
1134 <key>name</key>
1135 <string>storage.type.annotation.lua</string>
1136 </dict>
1137 </dict>
1138 <key>end</key>
1139 <string>(?=[\n@#])</string>
1140 </dict>
1141 <dict>
1142 <key>begin</key>
1143 <string>(?&lt;=---)[ \t]*@meta</string>
1144 <key>beginCaptures</key>
1145 <dict>
1146 <key>0</key>
1147 <dict>
1148 <key>name</key>
1149 <string>storage.type.annotation.lua</string>
1150 </dict>
1151 </dict>
1152 <key>end</key>
1153 <string>(?=[\n@#])</string>
1154 </dict>
1155 <dict>
1156 <key>begin</key>
1157 <string>(?&lt;=---)[ \t]*@private</string>
1158 <key>beginCaptures</key>
1159 <dict>
1160 <key>0</key>
1161 <dict>
1162 <key>name</key>
1163 <string>storage.type.annotation.lua</string>
1164 </dict>
1165 </dict>
1166 <key>end</key>
1167 <string>(?=[\n@#])</string>
1168 </dict>
1169 <dict>
1170 <key>begin</key>
1171 <string>(?&lt;=---)[ \t]*@protected</string>
1172 <key>beginCaptures</key>
1173 <dict>
1174 <key>0</key>
1175 <dict>
1176 <key>name</key>
1177 <string>storage.type.annotation.lua</string>
1178 </dict>
1179 </dict>
1180 <key>end</key>
1181 <string>(?=[\n@#])</string>
1182 </dict>
1183 <dict>
1184 <key>begin</key>
1185 <string>(?&lt;=---)[ \t]*@package</string>
1186 <key>beginCaptures</key>
1187 <dict>
1188 <key>0</key>
1189 <dict>
1190 <key>name</key>
1191 <string>storage.type.annotation.lua</string>
1192 </dict>
1193 </dict>
1194 <key>end</key>
1195 <string>(?=[\n@#])</string>
1196 </dict>
1197 <dict>
1198 <key>begin</key>
1199 <string>(?&lt;=---)[ \t]*@version</string>
1200 <key>beginCaptures</key>
1201 <dict>
1202 <key>0</key>
1203 <dict>
1204 <key>name</key>
1205 <string>storage.type.annotation.lua</string>
1206 </dict>
1207 </dict>
1208 <key>end</key>
1209 <string>(?=[\n@#])</string>
1210 <key>patterns</key>
1211 <array>
1212 <dict>
1213 <key>match</key>
1214 <string>\b(5\.1|5\.2|5\.3|5\.4|JIT)\b</string>
1215 <key>name</key>
1216 <string>support.class.lua</string>
1217 </dict>
1218 <dict>
1219 <key>match</key>
1220 <string>,|\&gt;|\&lt;</string>
1221 <key>name</key>
1222 <string>keyword.operator.lua</string>
1223 </dict>
1224 </array>
1225 </dict>
1226 <dict>
1227 <key>begin</key>
1228 <string>(?&lt;=---)[ \t]*@see</string>
1229 <key>beginCaptures</key>
1230 <dict>
1231 <key>0</key>
1232 <dict>
1233 <key>name</key>
1234 <string>storage.type.annotation.lua</string>
1235 </dict>
1236 </dict>
1237 <key>end</key>
1238 <string>(?=[\n@#])</string>
1239 <key>patterns</key>
1240 <array>
1241 <dict>
1242 <key>match</key>
1243 <string>\b([a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*)</string>
1244 <key>name</key>
1245 <string>support.class.lua</string>
1246 </dict>
1247 <dict>
1248 <key>match</key>
1249 <string>#</string>
1250 <key>name</key>
1251 <string>keyword.operator.lua</string>
1252 </dict>
1253 </array>
1254 </dict>
1255 <dict>
1256 <key>begin</key>
1257 <string>(?&lt;=---)[ \t]*@diagnostic</string>
1258 <key>beginCaptures</key>
1259 <dict>
1260 <key>0</key>
1261 <dict>
1262 <key>name</key>
1263 <string>storage.type.annotation.lua</string>
1264 </dict>
1265 </dict>
1266 <key>end</key>
1267 <string>(?=[\n@#])</string>
1268 <key>patterns</key>
1269 <array>
1270 <dict>
1271 <key>begin</key>
1272 <string>([a-zA-Z_\-0-9]+)[ \t]*(:)?</string>
1273 <key>beginCaptures</key>
1274 <dict>
1275 <key>1</key>
1276 <dict>
1277 <key>name</key>
1278 <string>keyword.other.unit</string>
1279 </dict>
1280 <key>2</key>
1281 <dict>
1282 <key>name</key>
1283 <string>keyword.operator.unit</string>
1284 </dict>
1285 </dict>
1286 <key>end</key>
1287 <string>(?=\n)</string>
1288 <key>patterns</key>
1289 <array>
1290 <dict>
1291 <key>match</key>
1292 <string>\b([a-zA-Z_\*][a-zA-Z0-9_\-]*)</string>
1293 <key>name</key>
1294 <string>support.class.lua</string>
1295 </dict>
1296 <dict>
1297 <key>match</key>
1298 <string>,</string>
1299 <key>name</key>
1300 <string>keyword.operator.lua</string>
1301 </dict>
1302 </array>
1303 </dict>
1304 </array>
1305 </dict>
1306 <dict>
1307 <key>begin</key>
1308 <string>(?&lt;=---)[ \t]*@module</string>
1309 <key>beginCaptures</key>
1310 <dict>
1311 <key>0</key>
1312 <dict>
1313 <key>name</key>
1314 <string>storage.type.annotation.lua</string>
1315 </dict>
1316 </dict>
1317 <key>end</key>
1318 <string>(?=[\n@#])</string>
1319 <key>patterns</key>
1320 <array>
1321 <dict>
1322 <key>include</key>
1323 <string>#string</string>
1324 </dict>
1325 </array>
1326 </dict>
1327 <dict>
1328 <key>match</key>
1329 <string>(?&lt;=---)[ \t]*@(async|nodiscard)</string>
1330 <key>name</key>
1331 <string>storage.type.annotation.lua</string>
1332 </dict>
1333 <dict>
1334 <key>begin</key>
1335 <string>(?&lt;=---)\|\s*[\&gt;\+]?</string>
1336 <key>beginCaptures</key>
1337 <dict>
1338 <key>0</key>
1339 <dict>
1340 <key>name</key>
1341 <string>storage.type.annotation.lua</string>
1342 </dict>
1343 </dict>
1344 <key>end</key>
1345 <string>(?=[\n@#])</string>
1346 <key>patterns</key>
1347 <array>
1348 <dict>
1349 <key>include</key>
1350 <string>#string</string>
1351 </dict>
1352 </array>
1353 </dict>
1354 </array>
1355 </dict>
1356 <key>emmydoc.type</key>
1357 <dict>
1358 <key>patterns</key>
1359 <array>
1360 <dict>
1361 <key>begin</key>
1362 <string>\bfun\b</string>
1363 <key>beginCaptures</key>
1364 <dict>
1365 <key>0</key>
1366 <dict>
1367 <key>name</key>
1368 <string>keyword.control.lua</string>
1369 </dict>
1370 </dict>
1371 <key>end</key>
1372 <string>(?=[\s#])</string>
1373 <key>patterns</key>
1374 <array>
1375 <dict>
1376 <key>match</key>
1377 <string>[\(\),:\?][ \t]*</string>
1378 <key>name</key>
1379 <string>keyword.operator.lua</string>
1380 </dict>
1381 <dict>
1382 <key>match</key>
1383 <string>([a-zA-Z_][a-zA-Z0-9_\.\*\[\]\&lt;\&gt;\,\-]*)(?&lt;!,)[ \t]*(?=\??:)</string>
1384 <key>name</key>
1385 <string>entity.name.variable.lua</string>
1386 </dict>
1387 <dict>
1388 <key>include</key>
1389 <string>#emmydoc.type</string>
1390 </dict>
1391 <dict>
1392 <key>include</key>
1393 <string>#string</string>
1394 </dict>
1395 </array>
1396 </dict>
1397 <dict>
1398 <key>match</key>
1399 <string>\&lt;[a-zA-Z_\*][a-zA-Z0-9_\.\*\-]*\&gt;</string>
1400 <key>name</key>
1401 <string>storage.type.generic.lua</string>
1402 </dict>
1403 <dict>
1404 <key>match</key>
1405 <string>\basync\b</string>
1406 <key>name</key>
1407 <string>entity.name.tag.lua</string>
1408 </dict>
1409 <dict>
1410 <key>match</key>
1411 <string>[\{\}\:\,\?\|\`][ \t]*</string>
1412 <key>name</key>
1413 <string>keyword.operator.lua</string>
1414 </dict>
1415 <dict>
1416 <key>begin</key>
1417 <string>(?=[a-zA-Z_\.\*"'\[])</string>
1418 <key>end</key>
1419 <string>(?=[\s\)\,\?\:\}\|#])</string>
1420 <key>patterns</key>
1421 <array>
1422 <dict>
1423 <key>match</key>
1424 <string>([a-zA-Z0-9_\.\*\[\]\&lt;\&gt;\,\-]+)(?&lt;!,)[ \t]*</string>
1425 <key>name</key>
1426 <string>support.type.lua</string>
1427 </dict>
1428 <dict>
1429 <key>match</key>
1430 <string>(\.\.\.)[ \t]*</string>
1431 <key>name</key>
1432 <string>constant.language.lua</string>
1433 </dict>
1434 <dict>
1435 <key>include</key>
1436 <string>#string</string>
1437 </dict>
1438 </array>
1439 </dict>
1440 </array>
1441 </dict>
1442 <key>ldoc_tag</key>
1443 <dict>
1444 <key>match</key>
1445 <string>\G[ \t]*(@)(alias|annotation|author|charset|class|classmod|comment|constructor|copyright|description|example|export|factory|field|file|fixme|function|include|lfunction|license|local|module|name|param|pragma|private|raise|release|return|script|section|see|set|static|submodule|summary|tfield|thread|tparam|treturn|todo|topic|type|usage|warning|within)\b</string>
1446 <key>captures</key>
1447 <dict>
1448 <key>1</key>
1449 <dict>
1450 <key>name</key>
1451 <string>punctuation.definition.block.tag.ldoc</string>
1452 </dict>
1453 <key>2</key>
1454 <dict>
1455 <key>name</key>
1456 <string>storage.type.class.ldoc</string>
1457 </dict>
1458 </dict>
1459 </dict>
1460 </dict>
1461 </dict>
1462</plist>