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>fileTypes</key>
6 <array>
7 <string>py</string>
8 <string>py3</string>
9 <string>rpy</string>
10 <string>pyw</string>
11 <string>cpy</string>
12 <string>SConstruct</string>
13 <string>Sconstruct</string>
14 <string>sconstruct</string>
15 <string>SConscript</string>
16 <string>gyp</string>
17 <string>gypi</string>
18 </array>
19 <key>firstLineMatch</key>
20 <string>^#!/.*\bpython[\d\.]*\b</string>
21 <key>keyEquivalent</key>
22 <string>^~P</string>
23 <key>name</key>
24 <string>Python</string>
25 <key>patterns</key>
26 <array>
27 <dict>
28 <key>match</key>
29 <string>(?&lt;!^from\s|^import\s)(\.{3})</string>
30 <key>name</key>
31 <string>support.type.ellipsis.python</string>
32 </dict>
33 <dict>
34 <key>include</key>
35 <string>#comment</string>
36 </dict>
37 <dict>
38 <key>comment</key>
39 <string>Match identifiers in ALL_CAPS as constants, except when followed by `.`, `(`, `'`, or `"`.</string>
40 <key>match</key>
41 <string>\b([[:upper:]_][[:upper:][:digit:]_]*)\b(?![\.\(\'\"])</string>
42 <key>name</key>
43 <string>constant.other.allcaps.python</string>
44 </dict>
45 <dict>
46 <key>match</key>
47 <string>\b(?i:(0x\h+)L)</string>
48 <key>name</key>
49 <string>constant.numeric.integer.hexadecimal.long.python</string>
50 </dict>
51 <dict>
52 <key>match</key>
53 <string>\b(?i:(0x\h+))</string>
54 <key>name</key>
55 <string>constant.numeric.integer.hexadecimal.python</string>
56 </dict>
57 <dict>
58 <key>match</key>
59 <string>\b(?i:(0b[01]+)L)</string>
60 <key>name</key>
61 <string>constant.numeric.integer.binary.long.python</string>
62 </dict>
63 <dict>
64 <key>match</key>
65 <string>\b(?i:(0b[01]+))</string>
66 <key>name</key>
67 <string>constant.numeric.integer.binary.python</string>
68 </dict>
69 <dict>
70 <key>match</key>
71 <string>\b(?i:(0[o]?[0-7]+)L)</string>
72 <key>name</key>
73 <string>constant.numeric.integer.octal.long.python</string>
74 </dict>
75 <dict>
76 <key>match</key>
77 <string>\b(?i:(0[o]?[0-7]+))</string>
78 <key>name</key>
79 <string>constant.numeric.integer.octal.python</string>
80 </dict>
81 <dict>
82 <key>match</key>
83 <string>\b(?i:(((\d+(\.(?=[^[:alpha:]_])\d*)?|(?&lt;=[^[:alnum:]_])\.\d+)(e[\-\+]?\d+)?))J)</string>
84 <key>name</key>
85 <string>constant.numeric.complex.python</string>
86 </dict>
87 <dict>
88 <key>match</key>
89 <string>\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^[:alpha:]_])</string>
90 <key>name</key>
91 <string>constant.numeric.float.python</string>
92 </dict>
93 <dict>
94 <key>match</key>
95 <string>(?&lt;=[^[:alnum:]_])(?i:(\.\d+(e[\-\+]?\d+)?))</string>
96 <key>name</key>
97 <string>constant.numeric.float.python</string>
98 </dict>
99 <dict>
100 <key>match</key>
101 <string>\b(?i:(\d+e[\-\+]?\d+))</string>
102 <key>name</key>
103 <string>constant.numeric.float.python</string>
104 </dict>
105 <dict>
106 <key>match</key>
107 <string>\b(?i:([1-9]+[0-9]*|0)L)</string>
108 <key>name</key>
109 <string>constant.numeric.integer.decimal.long.python</string>
110 </dict>
111 <dict>
112 <key>match</key>
113 <string>\b([1-9]+[0-9]*|0)</string>
114 <key>name</key>
115 <string>constant.numeric.integer.decimal.python</string>
116 </dict>
117 <dict>
118 <key>match</key>
119 <string>\b(None|True|False|Ellipsis|NotImplemented|__debug__)\b</string>
120 <key>name</key>
121 <string>constant.language.python</string>
122 </dict>
123 <dict>
124 <key>match</key>
125 <string>\b(global|nonlocal)\b</string>
126 <key>name</key>
127 <string>storage.modifier.$1.python</string>
128 </dict>
129 <dict>
130 <key>match</key>
131 <string>\b(?:(import|from|as))\b</string>
132 <key>name</key>
133 <string>keyword.control.import.$1.python</string>
134 </dict>
135 <dict>
136 <key>comment</key>
137 <string>keyword operators that evaluate to True or False</string>
138 <key>match</key>
139 <string>\b(and|in|is|not|or)\b</string>
140 <key>name</key>
141 <string>keyword.operator.logical.python</string>
142 </dict>
143 <dict>
144 <key>comment</key>
145 <string>keywords that do not fit into other groups.</string>
146 <key>match</key>
147 <string>\b(assert|del)\b</string>
148 <key>name</key>
149 <string>keyword.other.python</string>
150 </dict>
151 <dict>
152 <key>match</key>
153 <string>&lt;&gt;</string>
154 <key>name</key>
155 <string>invalid.deprecated.operator.python</string>
156 </dict>
157 <dict>
158 <key>match</key>
159 <string>(?&lt;!\.)(apply|buffer|coerce|intern)\s*(?=\()</string>
160 <key>name</key>
161 <string>invalid.deprecated.function.python</string>
162 </dict>
163 <dict>
164 <key>match</key>
165 <string>&lt;\=|&gt;\=|\=\=|&lt;|&gt;|\!\=</string>
166 <key>name</key>
167 <string>keyword.operator.comparison.python</string>
168 </dict>
169 <dict>
170 <key>match</key>
171 <string>\+\=|-\=|\*\=|/\=|//\=|%\=|&amp;\=|\|\=|\^\=|&gt;&gt;\=|&lt;&lt;\=|\*\*\=|@\=</string>
172 <key>name</key>
173 <string>keyword.operator.assignment.augmented.python</string>
174 </dict>
175 <dict>
176 <key>match</key>
177 <string>\+|\-|\*|\*\*|/|//|%|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~|(?!^)@</string>
178 <key>name</key>
179 <string>keyword.operator.arithmetic.python</string>
180 </dict>
181 <dict>
182 <key>match</key>
183 <string>\=</string>
184 <key>name</key>
185 <string>keyword.operator.assignment.python</string>
186 </dict>
187 <dict>
188 <key>begin</key>
189 <string>^\s*(class)\s+(?=[[:alpha:]_][[:alnum:]_]*\s*\:)</string>
190 <key>beginCaptures</key>
191 <dict>
192 <key>1</key>
193 <dict>
194 <key>name</key>
195 <string>storage.type.class.python</string>
196 </dict>
197 </dict>
198 <key>contentName</key>
199 <string>entity.name.type.class.python</string>
200 <key>end</key>
201 <string>\s*(:)</string>
202 <key>endCaptures</key>
203 <dict>
204 <key>1</key>
205 <dict>
206 <key>name</key>
207 <string>punctuation.section.class.begin.python</string>
208 </dict>
209 </dict>
210 <key>name</key>
211 <string>meta.class.old-style.python</string>
212 <key>patterns</key>
213 <array>
214 <dict>
215 <key>include</key>
216 <string>#entity_name_class</string>
217 </dict>
218 </array>
219 </dict>
220 <dict>
221 <key>begin</key>
222 <string>^\s*(class)\s+(?=[[:alpha:]_][[:alnum:]_]*\s*\()</string>
223 <key>beginCaptures</key>
224 <dict>
225 <key>1</key>
226 <dict>
227 <key>name</key>
228 <string>storage.type.class.python</string>
229 </dict>
230 </dict>
231 <key>end</key>
232 <string>(\))\s*(?:(\:)|(.*$\n?))</string>
233 <key>endCaptures</key>
234 <dict>
235 <key>1</key>
236 <dict>
237 <key>name</key>
238 <string>punctuation.definition.inheritance.end.python</string>
239 </dict>
240 <key>2</key>
241 <dict>
242 <key>name</key>
243 <string>punctuation.section.class.begin.python</string>
244 </dict>
245 <key>3</key>
246 <dict>
247 <key>name</key>
248 <string>invalid.illegal.missing-section-begin.python</string>
249 </dict>
250 </dict>
251 <key>name</key>
252 <string>meta.class.python</string>
253 <key>patterns</key>
254 <array>
255 <dict>
256 <key>begin</key>
257 <string>(?=[[:alpha:]_][[:alnum:]_]*)</string>
258 <key>contentName</key>
259 <string>entity.name.type.class.python</string>
260 <key>end</key>
261 <string>(?![[:alnum:]_])</string>
262 <key>patterns</key>
263 <array>
264 <dict>
265 <key>include</key>
266 <string>#entity_name_class</string>
267 </dict>
268 </array>
269 </dict>
270 <dict>
271 <key>begin</key>
272 <string>(\()</string>
273 <key>beginCaptures</key>
274 <dict>
275 <key>1</key>
276 <dict>
277 <key>name</key>
278 <string>punctuation.definition.inheritance.begin.python</string>
279 </dict>
280 </dict>
281 <key>contentName</key>
282 <string>meta.class.inheritance.python</string>
283 <key>end</key>
284 <string>(?=\)|:)</string>
285 <key>patterns</key>
286 <array>
287 <dict>
288 <key>begin</key>
289 <string>(?&lt;=\(|,)\s*</string>
290 <key>contentName</key>
291 <string>entity.other.inherited-class.python</string>
292 <key>end</key>
293 <string>\s*(?:(,)|(?=\)))</string>
294 <key>endCaptures</key>
295 <dict>
296 <key>1</key>
297 <dict>
298 <key>name</key>
299 <string>punctuation.separator.inheritance.python</string>
300 </dict>
301 </dict>
302 <key>patterns</key>
303 <array>
304 <dict>
305 <key>include</key>
306 <string>$self</string>
307 </dict>
308 </array>
309 </dict>
310 </array>
311 </dict>
312 </array>
313 </dict>
314 <dict>
315 <key>begin</key>
316 <string>^\s*(class)\s+(?=[[:alpha:]_][[:alnum:]_]*)</string>
317 <key>beginCaptures</key>
318 <dict>
319 <key>1</key>
320 <dict>
321 <key>name</key>
322 <string>storage.type.class.python</string>
323 </dict>
324 </dict>
325 <key>end</key>
326 <string>(\()|(\s*$\n?|#.*$\n?)</string>
327 <key>endCaptures</key>
328 <dict>
329 <key>1</key>
330 <dict>
331 <key>name</key>
332 <string>punctuation.definition.inheritance.begin.python</string>
333 </dict>
334 <key>2</key>
335 <dict>
336 <key>name</key>
337 <string>invalid.illegal.missing-inheritance.python</string>
338 </dict>
339 </dict>
340 <key>name</key>
341 <string>meta.class.python</string>
342 <key>patterns</key>
343 <array>
344 <dict>
345 <key>begin</key>
346 <string>(?=[[:alpha:]_][[:alnum:]_]*)</string>
347 <key>contentName</key>
348 <string>entity.name.type.class.python</string>
349 <key>end</key>
350 <string>(?![[:alnum:]_])</string>
351 <key>patterns</key>
352 <array>
353 <dict>
354 <key>include</key>
355 <string>#entity_name_function</string>
356 </dict>
357 </array>
358 </dict>
359 </array>
360 </dict>
361 <dict>
362 <key>begin</key>
363 <string>\s*(?:(async)\s+)?(def)\s+(?=[[:alpha:]_][[:alnum:]_]*\s*\()</string>
364 <key>beginCaptures</key>
365 <dict>
366 <key>1</key>
367 <dict>
368 <key>name</key>
369 <string>storage.modifier.async.python</string>
370 </dict>
371 <key>2</key>
372 <dict>
373 <key>name</key>
374 <string>storage.type.function.python</string>
375 </dict>
376 </dict>
377 <key>end</key>
378 <string>(\:)</string>
379 <key>endCaptures</key>
380 <dict>
381 <key>1</key>
382 <dict>
383 <key>name</key>
384 <string>punctuation.section.function.begin.python</string>
385 </dict>
386 </dict>
387 <key>name</key>
388 <string>meta.function.python</string>
389 <key>patterns</key>
390 <array>
391 <dict>
392 <key>begin</key>
393 <string>(?=[[:alpha:]_][[:alnum:]_]*)</string>
394 <key>contentName</key>
395 <string>entity.name.function.python</string>
396 <key>end</key>
397 <string>(?![[:alnum:]_])</string>
398 <key>patterns</key>
399 <array>
400 <dict>
401 <key>include</key>
402 <string>#entity_name_function</string>
403 </dict>
404 </array>
405 </dict>
406 <dict>
407 <key>begin</key>
408 <string>(\()</string>
409 <key>beginCaptures</key>
410 <dict>
411 <key>1</key>
412 <dict>
413 <key>name</key>
414 <string>punctuation.definition.parameters.begin.python</string>
415 </dict>
416 </dict>
417 <key>contentName</key>
418 <string>meta.function.parameters.python</string>
419 <key>end</key>
420 <string>(?=\)\s*(?:\:|-\&gt;))</string>
421 <key>patterns</key>
422 <array>
423 <dict>
424 <key>include</key>
425 <string>#annotated_arguments</string>
426 </dict>
427 <dict>
428 <key>include</key>
429 <string>#keyword_arguments</string>
430 </dict>
431 <dict>
432 <key>include</key>
433 <string>#comment</string>
434 </dict>
435 <dict>
436 <key>captures</key>
437 <dict>
438 <key>1</key>
439 <dict>
440 <key>name</key>
441 <string>variable.parameter.function.language.python</string>
442 </dict>
443 <key>2</key>
444 <dict>
445 <key>name</key>
446 <string>variable.parameter.function.python</string>
447 </dict>
448 <key>3</key>
449 <dict>
450 <key>name</key>
451 <string>punctuation.separator.parameters.python</string>
452 </dict>
453 </dict>
454 <key>match</key>
455 <string>\b(?:(self|cls)|([[:alpha:]_][[:alnum:]_]*))\s*(?:(,)|(?=[\n\)]))</string>
456 </dict>
457 </array>
458 </dict>
459 <dict>
460 <key>begin</key>
461 <string>(\))\s*(\-&gt;)</string>
462 <key>beginCaptures</key>
463 <dict>
464 <key>1</key>
465 <dict>
466 <key>name</key>
467 <string>punctuation.definition.parameters.end.python</string>
468 </dict>
469 <key>2</key>
470 <dict>
471 <key>name</key>
472 <string>punctuation.separator.annotation.result.python</string>
473 </dict>
474 </dict>
475 <key>end</key>
476 <string>(?=\:)</string>
477 <key>patterns</key>
478 <array>
479 <dict>
480 <key>include</key>
481 <string>$self</string>
482 </dict>
483 </array>
484 </dict>
485 </array>
486 </dict>
487 <dict>
488 <key>begin</key>
489 <string>\s*(?:(async)\s+)?(def)\s+(?=[[:alpha:]_][[:alnum:]_]*)</string>
490 <key>beginCaptures</key>
491 <dict>
492 <key>1</key>
493 <dict>
494 <key>name</key>
495 <string>storage.modifier.async.python</string>
496 </dict>
497 <key>2</key>
498 <dict>
499 <key>name</key>
500 <string>storage.type.function.python</string>
501 </dict>
502 </dict>
503 <key>end</key>
504 <string>(\()|\s*($\n?|#.*$\n?)</string>
505 <key>endCaptures</key>
506 <dict>
507 <key>1</key>
508 <dict>
509 <key>name</key>
510 <string>punctuation.definition.parameters.begin.python</string>
511 </dict>
512 <key>2</key>
513 <dict>
514 <key>name</key>
515 <string>invalid.illegal.missing-parameters.python</string>
516 </dict>
517 </dict>
518 <key>name</key>
519 <string>meta.function.python</string>
520 <key>patterns</key>
521 <array>
522 <dict>
523 <key>begin</key>
524 <string>(?=[[:alpha:]_][[:alnum:]_]*)</string>
525 <key>contentName</key>
526 <string>entity.name.function.python</string>
527 <key>end</key>
528 <string>(?![[:alnum:]_])</string>
529 <key>patterns</key>
530 <array>
531 <dict>
532 <key>include</key>
533 <string>#entity_name_function</string>
534 </dict>
535 </array>
536 </dict>
537 </array>
538 </dict>
539 <dict>
540 <key>captures</key>
541 <dict>
542 <key>1</key>
543 <dict>
544 <key>name</key>
545 <string>storage.modifier.async.python</string>
546 </dict>
547 <key>2</key>
548 <dict>
549 <key>name</key>
550 <string>storage.type.function.python</string>
551 </dict>
552 <key>3</key>
553 <dict>
554 <key>name</key>
555 <string>storage.type.function.python</string>
556 </dict>
557 </dict>
558 <key>match</key>
559 <string>\b(?:(?:(async)\s+)?(def)|(lambda))\b</string>
560 </dict>
561 <dict>
562 <key>comment</key>
563 <string>Keywords that delimit flow blocks or alter flow from within a
564 block.
565
566 This block should be matched *after* meta.function.python to
567 let 'async def' be matched *first*.
568 </string>
569 <key>match</key>
570 <string>(?x) \b(
571 async | await | break | continue | elif | else | except | finally | for |
572 if | pass | raise | return | try | while | with |
573 (yield(?:\s+from)?)
574 )\b
575 </string>
576 <key>name</key>
577 <string>keyword.control.flow.python</string>
578 </dict>
579 <dict>
580 <key>begin</key>
581 <string>(lambda)(?=\s+|:)</string>
582 <key>beginCaptures</key>
583 <dict>
584 <key>1</key>
585 <dict>
586 <key>name</key>
587 <string>storage.type.function.inline.python</string>
588 </dict>
589 </dict>
590 <key>end</key>
591 <string>(\:)</string>
592 <key>endCaptures</key>
593 <dict>
594 <key>1</key>
595 <dict>
596 <key>name</key>
597 <string>punctuation.definition.parameters.end.python</string>
598 </dict>
599 <key>2</key>
600 <dict>
601 <key>name</key>
602 <string>punctuation.section.function.begin.python</string>
603 </dict>
604 <key>3</key>
605 <dict>
606 <key>name</key>
607 <string>invalid.illegal.missing-section-begin.python</string>
608 </dict>
609 </dict>
610 <key>name</key>
611 <string>meta.function.inline.python</string>
612 <key>patterns</key>
613 <array>
614 <dict>
615 <key>begin</key>
616 <string>\s+</string>
617 <key>contentName</key>
618 <string>meta.function.inline.parameters.python</string>
619 <key>end</key>
620 <string>(?=\:)</string>
621 <key>patterns</key>
622 <array>
623 <dict>
624 <key>include</key>
625 <string>#keyword_arguments</string>
626 </dict>
627 <dict>
628 <key>captures</key>
629 <dict>
630 <key>1</key>
631 <dict>
632 <key>name</key>
633 <string>variable.parameter.function.python</string>
634 </dict>
635 <key>2</key>
636 <dict>
637 <key>name</key>
638 <string>punctuation.separator.parameters.python</string>
639 </dict>
640 </dict>
641 <key>match</key>
642 <string>\b([[:alpha:]_][[:alnum:]_]*)\s*(?:(,)|(?=[\n\)\:]))</string>
643 </dict>
644 </array>
645 </dict>
646 </array>
647 </dict>
648 <dict>
649 <key>begin</key>
650 <string>^\s*(?=@\s*[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\()</string>
651 <key>comment</key>
652 <string>a decorator may be a function call which returns a decorator.</string>
653 <key>end</key>
654 <string>(\))</string>
655 <key>endCaptures</key>
656 <dict>
657 <key>1</key>
658 <dict>
659 <key>name</key>
660 <string>punctuation.definition.arguments.end.python</string>
661 </dict>
662 </dict>
663 <key>name</key>
664 <string>meta.function.decorator.python</string>
665 <key>patterns</key>
666 <array>
667 <dict>
668 <key>begin</key>
669 <string>(?=(@)\s*[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\()</string>
670 <key>beginCaptures</key>
671 <dict>
672 <key>1</key>
673 <dict>
674 <key>name</key>
675 <string>punctuation.definition.decorator.python</string>
676 </dict>
677 </dict>
678 <key>contentName</key>
679 <string>entity.name.function.decorator.python</string>
680 <key>end</key>
681 <string>(?=\s*\()</string>
682 <key>patterns</key>
683 <array>
684 <dict>
685 <key>include</key>
686 <string>#dotted_name</string>
687 </dict>
688 </array>
689 </dict>
690 <dict>
691 <key>begin</key>
692 <string>(\()</string>
693 <key>beginCaptures</key>
694 <dict>
695 <key>1</key>
696 <dict>
697 <key>name</key>
698 <string>punctuation.definition.arguments.begin.python</string>
699 </dict>
700 </dict>
701 <key>contentName</key>
702 <string>meta.function.decorator.arguments.python</string>
703 <key>end</key>
704 <string>(?=\))</string>
705 <key>patterns</key>
706 <array>
707 <dict>
708 <key>include</key>
709 <string>#keyword_arguments</string>
710 </dict>
711 <dict>
712 <key>include</key>
713 <string>$self</string>
714 </dict>
715 </array>
716 </dict>
717 </array>
718 </dict>
719 <dict>
720 <key>begin</key>
721 <string>^\s*(?=@\s*[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*)</string>
722 <key>contentName</key>
723 <string>entity.name.function.decorator.python</string>
724 <key>end</key>
725 <string>(?=\s|$\n?|#)</string>
726 <key>name</key>
727 <string>meta.function.decorator.python</string>
728 <key>patterns</key>
729 <array>
730 <dict>
731 <key>begin</key>
732 <string>(?=(@)\s*[[:alpha:]_][[:alnum:]_]*(\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*)</string>
733 <key>beginCaptures</key>
734 <dict>
735 <key>1</key>
736 <dict>
737 <key>name</key>
738 <string>punctuation.definition.decorator.python</string>
739 </dict>
740 </dict>
741 <key>end</key>
742 <string>(?=\s|$\n?|#)</string>
743 <key>patterns</key>
744 <array>
745 <dict>
746 <key>include</key>
747 <string>#dotted_name</string>
748 </dict>
749 </array>
750 </dict>
751 </array>
752 </dict>
753 <dict>
754 <key>begin</key>
755 <string>(?&lt;=\)|\])\s*(\()</string>
756 <key>beginCaptures</key>
757 <dict>
758 <key>1</key>
759 <dict>
760 <key>name</key>
761 <string>punctuation.definition.arguments.begin.python</string>
762 </dict>
763 </dict>
764 <key>contentName</key>
765 <string>meta.function-call.arguments.python</string>
766 <key>end</key>
767 <string>(\))</string>
768 <key>endCaptures</key>
769 <dict>
770 <key>1</key>
771 <dict>
772 <key>name</key>
773 <string>punctuation.definition.arguments.end.python</string>
774 </dict>
775 </dict>
776 <key>name</key>
777 <string>meta.function-call.python</string>
778 <key>patterns</key>
779 <array>
780 <dict>
781 <key>include</key>
782 <string>#keyword_arguments</string>
783 </dict>
784 <dict>
785 <key>include</key>
786 <string>$self</string>
787 </dict>
788 </array>
789 </dict>
790 <dict>
791 <key>include</key>
792 <string>#builtin_types</string>
793 </dict>
794 <dict>
795 <key>include</key>
796 <string>#builtin_functions_name</string>
797 </dict>
798 <dict>
799 <key>include</key>
800 <string>#builtin_functions_call</string>
801 </dict>
802 <dict>
803 <key>include</key>
804 <string>#errors_warnings_exceptions</string>
805 </dict>
806 <dict>
807 <key>include</key>
808 <string>#magic_function_names</string>
809 </dict>
810 <dict>
811 <key>include</key>
812 <string>#magic_function_calls</string>
813 </dict>
814 <dict>
815 <key>include</key>
816 <string>#docstrings</string>
817 </dict>
818 <dict>
819 <key>include</key>
820 <string>#magic_variable_names</string>
821 </dict>
822 <dict>
823 <key>begin</key>
824 <string>\b(self|cls)\b\s*(?=(\())</string>
825 <key>beginCaptures</key>
826 <dict>
827 <key>1</key>
828 <dict>
829 <key>name</key>
830 <string>variable.language.python</string>
831 </dict>
832 <key>2</key>
833 <dict>
834 <key>name</key>
835 <string>punctuation.definition.arguments.begin.python</string>
836 </dict>
837 </dict>
838 <key>end</key>
839 <string>(\))</string>
840 <key>endCaptures</key>
841 <dict>
842 <key>1</key>
843 <dict>
844 <key>name</key>
845 <string>punctuation.definition.arguments.end.python</string>
846 </dict>
847 </dict>
848 <key>name</key>
849 <string>meta.function-call.python</string>
850 <key>patterns</key>
851 <array>
852 <dict>
853 <key>begin</key>
854 <string>(\()</string>
855 <key>beginCaptures</key>
856 <dict>
857 <key>1</key>
858 <dict>
859 <key>name</key>
860 <string>punctuation.definition.arguments.begin.python</string>
861 </dict>
862 </dict>
863 <key>contentName</key>
864 <string>meta.function-call.arguments.python</string>
865 <key>end</key>
866 <string>(?=(\)))</string>
867 <key>endCaptures</key>
868 <dict>
869 <key>1</key>
870 <dict>
871 <key>name</key>
872 <string>punctuation.definition.arguments.end.python</string>
873 </dict>
874 </dict>
875 <key>patterns</key>
876 <array>
877 <dict>
878 <key>include</key>
879 <string>#keyword_arguments</string>
880 </dict>
881 <dict>
882 <key>include</key>
883 <string>$self</string>
884 </dict>
885 </array>
886 </dict>
887 </array>
888 </dict>
889 <dict>
890 <key>include</key>
891 <string>#language_variables</string>
892 </dict>
893 <dict>
894 <key>include</key>
895 <string>#generic_object_names</string>
896 </dict>
897 <dict>
898 <key>begin</key>
899 <string>(?:\.)?([[:alpha:]_][[:alnum:]_]*)\s*(?=(\())</string>
900 <key>beginCaptures</key>
901 <dict>
902 <key>1</key>
903 <dict>
904 <key>name</key>
905 <string>meta.function-call.generic.python</string>
906 </dict>
907 </dict>
908 <key>end</key>
909 <string>(\))</string>
910 <key>endCaptures</key>
911 <dict>
912 <key>1</key>
913 <dict>
914 <key>name</key>
915 <string>punctuation.definition.arguments.end.python</string>
916 </dict>
917 </dict>
918 <key>name</key>
919 <string>meta.function-call.python</string>
920 <key>patterns</key>
921 <array>
922 <dict>
923 <key>begin</key>
924 <string>(\()</string>
925 <key>beginCaptures</key>
926 <dict>
927 <key>1</key>
928 <dict>
929 <key>name</key>
930 <string>punctuation.definition.arguments.begin.python</string>
931 </dict>
932 </dict>
933 <key>contentName</key>
934 <string>meta.function-call.arguments.python</string>
935 <key>end</key>
936 <string>(?=\))</string>
937 <key>patterns</key>
938 <array>
939 <dict>
940 <key>include</key>
941 <string>#keyword_arguments</string>
942 </dict>
943 <dict>
944 <key>include</key>
945 <string>$self</string>
946 </dict>
947 </array>
948 </dict>
949 </array>
950 </dict>
951 <dict>
952 <key>comment</key>
953 <string>Py2 print statement that should only be matched after function calls</string>
954 <key>match</key>
955 <string>(?&lt;!\.)\b(print)(?=\s|$)</string>
956 <key>name</key>
957 <string>keyword.other.print.python</string>
958 </dict>
959 <dict>
960 <key>begin</key>
961 <string>(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\[)</string>
962 <key>end</key>
963 <string>(\])</string>
964 <key>endCaptures</key>
965 <dict>
966 <key>1</key>
967 <dict>
968 <key>name</key>
969 <string>punctuation.definition.arguments.end.python</string>
970 </dict>
971 </dict>
972 <key>name</key>
973 <string>meta.item-access.python</string>
974 <key>patterns</key>
975 <array>
976 <dict>
977 <key>begin</key>
978 <string>(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\[)</string>
979 <key>end</key>
980 <string>(?=\s*\[)</string>
981 <key>patterns</key>
982 <array>
983 <dict>
984 <key>include</key>
985 <string>#dotted_name</string>
986 </dict>
987 </array>
988 </dict>
989 <dict>
990 <key>begin</key>
991 <string>(\[)</string>
992 <key>beginCaptures</key>
993 <dict>
994 <key>1</key>
995 <dict>
996 <key>name</key>
997 <string>punctuation.definition.arguments.begin.python</string>
998 </dict>
999 </dict>
1000 <key>contentName</key>
1001 <string>meta.item-access.arguments.python</string>
1002 <key>end</key>
1003 <string>(?=\])</string>
1004 <key>patterns</key>
1005 <array>
1006 <dict>
1007 <key>include</key>
1008 <string>$self</string>
1009 </dict>
1010 </array>
1011 </dict>
1012 <dict>
1013 <key>begin</key>
1014 <string>\G</string>
1015 <key>end</key>
1016 <string>(?=\[)</string>
1017 <key>patterns</key>
1018 <array>
1019 <dict>
1020 <key>include</key>
1021 <string>#dotted_name</string>
1022 </dict>
1023 </array>
1024 </dict>
1025 </array>
1026 </dict>
1027 <dict>
1028 <key>captures</key>
1029 <dict>
1030 <key>1</key>
1031 <dict>
1032 <key>name</key>
1033 <string>storage.type.class.python</string>
1034 </dict>
1035 </dict>
1036 <key>match</key>
1037 <string>\b(class)\b</string>
1038 </dict>
1039 <dict>
1040 <key>include</key>
1041 <string>#line_continuation</string>
1042 </dict>
1043 <dict>
1044 <key>include</key>
1045 <string>#string_quoted_single</string>
1046 </dict>
1047 <dict>
1048 <key>include</key>
1049 <string>#string_quoted_double</string>
1050 </dict>
1051 <dict>
1052 <key>include</key>
1053 <string>#dotted_name</string>
1054 </dict>
1055 <dict>
1056 <key>begin</key>
1057 <string>(\()</string>
1058 <key>end</key>
1059 <string>(\))</string>
1060 <key>patterns</key>
1061 <array>
1062 <dict>
1063 <key>include</key>
1064 <string>$self</string>
1065 </dict>
1066 </array>
1067 </dict>
1068 <dict>
1069 <key>captures</key>
1070 <dict>
1071 <key>1</key>
1072 <dict>
1073 <key>name</key>
1074 <string>punctuation.definition.list.begin.python</string>
1075 </dict>
1076 <key>2</key>
1077 <dict>
1078 <key>name</key>
1079 <string>meta.empty-list.python</string>
1080 </dict>
1081 <key>3</key>
1082 <dict>
1083 <key>name</key>
1084 <string>punctuation.definition.list.end.python</string>
1085 </dict>
1086 </dict>
1087 <key>match</key>
1088 <string>(\[)(\s*(\]))\b</string>
1089 </dict>
1090 <dict>
1091 <key>begin</key>
1092 <string>(\[)</string>
1093 <key>beginCaptures</key>
1094 <dict>
1095 <key>1</key>
1096 <dict>
1097 <key>name</key>
1098 <string>punctuation.definition.list.begin.python</string>
1099 </dict>
1100 </dict>
1101 <key>end</key>
1102 <string>(\])</string>
1103 <key>endCaptures</key>
1104 <dict>
1105 <key>1</key>
1106 <dict>
1107 <key>name</key>
1108 <string>punctuation.definition.list.end.python</string>
1109 </dict>
1110 </dict>
1111 <key>name</key>
1112 <string>meta.structure.list.python</string>
1113 <key>patterns</key>
1114 <array>
1115 <dict>
1116 <key>begin</key>
1117 <string>(?&lt;=\[|\,)\s*(?![\],])</string>
1118 <key>contentName</key>
1119 <string>meta.structure.list.item.python</string>
1120 <key>end</key>
1121 <string>\s*(?:(,)|(?=\]))</string>
1122 <key>endCaptures</key>
1123 <dict>
1124 <key>1</key>
1125 <dict>
1126 <key>name</key>
1127 <string>punctuation.separator.list.python</string>
1128 </dict>
1129 </dict>
1130 <key>patterns</key>
1131 <array>
1132 <dict>
1133 <key>include</key>
1134 <string>$self</string>
1135 </dict>
1136 </array>
1137 </dict>
1138 </array>
1139 </dict>
1140 <dict>
1141 <key>captures</key>
1142 <dict>
1143 <key>1</key>
1144 <dict>
1145 <key>name</key>
1146 <string>punctuation.definition.tuple.begin.python</string>
1147 </dict>
1148 <key>2</key>
1149 <dict>
1150 <key>name</key>
1151 <string>meta.empty-tuple.python</string>
1152 </dict>
1153 <key>3</key>
1154 <dict>
1155 <key>name</key>
1156 <string>punctuation.definition.tuple.end.python</string>
1157 </dict>
1158 </dict>
1159 <key>match</key>
1160 <string>(\()(\s*(\)))</string>
1161 <key>name</key>
1162 <string>meta.structure.tuple.python</string>
1163 </dict>
1164 <dict>
1165 <key>captures</key>
1166 <dict>
1167 <key>1</key>
1168 <dict>
1169 <key>name</key>
1170 <string>punctuation.definition.dictionary.begin.python</string>
1171 </dict>
1172 <key>2</key>
1173 <dict>
1174 <key>name</key>
1175 <string>meta.empty-dictionary.python</string>
1176 </dict>
1177 <key>3</key>
1178 <dict>
1179 <key>name</key>
1180 <string>punctuation.definition.dictionary.end.python</string>
1181 </dict>
1182 </dict>
1183 <key>match</key>
1184 <string>(\{)(\s*(\}))</string>
1185 <key>name</key>
1186 <string>meta.structure.dictionary.python</string>
1187 </dict>
1188 <dict>
1189 <key>begin</key>
1190 <string>(\{)</string>
1191 <key>beginCaptures</key>
1192 <dict>
1193 <key>1</key>
1194 <dict>
1195 <key>name</key>
1196 <string>punctuation.definition.dictionary.begin.python</string>
1197 </dict>
1198 </dict>
1199 <key>end</key>
1200 <string>(\})</string>
1201 <key>endCaptures</key>
1202 <dict>
1203 <key>1</key>
1204 <dict>
1205 <key>name</key>
1206 <string>punctuation.definition.dictionary.end.python</string>
1207 </dict>
1208 </dict>
1209 <key>name</key>
1210 <string>meta.structure.dictionary.python</string>
1211 <key>patterns</key>
1212 <array>
1213 <dict>
1214 <key>begin</key>
1215 <string>(?&lt;=\{|\,|^)\s*(?![\},])</string>
1216 <key>contentName</key>
1217 <string>meta.structure.dictionary.key.python</string>
1218 <key>end</key>
1219 <string>\s*(?:(?=\})|(\:))</string>
1220 <key>endCaptures</key>
1221 <dict>
1222 <key>1</key>
1223 <dict>
1224 <key>name</key>
1225 <string>punctuation.separator.valuepair.dictionary.python</string>
1226 </dict>
1227 </dict>
1228 <key>patterns</key>
1229 <array>
1230 <dict>
1231 <key>include</key>
1232 <string>$self</string>
1233 </dict>
1234 </array>
1235 </dict>
1236 <dict>
1237 <key>begin</key>
1238 <string>(?&lt;=\:|^)\s*</string>
1239 <key>contentName</key>
1240 <string>meta.structure.dictionary.value.python</string>
1241 <key>end</key>
1242 <string>\s*(?:(?=\})|(,))</string>
1243 <key>endCaptures</key>
1244 <dict>
1245 <key>1</key>
1246 <dict>
1247 <key>name</key>
1248 <string>punctuation.separator.dictionary.python</string>
1249 </dict>
1250 </dict>
1251 <key>patterns</key>
1252 <array>
1253 <dict>
1254 <key>include</key>
1255 <string>$self</string>
1256 </dict>
1257 </array>
1258 </dict>
1259 </array>
1260 </dict>
1261 </array>
1262 <key>repository</key>
1263 <dict>
1264 <key>annotated_arguments</key>
1265 <dict>
1266 <key>begin</key>
1267 <string>\b([[:alpha:]_][[:alnum:]_]*)\s*(:)|(?=\()</string>
1268 <key>beginCaptures</key>
1269 <dict>
1270 <key>1</key>
1271 <dict>
1272 <key>name</key>
1273 <string>variable.parameter.function.python</string>
1274 </dict>
1275 <key>2</key>
1276 <dict>
1277 <key>name</key>
1278 <string>punctuation.separator.annotation.python</string>
1279 </dict>
1280 </dict>
1281 <key>end</key>
1282 <string>\s*(?:(,)|(?=$\n?|[\)\:]))</string>
1283 <key>endCaptures</key>
1284 <dict>
1285 <key>1</key>
1286 <dict>
1287 <key>name</key>
1288 <string>punctuation.separator.parameters.python</string>
1289 </dict>
1290 </dict>
1291 <key>patterns</key>
1292 <array>
1293 <dict>
1294 <key>include</key>
1295 <string>#annotated_group</string>
1296 </dict>
1297 <dict>
1298 <key>match</key>
1299 <string>=</string>
1300 <key>name</key>
1301 <string>keyword.operator.assignment.python</string>
1302 </dict>
1303 <dict>
1304 <key>include</key>
1305 <string>$self</string>
1306 </dict>
1307 </array>
1308 </dict>
1309 <key>annotated_group</key>
1310 <dict>
1311 <key>begin</key>
1312 <string>(\()</string>
1313 <key>beginCaptures</key>
1314 <dict>
1315 <key>1</key>
1316 <dict>
1317 <key>name</key>
1318 <string>punctuation.definition.parameters-group.begin.python</string>
1319 </dict>
1320 </dict>
1321 <key>end</key>
1322 <string>(\))</string>
1323 <key>endCaptures</key>
1324 <dict>
1325 <key>1</key>
1326 <dict>
1327 <key>name</key>
1328 <string>punctuation.definition.parameters-group.end.python</string>
1329 </dict>
1330 </dict>
1331 <key>patterns</key>
1332 <array>
1333 <dict>
1334 <key>begin</key>
1335 <string>\b([[:alpha:]_][[:alnum:]_]*)\s*(:)</string>
1336 <key>beginCaptures</key>
1337 <dict>
1338 <key>1</key>
1339 <dict>
1340 <key>name</key>
1341 <string>variable.parameter.function.python</string>
1342 </dict>
1343 <key>2</key>
1344 <dict>
1345 <key>name</key>
1346 <string>punctuation.separator.annotation.python</string>
1347 </dict>
1348 </dict>
1349 <key>end</key>
1350 <string>\s*(?:(,)|(?=$\n?|\)))</string>
1351 <key>endCaptures</key>
1352 <dict>
1353 <key>1</key>
1354 <dict>
1355 <key>name</key>
1356 <string>punctuation.separator.parameters.python</string>
1357 </dict>
1358 </dict>
1359 <key>patterns</key>
1360 <array>
1361 <dict>
1362 <key>include</key>
1363 <string>$self</string>
1364 </dict>
1365 </array>
1366 </dict>
1367 <dict>
1368 <key>begin</key>
1369 <string>\b([[:alpha:]_][[:alnum:]_]*)</string>
1370 <key>beginCaptures</key>
1371 <dict>
1372 <key>1</key>
1373 <dict>
1374 <key>name</key>
1375 <string>variable.parameter.function.python</string>
1376 </dict>
1377 </dict>
1378 <key>end</key>
1379 <string>\s*(?:(,)|(?=$\n?|\)))</string>
1380 <key>endCaptures</key>
1381 <dict>
1382 <key>1</key>
1383 <dict>
1384 <key>name</key>
1385 <string>punctuation.separator.parameters.python</string>
1386 </dict>
1387 </dict>
1388 </dict>
1389 <dict>
1390 <key>include</key>
1391 <string>#comment</string>
1392 </dict>
1393 </array>
1394 </dict>
1395 <key>builtin_functions_call</key>
1396 <dict>
1397 <key>patterns</key>
1398 <array>
1399 <dict>
1400 <key>begin</key>
1401 <string>(?x)
1402 (?&lt;!\.)\b(
1403 __import__ | abs | all | any | ascii | basestring | bin | bool |
1404 bytearray | bytes | callable | chr | classmethod | cmp | compile |
1405 complex | delattr | dict | dir | divmod | enumerate | eval | exec |
1406 execfile | file | filter | float | format | frozenset | getattr |
1407 globals | hasattr | hash | help | hex | id | input | int |
1408 isinstance | issubclass | iter | len | list | locals | long | map |
1409 max | memoryview | min | next | object | oct | open | ord | pow |
1410 print | property | range | raw_input | reduce | reload | repr |
1411 reversed | round | set | setattr | slice | sorted | staticmethod |
1412 str | sum | super | tuple | type | unichr | unicode | vars |
1413 xrange | zip)
1414 \b\s*(?=\()
1415 </string>
1416 <key>beginCaptures</key>
1417 <dict>
1418 <key>1</key>
1419 <dict>
1420 <key>name</key>
1421 <string>support.function.builtin.call.python</string>
1422 </dict>
1423 </dict>
1424 <key>end</key>
1425 <string>(\))</string>
1426 <key>endCaptures</key>
1427 <dict>
1428 <key>1</key>
1429 <dict>
1430 <key>name</key>
1431 <string>punctuation.definition.arguments.end.python</string>
1432 </dict>
1433 </dict>
1434 <key>name</key>
1435 <string>meta.function-call.python</string>
1436 <key>patterns</key>
1437 <array>
1438 <dict>
1439 <key>begin</key>
1440 <string>(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\()</string>
1441 <key>end</key>
1442 <string>(?=\s*\()</string>
1443 <key>patterns</key>
1444 <array>
1445 <dict>
1446 <key>include</key>
1447 <string>#dotted_name</string>
1448 </dict>
1449 </array>
1450 </dict>
1451 <dict>
1452 <key>begin</key>
1453 <string>(\()</string>
1454 <key>beginCaptures</key>
1455 <dict>
1456 <key>1</key>
1457 <dict>
1458 <key>name</key>
1459 <string>punctuation.definition.arguments.begin.python</string>
1460 </dict>
1461 </dict>
1462 <key>contentName</key>
1463 <string>meta.function-call.arguments.python</string>
1464 <key>end</key>
1465 <string>(?=\))</string>
1466 <key>patterns</key>
1467 <array>
1468 <dict>
1469 <key>include</key>
1470 <string>#keyword_arguments</string>
1471 </dict>
1472 <dict>
1473 <key>include</key>
1474 <string>$self</string>
1475 </dict>
1476 </array>
1477 </dict>
1478 </array>
1479 </dict>
1480 </array>
1481 </dict>
1482 <key>builtin_functions_name</key>
1483 <dict>
1484 <key>match</key>
1485 <string>(?x)
1486 (?&lt;!\.|@)
1487 \b(
1488 __import__ | abs | all | any | ascii | basestring | bin | bool |
1489 bytearray | bytes | callable | chr | classmethod | cmp | compile |
1490 complex | delattr | dict | dir | divmod | enumerate | eval | exec |
1491 execfile | file | filter | float | format | frozenset | getattr |
1492 globals | hasattr | hash | help | hex | id | input | int |
1493 isinstance | issubclass | iter | len | list | locals | long | map |
1494 max | memoryview | min | next | object | oct | open | ord | pow |
1495 property | range | raw_input | reduce | reload | repr |
1496 reversed | round | set | setattr | slice | sorted | staticmethod |
1497 str | sum | super | tuple | type | unichr | unicode | vars |
1498 xrange | zip)
1499 \b\s*(?!(\())</string>
1500 <key>name</key>
1501 <string>support.function.builtin.name.python</string>
1502 </dict>
1503 <key>builtin_types</key>
1504 <dict>
1505 <key>comment</key>
1506 <string>These are from https://docs.python.org/X/library/stdtypes.html
1507 where X is 2.7 or 3.5.</string>
1508 <key>match</key>
1509 <string>(?x)
1510 (?&lt;!\.)
1511 \b(
1512 bool | buffer | bytearray | bytes | complex | dict | float |
1513 frozenset | int | list | long | memoryview | object | property |
1514 range | set | slice | str | tuple | type | unicode | xrange)
1515 \b(?!(\s*\())</string>
1516 <key>name</key>
1517 <string>support.type.python</string>
1518 </dict>
1519 <key>comment</key>
1520 <dict>
1521 <key>begin</key>
1522 <string>(^[ \t]+)?(?=#)</string>
1523 <key>beginCaptures</key>
1524 <dict>
1525 <key>1</key>
1526 <dict>
1527 <key>name</key>
1528 <string>punctuation.whitespace.comment.leading.python</string>
1529 </dict>
1530 </dict>
1531 <key>end</key>
1532 <string>(?!\G)</string>
1533 <key>patterns</key>
1534 <array>
1535 <dict>
1536 <key>begin</key>
1537 <string>#</string>
1538 <key>beginCaptures</key>
1539 <dict>
1540 <key>0</key>
1541 <dict>
1542 <key>name</key>
1543 <string>punctuation.definition.comment.python</string>
1544 </dict>
1545 </dict>
1546 <key>end</key>
1547 <string>\n</string>
1548 <key>name</key>
1549 <string>comment.line.number-sign.python</string>
1550 </dict>
1551 </array>
1552 </dict>
1553 <key>constant_placeholder</key>
1554 <dict>
1555 <key>match</key>
1556 <string>(?i:(%(\([[:lower:]_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[[:lower:]%])|(\{([!\[\].:\w ]+)?\}))</string>
1557 <key>name</key>
1558 <string>constant.other.placeholder.python</string>
1559 </dict>
1560 <key>docstrings</key>
1561 <dict>
1562 <key>patterns</key>
1563 <array>
1564 <dict>
1565 <key>begin</key>
1566 <string>^\s*(?=[uU]?[rR]?""")</string>
1567 <key>end</key>
1568 <string>(?&lt;=""")</string>
1569 <key>name</key>
1570 <string>comment.block.python</string>
1571 <key>patterns</key>
1572 <array>
1573 <dict>
1574 <key>include</key>
1575 <string>#string_quoted_double</string>
1576 </dict>
1577 </array>
1578 </dict>
1579 <dict>
1580 <key>begin</key>
1581 <string>^\s*(?=[uU]?[rR]?''')</string>
1582 <key>end</key>
1583 <string>(?&lt;=''')</string>
1584 <key>name</key>
1585 <string>comment.block.python</string>
1586 <key>patterns</key>
1587 <array>
1588 <dict>
1589 <key>include</key>
1590 <string>#string_quoted_single</string>
1591 </dict>
1592 </array>
1593 </dict>
1594 </array>
1595 </dict>
1596 <key>dotted_name</key>
1597 <dict>
1598 <key>begin</key>
1599 <string>(?=(?:\.(?!\s+import)\s*)?[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*)</string>
1600 <key>end</key>
1601 <string>(?![[:alnum:]_\.\s])|(?=(?&lt;!\.)\s+[^.])|$</string>
1602 <key>patterns</key>
1603 <array>
1604 <dict>
1605 <key>begin</key>
1606 <string>(\.)(?=[[:alpha:]_][[:alnum:]_]*)</string>
1607 <key>beginCaptures</key>
1608 <dict>
1609 <key>1</key>
1610 <dict>
1611 <key>name</key>
1612 <string>meta.dot.python</string>
1613 </dict>
1614 </dict>
1615 <key>end</key>
1616 <string>(?![[:alnum:]_])</string>
1617 <key>patterns</key>
1618 <array>
1619 <dict>
1620 <key>include</key>
1621 <string>#builtin_functions_name</string>
1622 </dict>
1623 <dict>
1624 <key>include</key>
1625 <string>#magic_function_names</string>
1626 </dict>
1627 <dict>
1628 <key>include</key>
1629 <string>#magic_variable_names</string>
1630 </dict>
1631 <dict>
1632 <key>include</key>
1633 <string>#generic_names</string>
1634 </dict>
1635 <dict>
1636 <key>include</key>
1637 <string>#illegal_names</string>
1638 </dict>
1639 </array>
1640 </dict>
1641 <dict>
1642 <key>begin</key>
1643 <string>(?&lt;!\.)(?=[[:alpha:]_][[:alnum:]_]*)</string>
1644 <key>end</key>
1645 <string>(?![[:alnum:]_])</string>
1646 <key>patterns</key>
1647 <array>
1648 <dict>
1649 <key>include</key>
1650 <string>#builtin_types</string>
1651 </dict>
1652 <dict>
1653 <key>include</key>
1654 <string>#builtin_functions_name</string>
1655 </dict>
1656 <dict>
1657 <key>include</key>
1658 <string>#builtin_functions_call</string>
1659 </dict>
1660 <dict>
1661 <key>include</key>
1662 <string>#errors_warnings_exceptions</string>
1663 </dict>
1664 <dict>
1665 <key>include</key>
1666 <string>#magic_function_names</string>
1667 </dict>
1668 <dict>
1669 <key>include</key>
1670 <string>#magic_function_calls</string>
1671 </dict>
1672 <dict>
1673 <key>include</key>
1674 <string>#magic_variable_names</string>
1675 </dict>
1676 <dict>
1677 <key>include</key>
1678 <string>#language_variables</string>
1679 </dict>
1680 <dict>
1681 <key>include</key>
1682 <string>#generic_names</string>
1683 </dict>
1684 <dict>
1685 <key>include</key>
1686 <string>#illegal_names</string>
1687 </dict>
1688 </array>
1689 </dict>
1690 </array>
1691 </dict>
1692 <key>entity_name_class</key>
1693 <dict>
1694 <key>patterns</key>
1695 <array>
1696 <dict>
1697 <key>include</key>
1698 <string>#generic_names</string>
1699 </dict>
1700 <dict>
1701 <key>include</key>
1702 <string>#illegal_names</string>
1703 </dict>
1704 </array>
1705 </dict>
1706 <key>entity_name_function</key>
1707 <dict>
1708 <key>patterns</key>
1709 <array>
1710 <dict>
1711 <key>include</key>
1712 <string>#builtin_functions_name</string>
1713 </dict>
1714 <dict>
1715 <key>include</key>
1716 <string>#magic_function_names</string>
1717 </dict>
1718 <dict>
1719 <key>include</key>
1720 <string>#illegal_names</string>
1721 </dict>
1722 </array>
1723 </dict>
1724 <key>errors_warnings_exceptions</key>
1725 <dict>
1726 <key>match</key>
1727 <string>(?x)
1728 \b(
1729 (
1730 Arithmetic | Assertion | Attribute | Buffer | BlockingIO |
1731 BrokenPipe | ChildProcess | (Connection(Aborted | Refused | Reset)?) |
1732 EOF | Environment | FileExists | FileNotFound | FloatingPoint | IO |
1733 Import | Indentation | Index | Interrupted | IsADirectory |
1734 NotADirectory | Permission | ProcessLookup | Timeout | Key | Lookup |
1735 Memory | Name | NotImplemented | OS | Overflow | Reference | Runtime |
1736 Recursion | Standard | Syntax | System | Tab | Type | UnboundLocal |
1737 Unicode(Encode | Decode | Translate)? | Value | VMS | Windows |
1738 ZeroDivision | ([[:alpha:]_][[:alnum:]_]*))
1739 ?Error
1740 |
1741 (
1742 (Pending)?Deprecation | Bytes | Future | Import | Resource |
1743 Runtime | Syntax | Unicode | User | [[:alpha:]_][[:alnum:]_]*)
1744 ?Warning
1745 |
1746 SystemExit | Stop(Async)?Iteration | NotImplemented |
1747 KeyboardInterrupt | GeneratorExit
1748 |
1749 ([[:alpha:]_][[:alnum:]_]*)
1750 ?Exception
1751 )
1752 \b</string>
1753 <key>name</key>
1754 <string>support.type.exception.python</string>
1755 </dict>
1756 <key>escaped_char</key>
1757 <dict>
1758 <key>captures</key>
1759 <dict>
1760 <key>1</key>
1761 <dict>
1762 <key>name</key>
1763 <string>constant.character.escape.hex.python</string>
1764 </dict>
1765 <key>10</key>
1766 <dict>
1767 <key>name</key>
1768 <string>constant.character.escape.linefeed.python</string>
1769 </dict>
1770 <key>11</key>
1771 <dict>
1772 <key>name</key>
1773 <string>constant.character.escape.return.python</string>
1774 </dict>
1775 <key>12</key>
1776 <dict>
1777 <key>name</key>
1778 <string>constant.character.escape.tab.python</string>
1779 </dict>
1780 <key>13</key>
1781 <dict>
1782 <key>name</key>
1783 <string>constant.character.escape.vertical-tab.python</string>
1784 </dict>
1785 <key>2</key>
1786 <dict>
1787 <key>name</key>
1788 <string>constant.character.escape.octal.python</string>
1789 </dict>
1790 <key>3</key>
1791 <dict>
1792 <key>name</key>
1793 <string>constant.character.escape.newline.python</string>
1794 </dict>
1795 <key>4</key>
1796 <dict>
1797 <key>name</key>
1798 <string>constant.character.escape.backslash.python</string>
1799 </dict>
1800 <key>5</key>
1801 <dict>
1802 <key>name</key>
1803 <string>constant.character.escape.double-quote.python</string>
1804 </dict>
1805 <key>6</key>
1806 <dict>
1807 <key>name</key>
1808 <string>constant.character.escape.single-quote.python</string>
1809 </dict>
1810 <key>7</key>
1811 <dict>
1812 <key>name</key>
1813 <string>constant.character.escape.bell.python</string>
1814 </dict>
1815 <key>8</key>
1816 <dict>
1817 <key>name</key>
1818 <string>constant.character.escape.backspace.python</string>
1819 </dict>
1820 <key>9</key>
1821 <dict>
1822 <key>name</key>
1823 <string>constant.character.escape.formfeed.python</string>
1824 </dict>
1825 </dict>
1826 <key>match</key>
1827 <string>(\\x[\h]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)</string>
1828 </dict>
1829 <key>escaped_char_raw_double</key>
1830 <dict>
1831 <key>match</key>
1832 <string>\\"</string>
1833 <key>name</key>
1834 <string>constant.character.escape.quote.python</string>
1835 </dict>
1836 <key>escaped_char_raw_single</key>
1837 <dict>
1838 <key>match</key>
1839 <string>\\'</string>
1840 <key>name</key>
1841 <string>constant.character.escape.quote.python</string>
1842 </dict>
1843 <key>escaped_unicode_char</key>
1844 <dict>
1845 <key>captures</key>
1846 <dict>
1847 <key>1</key>
1848 <dict>
1849 <key>name</key>
1850 <string>constant.character.escape.unicode.32-bit-hex.python</string>
1851 </dict>
1852 <key>2</key>
1853 <dict>
1854 <key>name</key>
1855 <string>constant.character.escape.unicode.16-bit-hex.python</string>
1856 </dict>
1857 <key>3</key>
1858 <dict>
1859 <key>name</key>
1860 <string>constant.character.escape.unicode.name.python</string>
1861 </dict>
1862 </dict>
1863 <key>match</key>
1864 <string>(\\U[\h]{8})|(\\u[\h]{4})|(\\N\{[a-zA-Z0-9\, ]+\})</string>
1865 </dict>
1866 <key>generic_names</key>
1867 <dict>
1868 <key>match</key>
1869 <string>[[:alpha:]_][[:alnum:]_]*</string>
1870 <key>name</key>
1871 <string>meta.identifier.python</string>
1872 </dict>
1873 <key>generic_object_names</key>
1874 <dict>
1875 <key>match</key>
1876 <string>(\.\b([[:alpha:]_][[:alnum:]_]*)\b(?!\(|\[)|\b([[:alpha:]_][[:alnum:]_]*)\b\.)</string>
1877 </dict>
1878 <key>illegal_names</key>
1879 <dict>
1880 <key>comment</key>
1881 <string>from Lib/keyword.py, in kwlist. `async` and `await` not keywords until Python 3.7 (according to PEP-0492)</string>
1882 <key>match</key>
1883 <string>(?x)
1884 \b (
1885 False | None | True | and | as | assert | break | class | continue | def |
1886 del | elif | else | except | exec | finally | for | from | global | if |
1887 import | in | is | lambda | nonlocal | not | or | pass | print | raise |
1888 return | try | while | with | yield | __debug__ )
1889 \b</string>
1890 <key>name</key>
1891 <string>invalid.illegal.name.python</string>
1892 </dict>
1893 <key>keyword_arguments</key>
1894 <dict>
1895 <key>begin</key>
1896 <string>\b([[:alpha:]_][[:alnum:]_]*)\s*(=)(?!=)</string>
1897 <key>beginCaptures</key>
1898 <dict>
1899 <key>1</key>
1900 <dict>
1901 <key>name</key>
1902 <string>variable.parameter.function.keyword.python</string>
1903 </dict>
1904 <key>2</key>
1905 <dict>
1906 <key>name</key>
1907 <string>keyword.operator.assignment.python</string>
1908 </dict>
1909 </dict>
1910 <key>end</key>
1911 <string>\s*(?:(,)|(?=[\)\:]))</string>
1912 <key>endCaptures</key>
1913 <dict>
1914 <key>1</key>
1915 <dict>
1916 <key>name</key>
1917 <string>punctuation.separator.parameters.python</string>
1918 </dict>
1919 </dict>
1920 <key>patterns</key>
1921 <array>
1922 <dict>
1923 <key>include</key>
1924 <string>$self</string>
1925 </dict>
1926 </array>
1927 </dict>
1928 <key>language_variables</key>
1929 <dict>
1930 <key>captures</key>
1931 <dict>
1932 <key>1</key>
1933 <dict>
1934 <key>name</key>
1935 <string>variable.language.python</string>
1936 </dict>
1937 </dict>
1938 <key>match</key>
1939 <string>(?&lt;!\.)\b(self|cls)\b(?:\.|\()?</string>
1940 </dict>
1941 <key>line_continuation</key>
1942 <dict>
1943 <key>captures</key>
1944 <dict>
1945 <key>1</key>
1946 <dict>
1947 <key>name</key>
1948 <string>punctuation.separator.continuation.line.python</string>
1949 </dict>
1950 <key>2</key>
1951 <dict>
1952 <key>name</key>
1953 <string>invalid.illegal.unexpected-text.python</string>
1954 </dict>
1955 </dict>
1956 <key>match</key>
1957 <string>(\\)(.*)$\n?</string>
1958 </dict>
1959 <key>magic_function_calls</key>
1960 <dict>
1961 <key>patterns</key>
1962 <array>
1963 <dict>
1964 <key>begin</key>
1965 <string>(?x)
1966 (\.)?
1967 \b(
1968 __(?:
1969 abs | add | aenter | aexit | aiter | and | anext | await | bool |
1970 bytes | call | ceil | cmp | class_getitem | coerce | complex | contains |
1971 copy | deepcopy | del | delattr | delete | delitem | delslice | dir | div |
1972 divmod | enter | eq | execute | exit | float | floor | floordiv | format |
1973 fspath | ge | get | getattr | getattribute | getinitargs | getitem |
1974 getnewargs | getnewargs_ex | getslice | getstate | gt | hash | hex | iadd |
1975 iand | idiv | idivmod | ifloordiv | ilshift | imatmul | imod | imul | index |
1976 init | init_subclass | instancecheck | int | invert | iop | ior | ipow |
1977 irshift | isub | iter | itruediv | ixor | le | len | length_hint | long |
1978 lshift | lt | main | matmul | missing | mod | mro_entries | mul | ne | neg |
1979 new | next | nonzero | oct | op | or | pos | pow | prepare | radd | rand |
1980 rcmp | rdiv | rdivmod | reduce | reduce_ex | repr | reversed | rfloordiv |
1981 rlshift | rmatmul | rmod | rmul | rop | ror | round | rpow | rrshift |
1982 rshift | rsub | rtruediv | rxor | set | set_name | setattr | setitem |
1983 setslice | setstate | sizeof | str | sub | subclasscheck | subclasshook |
1984 truediv | trunc | unicode | xor)
1985 __)
1986 \s*(?=(\())</string>
1987 <key>beginCaptures</key>
1988 <dict>
1989 <key>2</key>
1990 <dict>
1991 <key>name</key>
1992 <string>support.function.magic.call.python</string>
1993 </dict>
1994 <key>4</key>
1995 <dict>
1996 <key>name</key>
1997 <string>punctuation.definition.arguments.begin.python</string>
1998 </dict>
1999 </dict>
2000 <key>end</key>
2001 <string>(\))</string>
2002 <key>endCaptures</key>
2003 <dict>
2004 <key>1</key>
2005 <dict>
2006 <key>name</key>
2007 <string>punctuation.definition.arguments.end.python</string>
2008 </dict>
2009 </dict>
2010 <key>name</key>
2011 <string>meta.function-call.python</string>
2012 <key>patterns</key>
2013 <array>
2014 <dict>
2015 <key>begin</key>
2016 <string>(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\()</string>
2017 <key>end</key>
2018 <string>(?=\s*\()</string>
2019 <key>patterns</key>
2020 <array>
2021 <dict>
2022 <key>include</key>
2023 <string>#dotted_name</string>
2024 </dict>
2025 </array>
2026 </dict>
2027 <dict>
2028 <key>begin</key>
2029 <string>(\()</string>
2030 <key>beginCaptures</key>
2031 <dict>
2032 <key>1</key>
2033 <dict>
2034 <key>name</key>
2035 <string>punctuation.definition.arguments.begin.python</string>
2036 </dict>
2037 </dict>
2038 <key>contentName</key>
2039 <string>meta.function-call.arguments.python</string>
2040 <key>end</key>
2041 <string>(?=\))</string>
2042 <key>patterns</key>
2043 <array>
2044 <dict>
2045 <key>include</key>
2046 <string>#keyword_arguments</string>
2047 </dict>
2048 <dict>
2049 <key>include</key>
2050 <string>$self</string>
2051 </dict>
2052 </array>
2053 </dict>
2054 </array>
2055 </dict>
2056 </array>
2057 </dict>
2058 <key>magic_function_names</key>
2059 <dict>
2060 <key>captures</key>
2061 <dict>
2062 <key>2</key>
2063 <dict>
2064 <key>name</key>
2065 <string>support.function.magic.name.python</string>
2066 </dict>
2067 </dict>
2068 <key>comment</key>
2069 <string>These methods have magic interpretation by python and are generally
2070 called indirectly through syntactic constructs. Names are from
2071 https://docs.python.org/X/reference/datamodel.html where X is 2.7 and 3.5
2072 See also http://www.rafekettler.com/magicmethods.html</string>
2073 <key>match</key>
2074 <string>(?x)
2075 (def|\.)?
2076 \s*\b(
2077 __(?:
2078 abs | add | aenter | aexit | aiter | and | anext | await | bool |
2079 bytes | call | ceil | cmp | class_getitem | coerce | complex | contains |
2080 copy | deepcopy | del | delattr | delete | delitem | delslice | dir | div |
2081 divmod | enter | eq | execute | exit | float | floor | floordiv | format |
2082 fspath | ge | get | getattr | getattribute | getinitargs | getitem |
2083 getnewargs | getnewargs_ex | getslice | getstate | gt | hash | hex | iadd |
2084 iand | idiv | idivmod | ifloordiv | ilshift | imatmul | imod | imul | index |
2085 init | init_subclass | instancecheck | int | invert | iop | ior | ipow |
2086 irshift | isub | iter | itruediv | ixor | le | len | length_hint | long |
2087 lshift | lt | main | matmul | missing | mod | mro_entries | mul | ne | neg |
2088 new | next | nonzero | oct | op | or | pos | pow | prepare | radd | rand |
2089 rcmp | rdiv | rdivmod | reduce | reduce_ex | repr | reversed | rfloordiv |
2090 rlshift | rmatmul | rmod | rmul | rop | ror | round | rpow | rrshift |
2091 rshift | rsub | rtruediv | rxor | set | set_name | setattr | setitem |
2092 setslice | setstate | sizeof | str | sub | subclasscheck | subclasshook |
2093 truediv | trunc | unicode | xor)
2094 __)
2095 \b</string>
2096 </dict>
2097 <key>magic_variable_names</key>
2098 <dict>
2099 <key>captures</key>
2100 <dict>
2101 <key>2</key>
2102 <dict>
2103 <key>name</key>
2104 <string>support.variable.magic.python</string>
2105 </dict>
2106 </dict>
2107 <key>comment</key>
2108 <string>magic attributes which a class/module may have.</string>
2109 <key>match</key>
2110 <string>(?x)
2111 (\.)?
2112 \b(
2113 __(?:
2114 all | annotations | bases | cached | class | closure | code | debug |
2115 defaults | dict | doc | file | func | future | globals | kwdefaults |
2116 loader | members | metaclass | methods | module | mro | name | origin |
2117 package | path | qualname | self | slots | spec | subclasses | version |
2118 weakref | wrapped)
2119 __) \b</string>
2120 </dict>
2121 <key>regular_expressions</key>
2122 <dict>
2123 <key>comment</key>
2124 <string>Changed disabled to 1 to turn off syntax highlighting in “r” strings.</string>
2125 <key>disabled</key>
2126 <integer>0</integer>
2127 <key>patterns</key>
2128 <array>
2129 <dict>
2130 <key>include</key>
2131 <string>source.regexp.python</string>
2132 </dict>
2133 </array>
2134 </dict>
2135 <key>string_quoted_double</key>
2136 <dict>
2137 <key>patterns</key>
2138 <array>
2139 <dict>
2140 <key>begin</key>
2141 <string>([uU]r)(""")</string>
2142 <key>beginCaptures</key>
2143 <dict>
2144 <key>1</key>
2145 <dict>
2146 <key>name</key>
2147 <string>storage.type.string.python</string>
2148 </dict>
2149 <key>2</key>
2150 <dict>
2151 <key>name</key>
2152 <string>punctuation.definition.string.begin.python</string>
2153 </dict>
2154 </dict>
2155 <key>comment</key>
2156 <string>single quoted unicode-raw string</string>
2157 <key>end</key>
2158 <string>"""</string>
2159 <key>endCaptures</key>
2160 <dict>
2161 <key>0</key>
2162 <dict>
2163 <key>name</key>
2164 <string>punctuation.definition.string.end.python</string>
2165 </dict>
2166 </dict>
2167 <key>name</key>
2168 <string>string.quoted.double.block.unicode-raw-regex.python</string>
2169 <key>patterns</key>
2170 <array>
2171 <dict>
2172 <key>include</key>
2173 <string>#constant_placeholder</string>
2174 </dict>
2175 <dict>
2176 <key>include</key>
2177 <string>#escaped_char_raw_double</string>
2178 </dict>
2179 <dict>
2180 <key>include</key>
2181 <string>#regular_expressions</string>
2182 </dict>
2183 </array>
2184 </dict>
2185 <dict>
2186 <key>begin</key>
2187 <string>([uU]R)(""")</string>
2188 <key>beginCaptures</key>
2189 <dict>
2190 <key>1</key>
2191 <dict>
2192 <key>name</key>
2193 <string>storage.type.string.python</string>
2194 </dict>
2195 <key>2</key>
2196 <dict>
2197 <key>name</key>
2198 <string>punctuation.definition.string.begin.python</string>
2199 </dict>
2200 </dict>
2201 <key>comment</key>
2202 <string>single quoted unicode-raw string without regular expression highlighting</string>
2203 <key>end</key>
2204 <string>"""</string>
2205 <key>endCaptures</key>
2206 <dict>
2207 <key>0</key>
2208 <dict>
2209 <key>name</key>
2210 <string>punctuation.definition.string.end.python</string>
2211 </dict>
2212 </dict>
2213 <key>name</key>
2214 <string>string.quoted.double.block.unicode-raw.python</string>
2215 <key>patterns</key>
2216 <array>
2217 <dict>
2218 <key>include</key>
2219 <string>#constant_placeholder</string>
2220 </dict>
2221 <dict>
2222 <key>include</key>
2223 <string>#escaped_char_raw_double</string>
2224 </dict>
2225 </array>
2226 </dict>
2227 <dict>
2228 <key>begin</key>
2229 <string>([bB]r)(""")</string>
2230 <key>beginCaptures</key>
2231 <dict>
2232 <key>1</key>
2233 <dict>
2234 <key>name</key>
2235 <string>storage.type.string.python</string>
2236 </dict>
2237 <key>2</key>
2238 <dict>
2239 <key>name</key>
2240 <string>punctuation.definition.string.begin.python</string>
2241 </dict>
2242 </dict>
2243 <key>comment</key>
2244 <string>single quoted bytes-raw string</string>
2245 <key>end</key>
2246 <string>"""</string>
2247 <key>endCaptures</key>
2248 <dict>
2249 <key>0</key>
2250 <dict>
2251 <key>name</key>
2252 <string>punctuation.definition.string.end.python</string>
2253 </dict>
2254 </dict>
2255 <key>name</key>
2256 <string>string.quoted.double.block.bytes-raw-regex.python</string>
2257 <key>patterns</key>
2258 <array>
2259 <dict>
2260 <key>include</key>
2261 <string>#constant_placeholder</string>
2262 </dict>
2263 <dict>
2264 <key>include</key>
2265 <string>#escaped_char_raw_double</string>
2266 </dict>
2267 <dict>
2268 <key>include</key>
2269 <string>#regular_expressions</string>
2270 </dict>
2271 </array>
2272 </dict>
2273 <dict>
2274 <key>begin</key>
2275 <string>([bB]R)(""")</string>
2276 <key>beginCaptures</key>
2277 <dict>
2278 <key>1</key>
2279 <dict>
2280 <key>name</key>
2281 <string>storage.type.string.python</string>
2282 </dict>
2283 <key>2</key>
2284 <dict>
2285 <key>name</key>
2286 <string>punctuation.definition.string.begin.python</string>
2287 </dict>
2288 </dict>
2289 <key>comment</key>
2290 <string>single quoted bytes-raw string without regular expression highlighting</string>
2291 <key>end</key>
2292 <string>"""</string>
2293 <key>endCaptures</key>
2294 <dict>
2295 <key>0</key>
2296 <dict>
2297 <key>name</key>
2298 <string>punctuation.definition.string.end.python</string>
2299 </dict>
2300 </dict>
2301 <key>name</key>
2302 <string>string.quoted.double.block.bytes-raw.python</string>
2303 <key>patterns</key>
2304 <array>
2305 <dict>
2306 <key>include</key>
2307 <string>#constant_placeholder</string>
2308 </dict>
2309 <dict>
2310 <key>include</key>
2311 <string>#escaped_char_raw_double</string>
2312 </dict>
2313 </array>
2314 </dict>
2315 <dict>
2316 <key>begin</key>
2317 <string>(r)(""")</string>
2318 <key>beginCaptures</key>
2319 <dict>
2320 <key>1</key>
2321 <dict>
2322 <key>name</key>
2323 <string>storage.type.string.python</string>
2324 </dict>
2325 <key>2</key>
2326 <dict>
2327 <key>name</key>
2328 <string>punctuation.definition.string.begin.python</string>
2329 </dict>
2330 </dict>
2331 <key>comment</key>
2332 <string>double quoted raw string</string>
2333 <key>end</key>
2334 <string>"""</string>
2335 <key>endCaptures</key>
2336 <dict>
2337 <key>0</key>
2338 <dict>
2339 <key>name</key>
2340 <string>punctuation.definition.string.end.python</string>
2341 </dict>
2342 </dict>
2343 <key>name</key>
2344 <string>string.quoted.double.block.raw-regex.python</string>
2345 <key>patterns</key>
2346 <array>
2347 <dict>
2348 <key>include</key>
2349 <string>#constant_placeholder</string>
2350 </dict>
2351 <dict>
2352 <key>include</key>
2353 <string>#escaped_char_raw_double</string>
2354 </dict>
2355 <dict>
2356 <key>include</key>
2357 <string>#regular_expressions</string>
2358 </dict>
2359 </array>
2360 </dict>
2361 <dict>
2362 <key>begin</key>
2363 <string>(R)(""")</string>
2364 <key>beginCaptures</key>
2365 <dict>
2366 <key>1</key>
2367 <dict>
2368 <key>name</key>
2369 <string>storage.type.string.python</string>
2370 </dict>
2371 <key>2</key>
2372 <dict>
2373 <key>name</key>
2374 <string>punctuation.definition.string.begin.python</string>
2375 </dict>
2376 </dict>
2377 <key>comment</key>
2378 <string>double quoted raw string</string>
2379 <key>end</key>
2380 <string>"""</string>
2381 <key>endCaptures</key>
2382 <dict>
2383 <key>0</key>
2384 <dict>
2385 <key>name</key>
2386 <string>punctuation.definition.string.end.python</string>
2387 </dict>
2388 </dict>
2389 <key>name</key>
2390 <string>string.quoted.double.block.raw.python</string>
2391 <key>patterns</key>
2392 <array>
2393 <dict>
2394 <key>include</key>
2395 <string>#constant_placeholder</string>
2396 </dict>
2397 <dict>
2398 <key>include</key>
2399 <string>#escaped_char_raw_double</string>
2400 </dict>
2401 </array>
2402 </dict>
2403 <dict>
2404 <key>begin</key>
2405 <string>([uU])(""")</string>
2406 <key>beginCaptures</key>
2407 <dict>
2408 <key>1</key>
2409 <dict>
2410 <key>name</key>
2411 <string>storage.type.string.python</string>
2412 </dict>
2413 <key>2</key>
2414 <dict>
2415 <key>name</key>
2416 <string>punctuation.definition.string.begin.python</string>
2417 </dict>
2418 </dict>
2419 <key>comment</key>
2420 <string>double quoted unicode string</string>
2421 <key>end</key>
2422 <string>"""</string>
2423 <key>endCaptures</key>
2424 <dict>
2425 <key>0</key>
2426 <dict>
2427 <key>name</key>
2428 <string>punctuation.definition.string.end.python</string>
2429 </dict>
2430 </dict>
2431 <key>name</key>
2432 <string>string.quoted.double.block.unicode.python</string>
2433 <key>patterns</key>
2434 <array>
2435 <dict>
2436 <key>include</key>
2437 <string>#constant_placeholder</string>
2438 </dict>
2439 <dict>
2440 <key>include</key>
2441 <string>#escaped_unicode_char</string>
2442 </dict>
2443 <dict>
2444 <key>include</key>
2445 <string>#escaped_char</string>
2446 </dict>
2447 </array>
2448 </dict>
2449 <dict>
2450 <key>begin</key>
2451 <string>([bB])(""")</string>
2452 <key>beginCaptures</key>
2453 <dict>
2454 <key>1</key>
2455 <dict>
2456 <key>name</key>
2457 <string>storage.type.string.python</string>
2458 </dict>
2459 <key>2</key>
2460 <dict>
2461 <key>name</key>
2462 <string>punctuation.definition.string.begin.python</string>
2463 </dict>
2464 </dict>
2465 <key>comment</key>
2466 <string>double quoted bytes string</string>
2467 <key>end</key>
2468 <string>"""</string>
2469 <key>endCaptures</key>
2470 <dict>
2471 <key>0</key>
2472 <dict>
2473 <key>name</key>
2474 <string>punctuation.definition.string.end.python</string>
2475 </dict>
2476 </dict>
2477 <key>name</key>
2478 <string>string.quoted.double.block.bytes.python</string>
2479 <key>patterns</key>
2480 <array>
2481 <dict>
2482 <key>include</key>
2483 <string>#constant_placeholder</string>
2484 </dict>
2485 <dict>
2486 <key>include</key>
2487 <string>#escaped_unicode_char</string>
2488 </dict>
2489 <dict>
2490 <key>include</key>
2491 <string>#escaped_char</string>
2492 </dict>
2493 </array>
2494 </dict>
2495 <dict>
2496 <key>captures</key>
2497 <dict>
2498 <key>1</key>
2499 <dict>
2500 <key>name</key>
2501 <string>storage.type.string.python</string>
2502 </dict>
2503 <key>2</key>
2504 <dict>
2505 <key>name</key>
2506 <string>punctuation.definition.string.begin.python</string>
2507 </dict>
2508 <key>3</key>
2509 <dict>
2510 <key>patterns</key>
2511 <array>
2512 <dict>
2513 <key>include</key>
2514 <string>#constant_placeholder</string>
2515 </dict>
2516 <dict>
2517 <key>include</key>
2518 <string>#escaped_char_raw_double</string>
2519 </dict>
2520 <dict>
2521 <key>include</key>
2522 <string>#regular_expressions</string>
2523 </dict>
2524 </array>
2525 </dict>
2526 <key>4</key>
2527 <dict>
2528 <key>name</key>
2529 <string>punctuation.definition.string.end.python</string>
2530 </dict>
2531 </dict>
2532 <key>comment</key>
2533 <string>double-quoted raw string</string>
2534 <key>match</key>
2535 <string>([uU]r)(")((?:[^"\\]|\\.)*)(")</string>
2536 <key>name</key>
2537 <string>string.quoted.double.single-line.unicode-raw-regex.python</string>
2538 </dict>
2539 <dict>
2540 <key>begin</key>
2541 <string>([uU]R)(")</string>
2542 <key>beginCaptures</key>
2543 <dict>
2544 <key>1</key>
2545 <dict>
2546 <key>name</key>
2547 <string>storage.type.string.python</string>
2548 </dict>
2549 <key>2</key>
2550 <dict>
2551 <key>name</key>
2552 <string>punctuation.definition.string.begin.python</string>
2553 </dict>
2554 </dict>
2555 <key>comment</key>
2556 <string>double-quoted raw string</string>
2557 <key>end</key>
2558 <string>(")|(\n)</string>
2559 <key>endCaptures</key>
2560 <dict>
2561 <key>1</key>
2562 <dict>
2563 <key>name</key>
2564 <string>punctuation.definition.string.end.python</string>
2565 </dict>
2566 <key>2</key>
2567 <dict>
2568 <key>name</key>
2569 <string>invalid.illegal.unclosed-string.python</string>
2570 </dict>
2571 </dict>
2572 <key>name</key>
2573 <string>string.quoted.double.single-line.unicode-raw.python</string>
2574 <key>patterns</key>
2575 <array>
2576 <dict>
2577 <key>include</key>
2578 <string>#constant_placeholder</string>
2579 </dict>
2580 <dict>
2581 <key>include</key>
2582 <string>#escaped_char_raw_double</string>
2583 </dict>
2584 </array>
2585 </dict>
2586 <dict>
2587 <key>begin</key>
2588 <string>([bB]r)(")</string>
2589 <key>beginCaptures</key>
2590 <dict>
2591 <key>1</key>
2592 <dict>
2593 <key>name</key>
2594 <string>storage.type.string.python</string>
2595 </dict>
2596 <key>2</key>
2597 <dict>
2598 <key>name</key>
2599 <string>punctuation.definition.string.begin.python</string>
2600 </dict>
2601 </dict>
2602 <key>comment</key>
2603 <string>double-quoted raw string</string>
2604 <key>end</key>
2605 <string>(")|(\n)</string>
2606 <key>endCaptures</key>
2607 <dict>
2608 <key>1</key>
2609 <dict>
2610 <key>name</key>
2611 <string>punctuation.definition.string.end.python</string>
2612 </dict>
2613 <key>2</key>
2614 <dict>
2615 <key>name</key>
2616 <string>invalid.illegal.unclosed-string.python</string>
2617 </dict>
2618 </dict>
2619 <key>name</key>
2620 <string>string.quoted.double.single-line.bytes-raw-regex.python</string>
2621 <key>patterns</key>
2622 <array>
2623 <dict>
2624 <key>include</key>
2625 <string>#constant_placeholder</string>
2626 </dict>
2627 <dict>
2628 <key>include</key>
2629 <string>#escaped_char_raw_double</string>
2630 </dict>
2631 <dict>
2632 <key>include</key>
2633 <string>#regular_expressions</string>
2634 </dict>
2635 </array>
2636 </dict>
2637 <dict>
2638 <key>begin</key>
2639 <string>([bB]R)(")</string>
2640 <key>beginCaptures</key>
2641 <dict>
2642 <key>1</key>
2643 <dict>
2644 <key>name</key>
2645 <string>storage.type.string.python</string>
2646 </dict>
2647 <key>2</key>
2648 <dict>
2649 <key>name</key>
2650 <string>punctuation.definition.string.begin.python</string>
2651 </dict>
2652 </dict>
2653 <key>comment</key>
2654 <string>double-quoted raw string</string>
2655 <key>end</key>
2656 <string>(")|(\n)</string>
2657 <key>endCaptures</key>
2658 <dict>
2659 <key>1</key>
2660 <dict>
2661 <key>name</key>
2662 <string>punctuation.definition.string.end.python</string>
2663 </dict>
2664 <key>2</key>
2665 <dict>
2666 <key>name</key>
2667 <string>invalid.illegal.unclosed-string.python</string>
2668 </dict>
2669 </dict>
2670 <key>name</key>
2671 <string>string.quoted.double.single-line.bytes-raw.python</string>
2672 <key>patterns</key>
2673 <array>
2674 <dict>
2675 <key>include</key>
2676 <string>#constant_placeholder</string>
2677 </dict>
2678 <dict>
2679 <key>include</key>
2680 <string>#escaped_char_raw_double</string>
2681 </dict>
2682 </array>
2683 </dict>
2684 <dict>
2685 <key>captures</key>
2686 <dict>
2687 <key>1</key>
2688 <dict>
2689 <key>name</key>
2690 <string>storage.type.string.python</string>
2691 </dict>
2692 <key>2</key>
2693 <dict>
2694 <key>name</key>
2695 <string>punctuation.definition.string.begin.python</string>
2696 </dict>
2697 <key>3</key>
2698 <dict>
2699 <key>patterns</key>
2700 <array>
2701 <dict>
2702 <key>include</key>
2703 <string>#constant_placeholder</string>
2704 </dict>
2705 <dict>
2706 <key>include</key>
2707 <string>#escaped_char_raw_double</string>
2708 </dict>
2709 <dict>
2710 <key>include</key>
2711 <string>#regular_expressions</string>
2712 </dict>
2713 </array>
2714 </dict>
2715 <key>4</key>
2716 <dict>
2717 <key>name</key>
2718 <string>punctuation.definition.string.end.python</string>
2719 </dict>
2720 </dict>
2721 <key>comment</key>
2722 <string>double-quoted raw string</string>
2723 <key>match</key>
2724 <string>(r)(")((?:[^"\\]|\\.)*)(")</string>
2725 <key>name</key>
2726 <string>string.quoted.double.single-line.raw-regex.python</string>
2727 </dict>
2728 <dict>
2729 <key>begin</key>
2730 <string>(R)(")</string>
2731 <key>beginCaptures</key>
2732 <dict>
2733 <key>1</key>
2734 <dict>
2735 <key>name</key>
2736 <string>storage.type.string.python</string>
2737 </dict>
2738 <key>2</key>
2739 <dict>
2740 <key>name</key>
2741 <string>punctuation.definition.string.begin.python</string>
2742 </dict>
2743 </dict>
2744 <key>comment</key>
2745 <string>double-quoted raw string</string>
2746 <key>end</key>
2747 <string>(")|(\n)</string>
2748 <key>endCaptures</key>
2749 <dict>
2750 <key>1</key>
2751 <dict>
2752 <key>name</key>
2753 <string>punctuation.definition.string.end.python</string>
2754 </dict>
2755 <key>2</key>
2756 <dict>
2757 <key>name</key>
2758 <string>invalid.illegal.unclosed-string.python</string>
2759 </dict>
2760 </dict>
2761 <key>name</key>
2762 <string>string.quoted.double.single-line.raw.python</string>
2763 <key>patterns</key>
2764 <array>
2765 <dict>
2766 <key>include</key>
2767 <string>#constant_placeholder</string>
2768 </dict>
2769 <dict>
2770 <key>include</key>
2771 <string>#escaped_char_raw_double</string>
2772 </dict>
2773 </array>
2774 </dict>
2775 <dict>
2776 <key>begin</key>
2777 <string>([uU])(")</string>
2778 <key>beginCaptures</key>
2779 <dict>
2780 <key>1</key>
2781 <dict>
2782 <key>name</key>
2783 <string>storage.type.string.python</string>
2784 </dict>
2785 <key>2</key>
2786 <dict>
2787 <key>name</key>
2788 <string>punctuation.definition.string.begin.python</string>
2789 </dict>
2790 </dict>
2791 <key>comment</key>
2792 <string>double quoted unicode string</string>
2793 <key>end</key>
2794 <string>(")|(\n)</string>
2795 <key>endCaptures</key>
2796 <dict>
2797 <key>1</key>
2798 <dict>
2799 <key>name</key>
2800 <string>punctuation.definition.string.end.python</string>
2801 </dict>
2802 <key>2</key>
2803 <dict>
2804 <key>name</key>
2805 <string>invalid.illegal.unclosed-string.python</string>
2806 </dict>
2807 </dict>
2808 <key>name</key>
2809 <string>string.quoted.double.single-line.unicode.python</string>
2810 <key>patterns</key>
2811 <array>
2812 <dict>
2813 <key>include</key>
2814 <string>#constant_placeholder</string>
2815 </dict>
2816 <dict>
2817 <key>include</key>
2818 <string>#escaped_unicode_char</string>
2819 </dict>
2820 <dict>
2821 <key>include</key>
2822 <string>#escaped_char</string>
2823 </dict>
2824 </array>
2825 </dict>
2826 <dict>
2827 <key>begin</key>
2828 <string>([bB])(")</string>
2829 <key>beginCaptures</key>
2830 <dict>
2831 <key>1</key>
2832 <dict>
2833 <key>name</key>
2834 <string>storage.type.string.python</string>
2835 </dict>
2836 <key>2</key>
2837 <dict>
2838 <key>name</key>
2839 <string>punctuation.definition.string.begin.python</string>
2840 </dict>
2841 </dict>
2842 <key>comment</key>
2843 <string>double quoted bytes string</string>
2844 <key>end</key>
2845 <string>(")|(\n)</string>
2846 <key>endCaptures</key>
2847 <dict>
2848 <key>1</key>
2849 <dict>
2850 <key>name</key>
2851 <string>punctuation.definition.string.end.python</string>
2852 </dict>
2853 <key>2</key>
2854 <dict>
2855 <key>name</key>
2856 <string>invalid.illegal.unclosed-string.python</string>
2857 </dict>
2858 </dict>
2859 <key>name</key>
2860 <string>string.quoted.double.single-line.bytes.python</string>
2861 <key>patterns</key>
2862 <array>
2863 <dict>
2864 <key>include</key>
2865 <string>#constant_placeholder</string>
2866 </dict>
2867 <dict>
2868 <key>include</key>
2869 <string>#escaped_unicode_char</string>
2870 </dict>
2871 <dict>
2872 <key>include</key>
2873 <string>#escaped_char</string>
2874 </dict>
2875 </array>
2876 </dict>
2877 <dict>
2878 <key>begin</key>
2879 <string>(")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
2880 <key>beginCaptures</key>
2881 <dict>
2882 <key>1</key>
2883 <dict>
2884 <key>name</key>
2885 <string>punctuation.definition.string.begin.python</string>
2886 </dict>
2887 </dict>
2888 <key>comment</key>
2889 <string>double quoted string</string>
2890 <key>end</key>
2891 <string>(")|(\n)</string>
2892 <key>endCaptures</key>
2893 <dict>
2894 <key>1</key>
2895 <dict>
2896 <key>name</key>
2897 <string>punctuation.definition.string.end.python</string>
2898 </dict>
2899 <key>2</key>
2900 <dict>
2901 <key>name</key>
2902 <string>invalid.illegal.unclosed-string.python</string>
2903 </dict>
2904 </dict>
2905 <key>name</key>
2906 <string>string.quoted.double.single-line.sql.python</string>
2907 <key>patterns</key>
2908 <array>
2909 <dict>
2910 <key>captures</key>
2911 <dict>
2912 <key>0</key>
2913 <dict>
2914 <key>patterns</key>
2915 <array>
2916 <dict>
2917 <key>include</key>
2918 <string>#constant_placeholder</string>
2919 </dict>
2920 <dict>
2921 <key>include</key>
2922 <string>#escaped_unicode_char</string>
2923 </dict>
2924 <dict>
2925 <key>include</key>
2926 <string>#escaped_char</string>
2927 </dict>
2928 <dict>
2929 <key>include</key>
2930 <string>source.sql</string>
2931 </dict>
2932 </array>
2933 </dict>
2934 </dict>
2935 <key>match</key>
2936 <string>(\G|^)([^"\\]|\\(.|\n))*(?="|$)</string>
2937 </dict>
2938 </array>
2939 </dict>
2940 <dict>
2941 <key>begin</key>
2942 <string>(""")</string>
2943 <key>beginCaptures</key>
2944 <dict>
2945 <key>1</key>
2946 <dict>
2947 <key>name</key>
2948 <string>punctuation.definition.string.begin.python</string>
2949 </dict>
2950 </dict>
2951 <key>comment</key>
2952 <string>double quoted string</string>
2953 <key>end</key>
2954 <string>"""</string>
2955 <key>endCaptures</key>
2956 <dict>
2957 <key>0</key>
2958 <dict>
2959 <key>name</key>
2960 <string>punctuation.definition.string.end.python</string>
2961 </dict>
2962 </dict>
2963 <key>name</key>
2964 <string>string.quoted.double.block.python</string>
2965 <key>patterns</key>
2966 <array>
2967 <dict>
2968 <key>begin</key>
2969 <string>(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
2970 <key>end</key>
2971 <string>(?=""")</string>
2972 <key>patterns</key>
2973 <array>
2974 <dict>
2975 <key>include</key>
2976 <string>#constant_placeholder</string>
2977 </dict>
2978 <dict>
2979 <key>include</key>
2980 <string>#escaped_unicode_char</string>
2981 </dict>
2982 <dict>
2983 <key>include</key>
2984 <string>#escaped_char</string>
2985 </dict>
2986 <dict>
2987 <key>include</key>
2988 <string>source.sql</string>
2989 </dict>
2990 </array>
2991 </dict>
2992 <dict>
2993 <key>begin</key>
2994 <string>(?=\S)</string>
2995 <key>end</key>
2996 <string>(?=""")</string>
2997 <key>patterns</key>
2998 <array>
2999 <dict>
3000 <key>include</key>
3001 <string>#constant_placeholder</string>
3002 </dict>
3003 <dict>
3004 <key>include</key>
3005 <string>#escaped_unicode_char</string>
3006 </dict>
3007 <dict>
3008 <key>include</key>
3009 <string>#escaped_char</string>
3010 </dict>
3011 </array>
3012 </dict>
3013 </array>
3014 </dict>
3015 <dict>
3016 <key>begin</key>
3017 <string>(")</string>
3018 <key>beginCaptures</key>
3019 <dict>
3020 <key>1</key>
3021 <dict>
3022 <key>name</key>
3023 <string>punctuation.definition.string.begin.python</string>
3024 </dict>
3025 </dict>
3026 <key>comment</key>
3027 <string>double quoted string</string>
3028 <key>end</key>
3029 <string>(")|(\n)</string>
3030 <key>endCaptures</key>
3031 <dict>
3032 <key>1</key>
3033 <dict>
3034 <key>name</key>
3035 <string>punctuation.definition.string.end.python</string>
3036 </dict>
3037 <key>2</key>
3038 <dict>
3039 <key>name</key>
3040 <string>invalid.illegal.unclosed-string.python</string>
3041 </dict>
3042 </dict>
3043 <key>name</key>
3044 <string>string.quoted.double.single-line.python</string>
3045 <key>patterns</key>
3046 <array>
3047 <dict>
3048 <key>include</key>
3049 <string>#constant_placeholder</string>
3050 </dict>
3051 <dict>
3052 <key>include</key>
3053 <string>#escaped_unicode_char</string>
3054 </dict>
3055 <dict>
3056 <key>include</key>
3057 <string>#escaped_char</string>
3058 </dict>
3059 </array>
3060 </dict>
3061 </array>
3062 </dict>
3063 <key>string_quoted_single</key>
3064 <dict>
3065 <key>patterns</key>
3066 <array>
3067 <dict>
3068 <key>begin</key>
3069 <string>([uU]r)(''')</string>
3070 <key>beginCaptures</key>
3071 <dict>
3072 <key>1</key>
3073 <dict>
3074 <key>name</key>
3075 <string>storage.type.string.python</string>
3076 </dict>
3077 <key>2</key>
3078 <dict>
3079 <key>name</key>
3080 <string>punctuation.definition.string.begin.python</string>
3081 </dict>
3082 </dict>
3083 <key>comment</key>
3084 <string>single quoted unicode-raw string</string>
3085 <key>end</key>
3086 <string>'''</string>
3087 <key>endCaptures</key>
3088 <dict>
3089 <key>0</key>
3090 <dict>
3091 <key>name</key>
3092 <string>punctuation.definition.string.end.python</string>
3093 </dict>
3094 </dict>
3095 <key>name</key>
3096 <string>string.quoted.single.block.unicode-raw-regex.python</string>
3097 <key>patterns</key>
3098 <array>
3099 <dict>
3100 <key>include</key>
3101 <string>#constant_placeholder</string>
3102 </dict>
3103 <dict>
3104 <key>include</key>
3105 <string>#escaped_char_raw_single</string>
3106 </dict>
3107 <dict>
3108 <key>include</key>
3109 <string>#regular_expressions</string>
3110 </dict>
3111 </array>
3112 </dict>
3113 <dict>
3114 <key>begin</key>
3115 <string>([uU]R)(''')</string>
3116 <key>beginCaptures</key>
3117 <dict>
3118 <key>1</key>
3119 <dict>
3120 <key>name</key>
3121 <string>storage.type.string.python</string>
3122 </dict>
3123 <key>2</key>
3124 <dict>
3125 <key>name</key>
3126 <string>punctuation.definition.string.begin.python</string>
3127 </dict>
3128 </dict>
3129 <key>comment</key>
3130 <string>single quoted unicode-raw string</string>
3131 <key>end</key>
3132 <string>'''</string>
3133 <key>endCaptures</key>
3134 <dict>
3135 <key>0</key>
3136 <dict>
3137 <key>name</key>
3138 <string>punctuation.definition.string.end.python</string>
3139 </dict>
3140 </dict>
3141 <key>name</key>
3142 <string>string.quoted.single.block.unicode-raw.python</string>
3143 <key>patterns</key>
3144 <array>
3145 <dict>
3146 <key>include</key>
3147 <string>#constant_placeholder</string>
3148 </dict>
3149 <dict>
3150 <key>include</key>
3151 <string>#escaped_char_raw_single</string>
3152 </dict>
3153 </array>
3154 </dict>
3155 <dict>
3156 <key>begin</key>
3157 <string>([bB]r)(''')</string>
3158 <key>beginCaptures</key>
3159 <dict>
3160 <key>1</key>
3161 <dict>
3162 <key>name</key>
3163 <string>storage.type.string.python</string>
3164 </dict>
3165 <key>2</key>
3166 <dict>
3167 <key>name</key>
3168 <string>punctuation.definition.string.begin.python</string>
3169 </dict>
3170 </dict>
3171 <key>comment</key>
3172 <string>single quoted bytes-raw string</string>
3173 <key>end</key>
3174 <string>'''</string>
3175 <key>endCaptures</key>
3176 <dict>
3177 <key>0</key>
3178 <dict>
3179 <key>name</key>
3180 <string>punctuation.definition.string.end.python</string>
3181 </dict>
3182 </dict>
3183 <key>name</key>
3184 <string>string.quoted.single.block.bytes-raw-regex.python</string>
3185 <key>patterns</key>
3186 <array>
3187 <dict>
3188 <key>include</key>
3189 <string>#constant_placeholder</string>
3190 </dict>
3191 <dict>
3192 <key>include</key>
3193 <string>#escaped_char_raw_single</string>
3194 </dict>
3195 <dict>
3196 <key>include</key>
3197 <string>#regular_expressions</string>
3198 </dict>
3199 </array>
3200 </dict>
3201 <dict>
3202 <key>begin</key>
3203 <string>([bB]R)(''')</string>
3204 <key>beginCaptures</key>
3205 <dict>
3206 <key>1</key>
3207 <dict>
3208 <key>name</key>
3209 <string>storage.type.string.python</string>
3210 </dict>
3211 <key>2</key>
3212 <dict>
3213 <key>name</key>
3214 <string>punctuation.definition.string.begin.python</string>
3215 </dict>
3216 </dict>
3217 <key>comment</key>
3218 <string>single quoted bytes-raw string</string>
3219 <key>end</key>
3220 <string>'''</string>
3221 <key>endCaptures</key>
3222 <dict>
3223 <key>0</key>
3224 <dict>
3225 <key>name</key>
3226 <string>punctuation.definition.string.end.python</string>
3227 </dict>
3228 </dict>
3229 <key>name</key>
3230 <string>string.quoted.single.block.bytes-raw.python</string>
3231 <key>patterns</key>
3232 <array>
3233 <dict>
3234 <key>include</key>
3235 <string>#constant_placeholder</string>
3236 </dict>
3237 <dict>
3238 <key>include</key>
3239 <string>#escaped_char_raw_single</string>
3240 </dict>
3241 </array>
3242 </dict>
3243 <dict>
3244 <key>begin</key>
3245 <string>(r)(''')</string>
3246 <key>beginCaptures</key>
3247 <dict>
3248 <key>1</key>
3249 <dict>
3250 <key>name</key>
3251 <string>storage.type.string.python</string>
3252 </dict>
3253 <key>2</key>
3254 <dict>
3255 <key>name</key>
3256 <string>punctuation.definition.string.begin.python</string>
3257 </dict>
3258 </dict>
3259 <key>comment</key>
3260 <string>single quoted raw string</string>
3261 <key>end</key>
3262 <string>'''</string>
3263 <key>endCaptures</key>
3264 <dict>
3265 <key>0</key>
3266 <dict>
3267 <key>name</key>
3268 <string>punctuation.definition.string.end.python</string>
3269 </dict>
3270 </dict>
3271 <key>name</key>
3272 <string>string.quoted.single.block.raw-regex.python</string>
3273 <key>patterns</key>
3274 <array>
3275 <dict>
3276 <key>include</key>
3277 <string>#constant_placeholder</string>
3278 </dict>
3279 <dict>
3280 <key>include</key>
3281 <string>#escaped_char_raw_single</string>
3282 </dict>
3283 <dict>
3284 <key>include</key>
3285 <string>#regular_expressions</string>
3286 </dict>
3287 </array>
3288 </dict>
3289 <dict>
3290 <key>begin</key>
3291 <string>(R)(''')</string>
3292 <key>beginCaptures</key>
3293 <dict>
3294 <key>1</key>
3295 <dict>
3296 <key>name</key>
3297 <string>storage.type.string.python</string>
3298 </dict>
3299 <key>2</key>
3300 <dict>
3301 <key>name</key>
3302 <string>punctuation.definition.string.begin.python</string>
3303 </dict>
3304 </dict>
3305 <key>comment</key>
3306 <string>single quoted raw string</string>
3307 <key>end</key>
3308 <string>'''</string>
3309 <key>endCaptures</key>
3310 <dict>
3311 <key>0</key>
3312 <dict>
3313 <key>name</key>
3314 <string>punctuation.definition.string.end.python</string>
3315 </dict>
3316 </dict>
3317 <key>name</key>
3318 <string>string.quoted.single.block.raw.python</string>
3319 <key>patterns</key>
3320 <array>
3321 <dict>
3322 <key>include</key>
3323 <string>#constant_placeholder</string>
3324 </dict>
3325 <dict>
3326 <key>include</key>
3327 <string>#escaped_char_raw_single</string>
3328 </dict>
3329 </array>
3330 </dict>
3331 <dict>
3332 <key>begin</key>
3333 <string>([uU])(''')</string>
3334 <key>beginCaptures</key>
3335 <dict>
3336 <key>1</key>
3337 <dict>
3338 <key>name</key>
3339 <string>storage.type.string.python</string>
3340 </dict>
3341 <key>2</key>
3342 <dict>
3343 <key>name</key>
3344 <string>punctuation.definition.string.begin.python</string>
3345 </dict>
3346 </dict>
3347 <key>comment</key>
3348 <string>single quoted unicode string</string>
3349 <key>end</key>
3350 <string>'''</string>
3351 <key>endCaptures</key>
3352 <dict>
3353 <key>0</key>
3354 <dict>
3355 <key>name</key>
3356 <string>punctuation.definition.string.end.python</string>
3357 </dict>
3358 </dict>
3359 <key>name</key>
3360 <string>string.quoted.single.block.unicode.python</string>
3361 <key>patterns</key>
3362 <array>
3363 <dict>
3364 <key>include</key>
3365 <string>#constant_placeholder</string>
3366 </dict>
3367 <dict>
3368 <key>include</key>
3369 <string>#escaped_unicode_char</string>
3370 </dict>
3371 <dict>
3372 <key>include</key>
3373 <string>#escaped_char</string>
3374 </dict>
3375 </array>
3376 </dict>
3377 <dict>
3378 <key>begin</key>
3379 <string>([bB])(''')</string>
3380 <key>beginCaptures</key>
3381 <dict>
3382 <key>1</key>
3383 <dict>
3384 <key>name</key>
3385 <string>storage.type.string.python</string>
3386 </dict>
3387 <key>2</key>
3388 <dict>
3389 <key>name</key>
3390 <string>punctuation.definition.string.begin.python</string>
3391 </dict>
3392 </dict>
3393 <key>comment</key>
3394 <string>single quoted bytes string</string>
3395 <key>end</key>
3396 <string>'''</string>
3397 <key>endCaptures</key>
3398 <dict>
3399 <key>0</key>
3400 <dict>
3401 <key>name</key>
3402 <string>punctuation.definition.string.end.python</string>
3403 </dict>
3404 </dict>
3405 <key>name</key>
3406 <string>string.quoted.single.block.bytes.python</string>
3407 <key>patterns</key>
3408 <array>
3409 <dict>
3410 <key>include</key>
3411 <string>#constant_placeholder</string>
3412 </dict>
3413 <dict>
3414 <key>include</key>
3415 <string>#escaped_unicode_char</string>
3416 </dict>
3417 <dict>
3418 <key>include</key>
3419 <string>#escaped_char</string>
3420 </dict>
3421 </array>
3422 </dict>
3423 <dict>
3424 <key>captures</key>
3425 <dict>
3426 <key>1</key>
3427 <dict>
3428 <key>name</key>
3429 <string>storage.type.string.python</string>
3430 </dict>
3431 <key>2</key>
3432 <dict>
3433 <key>name</key>
3434 <string>punctuation.definition.string.begin.python</string>
3435 </dict>
3436 <key>3</key>
3437 <dict>
3438 <key>patterns</key>
3439 <array>
3440 <dict>
3441 <key>include</key>
3442 <string>#constant_placeholder</string>
3443 </dict>
3444 <dict>
3445 <key>include</key>
3446 <string>#escaped_char_raw_single</string>
3447 </dict>
3448 <dict>
3449 <key>include</key>
3450 <string>#regular_expressions</string>
3451 </dict>
3452 </array>
3453 </dict>
3454 <key>4</key>
3455 <dict>
3456 <key>name</key>
3457 <string>punctuation.definition.string.end.python</string>
3458 </dict>
3459 </dict>
3460 <key>comment</key>
3461 <string>single quoted raw string</string>
3462 <key>match</key>
3463 <string>([uU]r)(')((?:[^'\\]|\\.)*)(')</string>
3464 <key>name</key>
3465 <string>string.quoted.single.single-line.unicode-raw-regex.python</string>
3466 </dict>
3467 <dict>
3468 <key>begin</key>
3469 <string>([uU]R)(')</string>
3470 <key>beginCaptures</key>
3471 <dict>
3472 <key>1</key>
3473 <dict>
3474 <key>name</key>
3475 <string>storage.type.string.python</string>
3476 </dict>
3477 <key>2</key>
3478 <dict>
3479 <key>name</key>
3480 <string>punctuation.definition.string.begin.python</string>
3481 </dict>
3482 </dict>
3483 <key>comment</key>
3484 <string>single quoted unicode-raw string</string>
3485 <key>end</key>
3486 <string>(')|(\n)</string>
3487 <key>endCaptures</key>
3488 <dict>
3489 <key>1</key>
3490 <dict>
3491 <key>name</key>
3492 <string>punctuation.definition.string.end.python</string>
3493 </dict>
3494 <key>2</key>
3495 <dict>
3496 <key>name</key>
3497 <string>invalid.illegal.unclosed-string.python</string>
3498 </dict>
3499 </dict>
3500 <key>name</key>
3501 <string>string.quoted.single.single-line.unicode-raw.python</string>
3502 <key>patterns</key>
3503 <array>
3504 <dict>
3505 <key>include</key>
3506 <string>#constant_placeholder</string>
3507 </dict>
3508 <dict>
3509 <key>include</key>
3510 <string>#escaped_char_raw_single</string>
3511 </dict>
3512 </array>
3513 </dict>
3514 <dict>
3515 <key>begin</key>
3516 <string>([bB]r)(')</string>
3517 <key>beginCaptures</key>
3518 <dict>
3519 <key>1</key>
3520 <dict>
3521 <key>name</key>
3522 <string>storage.type.string.python</string>
3523 </dict>
3524 <key>2</key>
3525 <dict>
3526 <key>name</key>
3527 <string>punctuation.definition.string.begin.python</string>
3528 </dict>
3529 </dict>
3530 <key>comment</key>
3531 <string>single quoted bytes-raw string</string>
3532 <key>end</key>
3533 <string>(')|(\n)</string>
3534 <key>endCaptures</key>
3535 <dict>
3536 <key>1</key>
3537 <dict>
3538 <key>name</key>
3539 <string>punctuation.definition.string.end.python</string>
3540 </dict>
3541 <key>2</key>
3542 <dict>
3543 <key>name</key>
3544 <string>invalid.illegal.unclosed-string.python</string>
3545 </dict>
3546 </dict>
3547 <key>name</key>
3548 <string>string.quoted.single.single-line.bytes-raw-regex.python</string>
3549 <key>patterns</key>
3550 <array>
3551 <dict>
3552 <key>include</key>
3553 <string>#constant_placeholder</string>
3554 </dict>
3555 <dict>
3556 <key>include</key>
3557 <string>#escaped_char_raw_single</string>
3558 </dict>
3559 <dict>
3560 <key>include</key>
3561 <string>#regular_expressions</string>
3562 </dict>
3563 </array>
3564 </dict>
3565 <dict>
3566 <key>begin</key>
3567 <string>([bB]R)(')</string>
3568 <key>beginCaptures</key>
3569 <dict>
3570 <key>1</key>
3571 <dict>
3572 <key>name</key>
3573 <string>storage.type.string.python</string>
3574 </dict>
3575 <key>2</key>
3576 <dict>
3577 <key>name</key>
3578 <string>punctuation.definition.string.begin.python</string>
3579 </dict>
3580 </dict>
3581 <key>comment</key>
3582 <string>single quoted bytes-raw string</string>
3583 <key>end</key>
3584 <string>(')|(\n)</string>
3585 <key>endCaptures</key>
3586 <dict>
3587 <key>1</key>
3588 <dict>
3589 <key>name</key>
3590 <string>punctuation.definition.string.end.python</string>
3591 </dict>
3592 <key>2</key>
3593 <dict>
3594 <key>name</key>
3595 <string>invalid.illegal.unclosed-string.python</string>
3596 </dict>
3597 </dict>
3598 <key>name</key>
3599 <string>string.quoted.single.single-line.bytes-raw.python</string>
3600 <key>patterns</key>
3601 <array>
3602 <dict>
3603 <key>include</key>
3604 <string>#constant_placeholder</string>
3605 </dict>
3606 <dict>
3607 <key>include</key>
3608 <string>#escaped_char_raw_single</string>
3609 </dict>
3610 </array>
3611 </dict>
3612 <dict>
3613 <key>captures</key>
3614 <dict>
3615 <key>1</key>
3616 <dict>
3617 <key>name</key>
3618 <string>storage.type.string.python</string>
3619 </dict>
3620 <key>2</key>
3621 <dict>
3622 <key>name</key>
3623 <string>punctuation.definition.string.begin.python</string>
3624 </dict>
3625 <key>3</key>
3626 <dict>
3627 <key>patterns</key>
3628 <array>
3629 <dict>
3630 <key>include</key>
3631 <string>#constant_placeholder</string>
3632 </dict>
3633 <dict>
3634 <key>include</key>
3635 <string>#escaped_char_raw_single</string>
3636 </dict>
3637 <dict>
3638 <key>include</key>
3639 <string>#regular_expressions</string>
3640 </dict>
3641 </array>
3642 </dict>
3643 <key>4</key>
3644 <dict>
3645 <key>name</key>
3646 <string>punctuation.definition.string.end.python</string>
3647 </dict>
3648 </dict>
3649 <key>match</key>
3650 <string>(r)(')((?:[^'\\]|\\.)*)(')</string>
3651 <key>name</key>
3652 <string>string.quoted.single.single-line.raw-regex.python</string>
3653 </dict>
3654 <dict>
3655 <key>begin</key>
3656 <string>(R)(')</string>
3657 <key>beginCaptures</key>
3658 <dict>
3659 <key>1</key>
3660 <dict>
3661 <key>name</key>
3662 <string>storage.type.string.python</string>
3663 </dict>
3664 <key>2</key>
3665 <dict>
3666 <key>name</key>
3667 <string>punctuation.definition.string.begin.python</string>
3668 </dict>
3669 </dict>
3670 <key>comment</key>
3671 <string>single quoted raw string</string>
3672 <key>end</key>
3673 <string>(')|(\n)</string>
3674 <key>endCaptures</key>
3675 <dict>
3676 <key>1</key>
3677 <dict>
3678 <key>name</key>
3679 <string>punctuation.definition.string.end.python</string>
3680 </dict>
3681 <key>2</key>
3682 <dict>
3683 <key>name</key>
3684 <string>invalid.illegal.unclosed-string.python</string>
3685 </dict>
3686 </dict>
3687 <key>name</key>
3688 <string>string.quoted.single.single-line.raw.python</string>
3689 <key>patterns</key>
3690 <array>
3691 <dict>
3692 <key>include</key>
3693 <string>#constant_placeholder</string>
3694 </dict>
3695 <dict>
3696 <key>include</key>
3697 <string>#escaped_char_raw_single</string>
3698 </dict>
3699 </array>
3700 </dict>
3701 <dict>
3702 <key>begin</key>
3703 <string>([uU])(')</string>
3704 <key>beginCaptures</key>
3705 <dict>
3706 <key>1</key>
3707 <dict>
3708 <key>name</key>
3709 <string>storage.type.string.python</string>
3710 </dict>
3711 <key>2</key>
3712 <dict>
3713 <key>name</key>
3714 <string>punctuation.definition.string.begin.python</string>
3715 </dict>
3716 </dict>
3717 <key>comment</key>
3718 <string>single quoted unicode string</string>
3719 <key>end</key>
3720 <string>(')|(\n)</string>
3721 <key>endCaptures</key>
3722 <dict>
3723 <key>1</key>
3724 <dict>
3725 <key>name</key>
3726 <string>punctuation.definition.string.end.python</string>
3727 </dict>
3728 <key>2</key>
3729 <dict>
3730 <key>name</key>
3731 <string>invalid.illegal.unclosed-string.python</string>
3732 </dict>
3733 </dict>
3734 <key>name</key>
3735 <string>string.quoted.single.single-line.unicode.python</string>
3736 <key>patterns</key>
3737 <array>
3738 <dict>
3739 <key>include</key>
3740 <string>#constant_placeholder</string>
3741 </dict>
3742 <dict>
3743 <key>include</key>
3744 <string>#escaped_unicode_char</string>
3745 </dict>
3746 <dict>
3747 <key>include</key>
3748 <string>#escaped_char</string>
3749 </dict>
3750 </array>
3751 </dict>
3752 <dict>
3753 <key>begin</key>
3754 <string>([bB])(')</string>
3755 <key>beginCaptures</key>
3756 <dict>
3757 <key>1</key>
3758 <dict>
3759 <key>name</key>
3760 <string>storage.type.string.python</string>
3761 </dict>
3762 <key>2</key>
3763 <dict>
3764 <key>name</key>
3765 <string>punctuation.definition.string.begin.python</string>
3766 </dict>
3767 </dict>
3768 <key>comment</key>
3769 <string>single quoted bytes string</string>
3770 <key>end</key>
3771 <string>(')|(\n)</string>
3772 <key>endCaptures</key>
3773 <dict>
3774 <key>1</key>
3775 <dict>
3776 <key>name</key>
3777 <string>punctuation.definition.string.end.python</string>
3778 </dict>
3779 <key>2</key>
3780 <dict>
3781 <key>name</key>
3782 <string>invalid.illegal.unclosed-string.python</string>
3783 </dict>
3784 </dict>
3785 <key>name</key>
3786 <string>string.quoted.single.single-line.bytes.python</string>
3787 <key>patterns</key>
3788 <array>
3789 <dict>
3790 <key>include</key>
3791 <string>#constant_placeholder</string>
3792 </dict>
3793 <dict>
3794 <key>include</key>
3795 <string>#escaped_unicode_char</string>
3796 </dict>
3797 <dict>
3798 <key>include</key>
3799 <string>#escaped_char</string>
3800 </dict>
3801 </array>
3802 </dict>
3803 <dict>
3804 <key>begin</key>
3805 <string>(')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
3806 <key>beginCaptures</key>
3807 <dict>
3808 <key>1</key>
3809 <dict>
3810 <key>name</key>
3811 <string>punctuation.definition.string.begin.python</string>
3812 </dict>
3813 </dict>
3814 <key>comment</key>
3815 <string>single quoted string</string>
3816 <key>end</key>
3817 <string>(')|(\n)</string>
3818 <key>endCaptures</key>
3819 <dict>
3820 <key>1</key>
3821 <dict>
3822 <key>name</key>
3823 <string>punctuation.definition.string.end.python</string>
3824 </dict>
3825 <key>2</key>
3826 <dict>
3827 <key>name</key>
3828 <string>invalid.illegal.unclosed-string.python</string>
3829 </dict>
3830 </dict>
3831 <key>name</key>
3832 <string>string.quoted.single.single-line.python</string>
3833 <key>patterns</key>
3834 <array>
3835 <dict>
3836 <key>captures</key>
3837 <dict>
3838 <key>0</key>
3839 <dict>
3840 <key>patterns</key>
3841 <array>
3842 <dict>
3843 <key>include</key>
3844 <string>#constant_placeholder</string>
3845 </dict>
3846 <dict>
3847 <key>include</key>
3848 <string>#escaped_unicode_char</string>
3849 </dict>
3850 <dict>
3851 <key>include</key>
3852 <string>#escaped_char</string>
3853 </dict>
3854 <dict>
3855 <key>include</key>
3856 <string>source.sql</string>
3857 </dict>
3858 </array>
3859 </dict>
3860 </dict>
3861 <key>match</key>
3862 <string>(\G|^)([^'\\]|\\(.|\n))*(?='|$)</string>
3863 </dict>
3864 </array>
3865 </dict>
3866 <dict>
3867 <key>begin</key>
3868 <string>(''')</string>
3869 <key>beginCaptures</key>
3870 <dict>
3871 <key>1</key>
3872 <dict>
3873 <key>name</key>
3874 <string>punctuation.definition.string.begin.python</string>
3875 </dict>
3876 </dict>
3877 <key>comment</key>
3878 <string>single quoted string</string>
3879 <key>end</key>
3880 <string>'''</string>
3881 <key>endCaptures</key>
3882 <dict>
3883 <key>0</key>
3884 <dict>
3885 <key>name</key>
3886 <string>punctuation.definition.string.end.python</string>
3887 </dict>
3888 </dict>
3889 <key>name</key>
3890 <string>string.quoted.single.block.python</string>
3891 <key>patterns</key>
3892 <array>
3893 <dict>
3894 <key>begin</key>
3895 <string>(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
3896 <key>end</key>
3897 <string>(?=''')</string>
3898 <key>patterns</key>
3899 <array>
3900 <dict>
3901 <key>include</key>
3902 <string>#constant_placeholder</string>
3903 </dict>
3904 <dict>
3905 <key>include</key>
3906 <string>#escaped_unicode_char</string>
3907 </dict>
3908 <dict>
3909 <key>include</key>
3910 <string>#escaped_char</string>
3911 </dict>
3912 <dict>
3913 <key>include</key>
3914 <string>source.sql</string>
3915 </dict>
3916 </array>
3917 </dict>
3918 <dict>
3919 <key>begin</key>
3920 <string>(?=\S)</string>
3921 <key>end</key>
3922 <string>(?=''')</string>
3923 <key>patterns</key>
3924 <array>
3925 <dict>
3926 <key>include</key>
3927 <string>#constant_placeholder</string>
3928 </dict>
3929 <dict>
3930 <key>include</key>
3931 <string>#escaped_unicode_char</string>
3932 </dict>
3933 <dict>
3934 <key>include</key>
3935 <string>#escaped_char</string>
3936 </dict>
3937 </array>
3938 </dict>
3939 </array>
3940 </dict>
3941 <dict>
3942 <key>begin</key>
3943 <string>(')</string>
3944 <key>beginCaptures</key>
3945 <dict>
3946 <key>1</key>
3947 <dict>
3948 <key>name</key>
3949 <string>punctuation.definition.string.begin.python</string>
3950 </dict>
3951 </dict>
3952 <key>comment</key>
3953 <string>single quoted string</string>
3954 <key>end</key>
3955 <string>(')|(\n)</string>
3956 <key>endCaptures</key>
3957 <dict>
3958 <key>1</key>
3959 <dict>
3960 <key>name</key>
3961 <string>punctuation.definition.string.end.python</string>
3962 </dict>
3963 <key>2</key>
3964 <dict>
3965 <key>name</key>
3966 <string>invalid.illegal.unclosed-string.python</string>
3967 </dict>
3968 </dict>
3969 <key>name</key>
3970 <string>string.quoted.single.single-line.python</string>
3971 <key>patterns</key>
3972 <array>
3973 <dict>
3974 <key>include</key>
3975 <string>#constant_placeholder</string>
3976 </dict>
3977 <dict>
3978 <key>include</key>
3979 <string>#escaped_unicode_char</string>
3980 </dict>
3981 <dict>
3982 <key>include</key>
3983 <string>#escaped_char</string>
3984 </dict>
3985 </array>
3986 </dict>
3987 </array>
3988 </dict>
3989 <key>strings</key>
3990 <dict>
3991 <key>patterns</key>
3992 <array>
3993 <dict>
3994 <key>include</key>
3995 <string>#string_quoted_double</string>
3996 </dict>
3997 <dict>
3998 <key>include</key>
3999 <string>#string_quoted_single</string>
4000 </dict>
4001 </array>
4002 </dict>
4003 </dict>
4004 <key>scopeName</key>
4005 <string>source.python</string>
4006 <key>uuid</key>
4007 <string>F23DB5B2-7D08-11D9-A709-000D93B6E43C</string>
4008</dict>
4009</plist>