PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.4
Code Block Pro – Beautiful Syntax Highlighting v1.27.4
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / php.tmLanguage.json

php.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.27.4, at build/shiki/languages/php.tmLanguage.json

4,031 lines 154.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "information_for_contributors": [
3 "This file has been converted from https://github.com/KapitanOczywisty/language-php/blob/master/grammars/php.cson",
4 "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 "Once accepted there, we are happy to receive an update request."
6 ],
7 "version": "https://github.com/KapitanOczywisty/language-php/commit/5e8f000cb5a20f44f7a7a89d07ad0774031c53f3",
8 "scopeName": "source.php",
9 "patterns": [
10 {
11 "include": "#attribute"
12 },
13 {
14 "include": "#comments"
15 },
16 {
17 "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)(?=\\s*;)",
18 "name": "meta.namespace.php",
19 "captures": {
20 "1": {
21 "name": "keyword.other.namespace.php"
22 },
23 "2": {
24 "name": "entity.name.type.namespace.php",
25 "patterns": [
26 {
27 "match": "\\\\",
28 "name": "punctuation.separator.inheritance.php"
29 }
30 ]
31 }
32 }
33 },
34 {
35 "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",
36 "beginCaptures": {
37 "1": {
38 "name": "keyword.other.namespace.php"
39 }
40 },
41 "end": "(?<=})|(?=\\?>)",
42 "name": "meta.namespace.php",
43 "patterns": [
44 {
45 "include": "#comments"
46 },
47 {
48 "match": "(?i)[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+",
49 "name": "entity.name.type.namespace.php",
50 "captures": {
51 "0": {
52 "patterns": [
53 {
54 "match": "\\\\",
55 "name": "punctuation.separator.inheritance.php"
56 }
57 ]
58 }
59 }
60 },
61 {
62 "begin": "{",
63 "beginCaptures": {
64 "0": {
65 "name": "punctuation.definition.namespace.begin.bracket.curly.php"
66 }
67 },
68 "end": "}|(?=\\?>)",
69 "endCaptures": {
70 "0": {
71 "name": "punctuation.definition.namespace.end.bracket.curly.php"
72 }
73 },
74 "patterns": [
75 {
76 "include": "$self"
77 }
78 ]
79 },
80 {
81 "match": "[^\\s]+",
82 "name": "invalid.illegal.identifier.php"
83 }
84 ]
85 },
86 {
87 "match": "\\s+(?=use\\b)"
88 },
89 {
90 "begin": "(?i)\\buse\\b",
91 "beginCaptures": {
92 "0": {
93 "name": "keyword.other.use.php"
94 }
95 },
96 "end": "(?<=})|(?=;)|(?=\\?>)",
97 "name": "meta.use.php",
98 "patterns": [
99 {
100 "match": "\\b(const|function)\\b",
101 "name": "storage.type.${1:/downcase}.php"
102 },
103 {
104 "begin": "{",
105 "beginCaptures": {
106 "0": {
107 "name": "punctuation.definition.use.begin.bracket.curly.php"
108 }
109 },
110 "end": "}",
111 "endCaptures": {
112 "0": {
113 "name": "punctuation.definition.use.end.bracket.curly.php"
114 }
115 },
116 "patterns": [
117 {
118 "include": "#scope-resolution"
119 },
120 {
121 "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
122 "captures": {
123 "1": {
124 "name": "keyword.other.use-as.php"
125 },
126 "2": {
127 "name": "storage.modifier.php"
128 },
129 "3": {
130 "name": "entity.other.alias.php"
131 }
132 }
133 },
134 {
135 "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
136 "captures": {
137 "1": {
138 "name": "keyword.other.use-as.php"
139 },
140 "2": {
141 "patterns": [
142 {
143 "match": "^(?:final|abstract|public|private|protected|static)$",
144 "name": "storage.modifier.php"
145 },
146 {
147 "match": ".+",
148 "name": "entity.other.alias.php"
149 }
150 ]
151 }
152 }
153 },
154 {
155 "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
156 "captures": {
157 "1": {
158 "name": "keyword.other.use-insteadof.php"
159 },
160 "2": {
161 "name": "support.class.php"
162 }
163 }
164 },
165 {
166 "match": ";",
167 "name": "punctuation.terminator.expression.php"
168 },
169 {
170 "include": "#use-inner"
171 }
172 ]
173 },
174 {
175 "include": "#use-inner"
176 }
177 ]
178 },
179 {
180 "begin": "(?ix)\n\\b(trait)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
181 "beginCaptures": {
182 "1": {
183 "name": "storage.type.trait.php"
184 },
185 "2": {
186 "name": "entity.name.type.trait.php"
187 }
188 },
189 "end": "}|(?=\\?>)",
190 "endCaptures": {
191 "0": {
192 "name": "punctuation.definition.trait.end.bracket.curly.php"
193 }
194 },
195 "name": "meta.trait.php",
196 "patterns": [
197 {
198 "include": "#comments"
199 },
200 {
201 "begin": "{",
202 "beginCaptures": {
203 "0": {
204 "name": "punctuation.definition.trait.begin.bracket.curly.php"
205 }
206 },
207 "end": "(?=}|\\?>)",
208 "contentName": "meta.trait.body.php",
209 "patterns": [
210 {
211 "include": "$self"
212 }
213 ]
214 }
215 ]
216 },
217 {
218 "begin": "(?ix)\n\\b(interface)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
219 "beginCaptures": {
220 "1": {
221 "name": "storage.type.interface.php"
222 },
223 "2": {
224 "name": "entity.name.type.interface.php"
225 }
226 },
227 "end": "}|(?=\\?>)",
228 "endCaptures": {
229 "0": {
230 "name": "punctuation.definition.interface.end.bracket.curly.php"
231 }
232 },
233 "name": "meta.interface.php",
234 "patterns": [
235 {
236 "include": "#comments"
237 },
238 {
239 "include": "#interface-extends"
240 },
241 {
242 "begin": "{",
243 "beginCaptures": {
244 "0": {
245 "name": "punctuation.definition.interface.begin.bracket.curly.php"
246 }
247 },
248 "end": "(?=}|\\?>)",
249 "contentName": "meta.interface.body.php",
250 "patterns": [
251 {
252 "include": "#class-constant"
253 },
254 {
255 "include": "$self"
256 }
257 ]
258 }
259 ]
260 },
261 {
262 "begin": "(?ix)\n\\b(enum)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?: \\s* (:) \\s* (int | string) \\b )?",
263 "beginCaptures": {
264 "1": {
265 "name": "storage.type.enum.php"
266 },
267 "2": {
268 "name": "entity.name.type.enum.php"
269 },
270 "3": {
271 "name": "keyword.operator.return-value.php"
272 },
273 "4": {
274 "name": "keyword.other.type.php"
275 }
276 },
277 "end": "}|(?=\\?>)",
278 "endCaptures": {
279 "0": {
280 "name": "punctuation.definition.enum.end.bracket.curly.php"
281 }
282 },
283 "name": "meta.enum.php",
284 "patterns": [
285 {
286 "include": "#comments"
287 },
288 {
289 "include": "#class-implements"
290 },
291 {
292 "begin": "{",
293 "beginCaptures": {
294 "0": {
295 "name": "punctuation.definition.enum.begin.bracket.curly.php"
296 }
297 },
298 "end": "(?=}|\\?>)",
299 "contentName": "meta.enum.body.php",
300 "patterns": [
301 {
302 "match": "(?i)\\b(case)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
303 "captures": {
304 "1": {
305 "name": "storage.modifier.php"
306 },
307 "2": {
308 "name": "constant.enum.php"
309 }
310 }
311 },
312 {
313 "include": "#class-constant"
314 },
315 {
316 "include": "$self"
317 }
318 ]
319 }
320 ]
321 },
322 {
323 "begin": "(?ix)\n(?:\n \\b((?:(?:final|abstract|readonly)\\s+)*)(class)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n |\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*(?:(readonly)\\s+)?\\b(class)\\b # anonymous class\n)",
324 "beginCaptures": {
325 "1": {
326 "patterns": [
327 {
328 "match": "final|abstract",
329 "name": "storage.modifier.${0:/downcase}.php"
330 },
331 {
332 "match": "readonly",
333 "name": "storage.modifier.php"
334 }
335 ]
336 },
337 "2": {
338 "name": "storage.type.class.php"
339 },
340 "3": {
341 "name": "entity.name.type.class.php"
342 },
343 "4": {
344 "name": "keyword.other.new.php"
345 },
346 "5": {
347 "patterns": [
348 {
349 "include": "#attribute"
350 }
351 ]
352 },
353 "6": {
354 "name": "storage.modifier.php"
355 },
356 "7": {
357 "name": "storage.type.class.php"
358 }
359 },
360 "end": "}|(?=\\?>)",
361 "endCaptures": {
362 "0": {
363 "name": "punctuation.definition.class.end.bracket.curly.php"
364 }
365 },
366 "name": "meta.class.php",
367 "patterns": [
368 {
369 "begin": "(?<=class)\\s*(\\()",
370 "beginCaptures": {
371 "1": {
372 "name": "punctuation.definition.arguments.begin.bracket.round.php"
373 }
374 },
375 "end": "\\)|(?=\\?>)",
376 "endCaptures": {
377 "0": {
378 "name": "punctuation.definition.arguments.end.bracket.round.php"
379 }
380 },
381 "name": "meta.function-call.php",
382 "patterns": [
383 {
384 "include": "#named-arguments"
385 },
386 {
387 "include": "$self"
388 }
389 ]
390 },
391 {
392 "include": "#comments"
393 },
394 {
395 "include": "#class-extends"
396 },
397 {
398 "include": "#class-implements"
399 },
400 {
401 "begin": "{",
402 "beginCaptures": {
403 "0": {
404 "name": "punctuation.definition.class.begin.bracket.curly.php"
405 }
406 },
407 "end": "(?=}|\\?>)",
408 "contentName": "meta.class.body.php",
409 "patterns": [
410 {
411 "include": "#class-constant"
412 },
413 {
414 "include": "$self"
415 }
416 ]
417 }
418 ]
419 },
420 {
421 "include": "#match_statement"
422 },
423 {
424 "include": "#switch_statement"
425 },
426 {
427 "match": "\\s*\\b(yield\\s+from)\\b",
428 "captures": {
429 "1": {
430 "name": "keyword.control.yield-from.php"
431 }
432 }
433 },
434 {
435 "match": "(?x)\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b",
436 "captures": {
437 "1": {
438 "name": "keyword.control.${1:/downcase}.php"
439 }
440 }
441 },
442 {
443 "begin": "(?i)\\b((?:require|include)(?:_once)?)(\\s+|(?=\\())",
444 "beginCaptures": {
445 "1": {
446 "name": "keyword.control.import.include.php"
447 }
448 },
449 "end": "(?=\\s|;|$|\\?>)",
450 "name": "meta.include.php",
451 "patterns": [
452 {
453 "include": "$self"
454 }
455 ]
456 },
457 {
458 "begin": "\\b(catch)\\s*(\\()",
459 "beginCaptures": {
460 "1": {
461 "name": "keyword.control.exception.catch.php"
462 },
463 "2": {
464 "name": "punctuation.definition.parameters.begin.bracket.round.php"
465 }
466 },
467 "end": "\\)",
468 "endCaptures": {
469 "0": {
470 "name": "punctuation.definition.parameters.end.bracket.round.php"
471 }
472 },
473 "name": "meta.catch.php",
474 "patterns": [
475 {
476 "match": "(?xi)\n([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)*) # union or single exception class\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)? # Variable",
477 "captures": {
478 "1": {
479 "patterns": [
480 {
481 "match": "\\|",
482 "name": "punctuation.separator.delimiter.php"
483 },
484 {
485 "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",
486 "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
487 "endCaptures": {
488 "1": {
489 "name": "support.class.exception.php"
490 }
491 },
492 "patterns": [
493 {
494 "include": "#namespace"
495 }
496 ]
497 }
498 ]
499 },
500 "2": {
501 "name": "variable.other.php"
502 },
503 "3": {
504 "name": "punctuation.definition.variable.php"
505 }
506 }
507 }
508 ]
509 },
510 {
511 "match": "\\b(catch|try|throw|exception|finally)\\b",
512 "name": "keyword.control.exception.php"
513 },
514 {
515 "begin": "(?i)\\b(function)\\s*(?=&?\\s*\\()",
516 "beginCaptures": {
517 "1": {
518 "name": "storage.type.function.php"
519 }
520 },
521 "end": "(?=\\s*{)",
522 "name": "meta.function.closure.php",
523 "patterns": [
524 {
525 "include": "#comments"
526 },
527 {
528 "begin": "(&)?\\s*(\\()",
529 "beginCaptures": {
530 "1": {
531 "name": "storage.modifier.reference.php"
532 },
533 "2": {
534 "name": "punctuation.definition.parameters.begin.bracket.round.php"
535 }
536 },
537 "contentName": "meta.function.parameters.php",
538 "end": "\\)",
539 "endCaptures": {
540 "0": {
541 "name": "punctuation.definition.parameters.end.bracket.round.php"
542 }
543 },
544 "patterns": [
545 {
546 "include": "#function-parameters"
547 }
548 ]
549 },
550 {
551 "begin": "(?i)(use)\\s*(\\()",
552 "beginCaptures": {
553 "1": {
554 "name": "keyword.other.function.use.php"
555 },
556 "2": {
557 "name": "punctuation.definition.parameters.begin.bracket.round.php"
558 }
559 },
560 "end": "\\)",
561 "endCaptures": {
562 "0": {
563 "name": "punctuation.definition.parameters.end.bracket.round.php"
564 }
565 },
566 "name": "meta.function.closure.use.php",
567 "patterns": [
568 {
569 "match": ",",
570 "name": "punctuation.separator.delimiter.php"
571 },
572 {
573 "captures": {
574 "1": {
575 "name": "variable.other.php"
576 },
577 "2": {
578 "name": "storage.modifier.reference.php"
579 },
580 "3": {
581 "name": "punctuation.definition.variable.php"
582 }
583 },
584 "match": "(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=,|\\))"
585 }
586 ]
587 },
588 {
589 "match": "(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:{|/[/*]|\\#|$))",
590 "captures": {
591 "1": {
592 "name": "keyword.operator.return-value.php"
593 },
594 "2": {
595 "patterns": [
596 {
597 "include": "#php-types"
598 }
599 ]
600 }
601 }
602 }
603 ]
604 },
605 {
606 "begin": "(?i)\\b(fn)\\s*(?=&?\\s*\\()",
607 "beginCaptures": {
608 "1": {
609 "name": "storage.type.function.php"
610 }
611 },
612 "end": "=>",
613 "endCaptures": {
614 "0": {
615 "name": "punctuation.definition.arrow.php"
616 }
617 },
618 "name": "meta.function.closure.php",
619 "patterns": [
620 {
621 "begin": "(?:(&)\\s*)?(\\()",
622 "beginCaptures": {
623 "1": {
624 "name": "storage.modifier.reference.php"
625 },
626 "2": {
627 "name": "punctuation.definition.parameters.begin.bracket.round.php"
628 }
629 },
630 "contentName": "meta.function.parameters.php",
631 "end": "\\)",
632 "endCaptures": {
633 "0": {
634 "name": "punctuation.definition.parameters.end.bracket.round.php"
635 }
636 },
637 "patterns": [
638 {
639 "include": "#function-parameters"
640 }
641 ]
642 },
643 {
644 "match": "(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:=>|/[/*]|\\#|$))",
645 "captures": {
646 "1": {
647 "name": "keyword.operator.return-value.php"
648 },
649 "2": {
650 "patterns": [
651 {
652 "include": "#php-types"
653 }
654 ]
655 }
656 }
657 }
658 ]
659 },
660 {
661 "begin": "(?x)\n((?:(?:final|abstract|public|private|protected)\\s+)*)\n(function)\\s+(__construct)\n\\s*(\\()",
662 "beginCaptures": {
663 "1": {
664 "patterns": [
665 {
666 "match": "final|abstract|public|private|protected",
667 "name": "storage.modifier.php"
668 }
669 ]
670 },
671 "2": {
672 "name": "storage.type.function.php"
673 },
674 "3": {
675 "name": "support.function.constructor.php"
676 },
677 "4": {
678 "name": "punctuation.definition.parameters.begin.bracket.round.php"
679 }
680 },
681 "contentName": "meta.function.parameters.php",
682 "end": "(?xi)\n(\\)) \\s* ( : \\s*\n (?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{10ffff}\\\\\\s\\|&()]+ (?<!\\s)\n)?\n(?=\\s*(?:{|/[/*]|\\#|$|;))",
683 "endCaptures": {
684 "1": {
685 "name": "punctuation.definition.parameters.end.bracket.round.php"
686 },
687 "2": {
688 "name": "invalid.illegal.return-type.php"
689 }
690 },
691 "name": "meta.function.php",
692 "patterns": [
693 {
694 "include": "#comments"
695 },
696 {
697 "match": ",",
698 "name": "punctuation.separator.delimiter.php"
699 },
700 {
701 "begin": "(?xi)\n((?:(?:public|private|protected|readonly)(?:\\s+|(?=\\?)))++)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference",
702 "beginCaptures": {
703 "1": {
704 "patterns": [
705 {
706 "match": "public|private|protected|readonly",
707 "name": "storage.modifier.php"
708 }
709 ]
710 },
711 "2": {
712 "patterns": [
713 {
714 "include": "#php-types"
715 }
716 ]
717 },
718 "3": {
719 "name": "variable.other.php"
720 },
721 "4": {
722 "name": "storage.modifier.reference.php"
723 },
724 "5": {
725 "name": "punctuation.definition.variable.php"
726 }
727 },
728 "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))",
729 "name": "meta.function.parameter.promoted-property.php",
730 "patterns": [
731 {
732 "begin": "=",
733 "beginCaptures": {
734 "0": {
735 "name": "keyword.operator.assignment.php"
736 }
737 },
738 "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))",
739 "patterns": [
740 {
741 "include": "#parameter-default-types"
742 }
743 ]
744 }
745 ]
746 },
747 {
748 "include": "#function-parameters"
749 }
750 ]
751 },
752 {
753 "begin": "(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))\n |(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*))\n)\n\\s*(\\()",
754 "beginCaptures": {
755 "1": {
756 "patterns": [
757 {
758 "match": "final|abstract|public|private|protected|static",
759 "name": "storage.modifier.php"
760 }
761 ]
762 },
763 "2": {
764 "name": "storage.type.function.php"
765 },
766 "3": {
767 "name": "support.function.magic.php"
768 },
769 "4": {
770 "name": "storage.modifier.reference.php"
771 },
772 "5": {
773 "name": "entity.name.function.php"
774 },
775 "6": {
776 "name": "punctuation.definition.parameters.begin.bracket.round.php"
777 }
778 },
779 "contentName": "meta.function.parameters.php",
780 "end": "(?xi)\n(\\)) (?: \\s* (:) \\s* (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) )?\n(?=\\s*(?:{|/[/*]|\\#|$|;))",
781 "endCaptures": {
782 "1": {
783 "name": "punctuation.definition.parameters.end.bracket.round.php"
784 },
785 "2": {
786 "name": "keyword.operator.return-value.php"
787 },
788 "3": {
789 "patterns": [
790 {
791 "match": "\\b(static)\\b",
792 "name": "storage.type.php"
793 },
794 {
795 "match": "\\b(never)\\b",
796 "name": "keyword.other.type.never.php"
797 },
798 {
799 "include": "#php-types"
800 }
801 ]
802 }
803 },
804 "name": "meta.function.php",
805 "patterns": [
806 {
807 "include": "#function-parameters"
808 }
809 ]
810 },
811 {
812 "match": "(?xi)\n((?:(?:public|private|protected|static|readonly)(?:\\s+|(?=\\?)))++) # At least one modifier\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)?\n\\s+ ((\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name",
813 "captures": {
814 "1": {
815 "patterns": [
816 {
817 "match": "public|private|protected|static|readonly",
818 "name": "storage.modifier.php"
819 }
820 ]
821 },
822 "2": {
823 "patterns": [
824 {
825 "include": "#php-types"
826 }
827 ]
828 },
829 "3": {
830 "name": "variable.other.php"
831 },
832 "4": {
833 "name": "punctuation.definition.variable.php"
834 }
835 }
836 },
837 {
838 "include": "#invoke-call"
839 },
840 {
841 "include": "#scope-resolution"
842 },
843 {
844 "include": "#variables"
845 },
846 {
847 "include": "#strings"
848 },
849 {
850 "captures": {
851 "1": {
852 "name": "support.function.construct.php"
853 },
854 "2": {
855 "name": "punctuation.definition.array.begin.bracket.round.php"
856 },
857 "3": {
858 "name": "punctuation.definition.array.end.bracket.round.php"
859 }
860 },
861 "match": "(array)(\\()(\\))",
862 "name": "meta.array.empty.php"
863 },
864 {
865 "begin": "(array)\\s*(\\()",
866 "beginCaptures": {
867 "1": {
868 "name": "support.function.construct.php"
869 },
870 "2": {
871 "name": "punctuation.definition.array.begin.bracket.round.php"
872 }
873 },
874 "end": "\\)|(?=\\?>)",
875 "endCaptures": {
876 "0": {
877 "name": "punctuation.definition.array.end.bracket.round.php"
878 }
879 },
880 "name": "meta.array.php",
881 "patterns": [
882 {
883 "include": "$self"
884 }
885 ]
886 },
887 {
888 "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))",
889 "captures": {
890 "1": {
891 "name": "punctuation.definition.storage-type.begin.bracket.round.php"
892 },
893 "2": {
894 "name": "storage.type.php"
895 },
896 "3": {
897 "name": "punctuation.definition.storage-type.end.bracket.round.php"
898 }
899 }
900 },
901 {
902 "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b",
903 "name": "storage.type.php"
904 },
905 {
906 "match": "(?i)\\b(global|abstract|const|final|private|protected|public|static)\\b",
907 "name": "storage.modifier.php"
908 },
909 {
910 "include": "#object"
911 },
912 {
913 "match": ";",
914 "name": "punctuation.terminator.expression.php"
915 },
916 {
917 "match": ":",
918 "name": "punctuation.terminator.statement.php"
919 },
920 {
921 "include": "#heredoc"
922 },
923 {
924 "include": "#numbers"
925 },
926 {
927 "match": "(?i)\\bclone\\b",
928 "name": "keyword.other.clone.php"
929 },
930 {
931 "match": "\\.\\.\\.",
932 "name": "keyword.operator.spread.php"
933 },
934 {
935 "match": "\\.=?",
936 "name": "keyword.operator.string.php"
937 },
938 {
939 "match": "=>",
940 "name": "keyword.operator.key.php"
941 },
942 {
943 "captures": {
944 "1": {
945 "name": "keyword.operator.assignment.php"
946 },
947 "2": {
948 "name": "storage.modifier.reference.php"
949 },
950 "3": {
951 "name": "storage.modifier.reference.php"
952 }
953 },
954 "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])"
955 },
956 {
957 "match": "@",
958 "name": "keyword.operator.error-control.php"
959 },
960 {
961 "match": "===|==|!==|!=|<>",
962 "name": "keyword.operator.comparison.php"
963 },
964 {
965 "match": "=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=",
966 "name": "keyword.operator.assignment.php"
967 },
968 {
969 "match": "<=>|<=|>=|<|>",
970 "name": "keyword.operator.comparison.php"
971 },
972 {
973 "match": "\\-\\-|\\+\\+",
974 "name": "keyword.operator.increment-decrement.php"
975 },
976 {
977 "match": "\\-|\\+|\\*\\*?|/|%",
978 "name": "keyword.operator.arithmetic.php"
979 },
980 {
981 "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",
982 "name": "keyword.operator.logical.php"
983 },
984 {
985 "include": "#function-call"
986 },
987 {
988 "match": "<<|>>|~|\\^|&|\\|",
989 "name": "keyword.operator.bitwise.php"
990 },
991 {
992 "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",
993 "beginCaptures": {
994 "1": {
995 "name": "keyword.operator.type.php"
996 }
997 },
998 "end": "(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{10ffff}])",
999 "patterns": [
1000 {
1001 "include": "#class-name"
1002 },
1003 {
1004 "include": "#variable-name"
1005 }
1006 ]
1007 },
1008 {
1009 "include": "#instantiation"
1010 },
1011 {
1012 "captures": {
1013 "1": {
1014 "name": "keyword.control.goto.php"
1015 },
1016 "2": {
1017 "name": "support.other.php"
1018 }
1019 },
1020 "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"
1021 },
1022 {
1023 "captures": {
1024 "1": {
1025 "name": "entity.name.goto-label.php"
1026 }
1027 },
1028 "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*(?<!default))\\s*:(?!:)"
1029 },
1030 {
1031 "include": "#string-backtick"
1032 },
1033 {
1034 "include": "#ternary_shorthand"
1035 },
1036 {
1037 "include": "#null_coalescing"
1038 },
1039 {
1040 "include": "#ternary_expression"
1041 },
1042 {
1043 "begin": "{",
1044 "beginCaptures": {
1045 "0": {
1046 "name": "punctuation.definition.begin.bracket.curly.php"
1047 }
1048 },
1049 "end": "}|(?=\\?>)",
1050 "endCaptures": {
1051 "0": {
1052 "name": "punctuation.definition.end.bracket.curly.php"
1053 }
1054 },
1055 "patterns": [
1056 {
1057 "include": "$self"
1058 }
1059 ]
1060 },
1061 {
1062 "begin": "\\[",
1063 "beginCaptures": {
1064 "0": {
1065 "name": "punctuation.section.array.begin.php"
1066 }
1067 },
1068 "end": "\\]|(?=\\?>)",
1069 "endCaptures": {
1070 "0": {
1071 "name": "punctuation.section.array.end.php"
1072 }
1073 },
1074 "patterns": [
1075 {
1076 "include": "$self"
1077 }
1078 ]
1079 },
1080 {
1081 "begin": "\\(",
1082 "beginCaptures": {
1083 "0": {
1084 "name": "punctuation.definition.begin.bracket.round.php"
1085 }
1086 },
1087 "end": "\\)|(?=\\?>)",
1088 "endCaptures": {
1089 "0": {
1090 "name": "punctuation.definition.end.bracket.round.php"
1091 }
1092 },
1093 "patterns": [
1094 {
1095 "include": "$self"
1096 }
1097 ]
1098 },
1099 {
1100 "include": "#constants"
1101 },
1102 {
1103 "match": ",",
1104 "name": "punctuation.separator.delimiter.php"
1105 }
1106 ],
1107 "repository": {
1108 "attribute-name": {
1109 "patterns": [
1110 {
1111 "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",
1112 "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
1113 "endCaptures": {
1114 "1": {
1115 "name": "support.attribute.php"
1116 }
1117 },
1118 "patterns": [
1119 {
1120 "include": "#namespace"
1121 }
1122 ]
1123 },
1124 {
1125 "match": "(?xi)\n(\\\\)?\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\b",
1126 "name": "support.attribute.builtin.php",
1127 "captures": {
1128 "1": {
1129 "name": "punctuation.separator.inheritance.php"
1130 }
1131 }
1132 },
1133 {
1134 "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",
1135 "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
1136 "endCaptures": {
1137 "1": {
1138 "name": "support.attribute.php"
1139 }
1140 },
1141 "patterns": [
1142 {
1143 "include": "#namespace"
1144 }
1145 ]
1146 }
1147 ]
1148 },
1149 "attribute": {
1150 "begin": "\\#\\[",
1151 "end": "\\]",
1152 "name": "meta.attribute.php",
1153 "patterns": [
1154 {
1155 "match": ",",
1156 "name": "punctuation.separator.delimiter.php"
1157 },
1158 {
1159 "begin": "([a-zA-Z0-9_\\x{7f}-\\x{10ffff}\\\\]+)\\s*(\\()",
1160 "beginCaptures": {
1161 "1": {
1162 "patterns": [
1163 {
1164 "include": "#attribute-name"
1165 }
1166 ]
1167 },
1168 "2": {
1169 "name": "punctuation.definition.arguments.begin.bracket.round.php"
1170 }
1171 },
1172 "end": "\\)",
1173 "endCaptures": {
1174 "0": {
1175 "name": "punctuation.definition.arguments.end.bracket.round.php"
1176 }
1177 },
1178 "patterns": [
1179 {
1180 "include": "#named-arguments"
1181 },
1182 {
1183 "include": "$self"
1184 }
1185 ]
1186 },
1187 {
1188 "include": "#attribute-name"
1189 }
1190 ]
1191 },
1192 "class-builtin": {
1193 "patterns": [
1194 {
1195 "match": "(?xi)\n(\\\\)?\\b\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b",
1196 "name": "support.class.builtin.php",
1197 "captures": {
1198 "1": {
1199 "name": "punctuation.separator.inheritance.php"
1200 }
1201 }
1202 }
1203 ]
1204 },
1205 "class-name": {
1206 "patterns": [
1207 {
1208 "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",
1209 "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
1210 "endCaptures": {
1211 "1": {
1212 "name": "support.class.php"
1213 }
1214 },
1215 "patterns": [
1216 {
1217 "include": "#namespace"
1218 }
1219 ]
1220 },
1221 {
1222 "include": "#class-builtin"
1223 },
1224 {
1225 "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",
1226 "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
1227 "endCaptures": {
1228 "1": {
1229 "name": "support.class.php"
1230 }
1231 },
1232 "patterns": [
1233 {
1234 "include": "#namespace"
1235 }
1236 ]
1237 }
1238 ]
1239 },
1240 "inheritance-single": {
1241 "patterns": [
1242 {
1243 "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",
1244 "end": "(?i)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
1245 "endCaptures": {
1246 "1": {
1247 "name": "entity.other.inherited-class.php"
1248 }
1249 },
1250 "patterns": [
1251 {
1252 "include": "#namespace"
1253 }
1254 ]
1255 },
1256 {
1257 "include": "#class-builtin"
1258 },
1259 {
1260 "include": "#namespace"
1261 },
1262 {
1263 "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",
1264 "name": "entity.other.inherited-class.php"
1265 }
1266 ]
1267 },
1268 "class-extends": {
1269 "patterns": [
1270 {
1271 "begin": "(?i)(extends)\\s+",
1272 "beginCaptures": {
1273 "1": {
1274 "name": "storage.modifier.extends.php"
1275 }
1276 },
1277 "end": "(?i)(?=[^A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
1278 "patterns": [
1279 {
1280 "include": "#comments"
1281 },
1282 {
1283 "include": "#inheritance-single"
1284 }
1285 ]
1286 }
1287 ]
1288 },
1289 "interface-extends": {
1290 "patterns": [
1291 {
1292 "begin": "(?i)(extends)\\s+",
1293 "beginCaptures": {
1294 "1": {
1295 "name": "storage.modifier.extends.php"
1296 }
1297 },
1298 "end": "(?i)(?={)",
1299 "patterns": [
1300 {
1301 "include": "#comments"
1302 },
1303 {
1304 "match": ",",
1305 "name": "punctuation.separator.classes.php"
1306 },
1307 {
1308 "include": "#inheritance-single"
1309 }
1310 ]
1311 }
1312 ]
1313 },
1314 "class-implements": {
1315 "patterns": [
1316 {
1317 "begin": "(?i)(implements)\\s+",
1318 "beginCaptures": {
1319 "1": {
1320 "name": "storage.modifier.implements.php"
1321 }
1322 },
1323 "end": "(?i)(?={)",
1324 "patterns": [
1325 {
1326 "include": "#comments"
1327 },
1328 {
1329 "match": ",",
1330 "name": "punctuation.separator.classes.php"
1331 },
1332 {
1333 "include": "#inheritance-single"
1334 }
1335 ]
1336 }
1337 ]
1338 },
1339 "class-constant": {
1340 "patterns": [
1341 {
1342 "match": "(?i)\\b(const)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",
1343 "captures": {
1344 "1": {
1345 "name": "storage.modifier.php"
1346 },
1347 "2": {
1348 "name": "constant.other.php"
1349 }
1350 }
1351 }
1352 ]
1353 },
1354 "comments": {
1355 "patterns": [
1356 {
1357 "begin": "/\\*\\*(?=\\s)",
1358 "beginCaptures": {
1359 "0": {
1360 "name": "punctuation.definition.comment.php"
1361 }
1362 },
1363 "end": "\\*/",
1364 "endCaptures": {
1365 "0": {
1366 "name": "punctuation.definition.comment.php"
1367 }
1368 },
1369 "name": "comment.block.documentation.phpdoc.php",
1370 "patterns": [
1371 {
1372 "include": "#php_doc"
1373 }
1374 ]
1375 },
1376 {
1377 "begin": "/\\*",
1378 "captures": {
1379 "0": {
1380 "name": "punctuation.definition.comment.php"
1381 }
1382 },
1383 "end": "\\*/",
1384 "name": "comment.block.php"
1385 },
1386 {
1387 "begin": "(^\\s+)?(?=//)",
1388 "beginCaptures": {
1389 "1": {
1390 "name": "punctuation.whitespace.comment.leading.php"
1391 }
1392 },
1393 "end": "(?!\\G)",
1394 "patterns": [
1395 {
1396 "begin": "//",
1397 "beginCaptures": {
1398 "0": {
1399 "name": "punctuation.definition.comment.php"
1400 }
1401 },
1402 "end": "\\n|(?=\\?>)",
1403 "name": "comment.line.double-slash.php"
1404 }
1405 ]
1406 },
1407 {
1408 "begin": "(^\\s+)?(?=#)(?!#\\[)",
1409 "beginCaptures": {
1410 "1": {
1411 "name": "punctuation.whitespace.comment.leading.php"
1412 }
1413 },
1414 "end": "(?!\\G)",
1415 "patterns": [
1416 {
1417 "begin": "#",
1418 "beginCaptures": {
1419 "0": {
1420 "name": "punctuation.definition.comment.php"
1421 }
1422 },
1423 "end": "\\n|(?=\\?>)",
1424 "name": "comment.line.number-sign.php"
1425 }
1426 ]
1427 }
1428 ]
1429 },
1430 "constants": {
1431 "patterns": [
1432 {
1433 "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",
1434 "name": "constant.language.php"
1435 },
1436 {
1437 "match": "(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b",
1438 "name": "support.constant.core.php",
1439 "captures": {
1440 "1": {
1441 "name": "punctuation.separator.inheritance.php"
1442 }
1443 }
1444 },
1445 {
1446 "match": "(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b",
1447 "name": "support.constant.std.php",
1448 "captures": {
1449 "1": {
1450 "name": "punctuation.separator.inheritance.php"
1451 }
1452 }
1453 },
1454 {
1455 "match": "(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b",
1456 "name": "support.constant.ext.php",
1457 "captures": {
1458 "1": {
1459 "name": "punctuation.separator.inheritance.php"
1460 }
1461 }
1462 },
1463 {
1464 "match": "(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b",
1465 "name": "support.constant.parser-token.php",
1466 "captures": {
1467 "1": {
1468 "name": "punctuation.separator.inheritance.php"
1469 }
1470 }
1471 },
1472 {
1473 "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",
1474 "name": "constant.other.php"
1475 }
1476 ]
1477 },
1478 "function-parameters": {
1479 "patterns": [
1480 {
1481 "include": "#attribute"
1482 },
1483 {
1484 "include": "#comments"
1485 },
1486 {
1487 "match": ",",
1488 "name": "punctuation.separator.delimiter.php"
1489 },
1490 {
1491 "match": "(?xi)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment",
1492 "captures": {
1493 "1": {
1494 "patterns": [
1495 {
1496 "include": "#php-types"
1497 }
1498 ]
1499 },
1500 "2": {
1501 "name": "variable.other.php"
1502 },
1503 "3": {
1504 "name": "storage.modifier.reference.php"
1505 },
1506 "4": {
1507 "name": "keyword.operator.variadic.php"
1508 },
1509 "5": {
1510 "name": "punctuation.definition.variable.php"
1511 }
1512 },
1513 "name": "meta.function.parameter.variadic.php"
1514 },
1515 {
1516 "begin": "(?xi)\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference",
1517 "beginCaptures": {
1518 "1": {
1519 "patterns": [
1520 {
1521 "include": "#php-types"
1522 }
1523 ]
1524 },
1525 "2": {
1526 "name": "variable.other.php"
1527 },
1528 "3": {
1529 "name": "storage.modifier.reference.php"
1530 },
1531 "4": {
1532 "name": "punctuation.definition.variable.php"
1533 }
1534 },
1535 "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))",
1536 "name": "meta.function.parameter.typehinted.php",
1537 "patterns": [
1538 {
1539 "begin": "=",
1540 "beginCaptures": {
1541 "0": {
1542 "name": "keyword.operator.assignment.php"
1543 }
1544 },
1545 "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))",
1546 "patterns": [
1547 {
1548 "include": "#parameter-default-types"
1549 }
1550 ]
1551 }
1552 ]
1553 },
1554 {
1555 "match": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment",
1556 "captures": {
1557 "1": {
1558 "name": "variable.other.php"
1559 },
1560 "2": {
1561 "name": "storage.modifier.reference.php"
1562 },
1563 "3": {
1564 "name": "punctuation.definition.variable.php"
1565 }
1566 },
1567 "name": "meta.function.parameter.no-default.php"
1568 },
1569 {
1570 "begin": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n\\s*(=)\\s*",
1571 "beginCaptures": {
1572 "1": {
1573 "name": "variable.other.php"
1574 },
1575 "2": {
1576 "name": "storage.modifier.reference.php"
1577 },
1578 "3": {
1579 "name": "punctuation.definition.variable.php"
1580 },
1581 "4": {
1582 "name": "keyword.operator.assignment.php"
1583 }
1584 },
1585 "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))",
1586 "name": "meta.function.parameter.default.php",
1587 "patterns": [
1588 {
1589 "include": "#parameter-default-types"
1590 }
1591 ]
1592 }
1593 ]
1594 },
1595 "named-arguments": {
1596 "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)",
1597 "captures": {
1598 "1": {
1599 "name": "entity.name.variable.parameter.php"
1600 },
1601 "2": {
1602 "name": "punctuation.separator.colon.php"
1603 }
1604 }
1605 },
1606 "function-call": {
1607 "patterns": [
1608 {
1609 "begin": "(?x)\n(\n \\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}]) # Optional root namespace\n [a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]* # First namespace\n (?:\\\\[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)+ # Additional namespaces\n)\\s*(\\()",
1610 "beginCaptures": {
1611 "1": {
1612 "patterns": [
1613 {
1614 "include": "#namespace"
1615 },
1616 {
1617 "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",
1618 "name": "entity.name.function.php"
1619 }
1620 ]
1621 },
1622 "2": {
1623 "name": "punctuation.definition.arguments.begin.bracket.round.php"
1624 }
1625 },
1626 "end": "\\)|(?=\\?>)",
1627 "endCaptures": {
1628 "0": {
1629 "name": "punctuation.definition.arguments.end.bracket.round.php"
1630 }
1631 },
1632 "name": "meta.function-call.php",
1633 "patterns": [
1634 {
1635 "include": "#named-arguments"
1636 },
1637 {
1638 "include": "$self"
1639 }
1640 ]
1641 },
1642 {
1643 "begin": "(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",
1644 "beginCaptures": {
1645 "1": {
1646 "patterns": [
1647 {
1648 "include": "#namespace"
1649 }
1650 ]
1651 },
1652 "2": {
1653 "patterns": [
1654 {
1655 "include": "#support"
1656 },
1657 {
1658 "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",
1659 "name": "entity.name.function.php"
1660 }
1661 ]
1662 },
1663 "3": {
1664 "name": "punctuation.definition.arguments.begin.bracket.round.php"
1665 }
1666 },
1667 "end": "\\)|(?=\\?>)",
1668 "endCaptures": {
1669 "0": {
1670 "name": "punctuation.definition.arguments.end.bracket.round.php"
1671 }
1672 },
1673 "name": "meta.function-call.php",
1674 "patterns": [
1675 {
1676 "include": "#named-arguments"
1677 },
1678 {
1679 "include": "$self"
1680 }
1681 ]
1682 },
1683 {
1684 "match": "(?i)\\b(print|echo)\\b",
1685 "name": "support.function.construct.output.php"
1686 }
1687 ]
1688 },
1689 "heredoc": {
1690 "patterns": [
1691 {
1692 "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\1)\\s*$)",
1693 "end": "(?!\\G)",
1694 "name": "string.unquoted.heredoc.php",
1695 "patterns": [
1696 {
1697 "include": "#heredoc_interior"
1698 }
1699 ]
1700 },
1701 {
1702 "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",
1703 "end": "(?!\\G)",
1704 "name": "string.unquoted.nowdoc.php",
1705 "patterns": [
1706 {
1707 "include": "#nowdoc_interior"
1708 }
1709 ]
1710 }
1711 ]
1712 },
1713 "heredoc_interior": {
1714 "patterns": [
1715 {
1716 "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$",
1717 "beginCaptures": {
1718 "0": {
1719 "name": "punctuation.section.embedded.begin.php"
1720 },
1721 "1": {
1722 "name": "punctuation.definition.string.php"
1723 },
1724 "3": {
1725 "name": "keyword.operator.heredoc.php"
1726 },
1727 "5": {
1728 "name": "invalid.illegal.trailing-whitespace.php"
1729 }
1730 },
1731 "contentName": "text.html",
1732 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1733 "endCaptures": {
1734 "0": {
1735 "name": "punctuation.section.embedded.end.php"
1736 },
1737 "1": {
1738 "name": "keyword.operator.heredoc.php"
1739 }
1740 },
1741 "name": "meta.embedded.html",
1742 "patterns": [
1743 {
1744 "include": "#interpolation"
1745 },
1746 {
1747 "include": "text.html.basic"
1748 }
1749 ]
1750 },
1751 {
1752 "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$",
1753 "beginCaptures": {
1754 "0": {
1755 "name": "punctuation.section.embedded.begin.php"
1756 },
1757 "1": {
1758 "name": "punctuation.definition.string.php"
1759 },
1760 "3": {
1761 "name": "keyword.operator.heredoc.php"
1762 },
1763 "5": {
1764 "name": "invalid.illegal.trailing-whitespace.php"
1765 }
1766 },
1767 "contentName": "text.xml",
1768 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1769 "endCaptures": {
1770 "0": {
1771 "name": "punctuation.section.embedded.end.php"
1772 },
1773 "1": {
1774 "name": "keyword.operator.heredoc.php"
1775 }
1776 },
1777 "name": "meta.embedded.xml",
1778 "patterns": [
1779 {
1780 "include": "#interpolation"
1781 },
1782 {
1783 "include": "text.xml"
1784 }
1785 ]
1786 },
1787 {
1788 "begin": "(<<<)\\s*(\"?)([DS]QL)(\\2)(\\s*)$",
1789 "beginCaptures": {
1790 "0": {
1791 "name": "punctuation.section.embedded.begin.php"
1792 },
1793 "1": {
1794 "name": "punctuation.definition.string.php"
1795 },
1796 "3": {
1797 "name": "keyword.operator.heredoc.php"
1798 },
1799 "5": {
1800 "name": "invalid.illegal.trailing-whitespace.php"
1801 }
1802 },
1803 "contentName": "source.sql",
1804 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1805 "endCaptures": {
1806 "0": {
1807 "name": "punctuation.section.embedded.end.php"
1808 },
1809 "1": {
1810 "name": "keyword.operator.heredoc.php"
1811 }
1812 },
1813 "name": "meta.embedded.sql",
1814 "patterns": [
1815 {
1816 "include": "#interpolation"
1817 },
1818 {
1819 "include": "source.sql"
1820 }
1821 ]
1822 },
1823 {
1824 "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$",
1825 "beginCaptures": {
1826 "0": {
1827 "name": "punctuation.section.embedded.begin.php"
1828 },
1829 "1": {
1830 "name": "punctuation.definition.string.php"
1831 },
1832 "3": {
1833 "name": "keyword.operator.heredoc.php"
1834 },
1835 "5": {
1836 "name": "invalid.illegal.trailing-whitespace.php"
1837 }
1838 },
1839 "contentName": "source.js",
1840 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1841 "endCaptures": {
1842 "0": {
1843 "name": "punctuation.section.embedded.end.php"
1844 },
1845 "1": {
1846 "name": "keyword.operator.heredoc.php"
1847 }
1848 },
1849 "name": "meta.embedded.js",
1850 "patterns": [
1851 {
1852 "include": "#interpolation"
1853 },
1854 {
1855 "include": "source.js"
1856 }
1857 ]
1858 },
1859 {
1860 "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$",
1861 "beginCaptures": {
1862 "0": {
1863 "name": "punctuation.section.embedded.begin.php"
1864 },
1865 "1": {
1866 "name": "punctuation.definition.string.php"
1867 },
1868 "3": {
1869 "name": "keyword.operator.heredoc.php"
1870 },
1871 "5": {
1872 "name": "invalid.illegal.trailing-whitespace.php"
1873 }
1874 },
1875 "contentName": "source.json",
1876 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1877 "endCaptures": {
1878 "0": {
1879 "name": "punctuation.section.embedded.end.php"
1880 },
1881 "1": {
1882 "name": "keyword.operator.heredoc.php"
1883 }
1884 },
1885 "name": "meta.embedded.json",
1886 "patterns": [
1887 {
1888 "include": "#interpolation"
1889 },
1890 {
1891 "include": "source.json"
1892 }
1893 ]
1894 },
1895 {
1896 "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$",
1897 "beginCaptures": {
1898 "0": {
1899 "name": "punctuation.section.embedded.begin.php"
1900 },
1901 "1": {
1902 "name": "punctuation.definition.string.php"
1903 },
1904 "3": {
1905 "name": "keyword.operator.heredoc.php"
1906 },
1907 "5": {
1908 "name": "invalid.illegal.trailing-whitespace.php"
1909 }
1910 },
1911 "contentName": "source.css",
1912 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1913 "endCaptures": {
1914 "0": {
1915 "name": "punctuation.section.embedded.end.php"
1916 },
1917 "1": {
1918 "name": "keyword.operator.heredoc.php"
1919 }
1920 },
1921 "name": "meta.embedded.css",
1922 "patterns": [
1923 {
1924 "include": "#interpolation"
1925 },
1926 {
1927 "include": "source.css"
1928 }
1929 ]
1930 },
1931 {
1932 "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$",
1933 "beginCaptures": {
1934 "0": {
1935 "name": "punctuation.section.embedded.begin.php"
1936 },
1937 "1": {
1938 "name": "punctuation.definition.string.php"
1939 },
1940 "3": {
1941 "name": "keyword.operator.heredoc.php"
1942 },
1943 "5": {
1944 "name": "invalid.illegal.trailing-whitespace.php"
1945 }
1946 },
1947 "contentName": "string.regexp.heredoc.php",
1948 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
1949 "endCaptures": {
1950 "0": {
1951 "name": "punctuation.section.embedded.end.php"
1952 },
1953 "1": {
1954 "name": "keyword.operator.heredoc.php"
1955 }
1956 },
1957 "patterns": [
1958 {
1959 "include": "#interpolation"
1960 },
1961 {
1962 "match": "(\\\\){1,2}[.$^\\[\\]{}]",
1963 "name": "constant.character.escape.regex.php"
1964 },
1965 {
1966 "captures": {
1967 "1": {
1968 "name": "punctuation.definition.arbitrary-repitition.php"
1969 },
1970 "3": {
1971 "name": "punctuation.definition.arbitrary-repitition.php"
1972 }
1973 },
1974 "match": "({)\\d+(,\\d+)?(})",
1975 "name": "string.regexp.arbitrary-repitition.php"
1976 },
1977 {
1978 "begin": "\\[(?:\\^?\\])?",
1979 "captures": {
1980 "0": {
1981 "name": "punctuation.definition.character-class.php"
1982 }
1983 },
1984 "end": "\\]",
1985 "name": "string.regexp.character-class.php",
1986 "patterns": [
1987 {
1988 "match": "\\\\[\\\\'\\[\\]]",
1989 "name": "constant.character.escape.php"
1990 }
1991 ]
1992 },
1993 {
1994 "match": "[$^+*]",
1995 "name": "keyword.operator.regexp.php"
1996 },
1997 {
1998 "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",
1999 "beginCaptures": {
2000 "1": {
2001 "name": "punctuation.definition.comment.php"
2002 }
2003 },
2004 "end": "$",
2005 "endCaptures": {
2006 "0": {
2007 "name": "punctuation.definition.comment.php"
2008 }
2009 },
2010 "name": "comment.line.number-sign.php"
2011 }
2012 ]
2013 },
2014 {
2015 "begin": "(<<<)\\s*(\"?)(BLADE)(\\2)(\\s*)$",
2016 "beginCaptures": {
2017 "0": {
2018 "name": "punctuation.section.embedded.begin.php"
2019 },
2020 "1": {
2021 "name": "punctuation.definition.string.php"
2022 },
2023 "3": {
2024 "name": "keyword.operator.heredoc.php"
2025 },
2026 "5": {
2027 "name": "invalid.illegal.trailing-whitespace.php"
2028 }
2029 },
2030 "contentName": "text.html.php.blade",
2031 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2032 "endCaptures": {
2033 "0": {
2034 "name": "punctuation.section.embedded.end.php"
2035 },
2036 "1": {
2037 "name": "keyword.operator.heredoc.php"
2038 }
2039 },
2040 "name": "meta.embedded.php.blade",
2041 "patterns": [
2042 {
2043 "include": "#interpolation"
2044 }
2045 ]
2046 },
2047 {
2048 "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\2)(\\s*)",
2049 "beginCaptures": {
2050 "1": {
2051 "name": "punctuation.definition.string.php"
2052 },
2053 "3": {
2054 "name": "keyword.operator.heredoc.php"
2055 },
2056 "5": {
2057 "name": "invalid.illegal.trailing-whitespace.php"
2058 }
2059 },
2060 "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2061 "endCaptures": {
2062 "1": {
2063 "name": "keyword.operator.heredoc.php"
2064 }
2065 },
2066 "patterns": [
2067 {
2068 "include": "#interpolation"
2069 }
2070 ]
2071 }
2072 ]
2073 },
2074 "nowdoc_interior": {
2075 "patterns": [
2076 {
2077 "begin": "(<<<)\\s*'(HTML)'(\\s*)$",
2078 "beginCaptures": {
2079 "0": {
2080 "name": "punctuation.section.embedded.begin.php"
2081 },
2082 "1": {
2083 "name": "punctuation.definition.string.php"
2084 },
2085 "2": {
2086 "name": "keyword.operator.nowdoc.php"
2087 },
2088 "3": {
2089 "name": "invalid.illegal.trailing-whitespace.php"
2090 }
2091 },
2092 "contentName": "text.html",
2093 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2094 "endCaptures": {
2095 "0": {
2096 "name": "punctuation.section.embedded.end.php"
2097 },
2098 "1": {
2099 "name": "keyword.operator.nowdoc.php"
2100 }
2101 },
2102 "name": "meta.embedded.html",
2103 "patterns": [
2104 {
2105 "include": "text.html.basic"
2106 }
2107 ]
2108 },
2109 {
2110 "begin": "(<<<)\\s*'(XML)'(\\s*)$",
2111 "beginCaptures": {
2112 "0": {
2113 "name": "punctuation.section.embedded.begin.php"
2114 },
2115 "1": {
2116 "name": "punctuation.definition.string.php"
2117 },
2118 "2": {
2119 "name": "keyword.operator.nowdoc.php"
2120 },
2121 "3": {
2122 "name": "invalid.illegal.trailing-whitespace.php"
2123 }
2124 },
2125 "contentName": "text.xml",
2126 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2127 "endCaptures": {
2128 "0": {
2129 "name": "punctuation.section.embedded.end.php"
2130 },
2131 "1": {
2132 "name": "keyword.operator.nowdoc.php"
2133 }
2134 },
2135 "name": "meta.embedded.xml",
2136 "patterns": [
2137 {
2138 "include": "text.xml"
2139 }
2140 ]
2141 },
2142 {
2143 "begin": "(<<<)\\s*'([DS]QL)'(\\s*)$",
2144 "beginCaptures": {
2145 "0": {
2146 "name": "punctuation.section.embedded.begin.php"
2147 },
2148 "1": {
2149 "name": "punctuation.definition.string.php"
2150 },
2151 "2": {
2152 "name": "keyword.operator.nowdoc.php"
2153 },
2154 "3": {
2155 "name": "invalid.illegal.trailing-whitespace.php"
2156 }
2157 },
2158 "contentName": "source.sql",
2159 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2160 "endCaptures": {
2161 "0": {
2162 "name": "punctuation.section.embedded.end.php"
2163 },
2164 "1": {
2165 "name": "keyword.operator.nowdoc.php"
2166 }
2167 },
2168 "name": "meta.embedded.sql",
2169 "patterns": [
2170 {
2171 "include": "source.sql"
2172 }
2173 ]
2174 },
2175 {
2176 "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",
2177 "beginCaptures": {
2178 "0": {
2179 "name": "punctuation.section.embedded.begin.php"
2180 },
2181 "1": {
2182 "name": "punctuation.definition.string.php"
2183 },
2184 "2": {
2185 "name": "keyword.operator.nowdoc.php"
2186 },
2187 "3": {
2188 "name": "invalid.illegal.trailing-whitespace.php"
2189 }
2190 },
2191 "contentName": "source.js",
2192 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2193 "endCaptures": {
2194 "0": {
2195 "name": "punctuation.section.embedded.end.php"
2196 },
2197 "1": {
2198 "name": "keyword.operator.nowdoc.php"
2199 }
2200 },
2201 "name": "meta.embedded.js",
2202 "patterns": [
2203 {
2204 "include": "source.js"
2205 }
2206 ]
2207 },
2208 {
2209 "begin": "(<<<)\\s*'(JSON)'(\\s*)$",
2210 "beginCaptures": {
2211 "0": {
2212 "name": "punctuation.section.embedded.begin.php"
2213 },
2214 "1": {
2215 "name": "punctuation.definition.string.php"
2216 },
2217 "2": {
2218 "name": "keyword.operator.nowdoc.php"
2219 },
2220 "3": {
2221 "name": "invalid.illegal.trailing-whitespace.php"
2222 }
2223 },
2224 "contentName": "source.json",
2225 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2226 "endCaptures": {
2227 "0": {
2228 "name": "punctuation.section.embedded.end.php"
2229 },
2230 "1": {
2231 "name": "keyword.operator.nowdoc.php"
2232 }
2233 },
2234 "name": "meta.embedded.json",
2235 "patterns": [
2236 {
2237 "include": "source.json"
2238 }
2239 ]
2240 },
2241 {
2242 "begin": "(<<<)\\s*'(CSS)'(\\s*)$",
2243 "beginCaptures": {
2244 "0": {
2245 "name": "punctuation.section.embedded.begin.php"
2246 },
2247 "1": {
2248 "name": "punctuation.definition.string.php"
2249 },
2250 "2": {
2251 "name": "keyword.operator.nowdoc.php"
2252 },
2253 "3": {
2254 "name": "invalid.illegal.trailing-whitespace.php"
2255 }
2256 },
2257 "contentName": "source.css",
2258 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2259 "endCaptures": {
2260 "0": {
2261 "name": "punctuation.section.embedded.end.php"
2262 },
2263 "1": {
2264 "name": "keyword.operator.nowdoc.php"
2265 }
2266 },
2267 "name": "meta.embedded.css",
2268 "patterns": [
2269 {
2270 "include": "source.css"
2271 }
2272 ]
2273 },
2274 {
2275 "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$",
2276 "beginCaptures": {
2277 "0": {
2278 "name": "punctuation.section.embedded.begin.php"
2279 },
2280 "1": {
2281 "name": "punctuation.definition.string.php"
2282 },
2283 "2": {
2284 "name": "keyword.operator.nowdoc.php"
2285 },
2286 "3": {
2287 "name": "invalid.illegal.trailing-whitespace.php"
2288 }
2289 },
2290 "contentName": "string.regexp.nowdoc.php",
2291 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2292 "endCaptures": {
2293 "0": {
2294 "name": "punctuation.section.embedded.end.php"
2295 },
2296 "1": {
2297 "name": "keyword.operator.nowdoc.php"
2298 }
2299 },
2300 "patterns": [
2301 {
2302 "match": "(\\\\){1,2}[.$^\\[\\]{}]",
2303 "name": "constant.character.escape.regex.php"
2304 },
2305 {
2306 "captures": {
2307 "1": {
2308 "name": "punctuation.definition.arbitrary-repitition.php"
2309 },
2310 "3": {
2311 "name": "punctuation.definition.arbitrary-repitition.php"
2312 }
2313 },
2314 "match": "({)\\d+(,\\d+)?(})",
2315 "name": "string.regexp.arbitrary-repitition.php"
2316 },
2317 {
2318 "begin": "\\[(?:\\^?\\])?",
2319 "captures": {
2320 "0": {
2321 "name": "punctuation.definition.character-class.php"
2322 }
2323 },
2324 "end": "\\]",
2325 "name": "string.regexp.character-class.php",
2326 "patterns": [
2327 {
2328 "match": "\\\\[\\\\'\\[\\]]",
2329 "name": "constant.character.escape.php"
2330 }
2331 ]
2332 },
2333 {
2334 "match": "[$^+*]",
2335 "name": "keyword.operator.regexp.php"
2336 },
2337 {
2338 "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",
2339 "beginCaptures": {
2340 "1": {
2341 "name": "punctuation.definition.comment.php"
2342 }
2343 },
2344 "end": "$",
2345 "endCaptures": {
2346 "0": {
2347 "name": "punctuation.definition.comment.php"
2348 }
2349 },
2350 "name": "comment.line.number-sign.php"
2351 }
2352 ]
2353 },
2354 {
2355 "begin": "(<<<)\\s*'(BLADE)'(\\s*)$",
2356 "beginCaptures": {
2357 "0": {
2358 "name": "punctuation.section.embedded.begin.php"
2359 },
2360 "1": {
2361 "name": "punctuation.definition.string.php"
2362 },
2363 "2": {
2364 "name": "keyword.operator.nowdoc.php"
2365 },
2366 "3": {
2367 "name": "invalid.illegal.trailing-whitespace.php"
2368 }
2369 },
2370 "contentName": "text.html.php.blade",
2371 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2372 "endCaptures": {
2373 "0": {
2374 "name": "punctuation.section.embedded.end.php"
2375 },
2376 "1": {
2377 "name": "keyword.operator.nowdoc.php"
2378 }
2379 },
2380 "name": "meta.embedded.php.blade"
2381 },
2382 {
2383 "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)'(\\s*)",
2384 "beginCaptures": {
2385 "1": {
2386 "name": "punctuation.definition.string.php"
2387 },
2388 "2": {
2389 "name": "keyword.operator.nowdoc.php"
2390 },
2391 "3": {
2392 "name": "invalid.illegal.trailing-whitespace.php"
2393 }
2394 },
2395 "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",
2396 "endCaptures": {
2397 "1": {
2398 "name": "keyword.operator.nowdoc.php"
2399 }
2400 }
2401 }
2402 ]
2403 },
2404 "instantiation": {
2405 "begin": "(?i)(new)\\s+(?!class\\b)",
2406 "beginCaptures": {
2407 "1": {
2408 "name": "keyword.other.new.php"
2409 }
2410 },
2411 "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",
2412 "patterns": [
2413 {
2414 "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{10ffff}])",
2415 "name": "storage.type.php"
2416 },
2417 {
2418 "include": "#class-name"
2419 },
2420 {
2421 "include": "#variable-name"
2422 }
2423 ]
2424 },
2425 "interpolation": {
2426 "patterns": [
2427 {
2428 "match": "\\\\[0-7]{1,3}",
2429 "name": "constant.character.escape.octal.php"
2430 },
2431 {
2432 "match": "\\\\x[0-9A-Fa-f]{1,2}",
2433 "name": "constant.character.escape.hex.php"
2434 },
2435 {
2436 "match": "\\\\u{[0-9A-Fa-f]+}",
2437 "name": "constant.character.escape.unicode.php"
2438 },
2439 {
2440 "match": "\\\\[nrtvef$\\\\]",
2441 "name": "constant.character.escape.php"
2442 },
2443 {
2444 "begin": "{(?=\\$.*?})",
2445 "beginCaptures": {
2446 "0": {
2447 "name": "punctuation.definition.variable.php"
2448 }
2449 },
2450 "end": "}",
2451 "endCaptures": {
2452 "0": {
2453 "name": "punctuation.definition.variable.php"
2454 }
2455 },
2456 "patterns": [
2457 {
2458 "include": "$self"
2459 }
2460 ]
2461 },
2462 {
2463 "include": "#variable-name"
2464 }
2465 ]
2466 },
2467 "interpolation_double_quoted": {
2468 "patterns": [
2469 {
2470 "match": "\\\\\"",
2471 "name": "constant.character.escape.php"
2472 },
2473 {
2474 "include": "#interpolation"
2475 }
2476 ]
2477 },
2478 "invoke-call": {
2479 "captures": {
2480 "1": {
2481 "name": "variable.other.php"
2482 },
2483 "2": {
2484 "name": "punctuation.definition.variable.php"
2485 }
2486 },
2487 "match": "(?i)((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(?=\\s*\\()",
2488 "name": "meta.function-call.invoke.php"
2489 },
2490 "namespace": {
2491 "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(\\\\)",
2492 "beginCaptures": {
2493 "1": {
2494 "name": "variable.language.namespace.php"
2495 },
2496 "2": {
2497 "name": "punctuation.separator.inheritance.php"
2498 }
2499 },
2500 "end": "(?i)(?![a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",
2501 "name": "support.other.namespace.php",
2502 "patterns": [
2503 {
2504 "match": "\\\\",
2505 "name": "punctuation.separator.inheritance.php"
2506 }
2507 ]
2508 },
2509 "numbers": {
2510 "patterns": [
2511 {
2512 "match": "0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*",
2513 "name": "constant.numeric.hex.php"
2514 },
2515 {
2516 "match": "0[bB][01]+(?:_[01]+)*",
2517 "name": "constant.numeric.binary.php"
2518 },
2519 {
2520 "match": "0[oO][0-7]+(?:_[0-7]+)*",
2521 "name": "constant.numeric.octal.php"
2522 },
2523 {
2524 "match": "0(?:_?[0-7]+)+",
2525 "name": "constant.numeric.octal.php"
2526 },
2527 {
2528 "match": "(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)",
2529 "name": "constant.numeric.decimal.php",
2530 "captures": {
2531 "1": {
2532 "name": "punctuation.separator.decimal.period.php"
2533 },
2534 "2": {
2535 "name": "punctuation.separator.decimal.period.php"
2536 }
2537 }
2538 },
2539 {
2540 "match": "0|[1-9](?:_?[0-9]+)*",
2541 "name": "constant.numeric.decimal.php"
2542 }
2543 ]
2544 },
2545 "object": {
2546 "patterns": [
2547 {
2548 "begin": "(\\??->)\\s*(\\$?{)",
2549 "beginCaptures": {
2550 "1": {
2551 "name": "keyword.operator.class.php"
2552 },
2553 "2": {
2554 "name": "punctuation.definition.variable.php"
2555 }
2556 },
2557 "end": "}",
2558 "endCaptures": {
2559 "0": {
2560 "name": "punctuation.definition.variable.php"
2561 }
2562 },
2563 "patterns": [
2564 {
2565 "include": "$self"
2566 }
2567 ]
2568 },
2569 {
2570 "begin": "(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",
2571 "beginCaptures": {
2572 "1": {
2573 "name": "keyword.operator.class.php"
2574 },
2575 "2": {
2576 "name": "entity.name.function.php"
2577 },
2578 "3": {
2579 "name": "punctuation.definition.arguments.begin.bracket.round.php"
2580 }
2581 },
2582 "end": "\\)|(?=\\?>)",
2583 "endCaptures": {
2584 "0": {
2585 "name": "punctuation.definition.arguments.end.bracket.round.php"
2586 }
2587 },
2588 "name": "meta.method-call.php",
2589 "patterns": [
2590 {
2591 "include": "#named-arguments"
2592 },
2593 {
2594 "include": "$self"
2595 }
2596 ]
2597 },
2598 {
2599 "captures": {
2600 "1": {
2601 "name": "keyword.operator.class.php"
2602 },
2603 "2": {
2604 "name": "variable.other.property.php"
2605 },
2606 "3": {
2607 "name": "punctuation.definition.variable.php"
2608 }
2609 },
2610 "match": "(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?"
2611 }
2612 ]
2613 },
2614 "php-types": {
2615 "patterns": [
2616 {
2617 "match": "\\?",
2618 "name": "keyword.operator.nullable-type.php"
2619 },
2620 {
2621 "match": "[|&]",
2622 "name": "punctuation.separator.delimiter.php"
2623 },
2624 {
2625 "match": "(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\b",
2626 "name": "keyword.other.type.php"
2627 },
2628 {
2629 "match": "(?i)\\b(parent|self)\\b",
2630 "name": "storage.type.php"
2631 },
2632 {
2633 "match": "\\(",
2634 "name": "punctuation.definition.type.begin.bracket.round.php"
2635 },
2636 {
2637 "match": "\\)",
2638 "name": "punctuation.definition.type.end.bracket.round.php"
2639 },
2640 {
2641 "include": "#class-name"
2642 }
2643 ]
2644 },
2645 "parameter-default-types": {
2646 "patterns": [
2647 {
2648 "include": "#strings"
2649 },
2650 {
2651 "include": "#numbers"
2652 },
2653 {
2654 "include": "#string-backtick"
2655 },
2656 {
2657 "include": "#variables"
2658 },
2659 {
2660 "match": "=>",
2661 "name": "keyword.operator.key.php"
2662 },
2663 {
2664 "match": "=",
2665 "name": "keyword.operator.assignment.php"
2666 },
2667 {
2668 "match": "&(?=\\s*\\$)",
2669 "name": "storage.modifier.reference.php"
2670 },
2671 {
2672 "begin": "(array)\\s*(\\()",
2673 "beginCaptures": {
2674 "1": {
2675 "name": "support.function.construct.php"
2676 },
2677 "2": {
2678 "name": "punctuation.definition.array.begin.bracket.round.php"
2679 }
2680 },
2681 "end": "\\)",
2682 "endCaptures": {
2683 "0": {
2684 "name": "punctuation.definition.array.end.bracket.round.php"
2685 }
2686 },
2687 "name": "meta.array.php",
2688 "patterns": [
2689 {
2690 "include": "#parameter-default-types"
2691 }
2692 ]
2693 },
2694 {
2695 "begin": "\\[",
2696 "beginCaptures": {
2697 "0": {
2698 "name": "punctuation.section.array.begin.php"
2699 }
2700 },
2701 "end": "\\]|(?=\\?>)",
2702 "endCaptures": {
2703 "0": {
2704 "name": "punctuation.section.array.end.php"
2705 }
2706 },
2707 "patterns": [
2708 {
2709 "include": "$self"
2710 }
2711 ]
2712 },
2713 {
2714 "include": "#instantiation"
2715 },
2716 {
2717 "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+\n (::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?\n)",
2718 "end": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?",
2719 "endCaptures": {
2720 "1": {
2721 "name": "keyword.operator.class.php"
2722 },
2723 "2": {
2724 "name": "constant.other.class.php"
2725 }
2726 },
2727 "patterns": [
2728 {
2729 "include": "#class-name"
2730 }
2731 ]
2732 },
2733 {
2734 "include": "#constants"
2735 }
2736 ]
2737 },
2738 "php_doc": {
2739 "patterns": [
2740 {
2741 "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",
2742 "name": "invalid.illegal.missing-asterisk.phpdoc.php"
2743 },
2744 {
2745 "captures": {
2746 "1": {
2747 "name": "keyword.other.phpdoc.php"
2748 },
2749 "3": {
2750 "name": "storage.modifier.php"
2751 },
2752 "4": {
2753 "name": "invalid.illegal.wrong-access-type.phpdoc.php"
2754 }
2755 },
2756 "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"
2757 },
2758 {
2759 "captures": {
2760 "1": {
2761 "name": "keyword.other.phpdoc.php"
2762 },
2763 "2": {
2764 "name": "markup.underline.link.php"
2765 }
2766 },
2767 "match": "(@xlink)\\s+(.+)\\s*$"
2768 },
2769 {
2770 "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[?A-Za-z_\\x{7f}-\\x{10ffff}\\\\]|\\()",
2771 "beginCaptures": {
2772 "1": {
2773 "name": "keyword.other.phpdoc.php"
2774 }
2775 },
2776 "end": "(?=\\s|\\*/)",
2777 "contentName": "meta.other.type.phpdoc.php",
2778 "patterns": [
2779 {
2780 "include": "#php_doc_types_array_multiple"
2781 },
2782 {
2783 "include": "#php_doc_types_array_single"
2784 },
2785 {
2786 "include": "#php_doc_types"
2787 }
2788 ]
2789 },
2790 {
2791 "match": "(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b",
2792 "name": "keyword.other.phpdoc.php"
2793 },
2794 {
2795 "captures": {
2796 "1": {
2797 "name": "keyword.other.phpdoc.php"
2798 }
2799 },
2800 "match": "{(@(link|inherit[Dd]oc)).+?}",
2801 "name": "meta.tag.inline.phpdoc.php"
2802 }
2803 ]
2804 },
2805 "php_doc_types": {
2806 "match": "(?i)\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*([|&]\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)*",
2807 "captures": {
2808 "0": {
2809 "patterns": [
2810 {
2811 "match": "\\?",
2812 "name": "keyword.operator.nullable-type.php"
2813 },
2814 {
2815 "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self|static)\\b",
2816 "name": "keyword.other.type.php"
2817 },
2818 {
2819 "include": "#class-name"
2820 },
2821 {
2822 "match": "[|&]",
2823 "name": "punctuation.separator.delimiter.php"
2824 },
2825 {
2826 "match": "\\(",
2827 "name": "punctuation.definition.type.begin.bracket.round.php"
2828 },
2829 {
2830 "match": "\\)",
2831 "name": "punctuation.definition.type.end.bracket.round.php"
2832 }
2833 ]
2834 }
2835 }
2836 },
2837 "php_doc_types_array_multiple": {
2838 "begin": "\\(",
2839 "beginCaptures": {
2840 "0": {
2841 "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php"
2842 }
2843 },
2844 "end": "(\\))(\\[\\])|(?=\\*/)",
2845 "endCaptures": {
2846 "1": {
2847 "name": "punctuation.definition.type.end.bracket.round.phpdoc.php"
2848 },
2849 "2": {
2850 "name": "keyword.other.array.phpdoc.php"
2851 }
2852 },
2853 "patterns": [
2854 {
2855 "include": "#php_doc_types_array_multiple"
2856 },
2857 {
2858 "include": "#php_doc_types_array_single"
2859 },
2860 {
2861 "include": "#php_doc_types"
2862 },
2863 {
2864 "match": "[|&]",
2865 "name": "punctuation.separator.delimiter.php"
2866 }
2867 ]
2868 },
2869 "php_doc_types_array_single": {
2870 "match": "(?i)([a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(\\[\\])",
2871 "captures": {
2872 "1": {
2873 "patterns": [
2874 {
2875 "include": "#php_doc_types"
2876 }
2877 ]
2878 },
2879 "2": {
2880 "name": "keyword.other.array.phpdoc.php"
2881 }
2882 }
2883 },
2884 "regex-double-quoted": {
2885 "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")",
2886 "beginCaptures": {
2887 "0": {
2888 "name": "punctuation.definition.string.begin.php"
2889 }
2890 },
2891 "end": "(/)([imsxeADSUXu]*)(\")",
2892 "endCaptures": {
2893 "0": {
2894 "name": "punctuation.definition.string.end.php"
2895 }
2896 },
2897 "name": "string.regexp.double-quoted.php",
2898 "patterns": [
2899 {
2900 "match": "(\\\\){1,2}[.$^\\[\\]{}]",
2901 "name": "constant.character.escape.regex.php"
2902 },
2903 {
2904 "include": "#interpolation_double_quoted"
2905 },
2906 {
2907 "captures": {
2908 "1": {
2909 "name": "punctuation.definition.arbitrary-repetition.php"
2910 },
2911 "3": {
2912 "name": "punctuation.definition.arbitrary-repetition.php"
2913 }
2914 },
2915 "match": "({)\\d+(,\\d+)?(})",
2916 "name": "string.regexp.arbitrary-repetition.php"
2917 },
2918 {
2919 "begin": "\\[(?:\\^?\\])?",
2920 "captures": {
2921 "0": {
2922 "name": "punctuation.definition.character-class.php"
2923 }
2924 },
2925 "end": "\\]",
2926 "name": "string.regexp.character-class.php",
2927 "patterns": [
2928 {
2929 "include": "#interpolation_double_quoted"
2930 }
2931 ]
2932 },
2933 {
2934 "match": "[$^+*]",
2935 "name": "keyword.operator.regexp.php"
2936 }
2937 ]
2938 },
2939 "regex-single-quoted": {
2940 "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",
2941 "beginCaptures": {
2942 "0": {
2943 "name": "punctuation.definition.string.begin.php"
2944 }
2945 },
2946 "end": "(/)([imsxeADSUXu]*)(')",
2947 "endCaptures": {
2948 "0": {
2949 "name": "punctuation.definition.string.end.php"
2950 }
2951 },
2952 "name": "string.regexp.single-quoted.php",
2953 "patterns": [
2954 {
2955 "include": "#single_quote_regex_escape"
2956 },
2957 {
2958 "captures": {
2959 "1": {
2960 "name": "punctuation.definition.arbitrary-repetition.php"
2961 },
2962 "3": {
2963 "name": "punctuation.definition.arbitrary-repetition.php"
2964 }
2965 },
2966 "match": "({)\\d+(,\\d+)?(})",
2967 "name": "string.regexp.arbitrary-repetition.php"
2968 },
2969 {
2970 "begin": "\\[(?:\\^?\\])?",
2971 "captures": {
2972 "0": {
2973 "name": "punctuation.definition.character-class.php"
2974 }
2975 },
2976 "end": "\\]",
2977 "name": "string.regexp.character-class.php"
2978 },
2979 {
2980 "match": "[$^+*]",
2981 "name": "keyword.operator.regexp.php"
2982 }
2983 ]
2984 },
2985 "scope-resolution": {
2986 "patterns": [
2987 {
2988 "match": "([A-Za-z_\\x{7f}-\\x{10ffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(?=\\s*::)",
2989 "captures": {
2990 "1": {
2991 "patterns": [
2992 {
2993 "match": "\\b(self|static|parent)\\b",
2994 "name": "storage.type.php"
2995 },
2996 {
2997 "include": "#class-name"
2998 },
2999 {
3000 "include": "#variable-name"
3001 }
3002 ]
3003 }
3004 }
3005 },
3006 {
3007 "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",
3008 "beginCaptures": {
3009 "1": {
3010 "name": "keyword.operator.class.php"
3011 },
3012 "2": {
3013 "name": "entity.name.function.php"
3014 },
3015 "3": {
3016 "name": "punctuation.definition.arguments.begin.bracket.round.php"
3017 }
3018 },
3019 "end": "\\)|(?=\\?>)",
3020 "endCaptures": {
3021 "0": {
3022 "name": "punctuation.definition.arguments.end.bracket.round.php"
3023 }
3024 },
3025 "name": "meta.method-call.static.php",
3026 "patterns": [
3027 {
3028 "include": "#named-arguments"
3029 },
3030 {
3031 "include": "$self"
3032 }
3033 ]
3034 },
3035 {
3036 "match": "(?i)(::)\\s*(class)\\b",
3037 "captures": {
3038 "1": {
3039 "name": "keyword.operator.class.php"
3040 },
3041 "2": {
3042 "name": "keyword.other.class.php"
3043 }
3044 }
3045 },
3046 {
3047 "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Constant\n)?",
3048 "captures": {
3049 "1": {
3050 "name": "keyword.operator.class.php"
3051 },
3052 "2": {
3053 "name": "variable.other.class.php"
3054 },
3055 "3": {
3056 "name": "punctuation.definition.variable.php"
3057 },
3058 "4": {
3059 "name": "constant.other.class.php"
3060 }
3061 }
3062 }
3063 ]
3064 },
3065 "single_quote_regex_escape": {
3066 "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",
3067 "name": "constant.character.escape.php"
3068 },
3069 "sql-string-double-quoted": {
3070 "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)",
3071 "beginCaptures": {
3072 "0": {
3073 "name": "punctuation.definition.string.begin.php"
3074 }
3075 },
3076 "contentName": "source.sql.embedded.php",
3077 "end": "\"",
3078 "endCaptures": {
3079 "0": {
3080 "name": "punctuation.definition.string.end.php"
3081 }
3082 },
3083 "name": "string.quoted.double.sql.php",
3084 "patterns": [
3085 {
3086 "match": "(#)(\\\\\"|[^\"])*(?=\"|$)",
3087 "name": "comment.line.number-sign.sql",
3088 "captures": {
3089 "1": {
3090 "name": "punctuation.definition.comment.sql"
3091 }
3092 }
3093 },
3094 {
3095 "match": "(--)(\\\\\"|[^\"])*(?=\"|$)",
3096 "name": "comment.line.double-dash.sql",
3097 "captures": {
3098 "1": {
3099 "name": "punctuation.definition.comment.sql"
3100 }
3101 }
3102 },
3103 {
3104 "match": "\\\\[\\\\\"`']",
3105 "name": "constant.character.escape.php"
3106 },
3107 {
3108 "match": "'(?=((\\\\')|[^'\"])*(\"|$))",
3109 "name": "string.quoted.single.unclosed.sql"
3110 },
3111 {
3112 "match": "`(?=((\\\\`)|[^`\"])*(\"|$))",
3113 "name": "string.quoted.other.backtick.unclosed.sql"
3114 },
3115 {
3116 "begin": "'",
3117 "end": "'",
3118 "name": "string.quoted.single.sql",
3119 "patterns": [
3120 {
3121 "include": "#interpolation_double_quoted"
3122 }
3123 ]
3124 },
3125 {
3126 "begin": "`",
3127 "end": "`",
3128 "name": "string.quoted.other.backtick.sql",
3129 "patterns": [
3130 {
3131 "include": "#interpolation_double_quoted"
3132 }
3133 ]
3134 },
3135 {
3136 "include": "#interpolation_double_quoted"
3137 },
3138 {
3139 "include": "source.sql"
3140 }
3141 ]
3142 },
3143 "sql-string-single-quoted": {
3144 "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)",
3145 "beginCaptures": {
3146 "0": {
3147 "name": "punctuation.definition.string.begin.php"
3148 }
3149 },
3150 "contentName": "source.sql.embedded.php",
3151 "end": "'",
3152 "endCaptures": {
3153 "0": {
3154 "name": "punctuation.definition.string.end.php"
3155 }
3156 },
3157 "name": "string.quoted.single.sql.php",
3158 "patterns": [
3159 {
3160 "match": "(#)(\\\\'|[^'])*(?='|$)",
3161 "name": "comment.line.number-sign.sql",
3162 "captures": {
3163 "1": {
3164 "name": "punctuation.definition.comment.sql"
3165 }
3166 }
3167 },
3168 {
3169 "match": "(--)(\\\\'|[^'])*(?='|$)",
3170 "name": "comment.line.double-dash.sql",
3171 "captures": {
3172 "1": {
3173 "name": "punctuation.definition.comment.sql"
3174 }
3175 }
3176 },
3177 {
3178 "match": "\\\\[\\\\'`\"]",
3179 "name": "constant.character.escape.php"
3180 },
3181 {
3182 "match": "`(?=((\\\\`)|[^`'])*('|$))",
3183 "name": "string.quoted.other.backtick.unclosed.sql"
3184 },
3185 {
3186 "match": "\"(?=((\\\\\")|[^\"'])*('|$))",
3187 "name": "string.quoted.double.unclosed.sql"
3188 },
3189 {
3190 "include": "source.sql"
3191 }
3192 ]
3193 },
3194 "string-backtick": {
3195 "begin": "`",
3196 "beginCaptures": {
3197 "0": {
3198 "name": "punctuation.definition.string.begin.php"
3199 }
3200 },
3201 "end": "`",
3202 "endCaptures": {
3203 "0": {
3204 "name": "punctuation.definition.string.end.php"
3205 }
3206 },
3207 "name": "string.interpolated.php",
3208 "patterns": [
3209 {
3210 "match": "\\\\`",
3211 "name": "constant.character.escape.php"
3212 },
3213 {
3214 "include": "#interpolation"
3215 }
3216 ]
3217 },
3218 "string-double-quoted": {
3219 "begin": "\"",
3220 "beginCaptures": {
3221 "0": {
3222 "name": "punctuation.definition.string.begin.php"
3223 }
3224 },
3225 "end": "\"",
3226 "endCaptures": {
3227 "0": {
3228 "name": "punctuation.definition.string.end.php"
3229 }
3230 },
3231 "name": "string.quoted.double.php",
3232 "patterns": [
3233 {
3234 "include": "#interpolation_double_quoted"
3235 }
3236 ]
3237 },
3238 "string-single-quoted": {
3239 "begin": "'",
3240 "beginCaptures": {
3241 "0": {
3242 "name": "punctuation.definition.string.begin.php"
3243 }
3244 },
3245 "end": "'",
3246 "endCaptures": {
3247 "0": {
3248 "name": "punctuation.definition.string.end.php"
3249 }
3250 },
3251 "name": "string.quoted.single.php",
3252 "patterns": [
3253 {
3254 "match": "\\\\[\\\\']",
3255 "name": "constant.character.escape.php"
3256 }
3257 ]
3258 },
3259 "strings": {
3260 "patterns": [
3261 {
3262 "include": "#regex-double-quoted"
3263 },
3264 {
3265 "include": "#sql-string-double-quoted"
3266 },
3267 {
3268 "include": "#string-double-quoted"
3269 },
3270 {
3271 "include": "#regex-single-quoted"
3272 },
3273 {
3274 "include": "#sql-string-single-quoted"
3275 },
3276 {
3277 "include": "#string-single-quoted"
3278 }
3279 ]
3280 },
3281 "support": {
3282 "patterns": [
3283 {
3284 "match": "(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b",
3285 "name": "support.function.apc.php"
3286 },
3287 {
3288 "match": "(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b",
3289 "name": "support.function.array.php"
3290 },
3291 {
3292 "match": "(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b",
3293 "name": "support.function.basic_functions.php"
3294 },
3295 {
3296 "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",
3297 "name": "support.function.bcmath.php"
3298 },
3299 {
3300 "match": "(?i)\\bblenc_encrypt\\b",
3301 "name": "support.function.blenc.php"
3302 },
3303 {
3304 "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",
3305 "name": "support.function.bz2.php"
3306 },
3307 {
3308 "match": "(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b",
3309 "name": "support.function.calendar.php"
3310 },
3311 {
3312 "match": "(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b",
3313 "name": "support.function.classobj.php"
3314 },
3315 {
3316 "match": "(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b",
3317 "name": "support.function.com.php"
3318 },
3319 {
3320 "match": "(?i)\\b(isset|unset|eval|empty|list)\\b",
3321 "name": "support.function.construct.php"
3322 },
3323 {
3324 "match": "(?i)\\b(print|echo)\\b",
3325 "name": "support.function.construct.output.php"
3326 },
3327 {
3328 "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",
3329 "name": "support.function.ctype.php"
3330 },
3331 {
3332 "match": "(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b",
3333 "name": "support.function.curl.php"
3334 },
3335 {
3336 "match": "(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b",
3337 "name": "support.function.datetime.php"
3338 },
3339 {
3340 "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",
3341 "name": "support.function.dba.php"
3342 },
3343 {
3344 "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",
3345 "name": "support.function.dbx.php"
3346 },
3347 {
3348 "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",
3349 "name": "support.function.dir.php"
3350 },
3351 {
3352 "match": "(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b",
3353 "name": "support.function.eio.php"
3354 },
3355 {
3356 "match": "(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b",
3357 "name": "support.function.enchant.php"
3358 },
3359 {
3360 "match": "(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b",
3361 "name": "support.function.ereg.php"
3362 },
3363 {
3364 "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",
3365 "name": "support.function.errorfunc.php"
3366 },
3367 {
3368 "match": "(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b",
3369 "name": "support.function.exec.php"
3370 },
3371 {
3372 "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",
3373 "name": "support.function.exif.php"
3374 },
3375 {
3376 "match": "(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b",
3377 "name": "support.function.fann.php"
3378 },
3379 {
3380 "match": "(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b",
3381 "name": "support.function.file.php"
3382 },
3383 {
3384 "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",
3385 "name": "support.function.fileinfo.php"
3386 },
3387 {
3388 "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",
3389 "name": "support.function.filter.php"
3390 },
3391 {
3392 "match": "(?i)\\bfastcgi_finish_request\\b",
3393 "name": "support.function.fpm.php"
3394 },
3395 {
3396 "match": "(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",
3397 "name": "support.function.funchand.php"
3398 },
3399 {
3400 "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",
3401 "name": "support.function.gettext.php"
3402 },
3403 {
3404 "match": "(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b",
3405 "name": "support.function.gmp.php"
3406 },
3407 {
3408 "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",
3409 "name": "support.function.hash.php"
3410 },
3411 {
3412 "match": "(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b",
3413 "name": "support.function.http.php"
3414 },
3415 {
3416 "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",
3417 "name": "support.function.iconv.php"
3418 },
3419 {
3420 "match": "(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",
3421 "name": "support.function.iisfunc.php"
3422 },
3423 {
3424 "match": "(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b",
3425 "name": "support.function.image.php"
3426 },
3427 {
3428 "match": "(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b",
3429 "name": "support.function.info.php"
3430 },
3431 {
3432 "match": "(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b",
3433 "name": "support.function.interbase.php"
3434 },
3435 {
3436 "match": "(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b",
3437 "name": "support.function.intl.php"
3438 },
3439 {
3440 "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",
3441 "name": "support.function.json.php"
3442 },
3443 {
3444 "match": "(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b",
3445 "name": "support.function.ldap.php"
3446 },
3447 {
3448 "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",
3449 "name": "support.function.libxml.php"
3450 },
3451 {
3452 "match": "(?i)\\b(ezmlm_hash|mail)\\b",
3453 "name": "support.function.mail.php"
3454 },
3455 {
3456 "match": "(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b",
3457 "name": "support.function.math.php"
3458 },
3459 {
3460 "match": "(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b",
3461 "name": "support.function.mbstring.php"
3462 },
3463 {
3464 "match": "(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b",
3465 "name": "support.function.mcrypt.php"
3466 },
3467 {
3468 "match": "(?i)\\bmemcache_debug\\b",
3469 "name": "support.function.memcache.php"
3470 },
3471 {
3472 "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",
3473 "name": "support.function.mhash.php"
3474 },
3475 {
3476 "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",
3477 "name": "support.function.mongo.php"
3478 },
3479 {
3480 "match": "(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b",
3481 "name": "support.function.mysql.php"
3482 },
3483 {
3484 "match": "(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b",
3485 "name": "support.function.mysqli.php"
3486 },
3487 {
3488 "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b",
3489 "name": "support.function.mysqlnd-memcache.php"
3490 },
3491 {
3492 "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",
3493 "name": "support.function.mysqlnd-ms.php"
3494 },
3495 {
3496 "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",
3497 "name": "support.function.mysqlnd-qc.php"
3498 },
3499 {
3500 "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",
3501 "name": "support.function.mysqlnd-uh.php"
3502 },
3503 {
3504 "match": "(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b",
3505 "name": "support.function.network.php"
3506 },
3507 {
3508 "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",
3509 "name": "support.function.nsapi.php"
3510 },
3511 {
3512 "match": "(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b",
3513 "name": "support.function.oci8.php"
3514 },
3515 {
3516 "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",
3517 "name": "support.function.opcache.php"
3518 },
3519 {
3520 "match": "(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b",
3521 "name": "support.function.openssl.php"
3522 },
3523 {
3524 "match": "(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b",
3525 "name": "support.function.output.php"
3526 },
3527 {
3528 "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",
3529 "name": "support.function.password.php"
3530 },
3531 {
3532 "match": "(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b",
3533 "name": "support.function.pcntl.php"
3534 },
3535 {
3536 "match": "(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b",
3537 "name": "support.function.pgsql.php"
3538 },
3539 {
3540 "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",
3541 "name": "support.function.php_apache.php"
3542 },
3543 {
3544 "match": "(?i)\\bdom_import_simplexml\\b",
3545 "name": "support.function.php_dom.php"
3546 },
3547 {
3548 "match": "(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b",
3549 "name": "support.function.php_ftp.php"
3550 },
3551 {
3552 "match": "(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b",
3553 "name": "support.function.php_imap.php"
3554 },
3555 {
3556 "match": "(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b",
3557 "name": "support.function.php_mssql.php"
3558 },
3559 {
3560 "match": "(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b",
3561 "name": "support.function.php_odbc.php"
3562 },
3563 {
3564 "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",
3565 "name": "support.function.php_pcre.php"
3566 },
3567 {
3568 "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",
3569 "name": "support.function.php_spl.php"
3570 },
3571 {
3572 "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",
3573 "name": "support.function.php_zip.php"
3574 },
3575 {
3576 "match": "(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b",
3577 "name": "support.function.posix.php"
3578 },
3579 {
3580 "match": "(?i)\\bset(thread|proc)title\\b",
3581 "name": "support.function.proctitle.php"
3582 },
3583 {
3584 "match": "(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b",
3585 "name": "support.function.pspell.php"
3586 },
3587 {
3588 "match": "(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",
3589 "name": "support.function.readline.php"
3590 },
3591 {
3592 "match": "(?i)\\brecode(_(string|file))?\\b",
3593 "name": "support.function.recode.php"
3594 },
3595 {
3596 "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",
3597 "name": "support.function.rrd.php"
3598 },
3599 {
3600 "match": "(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b",
3601 "name": "support.function.sem.php"
3602 },
3603 {
3604 "match": "(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b",
3605 "name": "support.function.session.php"
3606 },
3607 {
3608 "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b",
3609 "name": "support.function.shmop.php"
3610 },
3611 {
3612 "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",
3613 "name": "support.function.simplexml.php"
3614 },
3615 {
3616 "match": "(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b",
3617 "name": "support.function.snmp.php"
3618 },
3619 {
3620 "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",
3621 "name": "support.function.soap.php"
3622 },
3623 {
3624 "match": "(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b",
3625 "name": "support.function.sockets.php"
3626 },
3627 {
3628 "match": "(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b",
3629 "name": "support.function.sqlite.php"
3630 },
3631 {
3632 "match": "(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b",
3633 "name": "support.function.sqlsrv.php"
3634 },
3635 {
3636 "match": "(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b",
3637 "name": "support.function.stats.php"
3638 },
3639 {
3640 "match": "(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b",
3641 "name": "support.function.streamsfuncs.php"
3642 },
3643 {
3644 "match": "(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b",
3645 "name": "support.function.string.php"
3646 },
3647 {
3648 "match": "(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b",
3649 "name": "support.function.sybase.php"
3650 },
3651 {
3652 "match": "(?i)\\b(taint|is_tainted|untaint)\\b",
3653 "name": "support.function.taint.php"
3654 },
3655 {
3656 "match": "(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b",
3657 "name": "support.function.tidy.php"
3658 },
3659 {
3660 "match": "(?i)\\btoken_(name|get_all)\\b",
3661 "name": "support.function.tokenizer.php"
3662 },
3663 {
3664 "match": "(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b",
3665 "name": "support.function.trader.php"
3666 },
3667 {
3668 "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",
3669 "name": "support.function.uopz.php"
3670 },
3671 {
3672 "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",
3673 "name": "support.function.url.php"
3674 },
3675 {
3676 "match": "(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b",
3677 "name": "support.function.var.php"
3678 },
3679 {
3680 "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",
3681 "name": "support.function.wddx.php"
3682 },
3683 {
3684 "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b",
3685 "name": "support.function.xhprof.php"
3686 },
3687 {
3688 "match": "(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b",
3689 "name": "support.function.xml.php"
3690 },
3691 {
3692 "match": "(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b",
3693 "name": "support.function.xmlrpc.php"
3694 },
3695 {
3696 "match": "(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b",
3697 "name": "support.function.xmlwriter.php"
3698 },
3699 {
3700 "match": "(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b",
3701 "name": "support.function.zlib.php"
3702 },
3703 {
3704 "match": "(?i)\\bis_int(eger)?\\b",
3705 "name": "support.function.alias.php"
3706 }
3707 ]
3708 },
3709 "switch_statement": {
3710 "patterns": [
3711 {
3712 "match": "\\s+(?=switch\\b)"
3713 },
3714 {
3715 "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",
3716 "beginCaptures": {
3717 "0": {
3718 "name": "keyword.control.switch.php"
3719 }
3720 },
3721 "end": "}|(?=\\?>)",
3722 "endCaptures": {
3723 "0": {
3724 "name": "punctuation.definition.section.switch-block.end.bracket.curly.php"
3725 }
3726 },
3727 "name": "meta.switch-statement.php",
3728 "patterns": [
3729 {
3730 "begin": "\\(",
3731 "beginCaptures": {
3732 "0": {
3733 "name": "punctuation.definition.switch-expression.begin.bracket.round.php"
3734 }
3735 },
3736 "end": "\\)|(?=\\?>)",
3737 "endCaptures": {
3738 "0": {
3739 "name": "punctuation.definition.switch-expression.end.bracket.round.php"
3740 }
3741 },
3742 "patterns": [
3743 {
3744 "include": "$self"
3745 }
3746 ]
3747 },
3748 {
3749 "begin": "{",
3750 "beginCaptures": {
3751 "0": {
3752 "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php"
3753 }
3754 },
3755 "end": "(?=}|\\?>)",
3756 "patterns": [
3757 {
3758 "include": "$self"
3759 }
3760 ]
3761 }
3762 ]
3763 }
3764 ]
3765 },
3766 "match_statement": {
3767 "patterns": [
3768 {
3769 "match": "\\s+(?=match\\b)"
3770 },
3771 {
3772 "begin": "\\bmatch\\b",
3773 "beginCaptures": {
3774 "0": {
3775 "name": "keyword.control.match.php"
3776 }
3777 },
3778 "end": "}|(?=\\?>)",
3779 "endCaptures": {
3780 "0": {
3781 "name": "punctuation.definition.section.match-block.end.bracket.curly.php"
3782 }
3783 },
3784 "name": "meta.match-statement.php",
3785 "patterns": [
3786 {
3787 "begin": "\\(",
3788 "beginCaptures": {
3789 "0": {
3790 "name": "punctuation.definition.match-expression.begin.bracket.round.php"
3791 }
3792 },
3793 "end": "\\)|(?=\\?>)",
3794 "endCaptures": {
3795 "0": {
3796 "name": "punctuation.definition.match-expression.end.bracket.round.php"
3797 }
3798 },
3799 "patterns": [
3800 {
3801 "include": "$self"
3802 }
3803 ]
3804 },
3805 {
3806 "begin": "{",
3807 "beginCaptures": {
3808 "0": {
3809 "name": "punctuation.definition.section.match-block.begin.bracket.curly.php"
3810 }
3811 },
3812 "end": "(?=}|\\?>)",
3813 "patterns": [
3814 {
3815 "match": "=>",
3816 "name": "keyword.definition.arrow.php"
3817 },
3818 {
3819 "include": "$self"
3820 }
3821 ]
3822 }
3823 ]
3824 }
3825 ]
3826 },
3827 "use-inner": {
3828 "patterns": [
3829 {
3830 "include": "#comments"
3831 },
3832 {
3833 "begin": "(?i)\\b(as)\\s+",
3834 "beginCaptures": {
3835 "1": {
3836 "name": "keyword.other.use-as.php"
3837 }
3838 },
3839 "end": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",
3840 "endCaptures": {
3841 "0": {
3842 "name": "entity.other.alias.php"
3843 }
3844 }
3845 },
3846 {
3847 "include": "#class-name"
3848 },
3849 {
3850 "match": ",",
3851 "name": "punctuation.separator.delimiter.php"
3852 }
3853 ]
3854 },
3855 "var_basic": {
3856 "patterns": [
3857 {
3858 "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",
3859 "name": "variable.other.php",
3860 "captures": {
3861 "1": {
3862 "name": "punctuation.definition.variable.php"
3863 }
3864 }
3865 }
3866 ]
3867 },
3868 "var_global": {
3869 "captures": {
3870 "1": {
3871 "name": "punctuation.definition.variable.php"
3872 }
3873 },
3874 "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",
3875 "name": "variable.other.global.php"
3876 },
3877 "var_global_safer": {
3878 "captures": {
3879 "1": {
3880 "name": "punctuation.definition.variable.php"
3881 }
3882 },
3883 "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",
3884 "name": "variable.other.global.safer.php"
3885 },
3886 "var_language": {
3887 "match": "(\\$)this\\b",
3888 "name": "variable.language.this.php",
3889 "captures": {
3890 "1": {
3891 "name": "punctuation.definition.variable.php"
3892 }
3893 }
3894 },
3895 "variable-name": {
3896 "patterns": [
3897 {
3898 "include": "#var_global"
3899 },
3900 {
3901 "include": "#var_global_safer"
3902 },
3903 {
3904 "captures": {
3905 "1": {
3906 "name": "variable.other.php"
3907 },
3908 "2": {
3909 "name": "punctuation.definition.variable.php"
3910 },
3911 "4": {
3912 "name": "keyword.operator.class.php"
3913 },
3914 "5": {
3915 "name": "variable.other.property.php"
3916 },
3917 "6": {
3918 "name": "punctuation.section.array.begin.php"
3919 },
3920 "7": {
3921 "name": "constant.numeric.index.php"
3922 },
3923 "8": {
3924 "name": "variable.other.index.php"
3925 },
3926 "9": {
3927 "name": "punctuation.definition.variable.php"
3928 },
3929 "10": {
3930 "name": "string.unquoted.index.php"
3931 },
3932 "11": {
3933 "name": "punctuation.section.array.end.php"
3934 }
3935 },
3936 "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))\\s*\n(?:\n (\\??->)\\s*(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))(\\])\n)?"
3937 },
3938 {
3939 "captures": {
3940 "1": {
3941 "name": "variable.other.php"
3942 },
3943 "2": {
3944 "name": "punctuation.definition.variable.php"
3945 },
3946 "4": {
3947 "name": "punctuation.definition.variable.php"
3948 }
3949 },
3950 "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(}))"
3951 }
3952 ]
3953 },
3954 "variables": {
3955 "patterns": [
3956 {
3957 "include": "#var_language"
3958 },
3959 {
3960 "include": "#var_global"
3961 },
3962 {
3963 "include": "#var_global_safer"
3964 },
3965 {
3966 "include": "#var_basic"
3967 },
3968 {
3969 "begin": "\\${(?=.*?})",
3970 "beginCaptures": {
3971 "0": {
3972 "name": "punctuation.definition.variable.php"
3973 }
3974 },
3975 "end": "}",
3976 "endCaptures": {
3977 "0": {
3978 "name": "punctuation.definition.variable.php"
3979 }
3980 },
3981 "patterns": [
3982 {
3983 "include": "$self"
3984 }
3985 ]
3986 }
3987 ]
3988 },
3989 "ternary_shorthand": {
3990 "match": "\\?:",
3991 "name": "keyword.operator.ternary.php"
3992 },
3993 "ternary_expression": {
3994 "begin": "\\?",
3995 "beginCaptures": {
3996 "0": {
3997 "name": "keyword.operator.ternary.php"
3998 }
3999 },
4000 "end": "(?<!:):(?!:)",
4001 "endCaptures": {
4002 "0": {
4003 "name": "keyword.operator.ternary.php"
4004 }
4005 },
4006 "patterns": [
4007 {
4008 "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=:(?!:))",
4009 "captures": {
4010 "1": {
4011 "patterns": [
4012 {
4013 "include": "$self"
4014 }
4015 ]
4016 }
4017 }
4018 },
4019 {
4020 "include": "$self"
4021 }
4022 ]
4023 },
4024 "null_coalescing": {
4025 "match": "\\?\\?",
4026 "name": "keyword.operator.null-coalescing.php"
4027 }
4028 },
4029 "name": "php"
4030 }
4031