PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.1.0
Code Block Pro – Beautiful Syntax Highlighting v1.1.0
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 / blade.tmLanguage.json

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

3,868 lines 152.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "scopeName": "text.html.php.blade",
3 "name": "blade",
4 "fileTypes": ["blade.php"],
5 "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)",
6 "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)",
7 "injections": {
8 "text.html.php.blade - (meta.embedded | meta.tag | comment.block.blade), L:(text.html.php.blade meta.tag - (comment.block.blade | meta.embedded.block.blade)), L:(source.js.embedded.html - (comment.block.blade | meta.embedded.block.blade))": {
9 "patterns": [
10 {
11 "include": "#blade"
12 },
13 {
14 "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))",
15 "beginCaptures": {
16 "0": {
17 "name": "punctuation.whitespace.embedded.leading.php"
18 }
19 },
20 "end": "(?!\\G)(\\s*$\\n)?",
21 "endCaptures": {
22 "0": {
23 "name": "punctuation.whitespace.embedded.trailing.php"
24 }
25 },
26 "patterns": [
27 {
28 "begin": "<\\?(?i:php|=)?",
29 "beginCaptures": {
30 "0": {
31 "name": "punctuation.section.embedded.begin.php"
32 }
33 },
34 "contentName": "source.php",
35 "end": "(\\?)>",
36 "endCaptures": {
37 "0": {
38 "name": "punctuation.section.embedded.end.php"
39 },
40 "1": {
41 "name": "source.php"
42 }
43 },
44 "name": "meta.embedded.block.php",
45 "patterns": [
46 {
47 "include": "#language"
48 }
49 ]
50 }
51 ]
52 },
53 {
54 "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)",
55 "beginCaptures": {
56 "0": {
57 "name": "punctuation.section.embedded.begin.php"
58 }
59 },
60 "contentName": "source.php",
61 "end": "(\\?)>",
62 "endCaptures": {
63 "0": {
64 "name": "punctuation.section.embedded.end.php"
65 },
66 "1": {
67 "name": "source.php"
68 }
69 },
70 "name": "meta.embedded.block.php",
71 "patterns": [
72 {
73 "include": "#language"
74 }
75 ]
76 },
77 {
78 "begin": "<\\?(?i:php|=)?",
79 "beginCaptures": {
80 "0": {
81 "name": "punctuation.section.embedded.begin.php"
82 }
83 },
84 "end": ">",
85 "endCaptures": {
86 "0": {
87 "name": "punctuation.section.embedded.end.php"
88 }
89 },
90 "name": "meta.embedded.line.php",
91 "patterns": [
92 {
93 "captures": {
94 "1": {
95 "name": "source.php"
96 },
97 "2": {
98 "name": "punctuation.section.embedded.end.php"
99 },
100 "3": {
101 "name": "source.php"
102 }
103 },
104 "match": "\\G(\\s*)((\\?))(?=>)",
105 "name": "meta.special.empty-tag.php"
106 },
107 {
108 "begin": "\\G",
109 "contentName": "source.php",
110 "end": "(\\?)(?=>)",
111 "endCaptures": {
112 "0": {
113 "name": "punctuation.section.embedded.end.php"
114 },
115 "1": {
116 "name": "source.php"
117 }
118 },
119 "patterns": [
120 {
121 "include": "#language"
122 }
123 ]
124 }
125 ]
126 }
127 ]
128 }
129 },
130 "patterns": [
131 {
132 "include": "text.html.basic"
133 }
134 ],
135 "repository": {
136 "blade": {
137 "patterns": [
138 {
139 "begin": "{{--",
140 "beginCaptures": {
141 "0": {
142 "name": "punctuation.definition.comment.begin.blade"
143 }
144 },
145 "end": "--}}",
146 "endCaptures": {
147 "0": {
148 "name": "punctuation.definition.comment.end.blade"
149 }
150 },
151 "name": "comment.block.blade",
152 "patterns": [
153 {
154 "name": "invalid.illegal.php-code-in-comment.blade",
155 "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))",
156 "beginCaptures": {
157 "0": {
158 "name": "punctuation.whitespace.embedded.leading.php"
159 }
160 },
161 "end": "(?!\\G)(\\s*$\\n)?",
162 "endCaptures": {
163 "0": {
164 "name": "punctuation.whitespace.embedded.trailing.php"
165 }
166 },
167 "patterns": [
168 {
169 "begin": "<\\?(?i:php|=)?",
170 "beginCaptures": {
171 "0": {
172 "name": "punctuation.section.embedded.begin.php"
173 }
174 },
175 "contentName": "source.php",
176 "end": "(\\?)>",
177 "endCaptures": {
178 "0": {
179 "name": "punctuation.section.embedded.end.php"
180 },
181 "1": {
182 "name": "source.php"
183 }
184 },
185 "name": "meta.embedded.block.php",
186 "patterns": [
187 {
188 "include": "#language"
189 }
190 ]
191 }
192 ]
193 },
194 {
195 "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)",
196 "beginCaptures": {
197 "0": {
198 "name": "punctuation.section.embedded.begin.php"
199 }
200 },
201 "contentName": "source.php",
202 "end": "(\\?)>",
203 "endCaptures": {
204 "0": {
205 "name": "punctuation.section.embedded.end.php"
206 },
207 "1": {
208 "name": "source.php"
209 }
210 },
211 "name": "invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php",
212 "patterns": [
213 {
214 "include": "#language"
215 }
216 ]
217 },
218 {
219 "begin": "<\\?(?i:php|=)?",
220 "beginCaptures": {
221 "0": {
222 "name": "punctuation.section.embedded.begin.php"
223 }
224 },
225 "end": ">",
226 "endCaptures": {
227 "0": {
228 "name": "punctuation.section.embedded.end.php"
229 }
230 },
231 "name": "invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php",
232 "patterns": [
233 {
234 "captures": {
235 "1": {
236 "name": "source.php"
237 },
238 "2": {
239 "name": "punctuation.section.embedded.end.php"
240 },
241 "3": {
242 "name": "source.php"
243 }
244 },
245 "match": "\\G(\\s*)((\\?))(?=>)",
246 "name": "meta.special.empty-tag.php"
247 },
248 {
249 "begin": "\\G",
250 "contentName": "source.php",
251 "end": "(\\?)(?=>)",
252 "endCaptures": {
253 "0": {
254 "name": "punctuation.section.embedded.end.php"
255 },
256 "1": {
257 "name": "source.php"
258 }
259 },
260 "patterns": [
261 {
262 "include": "#language"
263 }
264 ]
265 }
266 ]
267 }
268 ]
269 },
270 {
271 "begin": "(?<!@){{{",
272 "beginCaptures": {
273 "0": {
274 "name": "support.function.construct.begin.blade"
275 }
276 },
277 "contentName": "source.php",
278 "end": "}}}",
279 "endCaptures": {
280 "0": {
281 "name": "support.function.construct.end.blade"
282 },
283 "1": {
284 "name": "source.php"
285 }
286 },
287 "name": "meta.function.echo.blade",
288 "patterns": [
289 {
290 "include": "#language"
291 }
292 ]
293 },
294 {
295 "begin": "(?<![@{]){{",
296 "beginCaptures": {
297 "0": {
298 "name": "support.function.construct.begin.blade"
299 }
300 },
301 "contentName": "source.php",
302 "end": "}}",
303 "endCaptures": {
304 "0": {
305 "name": "support.function.construct.end.blade"
306 },
307 "1": {
308 "name": "source.php"
309 }
310 },
311 "name": "meta.function.echo.blade",
312 "patterns": [
313 {
314 "include": "#language"
315 }
316 ]
317 },
318 {
319 "begin": "(?<!@){!!",
320 "beginCaptures": {
321 "0": {
322 "name": "support.function.construct.begin.blade"
323 }
324 },
325 "contentName": "source.php",
326 "end": "!!}",
327 "endCaptures": {
328 "0": {
329 "name": "support.function.construct.end.blade"
330 },
331 "1": {
332 "name": "source.php"
333 }
334 },
335 "name": "meta.function.echo.blade",
336 "patterns": [
337 {
338 "include": "#language"
339 }
340 ]
341 },
342 {
343 "begin": "(@){{",
344 "beginCaptures": {
345 "0": {
346 "name": "begin.bracket.round.blade"
347 },
348 "1": {
349 "name": "variable.other.index.php"
350 }
351 },
352 "contentName": "source.php",
353 "end": "}}",
354 "endCaptures": {
355 "0": {
356 "name": "end.bracket.round.blade"
357 },
358 "1": {
359 "name": "source.php"
360 }
361 },
362 "name": "meta.function.echo.blade",
363 "patterns": [
364 {
365 "include": "#language"
366 }
367 ]
368 },
369 {
370 "begin": "(?x)(?<![A-Za-z0-9_@]) (@ (?i:\n auth\n |break\n |can\n |cannot\n |case\n |choice\n |component\n |continue\n |dd\n |dump\n |each\n |elsecan\n |elsecannot\n |elseif\n |empty\n |error\n |extends\n |for\n |foreach\n |forelse\n |guest\n |hassection\n |if\n |include\n |includefirst\n |includeif\n |includeunless\n |includewhen\n |inject\n |isset\n |json\n |lang\n |once\n |prepend\n |push\n |section\n |sectionMissing\n |slot\n |stack\n |switch\n |unless\n |unset\n |while\n |yield\n |servers\n |task\n |story\n |finished\n |production\n |slack\n |method\n |props\n |env\n |livewire\n |php\n )[\\t ]*\n)(\\() # Followed by opening parentheses\n",
371 "beginCaptures": {
372 "1": {
373 "name": "keyword.blade"
374 },
375 "2": {
376 "name": "begin.bracket.round.blade.php"
377 }
378 },
379 "contentName": "source.php",
380 "end": "\\)",
381 "endCaptures": {
382 "0": {
383 "name": "end.bracket.round.blade.php"
384 }
385 },
386 "name": "meta.directive.blade",
387 "patterns": [
388 {
389 "include": "#language"
390 }
391 ]
392 },
393 {
394 "begin": "(?x)(?<![A-Za-z0-9_@]) (@ (?i:\n append\n |default\n |else\n |endauth\n |endcan\n |endcannot\n |endcomponent\n |endempty\n |enderror\n |endfor\n |endforeach\n |endforelse\n |endguest\n |endif\n |endisset\n |endlang\n |endonce\n |endprepend\n |endpush\n |endsection\n |endslot\n |endswitch\n |endunless\n |endwhile\n |overwrite\n |parent\n |show\n |stop\n |endtask\n |endstory\n |endfinished\n |endproduction\n |endenv\n )[\\t ]*\n)(\\() # Followed by opening parentheses\n",
395 "beginCaptures": {
396 "1": {
397 "name": "keyword.blade"
398 },
399 "2": {
400 "name": "begin.bracket.round.blade.php"
401 }
402 },
403 "contentName": "comment.blade",
404 "end": "\\)",
405 "endCaptures": {
406 "0": {
407 "name": "end.bracket.round.blade.php"
408 }
409 },
410 "name": "meta.directive.blade",
411 "patterns": [
412 {
413 "include": "#balance_brackets"
414 }
415 ]
416 },
417 {
418 "match": "(?x)(?<![A-Za-z0-9_@]) @(?: append\n |break\n |continue\n |csrf\n |default\n |each\n |else\n |overwrite\n |parent\n |sectionMissing\n |show\n |stack\n |stop\n |livewireStyles\n |livewireScripts\n)\\b\n",
419 "name": "keyword.blade"
420 },
421 {
422 "match": "(?x)(?<![A-Za-z0-9_@]) @(end)? (?i: auth\n |can\n |cannot\n |component\n |empty\n |error\n |for\n |foreach\n |forelse\n |guest\n |if\n |isset\n |lang\n |prepend\n |push\n |section\n |slot\n |switch\n |unless\n |verbatim\n |while\n |task\n |story\n |finished\n |production\n |env\n |once\n)\\b\n",
423 "name": "keyword.blade"
424 },
425 {
426 "begin": "(?<![A-Za-z0-9_@])@(?i:php|setup)\\b",
427 "end": "(?<![A-Za-z0-9_@])(?=@(?i:endphp|endsetup)\\b)",
428 "beginCaptures": {
429 "0": {
430 "name": "punctuation.section.embedded.begin.php"
431 }
432 },
433 "endCaptures": {
434 "0": {
435 "name": "punctuation.section.embedded.end.php"
436 }
437 },
438 "contentName": "source.php",
439 "name": "meta.embedded.block.blade",
440 "patterns": [
441 {
442 "include": "#language"
443 }
444 ]
445 },
446 {
447 "begin": "(?x)(?<![A-Za-z0-9_@]) (@(?i:endphp|endsetup)[\\t ]*) (\\()",
448 "beginCaptures": {
449 "1": {
450 "name": "punctuation.section.embedded.end.php"
451 },
452 "2": {
453 "name": "begin.bracket.round.blade.php"
454 }
455 },
456 "contentName": "comment.blade",
457 "end": "\\)",
458 "endCaptures": {
459 "0": {
460 "name": "end.bracket.round.blade.php"
461 }
462 },
463 "name": "meta.directive.blade",
464 "patterns": [
465 {
466 "include": "#balance_brackets"
467 }
468 ]
469 },
470 {
471 "match": "(?x)(?<![A-Za-z0-9_@]) @(?:(?i)endphp|endsetup)\\b",
472 "name": "punctuation.section.embedded.end.php"
473 },
474 {
475 "begin": "(?x)(?<![A-Za-z0-9_@]) (@\\w+(?:::w+)?[\\t ]*) (\\() # Followed by opening parentheses",
476 "beginCaptures": {
477 "1": {
478 "name": "entity.name.function.blade"
479 },
480 "2": {
481 "name": "begin.bracket.round.blade.php"
482 }
483 },
484 "contentName": "source.php",
485 "end": "\\)",
486 "endCaptures": {
487 "0": {
488 "name": "end.bracket.round.blade.php"
489 }
490 },
491 "name": "meta.directive.custom.blade",
492 "patterns": [
493 {
494 "include": "#language"
495 }
496 ]
497 },
498 {
499 "match": "(?x)(?<![A-Za-z0-9_@]) @\\w+(?:::w+)?\\b",
500 "name": "entity.name.function.blade"
501 }
502 ]
503 },
504 "balance_brackets": {
505 "patterns": [
506 {
507 "begin": "\\(",
508 "end": "\\)",
509 "patterns": [
510 {
511 "include": "#balance_brackets"
512 }
513 ]
514 },
515 {
516 "match": "[^()]+"
517 }
518 ]
519 },
520 "class-builtin": {
521 "patterns": [
522 {
523 "match": "(?xi)\n(\\\\)?\\b\n((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",
524 "name": "support.class.builtin.php",
525 "captures": {
526 "1": {
527 "name": "punctuation.separator.inheritance.php"
528 }
529 }
530 }
531 ]
532 },
533 "class-name": {
534 "patterns": [
535 {
536 "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)",
537 "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",
538 "endCaptures": {
539 "1": {
540 "name": "support.class.php"
541 }
542 },
543 "patterns": [
544 {
545 "include": "#namespace"
546 }
547 ]
548 },
549 {
550 "include": "#class-builtin"
551 },
552 {
553 "begin": "(?=[\\\\a-zA-Z_])",
554 "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",
555 "endCaptures": {
556 "1": {
557 "name": "support.class.php"
558 }
559 },
560 "patterns": [
561 {
562 "include": "#namespace"
563 }
564 ]
565 }
566 ]
567 },
568 "comments": {
569 "patterns": [
570 {
571 "begin": "/\\*\\*(?=\\s)",
572 "beginCaptures": {
573 "0": {
574 "name": "punctuation.definition.comment.php"
575 }
576 },
577 "end": "\\*/",
578 "endCaptures": {
579 "0": {
580 "name": "punctuation.definition.comment.php"
581 }
582 },
583 "name": "comment.block.documentation.phpdoc.php",
584 "patterns": [
585 {
586 "include": "#php_doc"
587 }
588 ]
589 },
590 {
591 "begin": "/\\*",
592 "captures": {
593 "0": {
594 "name": "punctuation.definition.comment.php"
595 }
596 },
597 "end": "\\*/",
598 "name": "comment.block.php"
599 },
600 {
601 "begin": "(^\\s+)?(?=//)",
602 "beginCaptures": {
603 "1": {
604 "name": "punctuation.whitespace.comment.leading.php"
605 }
606 },
607 "end": "(?!\\G)",
608 "patterns": [
609 {
610 "begin": "//",
611 "beginCaptures": {
612 "0": {
613 "name": "punctuation.definition.comment.php"
614 }
615 },
616 "end": "\\n|(?=\\?>)",
617 "name": "comment.line.double-slash.php"
618 }
619 ]
620 },
621 {
622 "begin": "(^\\s+)?(?=#)",
623 "beginCaptures": {
624 "1": {
625 "name": "punctuation.whitespace.comment.leading.php"
626 }
627 },
628 "end": "(?!\\G)",
629 "patterns": [
630 {
631 "begin": "#",
632 "beginCaptures": {
633 "0": {
634 "name": "punctuation.definition.comment.php"
635 }
636 },
637 "end": "\\n|(?=\\?>)",
638 "name": "comment.line.number-sign.php"
639 }
640 ]
641 }
642 ]
643 },
644 "constants": {
645 "patterns": [
646 {
647 "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",
648 "name": "constant.language.php"
649 },
650 {
651 "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",
652 "name": "support.constant.core.php",
653 "captures": {
654 "1": {
655 "name": "punctuation.separator.inheritance.php"
656 }
657 }
658 },
659 {
660 "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",
661 "name": "support.constant.std.php",
662 "captures": {
663 "1": {
664 "name": "punctuation.separator.inheritance.php"
665 }
666 }
667 },
668 {
669 "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",
670 "name": "support.constant.ext.php",
671 "captures": {
672 "1": {
673 "name": "punctuation.separator.inheritance.php"
674 }
675 }
676 },
677 {
678 "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",
679 "name": "support.constant.parser-token.php",
680 "captures": {
681 "1": {
682 "name": "punctuation.separator.inheritance.php"
683 }
684 }
685 },
686 {
687 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
688 "name": "constant.other.php"
689 }
690 ]
691 },
692 "function-parameters": {
693 "patterns": [
694 {
695 "include": "#comments"
696 },
697 {
698 "match": ",",
699 "name": "punctuation.separator.delimiter.php"
700 },
701 {
702 "begin": "(?xi)\n(array) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*(array)\\s*(\\() # Default value",
703 "beginCaptures": {
704 "1": {
705 "name": "storage.type.php"
706 },
707 "2": {
708 "name": "variable.other.php"
709 },
710 "3": {
711 "name": "storage.modifier.reference.php"
712 },
713 "4": {
714 "name": "punctuation.definition.variable.php"
715 },
716 "5": {
717 "name": "keyword.operator.assignment.php"
718 },
719 "6": {
720 "name": "support.function.construct.php"
721 },
722 "7": {
723 "name": "punctuation.definition.array.begin.bracket.round.php"
724 }
725 },
726 "contentName": "meta.array.php",
727 "end": "\\)",
728 "endCaptures": {
729 "0": {
730 "name": "punctuation.definition.array.end.bracket.round.php"
731 }
732 },
733 "name": "meta.function.parameter.array.php",
734 "patterns": [
735 {
736 "include": "#comments"
737 },
738 {
739 "include": "#strings"
740 },
741 {
742 "include": "#numbers"
743 }
744 ]
745 },
746 {
747 "match": "(?xi)\n(array|callable) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n(?: # Optional default value\n \\s*(=)\\s*\n (?:\n (null)\n |\n (\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])\n |((?:\\S*?\\(\\))|(?:\\S*?))\n )\n)?\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment",
748 "name": "meta.function.parameter.array.php",
749 "captures": {
750 "1": {
751 "name": "storage.type.php"
752 },
753 "2": {
754 "name": "variable.other.php"
755 },
756 "3": {
757 "name": "storage.modifier.reference.php"
758 },
759 "4": {
760 "name": "punctuation.definition.variable.php"
761 },
762 "5": {
763 "name": "keyword.operator.assignment.php"
764 },
765 "6": {
766 "name": "constant.language.php"
767 },
768 "7": {
769 "name": "punctuation.section.array.begin.php"
770 },
771 "8": {
772 "patterns": [
773 {
774 "include": "#parameter-default-types"
775 }
776 ]
777 },
778 "9": {
779 "name": "punctuation.section.array.end.php"
780 },
781 "10": {
782 "name": "invalid.illegal.non-null-typehinted.php"
783 }
784 }
785 },
786 {
787 "begin": "(?xi)\n(\\\\?(?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)*) # Optional namespace\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Typehinted class name\n\\s+((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference",
788 "beginCaptures": {
789 "1": {
790 "name": "support.other.namespace.php",
791 "patterns": [
792 {
793 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
794 "name": "storage.type.php"
795 },
796 {
797 "match": "\\\\",
798 "name": "punctuation.separator.inheritance.php"
799 }
800 ]
801 },
802 "2": {
803 "name": "storage.type.php"
804 },
805 "3": {
806 "name": "variable.other.php"
807 },
808 "4": {
809 "name": "storage.modifier.reference.php"
810 },
811 "5": {
812 "name": "keyword.operator.variadic.php"
813 },
814 "6": {
815 "name": "punctuation.definition.variable.php"
816 }
817 },
818 "end": "(?=,|\\)|/[/*]|\\#)",
819 "name": "meta.function.parameter.typehinted.php",
820 "patterns": [
821 {
822 "begin": "=",
823 "beginCaptures": {
824 "0": {
825 "name": "keyword.operator.assignment.php"
826 }
827 },
828 "end": "(?=,|\\)|/[/*]|\\#)",
829 "patterns": [
830 {
831 "include": "#language"
832 }
833 ]
834 }
835 ]
836 },
837 {
838 "captures": {
839 "1": {
840 "name": "variable.other.php"
841 },
842 "2": {
843 "name": "storage.modifier.reference.php"
844 },
845 "3": {
846 "name": "keyword.operator.variadic.php"
847 },
848 "4": {
849 "name": "punctuation.definition.variable.php"
850 }
851 },
852 "match": "(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment",
853 "name": "meta.function.parameter.no-default.php"
854 },
855 {
856 "begin": "(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*\n(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))? # Optional default type",
857 "beginCaptures": {
858 "1": {
859 "name": "variable.other.php"
860 },
861 "2": {
862 "name": "storage.modifier.reference.php"
863 },
864 "3": {
865 "name": "keyword.operator.variadic.php"
866 },
867 "4": {
868 "name": "punctuation.definition.variable.php"
869 },
870 "5": {
871 "name": "keyword.operator.assignment.php"
872 },
873 "6": {
874 "name": "punctuation.section.array.begin.php"
875 },
876 "7": {
877 "patterns": [
878 {
879 "include": "#parameter-default-types"
880 }
881 ]
882 },
883 "8": {
884 "name": "punctuation.section.array.end.php"
885 }
886 },
887 "end": "(?=,|\\)|/[/*]|\\#)",
888 "name": "meta.function.parameter.default.php",
889 "patterns": [
890 {
891 "include": "#parameter-default-types"
892 }
893 ]
894 }
895 ]
896 },
897 "function-call": {
898 "patterns": [
899 {
900 "begin": "(?xi)\n(\n \\\\?\\b # Optional root namespace\n [a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]* # First namespace\n (?:\\\\[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)+ # Additional namespaces\n)\\s*(\\()",
901 "beginCaptures": {
902 "1": {
903 "patterns": [
904 {
905 "include": "#namespace"
906 },
907 {
908 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
909 "name": "entity.name.function.php"
910 }
911 ]
912 },
913 "2": {
914 "name": "punctuation.definition.arguments.begin.bracket.round.php"
915 }
916 },
917 "end": "\\)|(?=\\?>)",
918 "endCaptures": {
919 "0": {
920 "name": "punctuation.definition.arguments.end.bracket.round.php"
921 }
922 },
923 "name": "meta.function-call.php",
924 "patterns": [
925 {
926 "include": "#language"
927 }
928 ]
929 },
930 {
931 "begin": "(?i)(\\\\)?\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",
932 "beginCaptures": {
933 "1": {
934 "patterns": [
935 {
936 "include": "#namespace"
937 }
938 ]
939 },
940 "2": {
941 "patterns": [
942 {
943 "include": "#support"
944 },
945 {
946 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
947 "name": "entity.name.function.php"
948 }
949 ]
950 },
951 "3": {
952 "name": "punctuation.definition.arguments.begin.bracket.round.php"
953 }
954 },
955 "end": "\\)|(?=\\?>)",
956 "endCaptures": {
957 "0": {
958 "name": "punctuation.definition.arguments.end.bracket.round.php"
959 }
960 },
961 "name": "meta.function-call.php",
962 "patterns": [
963 {
964 "include": "#language"
965 }
966 ]
967 },
968 {
969 "match": "(?i)\\b(print|echo)\\b",
970 "name": "support.function.construct.output.php"
971 }
972 ]
973 },
974 "heredoc": {
975 "patterns": [
976 {
977 "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(\\1)\\s*$)",
978 "end": "(?!\\G)",
979 "name": "string.unquoted.heredoc.php",
980 "patterns": [
981 {
982 "include": "#heredoc_interior"
983 }
984 ]
985 },
986 {
987 "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",
988 "end": "(?!\\G)",
989 "name": "string.unquoted.nowdoc.php",
990 "patterns": [
991 {
992 "include": "#nowdoc_interior"
993 }
994 ]
995 }
996 ]
997 },
998 "heredoc_interior": {
999 "patterns": [
1000 {
1001 "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$",
1002 "beginCaptures": {
1003 "0": {
1004 "name": "punctuation.section.embedded.begin.php"
1005 },
1006 "1": {
1007 "name": "punctuation.definition.string.php"
1008 },
1009 "3": {
1010 "name": "keyword.operator.heredoc.php"
1011 },
1012 "5": {
1013 "name": "invalid.illegal.trailing-whitespace.php"
1014 }
1015 },
1016 "contentName": "text.html",
1017 "end": "^(\\3)\\b",
1018 "endCaptures": {
1019 "0": {
1020 "name": "punctuation.section.embedded.end.php"
1021 },
1022 "1": {
1023 "name": "keyword.operator.heredoc.php"
1024 }
1025 },
1026 "name": "meta.embedded.html",
1027 "patterns": [
1028 {
1029 "include": "#interpolation"
1030 },
1031 {
1032 "include": "text.html.basic"
1033 }
1034 ]
1035 },
1036 {
1037 "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$",
1038 "beginCaptures": {
1039 "0": {
1040 "name": "punctuation.section.embedded.begin.php"
1041 },
1042 "1": {
1043 "name": "punctuation.definition.string.php"
1044 },
1045 "3": {
1046 "name": "keyword.operator.heredoc.php"
1047 },
1048 "5": {
1049 "name": "invalid.illegal.trailing-whitespace.php"
1050 }
1051 },
1052 "contentName": "text.xml",
1053 "end": "^(\\3)\\b",
1054 "endCaptures": {
1055 "0": {
1056 "name": "punctuation.section.embedded.end.php"
1057 },
1058 "1": {
1059 "name": "keyword.operator.heredoc.php"
1060 }
1061 },
1062 "name": "meta.embedded.xml",
1063 "patterns": [
1064 {
1065 "include": "#interpolation"
1066 },
1067 {
1068 "include": "text.xml"
1069 }
1070 ]
1071 },
1072 {
1073 "begin": "(<<<)\\s*(\"?)(SQL)(\\2)(\\s*)$",
1074 "beginCaptures": {
1075 "0": {
1076 "name": "punctuation.section.embedded.begin.php"
1077 },
1078 "1": {
1079 "name": "punctuation.definition.string.php"
1080 },
1081 "3": {
1082 "name": "keyword.operator.heredoc.php"
1083 },
1084 "5": {
1085 "name": "invalid.illegal.trailing-whitespace.php"
1086 }
1087 },
1088 "contentName": "source.sql",
1089 "end": "^(\\3)\\b",
1090 "endCaptures": {
1091 "0": {
1092 "name": "punctuation.section.embedded.end.php"
1093 },
1094 "1": {
1095 "name": "keyword.operator.heredoc.php"
1096 }
1097 },
1098 "name": "meta.embedded.sql",
1099 "patterns": [
1100 {
1101 "include": "#interpolation"
1102 },
1103 {
1104 "include": "source.sql"
1105 }
1106 ]
1107 },
1108 {
1109 "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$",
1110 "beginCaptures": {
1111 "0": {
1112 "name": "punctuation.section.embedded.begin.php"
1113 },
1114 "1": {
1115 "name": "punctuation.definition.string.php"
1116 },
1117 "3": {
1118 "name": "keyword.operator.heredoc.php"
1119 },
1120 "5": {
1121 "name": "invalid.illegal.trailing-whitespace.php"
1122 }
1123 },
1124 "contentName": "source.js",
1125 "end": "^(\\3)\\b",
1126 "endCaptures": {
1127 "0": {
1128 "name": "punctuation.section.embedded.end.php"
1129 },
1130 "1": {
1131 "name": "keyword.operator.heredoc.php"
1132 }
1133 },
1134 "name": "meta.embedded.js",
1135 "patterns": [
1136 {
1137 "include": "#interpolation"
1138 },
1139 {
1140 "include": "source.js"
1141 }
1142 ]
1143 },
1144 {
1145 "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$",
1146 "beginCaptures": {
1147 "0": {
1148 "name": "punctuation.section.embedded.begin.php"
1149 },
1150 "1": {
1151 "name": "punctuation.definition.string.php"
1152 },
1153 "3": {
1154 "name": "keyword.operator.heredoc.php"
1155 },
1156 "5": {
1157 "name": "invalid.illegal.trailing-whitespace.php"
1158 }
1159 },
1160 "contentName": "source.json",
1161 "end": "^(\\3)\\b",
1162 "endCaptures": {
1163 "0": {
1164 "name": "punctuation.section.embedded.end.php"
1165 },
1166 "1": {
1167 "name": "keyword.operator.heredoc.php"
1168 }
1169 },
1170 "name": "meta.embedded.json",
1171 "patterns": [
1172 {
1173 "include": "#interpolation"
1174 },
1175 {
1176 "include": "source.json"
1177 }
1178 ]
1179 },
1180 {
1181 "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$",
1182 "beginCaptures": {
1183 "0": {
1184 "name": "punctuation.section.embedded.begin.php"
1185 },
1186 "1": {
1187 "name": "punctuation.definition.string.php"
1188 },
1189 "3": {
1190 "name": "keyword.operator.heredoc.php"
1191 },
1192 "5": {
1193 "name": "invalid.illegal.trailing-whitespace.php"
1194 }
1195 },
1196 "contentName": "source.css",
1197 "end": "^(\\3)\\b",
1198 "endCaptures": {
1199 "0": {
1200 "name": "punctuation.section.embedded.end.php"
1201 },
1202 "1": {
1203 "name": "keyword.operator.heredoc.php"
1204 }
1205 },
1206 "name": "meta.embedded.css",
1207 "patterns": [
1208 {
1209 "include": "#interpolation"
1210 },
1211 {
1212 "include": "source.css"
1213 }
1214 ]
1215 },
1216 {
1217 "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$",
1218 "beginCaptures": {
1219 "0": {
1220 "name": "punctuation.section.embedded.begin.php"
1221 },
1222 "1": {
1223 "name": "punctuation.definition.string.php"
1224 },
1225 "3": {
1226 "name": "keyword.operator.heredoc.php"
1227 },
1228 "5": {
1229 "name": "invalid.illegal.trailing-whitespace.php"
1230 }
1231 },
1232 "contentName": "string.regexp.heredoc.php",
1233 "end": "^(\\3)\\b",
1234 "endCaptures": {
1235 "0": {
1236 "name": "punctuation.section.embedded.end.php"
1237 },
1238 "1": {
1239 "name": "keyword.operator.heredoc.php"
1240 }
1241 },
1242 "patterns": [
1243 {
1244 "include": "#interpolation"
1245 },
1246 {
1247 "match": "(\\\\){1,2}[.$^\\[\\]{}]",
1248 "name": "constant.character.escape.regex.php"
1249 },
1250 {
1251 "captures": {
1252 "1": {
1253 "name": "punctuation.definition.arbitrary-repitition.php"
1254 },
1255 "3": {
1256 "name": "punctuation.definition.arbitrary-repitition.php"
1257 }
1258 },
1259 "match": "({)\\d+(,\\d+)?(})",
1260 "name": "string.regexp.arbitrary-repitition.php"
1261 },
1262 {
1263 "begin": "\\[(?:\\^?\\])?",
1264 "captures": {
1265 "0": {
1266 "name": "punctuation.definition.character-class.php"
1267 }
1268 },
1269 "end": "\\]",
1270 "name": "string.regexp.character-class.php",
1271 "patterns": [
1272 {
1273 "match": "\\\\[\\\\'\\[\\]]",
1274 "name": "constant.character.escape.php"
1275 }
1276 ]
1277 },
1278 {
1279 "match": "[$^+*]",
1280 "name": "keyword.operator.regexp.php"
1281 },
1282 {
1283 "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",
1284 "beginCaptures": {
1285 "1": {
1286 "name": "punctuation.definition.comment.php"
1287 }
1288 },
1289 "end": "$",
1290 "endCaptures": {
1291 "0": {
1292 "name": "punctuation.definition.comment.php"
1293 }
1294 },
1295 "name": "comment.line.number-sign.php"
1296 }
1297 ]
1298 },
1299 {
1300 "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)(\\2)(\\s*)",
1301 "beginCaptures": {
1302 "1": {
1303 "name": "punctuation.definition.string.php"
1304 },
1305 "3": {
1306 "name": "keyword.operator.heredoc.php"
1307 },
1308 "5": {
1309 "name": "invalid.illegal.trailing-whitespace.php"
1310 }
1311 },
1312 "end": "^(\\3)\\b",
1313 "endCaptures": {
1314 "1": {
1315 "name": "keyword.operator.heredoc.php"
1316 }
1317 },
1318 "patterns": [
1319 {
1320 "include": "#interpolation"
1321 }
1322 ]
1323 }
1324 ]
1325 },
1326 "nowdoc_interior": {
1327 "patterns": [
1328 {
1329 "begin": "(<<<)\\s*'(HTML)'(\\s*)$",
1330 "beginCaptures": {
1331 "0": {
1332 "name": "punctuation.section.embedded.begin.php"
1333 },
1334 "1": {
1335 "name": "punctuation.definition.string.php"
1336 },
1337 "2": {
1338 "name": "keyword.operator.nowdoc.php"
1339 },
1340 "3": {
1341 "name": "invalid.illegal.trailing-whitespace.php"
1342 }
1343 },
1344 "contentName": "text.html",
1345 "end": "^(\\2)\\b",
1346 "endCaptures": {
1347 "0": {
1348 "name": "punctuation.section.embedded.end.php"
1349 },
1350 "1": {
1351 "name": "keyword.operator.nowdoc.php"
1352 }
1353 },
1354 "name": "meta.embedded.html",
1355 "patterns": [
1356 {
1357 "include": "text.html.basic"
1358 }
1359 ]
1360 },
1361 {
1362 "begin": "(<<<)\\s*'(XML)'(\\s*)$",
1363 "beginCaptures": {
1364 "0": {
1365 "name": "punctuation.section.embedded.begin.php"
1366 },
1367 "1": {
1368 "name": "punctuation.definition.string.php"
1369 },
1370 "2": {
1371 "name": "keyword.operator.nowdoc.php"
1372 },
1373 "3": {
1374 "name": "invalid.illegal.trailing-whitespace.php"
1375 }
1376 },
1377 "contentName": "text.xml",
1378 "end": "^(\\2)\\b",
1379 "endCaptures": {
1380 "0": {
1381 "name": "punctuation.section.embedded.end.php"
1382 },
1383 "1": {
1384 "name": "keyword.operator.nowdoc.php"
1385 }
1386 },
1387 "name": "meta.embedded.xml",
1388 "patterns": [
1389 {
1390 "include": "text.xml"
1391 }
1392 ]
1393 },
1394 {
1395 "begin": "(<<<)\\s*'(SQL)'(\\s*)$",
1396 "beginCaptures": {
1397 "0": {
1398 "name": "punctuation.section.embedded.begin.php"
1399 },
1400 "1": {
1401 "name": "punctuation.definition.string.php"
1402 },
1403 "2": {
1404 "name": "keyword.operator.nowdoc.php"
1405 },
1406 "3": {
1407 "name": "invalid.illegal.trailing-whitespace.php"
1408 }
1409 },
1410 "contentName": "source.sql",
1411 "end": "^(\\2)\\b",
1412 "endCaptures": {
1413 "0": {
1414 "name": "punctuation.section.embedded.end.php"
1415 },
1416 "1": {
1417 "name": "keyword.operator.nowdoc.php"
1418 }
1419 },
1420 "name": "meta.embedded.sql",
1421 "patterns": [
1422 {
1423 "include": "source.sql"
1424 }
1425 ]
1426 },
1427 {
1428 "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",
1429 "beginCaptures": {
1430 "0": {
1431 "name": "punctuation.section.embedded.begin.php"
1432 },
1433 "1": {
1434 "name": "punctuation.definition.string.php"
1435 },
1436 "2": {
1437 "name": "keyword.operator.nowdoc.php"
1438 },
1439 "3": {
1440 "name": "invalid.illegal.trailing-whitespace.php"
1441 }
1442 },
1443 "contentName": "source.js",
1444 "end": "^(\\2)\\b",
1445 "endCaptures": {
1446 "0": {
1447 "name": "punctuation.section.embedded.end.php"
1448 },
1449 "1": {
1450 "name": "keyword.operator.nowdoc.php"
1451 }
1452 },
1453 "name": "meta.embedded.js",
1454 "patterns": [
1455 {
1456 "include": "source.js"
1457 }
1458 ]
1459 },
1460 {
1461 "begin": "(<<<)\\s*'(JSON)'(\\s*)$",
1462 "beginCaptures": {
1463 "0": {
1464 "name": "punctuation.section.embedded.begin.php"
1465 },
1466 "1": {
1467 "name": "punctuation.definition.string.php"
1468 },
1469 "2": {
1470 "name": "keyword.operator.nowdoc.php"
1471 },
1472 "3": {
1473 "name": "invalid.illegal.trailing-whitespace.php"
1474 }
1475 },
1476 "contentName": "source.json",
1477 "end": "^(\\2)\\b",
1478 "endCaptures": {
1479 "0": {
1480 "name": "punctuation.section.embedded.end.php"
1481 },
1482 "1": {
1483 "name": "keyword.operator.nowdoc.php"
1484 }
1485 },
1486 "name": "meta.embedded.json",
1487 "patterns": [
1488 {
1489 "include": "source.json"
1490 }
1491 ]
1492 },
1493 {
1494 "begin": "(<<<)\\s*'(CSS)'(\\s*)$",
1495 "beginCaptures": {
1496 "0": {
1497 "name": "punctuation.section.embedded.begin.php"
1498 },
1499 "1": {
1500 "name": "punctuation.definition.string.php"
1501 },
1502 "2": {
1503 "name": "keyword.operator.nowdoc.php"
1504 },
1505 "3": {
1506 "name": "invalid.illegal.trailing-whitespace.php"
1507 }
1508 },
1509 "contentName": "source.css",
1510 "end": "^(\\2)\\b",
1511 "endCaptures": {
1512 "0": {
1513 "name": "punctuation.section.embedded.end.php"
1514 },
1515 "1": {
1516 "name": "keyword.operator.nowdoc.php"
1517 }
1518 },
1519 "name": "meta.embedded.css",
1520 "patterns": [
1521 {
1522 "include": "source.css"
1523 }
1524 ]
1525 },
1526 {
1527 "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$",
1528 "beginCaptures": {
1529 "0": {
1530 "name": "punctuation.section.embedded.begin.php"
1531 },
1532 "1": {
1533 "name": "punctuation.definition.string.php"
1534 },
1535 "2": {
1536 "name": "keyword.operator.nowdoc.php"
1537 },
1538 "3": {
1539 "name": "invalid.illegal.trailing-whitespace.php"
1540 }
1541 },
1542 "contentName": "string.regexp.nowdoc.php",
1543 "end": "^(\\2)\\b",
1544 "endCaptures": {
1545 "0": {
1546 "name": "punctuation.section.embedded.end.php"
1547 },
1548 "1": {
1549 "name": "keyword.operator.nowdoc.php"
1550 }
1551 },
1552 "patterns": [
1553 {
1554 "match": "(\\\\){1,2}[.$^\\[\\]{}]",
1555 "name": "constant.character.escape.regex.php"
1556 },
1557 {
1558 "captures": {
1559 "1": {
1560 "name": "punctuation.definition.arbitrary-repitition.php"
1561 },
1562 "3": {
1563 "name": "punctuation.definition.arbitrary-repitition.php"
1564 }
1565 },
1566 "match": "({)\\d+(,\\d+)?(})",
1567 "name": "string.regexp.arbitrary-repitition.php"
1568 },
1569 {
1570 "begin": "\\[(?:\\^?\\])?",
1571 "captures": {
1572 "0": {
1573 "name": "punctuation.definition.character-class.php"
1574 }
1575 },
1576 "end": "\\]",
1577 "name": "string.regexp.character-class.php",
1578 "patterns": [
1579 {
1580 "match": "\\\\[\\\\'\\[\\]]",
1581 "name": "constant.character.escape.php"
1582 }
1583 ]
1584 },
1585 {
1586 "match": "[$^+*]",
1587 "name": "keyword.operator.regexp.php"
1588 },
1589 {
1590 "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",
1591 "beginCaptures": {
1592 "1": {
1593 "name": "punctuation.definition.comment.php"
1594 }
1595 },
1596 "end": "$",
1597 "endCaptures": {
1598 "0": {
1599 "name": "punctuation.definition.comment.php"
1600 }
1601 },
1602 "name": "comment.line.number-sign.php"
1603 }
1604 ]
1605 },
1606 {
1607 "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)'(\\s*)",
1608 "beginCaptures": {
1609 "1": {
1610 "name": "punctuation.definition.string.php"
1611 },
1612 "2": {
1613 "name": "keyword.operator.nowdoc.php"
1614 },
1615 "3": {
1616 "name": "invalid.illegal.trailing-whitespace.php"
1617 }
1618 },
1619 "end": "^(\\2)\\b",
1620 "endCaptures": {
1621 "1": {
1622 "name": "keyword.operator.nowdoc.php"
1623 }
1624 }
1625 }
1626 ]
1627 },
1628 "instantiation": {
1629 "begin": "(?i)(new)\\s+",
1630 "beginCaptures": {
1631 "1": {
1632 "name": "keyword.other.new.php"
1633 }
1634 },
1635 "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",
1636 "patterns": [
1637 {
1638 "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{ff}])",
1639 "name": "storage.type.php"
1640 },
1641 {
1642 "include": "#class-name"
1643 },
1644 {
1645 "include": "#variable-name"
1646 }
1647 ]
1648 },
1649 "interpolation": {
1650 "patterns": [
1651 {
1652 "match": "\\\\[0-7]{1,3}",
1653 "name": "constant.character.escape.octal.php"
1654 },
1655 {
1656 "match": "\\\\x[0-9A-Fa-f]{1,2}",
1657 "name": "constant.character.escape.hex.php"
1658 },
1659 {
1660 "match": "\\\\u{[0-9A-Fa-f]+}",
1661 "name": "constant.character.escape.unicode.php"
1662 },
1663 {
1664 "match": "\\\\[nrtvef$\"\\\\]",
1665 "name": "constant.character.escape.php"
1666 },
1667 {
1668 "begin": "{(?=\\$.*?})",
1669 "beginCaptures": {
1670 "0": {
1671 "name": "punctuation.definition.variable.php"
1672 }
1673 },
1674 "end": "}",
1675 "endCaptures": {
1676 "0": {
1677 "name": "punctuation.definition.variable.php"
1678 }
1679 },
1680 "patterns": [
1681 {
1682 "include": "#language"
1683 }
1684 ]
1685 },
1686 {
1687 "include": "#variable-name"
1688 }
1689 ]
1690 },
1691 "invoke-call": {
1692 "captures": {
1693 "1": {
1694 "name": "punctuation.definition.variable.php"
1695 },
1696 "2": {
1697 "name": "variable.other.php"
1698 }
1699 },
1700 "match": "(?i)(\\$+)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*\\()",
1701 "name": "meta.function-call.invoke.php"
1702 },
1703 "language": {
1704 "patterns": [
1705 {
1706 "include": "#comments"
1707 },
1708 {
1709 "begin": "(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(extends)?\\s*",
1710 "beginCaptures": {
1711 "1": {
1712 "name": "storage.type.interface.php"
1713 },
1714 "2": {
1715 "name": "entity.name.type.interface.php"
1716 },
1717 "3": {
1718 "name": "storage.modifier.extends.php"
1719 }
1720 },
1721 "end": "(?i)((?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\\s*(?:(?={)|$)",
1722 "endCaptures": {
1723 "1": {
1724 "patterns": [
1725 {
1726 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
1727 "name": "entity.other.inherited-class.php"
1728 },
1729 {
1730 "match": ",",
1731 "name": "punctuation.separator.classes.php"
1732 }
1733 ]
1734 },
1735 "2": {
1736 "name": "entity.other.inherited-class.php"
1737 }
1738 },
1739 "name": "meta.interface.php",
1740 "patterns": [
1741 {
1742 "include": "#namespace"
1743 }
1744 ]
1745 },
1746 {
1747 "begin": "(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",
1748 "beginCaptures": {
1749 "1": {
1750 "name": "storage.type.trait.php"
1751 },
1752 "2": {
1753 "name": "entity.name.type.trait.php"
1754 }
1755 },
1756 "end": "(?={)",
1757 "name": "meta.trait.php",
1758 "patterns": [
1759 {
1760 "include": "#comments"
1761 }
1762 ]
1763 },
1764 {
1765 "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{ff}\\\\]+)(?=\\s*;)",
1766 "name": "meta.namespace.php",
1767 "captures": {
1768 "1": {
1769 "name": "keyword.other.namespace.php"
1770 },
1771 "2": {
1772 "name": "entity.name.type.namespace.php",
1773 "patterns": [
1774 {
1775 "match": "\\\\",
1776 "name": "punctuation.separator.inheritance.php"
1777 }
1778 ]
1779 }
1780 }
1781 },
1782 {
1783 "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",
1784 "beginCaptures": {
1785 "1": {
1786 "name": "keyword.other.namespace.php"
1787 }
1788 },
1789 "end": "(?<=})|(?=\\?>)",
1790 "name": "meta.namespace.php",
1791 "patterns": [
1792 {
1793 "include": "#comments"
1794 },
1795 {
1796 "match": "(?i)[a-z0-9_\\x{7f}-\\x{ff}\\\\]+",
1797 "name": "entity.name.type.namespace.php",
1798 "captures": {
1799 "0": {
1800 "patterns": [
1801 {
1802 "match": "\\\\",
1803 "name": "punctuation.separator.inheritance.php"
1804 }
1805 ]
1806 }
1807 }
1808 },
1809 {
1810 "begin": "{",
1811 "beginCaptures": {
1812 "0": {
1813 "name": "punctuation.definition.namespace.begin.bracket.curly.php"
1814 }
1815 },
1816 "end": "}|(?=\\?>)",
1817 "endCaptures": {
1818 "0": {
1819 "name": "punctuation.definition.namespace.end.bracket.curly.php"
1820 }
1821 },
1822 "patterns": [
1823 {
1824 "include": "#language"
1825 }
1826 ]
1827 },
1828 {
1829 "match": "[^\\s]+",
1830 "name": "invalid.illegal.identifier.php"
1831 }
1832 ]
1833 },
1834 {
1835 "match": "\\s+(?=use\\b)"
1836 },
1837 {
1838 "begin": "(?i)\\buse\\b",
1839 "beginCaptures": {
1840 "0": {
1841 "name": "keyword.other.use.php"
1842 }
1843 },
1844 "end": "(?<=})|(?=;)",
1845 "name": "meta.use.php",
1846 "patterns": [
1847 {
1848 "match": "\\b(const|function)\\b",
1849 "name": "storage.type.${1:/downcase}.php"
1850 },
1851 {
1852 "begin": "{",
1853 "beginCaptures": {
1854 "0": {
1855 "name": "punctuation.definition.use.begin.bracket.curly.php"
1856 }
1857 },
1858 "end": "}",
1859 "endCaptures": {
1860 "0": {
1861 "name": "punctuation.definition.use.end.bracket.curly.php"
1862 }
1863 },
1864 "patterns": [
1865 {
1866 "include": "#scope-resolution"
1867 },
1868 {
1869 "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b",
1870 "captures": {
1871 "1": {
1872 "name": "keyword.other.use-as.php"
1873 },
1874 "2": {
1875 "name": "storage.modifier.php"
1876 },
1877 "3": {
1878 "name": "entity.other.alias.php"
1879 }
1880 }
1881 },
1882 {
1883 "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b",
1884 "captures": {
1885 "1": {
1886 "name": "keyword.other.use-as.php"
1887 },
1888 "2": {
1889 "patterns": [
1890 {
1891 "match": "^(?:final|abstract|public|private|protected|static)$",
1892 "name": "storage.modifier.php"
1893 },
1894 {
1895 "match": ".+",
1896 "name": "entity.other.alias.php"
1897 }
1898 ]
1899 }
1900 }
1901 },
1902 {
1903 "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",
1904 "captures": {
1905 "1": {
1906 "name": "keyword.other.use-insteadof.php"
1907 },
1908 "2": {
1909 "name": "support.class.php"
1910 }
1911 }
1912 },
1913 {
1914 "match": ";",
1915 "name": "punctuation.terminator.expression.php"
1916 },
1917 {
1918 "include": "#use-inner"
1919 }
1920 ]
1921 },
1922 {
1923 "include": "#use-inner"
1924 }
1925 ]
1926 },
1927 {
1928 "begin": "(?i)^\\s*(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",
1929 "beginCaptures": {
1930 "1": {
1931 "name": "storage.modifier.${1:/downcase}.php"
1932 },
1933 "2": {
1934 "name": "storage.type.class.php"
1935 },
1936 "3": {
1937 "name": "entity.name.type.class.php"
1938 }
1939 },
1940 "end": "}|(?=\\?>)",
1941 "endCaptures": {
1942 "0": {
1943 "name": "punctuation.definition.class.end.bracket.curly.php"
1944 }
1945 },
1946 "name": "meta.class.php",
1947 "patterns": [
1948 {
1949 "include": "#comments"
1950 },
1951 {
1952 "begin": "(?i)(extends)\\s+",
1953 "beginCaptures": {
1954 "1": {
1955 "name": "storage.modifier.extends.php"
1956 }
1957 },
1958 "contentName": "meta.other.inherited-class.php",
1959 "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",
1960 "patterns": [
1961 {
1962 "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",
1963 "end": "(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",
1964 "endCaptures": {
1965 "1": {
1966 "name": "entity.other.inherited-class.php"
1967 }
1968 },
1969 "patterns": [
1970 {
1971 "include": "#namespace"
1972 }
1973 ]
1974 },
1975 {
1976 "include": "#class-builtin"
1977 },
1978 {
1979 "include": "#namespace"
1980 },
1981 {
1982 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
1983 "name": "entity.other.inherited-class.php"
1984 }
1985 ]
1986 },
1987 {
1988 "begin": "(?i)(implements)\\s+",
1989 "beginCaptures": {
1990 "1": {
1991 "name": "storage.modifier.implements.php"
1992 }
1993 },
1994 "end": "(?i)(?=[;{])",
1995 "patterns": [
1996 {
1997 "include": "#comments"
1998 },
1999 {
2000 "begin": "(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+)",
2001 "contentName": "meta.other.inherited-class.php",
2002 "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\\\s]))\\s*)",
2003 "patterns": [
2004 {
2005 "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",
2006 "end": "(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",
2007 "endCaptures": {
2008 "1": {
2009 "name": "entity.other.inherited-class.php"
2010 }
2011 },
2012 "patterns": [
2013 {
2014 "include": "#namespace"
2015 }
2016 ]
2017 },
2018 {
2019 "include": "#class-builtin"
2020 },
2021 {
2022 "include": "#namespace"
2023 },
2024 {
2025 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
2026 "name": "entity.other.inherited-class.php"
2027 }
2028 ]
2029 }
2030 ]
2031 },
2032 {
2033 "begin": "{",
2034 "beginCaptures": {
2035 "0": {
2036 "name": "punctuation.definition.class.begin.bracket.curly.php"
2037 }
2038 },
2039 "end": "(?=}|\\?>)",
2040 "contentName": "meta.class.body.php",
2041 "patterns": [
2042 {
2043 "include": "#language"
2044 }
2045 ]
2046 }
2047 ]
2048 },
2049 {
2050 "include": "#switch_statement"
2051 },
2052 {
2053 "match": "(?x)\n\\s*\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",
2054 "captures": {
2055 "1": {
2056 "name": "keyword.control.${1:/downcase}.php"
2057 }
2058 }
2059 },
2060 {
2061 "begin": "(?i)\\b((?:require|include)(?:_once)?)\\s+",
2062 "beginCaptures": {
2063 "1": {
2064 "name": "keyword.control.import.include.php"
2065 }
2066 },
2067 "end": "(?=\\s|;|$|\\?>)",
2068 "name": "meta.include.php",
2069 "patterns": [
2070 {
2071 "include": "#language"
2072 }
2073 ]
2074 },
2075 {
2076 "begin": "\\b(catch)\\s*(\\()",
2077 "beginCaptures": {
2078 "1": {
2079 "name": "keyword.control.exception.catch.php"
2080 },
2081 "2": {
2082 "name": "punctuation.definition.parameters.begin.bracket.round.php"
2083 }
2084 },
2085 "end": "\\)",
2086 "endCaptures": {
2087 "0": {
2088 "name": "punctuation.definition.parameters.end.bracket.round.php"
2089 }
2090 },
2091 "name": "meta.catch.php",
2092 "patterns": [
2093 {
2094 "include": "#namespace"
2095 },
2096 {
2097 "match": "(?xi)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable",
2098 "captures": {
2099 "1": {
2100 "name": "support.class.exception.php"
2101 },
2102 "2": {
2103 "patterns": [
2104 {
2105 "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
2106 "name": "support.class.exception.php"
2107 },
2108 {
2109 "match": "\\|",
2110 "name": "punctuation.separator.delimiter.php"
2111 }
2112 ]
2113 },
2114 "3": {
2115 "name": "variable.other.php"
2116 },
2117 "4": {
2118 "name": "punctuation.definition.variable.php"
2119 }
2120 }
2121 }
2122 ]
2123 },
2124 {
2125 "match": "\\b(catch|try|throw|exception|finally)\\b",
2126 "name": "keyword.control.exception.php"
2127 },
2128 {
2129 "begin": "(?i)\\b(function)\\s*(?=\\()",
2130 "beginCaptures": {
2131 "1": {
2132 "name": "storage.type.function.php"
2133 }
2134 },
2135 "end": "(?={)",
2136 "name": "meta.function.closure.php",
2137 "patterns": [
2138 {
2139 "begin": "\\(",
2140 "beginCaptures": {
2141 "0": {
2142 "name": "punctuation.definition.parameters.begin.bracket.round.php"
2143 }
2144 },
2145 "contentName": "meta.function.parameters.php",
2146 "end": "\\)",
2147 "endCaptures": {
2148 "0": {
2149 "name": "punctuation.definition.parameters.end.bracket.round.php"
2150 }
2151 },
2152 "patterns": [
2153 {
2154 "include": "#function-parameters"
2155 }
2156 ]
2157 },
2158 {
2159 "begin": "(?i)(use)\\s*(\\()",
2160 "beginCaptures": {
2161 "1": {
2162 "name": "keyword.other.function.use.php"
2163 },
2164 "2": {
2165 "name": "punctuation.definition.parameters.begin.bracket.round.php"
2166 }
2167 },
2168 "end": "\\)",
2169 "endCaptures": {
2170 "0": {
2171 "name": "punctuation.definition.parameters.end.bracket.round.php"
2172 }
2173 },
2174 "patterns": [
2175 {
2176 "captures": {
2177 "1": {
2178 "name": "variable.other.php"
2179 },
2180 "2": {
2181 "name": "storage.modifier.reference.php"
2182 },
2183 "3": {
2184 "name": "punctuation.definition.variable.php"
2185 }
2186 },
2187 "match": "(?i)((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",
2188 "name": "meta.function.closure.use.php"
2189 }
2190 ]
2191 }
2192 ]
2193 },
2194 {
2195 "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))\n |([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)\n\\s*(\\()",
2196 "beginCaptures": {
2197 "1": {
2198 "patterns": [
2199 {
2200 "match": "final|abstract|public|private|protected|static",
2201 "name": "storage.modifier.php"
2202 }
2203 ]
2204 },
2205 "2": {
2206 "name": "storage.type.function.php"
2207 },
2208 "3": {
2209 "name": "support.function.magic.php"
2210 },
2211 "4": {
2212 "name": "entity.name.function.php"
2213 },
2214 "5": {
2215 "name": "punctuation.definition.parameters.begin.bracket.round.php"
2216 }
2217 },
2218 "contentName": "meta.function.parameters.php",
2219 "end": "(\\))(?:\\s*(:)\\s*([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))?",
2220 "endCaptures": {
2221 "1": {
2222 "name": "punctuation.definition.parameters.end.bracket.round.php"
2223 },
2224 "2": {
2225 "name": "keyword.operator.return-value.php"
2226 },
2227 "3": {
2228 "name": "storage.type.php"
2229 }
2230 },
2231 "name": "meta.function.php",
2232 "patterns": [
2233 {
2234 "include": "#function-parameters"
2235 }
2236 ]
2237 },
2238 {
2239 "include": "#invoke-call"
2240 },
2241 {
2242 "include": "#scope-resolution"
2243 },
2244 {
2245 "include": "#variables"
2246 },
2247 {
2248 "include": "#strings"
2249 },
2250 {
2251 "captures": {
2252 "1": {
2253 "name": "support.function.construct.php"
2254 },
2255 "2": {
2256 "name": "punctuation.definition.array.begin.bracket.round.php"
2257 },
2258 "3": {
2259 "name": "punctuation.definition.array.end.bracket.round.php"
2260 }
2261 },
2262 "match": "(array)(\\()(\\))",
2263 "name": "meta.array.empty.php"
2264 },
2265 {
2266 "begin": "(array)(\\()",
2267 "beginCaptures": {
2268 "1": {
2269 "name": "support.function.construct.php"
2270 },
2271 "2": {
2272 "name": "punctuation.definition.array.begin.bracket.round.php"
2273 }
2274 },
2275 "end": "\\)|(?=\\?>)",
2276 "endCaptures": {
2277 "0": {
2278 "name": "punctuation.definition.array.end.bracket.round.php"
2279 }
2280 },
2281 "name": "meta.array.php",
2282 "patterns": [
2283 {
2284 "include": "#language"
2285 }
2286 ]
2287 },
2288 {
2289 "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))",
2290 "captures": {
2291 "1": {
2292 "name": "punctuation.definition.storage-type.begin.bracket.round.php"
2293 },
2294 "2": {
2295 "name": "storage.type.php"
2296 },
2297 "3": {
2298 "name": "punctuation.definition.storage-type.end.bracket.round.php"
2299 }
2300 }
2301 },
2302 {
2303 "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\b",
2304 "name": "storage.type.php"
2305 },
2306 {
2307 "match": "(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b",
2308 "name": "storage.modifier.php"
2309 },
2310 {
2311 "include": "#object"
2312 },
2313 {
2314 "match": ";",
2315 "name": "punctuation.terminator.expression.php"
2316 },
2317 {
2318 "match": ":",
2319 "name": "punctuation.terminator.statement.php"
2320 },
2321 {
2322 "include": "#heredoc"
2323 },
2324 {
2325 "include": "#numbers"
2326 },
2327 {
2328 "match": "(?i)\\bclone\\b",
2329 "name": "keyword.other.clone.php"
2330 },
2331 {
2332 "match": "\\.=?",
2333 "name": "keyword.operator.string.php"
2334 },
2335 {
2336 "match": "=>",
2337 "name": "keyword.operator.key.php"
2338 },
2339 {
2340 "captures": {
2341 "1": {
2342 "name": "keyword.operator.assignment.php"
2343 },
2344 "2": {
2345 "name": "storage.modifier.reference.php"
2346 },
2347 "3": {
2348 "name": "storage.modifier.reference.php"
2349 }
2350 },
2351 "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])"
2352 },
2353 {
2354 "match": "@",
2355 "name": "keyword.operator.error-control.php"
2356 },
2357 {
2358 "match": "===|==|!==|!=|<>",
2359 "name": "keyword.operator.comparison.php"
2360 },
2361 {
2362 "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=",
2363 "name": "keyword.operator.assignment.php"
2364 },
2365 {
2366 "match": "<=>|<=|>=|<|>",
2367 "name": "keyword.operator.comparison.php"
2368 },
2369 {
2370 "match": "\\-\\-|\\+\\+",
2371 "name": "keyword.operator.increment-decrement.php"
2372 },
2373 {
2374 "match": "\\-|\\+|\\*|/|%",
2375 "name": "keyword.operator.arithmetic.php"
2376 },
2377 {
2378 "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",
2379 "name": "keyword.operator.logical.php"
2380 },
2381 {
2382 "include": "#function-call"
2383 },
2384 {
2385 "match": "<<|>>|~|\\^|&|\\|",
2386 "name": "keyword.operator.bitwise.php"
2387 },
2388 {
2389 "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",
2390 "beginCaptures": {
2391 "1": {
2392 "name": "keyword.operator.type.php"
2393 }
2394 },
2395 "end": "(?=[^\\\\$a-z0-9_\\x{7f}-\\x{ff}])",
2396 "patterns": [
2397 {
2398 "include": "#class-name"
2399 },
2400 {
2401 "include": "#variable-name"
2402 }
2403 ]
2404 },
2405 {
2406 "include": "#instantiation"
2407 },
2408 {
2409 "captures": {
2410 "1": {
2411 "name": "keyword.control.goto.php"
2412 },
2413 "2": {
2414 "name": "support.other.php"
2415 }
2416 },
2417 "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"
2418 },
2419 {
2420 "captures": {
2421 "1": {
2422 "name": "entity.name.goto-label.php"
2423 }
2424 },
2425 "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*:(?!:)"
2426 },
2427 {
2428 "include": "#string-backtick"
2429 },
2430 {
2431 "begin": "{",
2432 "beginCaptures": {
2433 "0": {
2434 "name": "punctuation.definition.begin.bracket.curly.php"
2435 }
2436 },
2437 "end": "}|(?=\\?>)",
2438 "endCaptures": {
2439 "0": {
2440 "name": "punctuation.definition.end.bracket.curly.php"
2441 }
2442 },
2443 "patterns": [
2444 {
2445 "include": "#language"
2446 }
2447 ]
2448 },
2449 {
2450 "begin": "\\[",
2451 "beginCaptures": {
2452 "0": {
2453 "name": "punctuation.section.array.begin.php"
2454 }
2455 },
2456 "end": "\\]|(?=\\?>)",
2457 "endCaptures": {
2458 "0": {
2459 "name": "punctuation.section.array.end.php"
2460 }
2461 },
2462 "patterns": [
2463 {
2464 "include": "#language"
2465 }
2466 ]
2467 },
2468 {
2469 "begin": "\\(",
2470 "beginCaptures": {
2471 "0": {
2472 "name": "punctuation.definition.begin.bracket.round.php"
2473 }
2474 },
2475 "end": "\\)|(?=\\?>)",
2476 "endCaptures": {
2477 "0": {
2478 "name": "punctuation.definition.end.bracket.round.php"
2479 }
2480 },
2481 "patterns": [
2482 {
2483 "include": "#language"
2484 }
2485 ]
2486 },
2487 {
2488 "include": "#constants"
2489 },
2490 {
2491 "match": ",",
2492 "name": "punctuation.separator.delimiter.php"
2493 }
2494 ]
2495 },
2496 "namespace": {
2497 "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(\\\\)(?=.*?[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",
2498 "beginCaptures": {
2499 "1": {
2500 "name": "variable.language.namespace.php"
2501 },
2502 "2": {
2503 "name": "punctuation.separator.inheritance.php"
2504 }
2505 },
2506 "end": "(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}]*[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",
2507 "name": "support.other.namespace.php",
2508 "patterns": [
2509 {
2510 "match": "\\\\",
2511 "name": "punctuation.separator.inheritance.php"
2512 }
2513 ]
2514 },
2515 "numbers": {
2516 "patterns": [
2517 {
2518 "match": "0[xX][0-9a-fA-F]+",
2519 "name": "constant.numeric.hex.php"
2520 },
2521 {
2522 "match": "0[bB][01]+",
2523 "name": "constant.numeric.binary.php"
2524 },
2525 {
2526 "match": "0[0-7]+",
2527 "name": "constant.numeric.octal.php"
2528 },
2529 {
2530 "match": "(?x)\n(?:\n [0-9]*(\\.)[0-9]+(?:[eE][+-]?[0-9]+)?|\n [0-9]+(\\.)[0-9]*(?:[eE][+-]?[0-9]+)?|\n [0-9]+[eE][+-]?[0-9]+\n)",
2531 "name": "constant.numeric.decimal.php",
2532 "captures": {
2533 "1": {
2534 "name": "punctuation.separator.decimal.period.php"
2535 },
2536 "2": {
2537 "name": "punctuation.separator.decimal.period.php"
2538 }
2539 }
2540 },
2541 {
2542 "match": "0|[1-9][0-9]*",
2543 "name": "constant.numeric.decimal.php"
2544 }
2545 ]
2546 },
2547 "object": {
2548 "patterns": [
2549 {
2550 "begin": "(->)(\\$?{)",
2551 "beginCaptures": {
2552 "1": {
2553 "name": "keyword.operator.class.php"
2554 },
2555 "2": {
2556 "name": "punctuation.definition.variable.php"
2557 }
2558 },
2559 "end": "}",
2560 "endCaptures": {
2561 "0": {
2562 "name": "punctuation.definition.variable.php"
2563 }
2564 },
2565 "patterns": [
2566 {
2567 "include": "#language"
2568 }
2569 ]
2570 },
2571 {
2572 "begin": "(?i)(->)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",
2573 "beginCaptures": {
2574 "1": {
2575 "name": "keyword.operator.class.php"
2576 },
2577 "2": {
2578 "name": "entity.name.function.php"
2579 },
2580 "3": {
2581 "name": "punctuation.definition.arguments.begin.bracket.round.php"
2582 }
2583 },
2584 "end": "\\)|(?=\\?>)",
2585 "endCaptures": {
2586 "0": {
2587 "name": "punctuation.definition.arguments.end.bracket.round.php"
2588 }
2589 },
2590 "name": "meta.method-call.php",
2591 "patterns": [
2592 {
2593 "include": "#language"
2594 }
2595 ]
2596 },
2597 {
2598 "captures": {
2599 "1": {
2600 "name": "keyword.operator.class.php"
2601 },
2602 "2": {
2603 "name": "variable.other.property.php"
2604 },
2605 "3": {
2606 "name": "punctuation.definition.variable.php"
2607 }
2608 },
2609 "match": "(?i)(->)((\\$+)?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?"
2610 }
2611 ]
2612 },
2613 "parameter-default-types": {
2614 "patterns": [
2615 {
2616 "include": "#strings"
2617 },
2618 {
2619 "include": "#numbers"
2620 },
2621 {
2622 "include": "#string-backtick"
2623 },
2624 {
2625 "include": "#variables"
2626 },
2627 {
2628 "match": "=>",
2629 "name": "keyword.operator.key.php"
2630 },
2631 {
2632 "match": "=",
2633 "name": "keyword.operator.assignment.php"
2634 },
2635 {
2636 "match": "&(?=\\s*\\$)",
2637 "name": "storage.modifier.reference.php"
2638 },
2639 {
2640 "begin": "(array)\\s*(\\()",
2641 "beginCaptures": {
2642 "1": {
2643 "name": "support.function.construct.php"
2644 },
2645 "2": {
2646 "name": "punctuation.definition.array.begin.bracket.round.php"
2647 }
2648 },
2649 "end": "\\)",
2650 "endCaptures": {
2651 "0": {
2652 "name": "punctuation.definition.array.end.bracket.round.php"
2653 }
2654 },
2655 "name": "meta.array.php",
2656 "patterns": [
2657 {
2658 "include": "#parameter-default-types"
2659 }
2660 ]
2661 },
2662 {
2663 "include": "#instantiation"
2664 },
2665 {
2666 "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)",
2667 "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?",
2668 "endCaptures": {
2669 "1": {
2670 "name": "keyword.operator.class.php"
2671 },
2672 "2": {
2673 "name": "constant.other.class.php"
2674 }
2675 },
2676 "patterns": [
2677 {
2678 "include": "#class-name"
2679 }
2680 ]
2681 },
2682 {
2683 "include": "#constants"
2684 }
2685 ]
2686 },
2687 "php_doc": {
2688 "patterns": [
2689 {
2690 "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",
2691 "name": "invalid.illegal.missing-asterisk.phpdoc.php"
2692 },
2693 {
2694 "captures": {
2695 "1": {
2696 "name": "keyword.other.phpdoc.php"
2697 },
2698 "3": {
2699 "name": "storage.modifier.php"
2700 },
2701 "4": {
2702 "name": "invalid.illegal.wrong-access-type.phpdoc.php"
2703 }
2704 },
2705 "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"
2706 },
2707 {
2708 "captures": {
2709 "1": {
2710 "name": "keyword.other.phpdoc.php"
2711 },
2712 "2": {
2713 "name": "markup.underline.link.php"
2714 }
2715 },
2716 "match": "(@xlink)\\s+(.+)\\s*$"
2717 },
2718 {
2719 "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{ff}\\\\]|\\()",
2720 "beginCaptures": {
2721 "1": {
2722 "name": "keyword.other.phpdoc.php"
2723 }
2724 },
2725 "end": "(?=\\s|\\*/)",
2726 "contentName": "meta.other.type.phpdoc.php",
2727 "patterns": [
2728 {
2729 "include": "#php_doc_types_array_multiple"
2730 },
2731 {
2732 "include": "#php_doc_types_array_single"
2733 },
2734 {
2735 "include": "#php_doc_types"
2736 }
2737 ]
2738 },
2739 {
2740 "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",
2741 "name": "keyword.other.phpdoc.php"
2742 },
2743 {
2744 "captures": {
2745 "1": {
2746 "name": "keyword.other.phpdoc.php"
2747 }
2748 },
2749 "match": "{(@(link|inherit[Dd]oc)).+?}",
2750 "name": "meta.tag.inline.phpdoc.php"
2751 }
2752 ]
2753 },
2754 "php_doc_types": {
2755 "match": "(?i)[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*(\\|[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)*",
2756 "captures": {
2757 "0": {
2758 "patterns": [
2759 {
2760 "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self)\\b",
2761 "name": "keyword.other.type.php"
2762 },
2763 {
2764 "include": "#class-name"
2765 },
2766 {
2767 "match": "\\|",
2768 "name": "punctuation.separator.delimiter.php"
2769 }
2770 ]
2771 }
2772 }
2773 },
2774 "php_doc_types_array_multiple": {
2775 "begin": "\\(",
2776 "beginCaptures": {
2777 "0": {
2778 "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php"
2779 }
2780 },
2781 "end": "(\\))(\\[\\])|(?=\\*/)",
2782 "endCaptures": {
2783 "1": {
2784 "name": "punctuation.definition.type.end.bracket.round.phpdoc.php"
2785 },
2786 "2": {
2787 "name": "keyword.other.array.phpdoc.php"
2788 }
2789 },
2790 "patterns": [
2791 {
2792 "include": "#php_doc_types_array_multiple"
2793 },
2794 {
2795 "include": "#php_doc_types_array_single"
2796 },
2797 {
2798 "include": "#php_doc_types"
2799 },
2800 {
2801 "match": "\\|",
2802 "name": "punctuation.separator.delimiter.php"
2803 }
2804 ]
2805 },
2806 "php_doc_types_array_single": {
2807 "match": "(?i)([a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)(\\[\\])",
2808 "captures": {
2809 "1": {
2810 "patterns": [
2811 {
2812 "include": "#php_doc_types"
2813 }
2814 ]
2815 },
2816 "2": {
2817 "name": "keyword.other.array.phpdoc.php"
2818 }
2819 }
2820 },
2821 "regex-double-quoted": {
2822 "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")",
2823 "beginCaptures": {
2824 "0": {
2825 "name": "punctuation.definition.string.begin.php"
2826 }
2827 },
2828 "end": "(/)([imsxeADSUXu]*)(\")",
2829 "endCaptures": {
2830 "0": {
2831 "name": "punctuation.definition.string.end.php"
2832 }
2833 },
2834 "name": "string.regexp.double-quoted.php",
2835 "patterns": [
2836 {
2837 "match": "(\\\\){1,2}[.$^\\[\\]{}]",
2838 "name": "constant.character.escape.regex.php"
2839 },
2840 {
2841 "include": "#interpolation"
2842 },
2843 {
2844 "captures": {
2845 "1": {
2846 "name": "punctuation.definition.arbitrary-repetition.php"
2847 },
2848 "3": {
2849 "name": "punctuation.definition.arbitrary-repetition.php"
2850 }
2851 },
2852 "match": "({)\\d+(,\\d+)?(})",
2853 "name": "string.regexp.arbitrary-repetition.php"
2854 },
2855 {
2856 "begin": "\\[(?:\\^?\\])?",
2857 "captures": {
2858 "0": {
2859 "name": "punctuation.definition.character-class.php"
2860 }
2861 },
2862 "end": "\\]",
2863 "name": "string.regexp.character-class.php",
2864 "patterns": [
2865 {
2866 "include": "#interpolation"
2867 }
2868 ]
2869 },
2870 {
2871 "match": "[$^+*]",
2872 "name": "keyword.operator.regexp.php"
2873 }
2874 ]
2875 },
2876 "regex-single-quoted": {
2877 "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",
2878 "beginCaptures": {
2879 "0": {
2880 "name": "punctuation.definition.string.begin.php"
2881 }
2882 },
2883 "end": "(/)([imsxeADSUXu]*)(')",
2884 "endCaptures": {
2885 "0": {
2886 "name": "punctuation.definition.string.end.php"
2887 }
2888 },
2889 "name": "string.regexp.single-quoted.php",
2890 "patterns": [
2891 {
2892 "include": "#single_quote_regex_escape"
2893 },
2894 {
2895 "captures": {
2896 "1": {
2897 "name": "punctuation.definition.arbitrary-repetition.php"
2898 },
2899 "3": {
2900 "name": "punctuation.definition.arbitrary-repetition.php"
2901 }
2902 },
2903 "match": "({)\\d+(,\\d+)?(})",
2904 "name": "string.regexp.arbitrary-repetition.php"
2905 },
2906 {
2907 "begin": "\\[(?:\\^?\\])?",
2908 "captures": {
2909 "0": {
2910 "name": "punctuation.definition.character-class.php"
2911 }
2912 },
2913 "end": "\\]",
2914 "name": "string.regexp.character-class.php"
2915 },
2916 {
2917 "match": "[$^+*]",
2918 "name": "keyword.operator.regexp.php"
2919 }
2920 ]
2921 },
2922 "scope-resolution": {
2923 "patterns": [
2924 {
2925 "match": "(?i)\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*::)",
2926 "captures": {
2927 "1": {
2928 "patterns": [
2929 {
2930 "match": "\\b(self|static|parent)\\b",
2931 "name": "storage.type.php"
2932 },
2933 {
2934 "match": "\\w+",
2935 "name": "entity.name.class.php"
2936 },
2937 {
2938 "include": "#class-name"
2939 },
2940 {
2941 "include": "#variable-name"
2942 }
2943 ]
2944 }
2945 }
2946 },
2947 {
2948 "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",
2949 "beginCaptures": {
2950 "1": {
2951 "name": "keyword.operator.class.php"
2952 },
2953 "2": {
2954 "name": "entity.name.function.php"
2955 },
2956 "3": {
2957 "name": "punctuation.definition.arguments.begin.bracket.round.php"
2958 }
2959 },
2960 "end": "\\)|(?=\\?>)",
2961 "endCaptures": {
2962 "0": {
2963 "name": "punctuation.definition.arguments.end.bracket.round.php"
2964 }
2965 },
2966 "name": "meta.method-call.static.php",
2967 "patterns": [
2968 {
2969 "include": "#language"
2970 }
2971 ]
2972 },
2973 {
2974 "match": "(?i)(::)\\s*(class)\\b",
2975 "captures": {
2976 "1": {
2977 "name": "keyword.operator.class.php"
2978 },
2979 "2": {
2980 "name": "keyword.other.class.php"
2981 }
2982 }
2983 },
2984 {
2985 "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Constant\n)?",
2986 "captures": {
2987 "1": {
2988 "name": "keyword.operator.class.php"
2989 },
2990 "2": {
2991 "name": "variable.other.class.php"
2992 },
2993 "3": {
2994 "name": "punctuation.definition.variable.php"
2995 },
2996 "4": {
2997 "name": "constant.other.class.php"
2998 }
2999 }
3000 }
3001 ]
3002 },
3003 "single_quote_regex_escape": {
3004 "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",
3005 "name": "constant.character.escape.php"
3006 },
3007 "sql-string-double-quoted": {
3008 "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",
3009 "beginCaptures": {
3010 "0": {
3011 "name": "punctuation.definition.string.begin.php"
3012 }
3013 },
3014 "contentName": "source.sql.embedded.php",
3015 "end": "\"",
3016 "endCaptures": {
3017 "0": {
3018 "name": "punctuation.definition.string.end.php"
3019 }
3020 },
3021 "name": "string.quoted.double.sql.php",
3022 "patterns": [
3023 {
3024 "match": "(#)(\\\\\"|[^\"])*(?=\"|$)",
3025 "name": "comment.line.number-sign.sql",
3026 "captures": {
3027 "1": {
3028 "name": "punctuation.definition.comment.sql"
3029 }
3030 }
3031 },
3032 {
3033 "match": "(--)(\\\\\"|[^\"])*(?=\"|$)",
3034 "name": "comment.line.double-dash.sql",
3035 "captures": {
3036 "1": {
3037 "name": "punctuation.definition.comment.sql"
3038 }
3039 }
3040 },
3041 {
3042 "match": "\\\\[\\\\\"`']",
3043 "name": "constant.character.escape.php"
3044 },
3045 {
3046 "match": "'(?=((\\\\')|[^'\"])*(\"|$))",
3047 "name": "string.quoted.single.unclosed.sql"
3048 },
3049 {
3050 "match": "`(?=((\\\\`)|[^`\"])*(\"|$))",
3051 "name": "string.quoted.other.backtick.unclosed.sql"
3052 },
3053 {
3054 "begin": "'",
3055 "end": "'",
3056 "name": "string.quoted.single.sql",
3057 "patterns": [
3058 {
3059 "include": "#interpolation"
3060 }
3061 ]
3062 },
3063 {
3064 "begin": "`",
3065 "end": "`",
3066 "name": "string.quoted.other.backtick.sql",
3067 "patterns": [
3068 {
3069 "include": "#interpolation"
3070 }
3071 ]
3072 },
3073 {
3074 "include": "#interpolation"
3075 },
3076 {
3077 "include": "source.sql"
3078 }
3079 ]
3080 },
3081 "sql-string-single-quoted": {
3082 "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",
3083 "beginCaptures": {
3084 "0": {
3085 "name": "punctuation.definition.string.begin.php"
3086 }
3087 },
3088 "contentName": "source.sql.embedded.php",
3089 "end": "'",
3090 "endCaptures": {
3091 "0": {
3092 "name": "punctuation.definition.string.end.php"
3093 }
3094 },
3095 "name": "string.quoted.single.sql.php",
3096 "patterns": [
3097 {
3098 "match": "(#)(\\\\'|[^'])*(?='|$)",
3099 "name": "comment.line.number-sign.sql",
3100 "captures": {
3101 "1": {
3102 "name": "punctuation.definition.comment.sql"
3103 }
3104 }
3105 },
3106 {
3107 "match": "(--)(\\\\'|[^'])*(?='|$)",
3108 "name": "comment.line.double-dash.sql",
3109 "captures": {
3110 "1": {
3111 "name": "punctuation.definition.comment.sql"
3112 }
3113 }
3114 },
3115 {
3116 "match": "\\\\[\\\\'`\"]",
3117 "name": "constant.character.escape.php"
3118 },
3119 {
3120 "match": "`(?=((\\\\`)|[^`'])*('|$))",
3121 "name": "string.quoted.other.backtick.unclosed.sql"
3122 },
3123 {
3124 "match": "\"(?=((\\\\\")|[^\"'])*('|$))",
3125 "name": "string.quoted.double.unclosed.sql"
3126 },
3127 {
3128 "include": "source.sql"
3129 }
3130 ]
3131 },
3132 "string-backtick": {
3133 "begin": "`",
3134 "beginCaptures": {
3135 "0": {
3136 "name": "punctuation.definition.string.begin.php"
3137 }
3138 },
3139 "end": "`",
3140 "endCaptures": {
3141 "0": {
3142 "name": "punctuation.definition.string.end.php"
3143 }
3144 },
3145 "name": "string.interpolated.php",
3146 "patterns": [
3147 {
3148 "match": "\\\\.",
3149 "name": "constant.character.escape.php"
3150 },
3151 {
3152 "include": "#interpolation"
3153 }
3154 ]
3155 },
3156 "string-double-quoted": {
3157 "begin": "\"",
3158 "beginCaptures": {
3159 "0": {
3160 "name": "punctuation.definition.string.begin.php"
3161 }
3162 },
3163 "end": "\"",
3164 "endCaptures": {
3165 "0": {
3166 "name": "punctuation.definition.string.end.php"
3167 }
3168 },
3169 "name": "string.quoted.double.php",
3170 "patterns": [
3171 {
3172 "include": "#interpolation"
3173 }
3174 ]
3175 },
3176 "string-single-quoted": {
3177 "begin": "'",
3178 "beginCaptures": {
3179 "0": {
3180 "name": "punctuation.definition.string.begin.php"
3181 }
3182 },
3183 "end": "'",
3184 "endCaptures": {
3185 "0": {
3186 "name": "punctuation.definition.string.end.php"
3187 }
3188 },
3189 "name": "string.quoted.single.php",
3190 "patterns": [
3191 {
3192 "match": "\\\\[\\\\']",
3193 "name": "constant.character.escape.php"
3194 }
3195 ]
3196 },
3197 "strings": {
3198 "patterns": [
3199 {
3200 "include": "#regex-double-quoted"
3201 },
3202 {
3203 "include": "#sql-string-double-quoted"
3204 },
3205 {
3206 "include": "#string-double-quoted"
3207 },
3208 {
3209 "include": "#regex-single-quoted"
3210 },
3211 {
3212 "include": "#sql-string-single-quoted"
3213 },
3214 {
3215 "include": "#string-single-quoted"
3216 }
3217 ]
3218 },
3219 "support": {
3220 "patterns": [
3221 {
3222 "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",
3223 "name": "support.function.apc.php"
3224 },
3225 {
3226 "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",
3227 "name": "support.function.array.php"
3228 },
3229 {
3230 "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",
3231 "name": "support.function.basic_functions.php"
3232 },
3233 {
3234 "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",
3235 "name": "support.function.bcmath.php"
3236 },
3237 {
3238 "match": "(?i)\\bblenc_encrypt\\b",
3239 "name": "support.function.blenc.php"
3240 },
3241 {
3242 "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",
3243 "name": "support.function.bz2.php"
3244 },
3245 {
3246 "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",
3247 "name": "support.function.calendar.php"
3248 },
3249 {
3250 "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",
3251 "name": "support.function.classobj.php"
3252 },
3253 {
3254 "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",
3255 "name": "support.function.com.php"
3256 },
3257 {
3258 "begin": "(?i)\\b(isset|unset|eval|empty|list)\\b",
3259 "name": "support.function.construct.php"
3260 },
3261 {
3262 "match": "(?i)\\b(print|echo)\\b",
3263 "name": "support.function.construct.output.php"
3264 },
3265 {
3266 "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",
3267 "name": "support.function.ctype.php"
3268 },
3269 {
3270 "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",
3271 "name": "support.function.curl.php"
3272 },
3273 {
3274 "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",
3275 "name": "support.function.datetime.php"
3276 },
3277 {
3278 "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",
3279 "name": "support.function.dba.php"
3280 },
3281 {
3282 "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",
3283 "name": "support.function.dbx.php"
3284 },
3285 {
3286 "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",
3287 "name": "support.function.dir.php"
3288 },
3289 {
3290 "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",
3291 "name": "support.function.eio.php"
3292 },
3293 {
3294 "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",
3295 "name": "support.function.enchant.php"
3296 },
3297 {
3298 "match": "(?i)\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\b",
3299 "name": "support.function.ereg.php"
3300 },
3301 {
3302 "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",
3303 "name": "support.function.errorfunc.php"
3304 },
3305 {
3306 "match": "(?i)\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\b",
3307 "name": "support.function.exec.php"
3308 },
3309 {
3310 "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",
3311 "name": "support.function.exif.php"
3312 },
3313 {
3314 "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",
3315 "name": "support.function.fann.php"
3316 },
3317 {
3318 "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",
3319 "name": "support.function.file.php"
3320 },
3321 {
3322 "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",
3323 "name": "support.function.fileinfo.php"
3324 },
3325 {
3326 "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",
3327 "name": "support.function.filter.php"
3328 },
3329 {
3330 "match": "(?i)\\bfastcgi_finish_request\\b",
3331 "name": "support.function.fpm.php"
3332 },
3333 {
3334 "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",
3335 "name": "support.function.funchand.php"
3336 },
3337 {
3338 "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",
3339 "name": "support.function.gettext.php"
3340 },
3341 {
3342 "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",
3343 "name": "support.function.gmp.php"
3344 },
3345 {
3346 "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",
3347 "name": "support.function.hash.php"
3348 },
3349 {
3350 "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",
3351 "name": "support.function.http.php"
3352 },
3353 {
3354 "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",
3355 "name": "support.function.iconv.php"
3356 },
3357 {
3358 "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",
3359 "name": "support.function.iisfunc.php"
3360 },
3361 {
3362 "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",
3363 "name": "support.function.image.php"
3364 },
3365 {
3366 "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",
3367 "name": "support.function.info.php"
3368 },
3369 {
3370 "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",
3371 "name": "support.function.interbase.php"
3372 },
3373 {
3374 "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",
3375 "name": "support.function.intl.php"
3376 },
3377 {
3378 "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",
3379 "name": "support.function.json.php"
3380 },
3381 {
3382 "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",
3383 "name": "support.function.ldap.php"
3384 },
3385 {
3386 "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",
3387 "name": "support.function.libxml.php"
3388 },
3389 {
3390 "match": "(?i)\\b(ezmlm_hash|mail)\\b",
3391 "name": "support.function.mail.php"
3392 },
3393 {
3394 "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",
3395 "name": "support.function.math.php"
3396 },
3397 {
3398 "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",
3399 "name": "support.function.mbstring.php"
3400 },
3401 {
3402 "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",
3403 "name": "support.function.mcrypt.php"
3404 },
3405 {
3406 "match": "(?i)\\bmemcache_debug\\b",
3407 "name": "support.function.memcache.php"
3408 },
3409 {
3410 "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",
3411 "name": "support.function.mhash.php"
3412 },
3413 {
3414 "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",
3415 "name": "support.function.mongo.php"
3416 },
3417 {
3418 "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",
3419 "name": "support.function.mysql.php"
3420 },
3421 {
3422 "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",
3423 "name": "support.function.mysqli.php"
3424 },
3425 {
3426 "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b",
3427 "name": "support.function.mysqlnd-memcache.php"
3428 },
3429 {
3430 "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",
3431 "name": "support.function.mysqlnd-ms.php"
3432 },
3433 {
3434 "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",
3435 "name": "support.function.mysqlnd-qc.php"
3436 },
3437 {
3438 "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",
3439 "name": "support.function.mysqlnd-uh.php"
3440 },
3441 {
3442 "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",
3443 "name": "support.function.network.php"
3444 },
3445 {
3446 "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",
3447 "name": "support.function.nsapi.php"
3448 },
3449 {
3450 "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",
3451 "name": "support.function.oci8.php"
3452 },
3453 {
3454 "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",
3455 "name": "support.function.opcache.php"
3456 },
3457 {
3458 "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",
3459 "name": "support.function.openssl.php"
3460 },
3461 {
3462 "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",
3463 "name": "support.function.output.php"
3464 },
3465 {
3466 "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",
3467 "name": "support.function.password.php"
3468 },
3469 {
3470 "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",
3471 "name": "support.function.pcntl.php"
3472 },
3473 {
3474 "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",
3475 "name": "support.function.pgsql.php"
3476 },
3477 {
3478 "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",
3479 "name": "support.function.php_apache.php"
3480 },
3481 {
3482 "match": "(?i)\\bdom_import_simplexml\\b",
3483 "name": "support.function.php_dom.php"
3484 },
3485 {
3486 "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",
3487 "name": "support.function.php_ftp.php"
3488 },
3489 {
3490 "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",
3491 "name": "support.function.php_imap.php"
3492 },
3493 {
3494 "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",
3495 "name": "support.function.php_mssql.php"
3496 },
3497 {
3498 "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",
3499 "name": "support.function.php_odbc.php"
3500 },
3501 {
3502 "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",
3503 "name": "support.function.php_pcre.php"
3504 },
3505 {
3506 "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",
3507 "name": "support.function.php_spl.php"
3508 },
3509 {
3510 "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",
3511 "name": "support.function.php_zip.php"
3512 },
3513 {
3514 "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",
3515 "name": "support.function.posix.php"
3516 },
3517 {
3518 "match": "(?i)\\bset(thread|proc)title\\b",
3519 "name": "support.function.proctitle.php"
3520 },
3521 {
3522 "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",
3523 "name": "support.function.pspell.php"
3524 },
3525 {
3526 "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",
3527 "name": "support.function.readline.php"
3528 },
3529 {
3530 "match": "(?i)\\brecode(_(string|file))?\\b",
3531 "name": "support.function.recode.php"
3532 },
3533 {
3534 "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",
3535 "name": "support.function.rrd.php"
3536 },
3537 {
3538 "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",
3539 "name": "support.function.sem.php"
3540 },
3541 {
3542 "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",
3543 "name": "support.function.session.php"
3544 },
3545 {
3546 "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b",
3547 "name": "support.function.shmop.php"
3548 },
3549 {
3550 "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",
3551 "name": "support.function.simplexml.php"
3552 },
3553 {
3554 "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",
3555 "name": "support.function.snmp.php"
3556 },
3557 {
3558 "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",
3559 "name": "support.function.soap.php"
3560 },
3561 {
3562 "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",
3563 "name": "support.function.sockets.php"
3564 },
3565 {
3566 "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",
3567 "name": "support.function.sqlite.php"
3568 },
3569 {
3570 "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",
3571 "name": "support.function.sqlsrv.php"
3572 },
3573 {
3574 "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",
3575 "name": "support.function.stats.php"
3576 },
3577 {
3578 "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",
3579 "name": "support.function.streamsfuncs.php"
3580 },
3581 {
3582 "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",
3583 "name": "support.function.string.php"
3584 },
3585 {
3586 "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",
3587 "name": "support.function.sybase.php"
3588 },
3589 {
3590 "match": "(?i)\\b(taint|is_tainted|untaint)\\b",
3591 "name": "support.function.taint.php"
3592 },
3593 {
3594 "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",
3595 "name": "support.function.tidy.php"
3596 },
3597 {
3598 "match": "(?i)\\btoken_(name|get_all)\\b",
3599 "name": "support.function.tokenizer.php"
3600 },
3601 {
3602 "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",
3603 "name": "support.function.trader.php"
3604 },
3605 {
3606 "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",
3607 "name": "support.function.uopz.php"
3608 },
3609 {
3610 "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",
3611 "name": "support.function.url.php"
3612 },
3613 {
3614 "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",
3615 "name": "support.function.var.php"
3616 },
3617 {
3618 "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",
3619 "name": "support.function.wddx.php"
3620 },
3621 {
3622 "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b",
3623 "name": "support.function.xhprof.php"
3624 },
3625 {
3626 "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",
3627 "name": "support.function.xml.php"
3628 },
3629 {
3630 "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",
3631 "name": "support.function.xmlrpc.php"
3632 },
3633 {
3634 "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",
3635 "name": "support.function.xmlwriter.php"
3636 },
3637 {
3638 "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",
3639 "name": "support.function.zlib.php"
3640 },
3641 {
3642 "match": "(?i)\\bis_int(eger)?\\b",
3643 "name": "support.function.alias.php"
3644 }
3645 ]
3646 },
3647 "switch_statement": {
3648 "patterns": [
3649 {
3650 "match": "\\s+(?=switch\\b)"
3651 },
3652 {
3653 "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",
3654 "beginCaptures": {
3655 "0": {
3656 "name": "keyword.control.switch.php"
3657 }
3658 },
3659 "end": "}|(?=\\?>)",
3660 "endCaptures": {
3661 "0": {
3662 "name": "punctuation.definition.section.switch-block.end.bracket.curly.php"
3663 }
3664 },
3665 "name": "meta.switch-statement.php",
3666 "patterns": [
3667 {
3668 "begin": "\\(",
3669 "beginCaptures": {
3670 "0": {
3671 "name": "punctuation.definition.switch-expression.begin.bracket.round.php"
3672 }
3673 },
3674 "end": "\\)|(?=\\?>)",
3675 "endCaptures": {
3676 "0": {
3677 "name": "punctuation.definition.switch-expression.end.bracket.round.php"
3678 }
3679 },
3680 "patterns": [
3681 {
3682 "include": "#language"
3683 }
3684 ]
3685 },
3686 {
3687 "begin": "{",
3688 "beginCaptures": {
3689 "0": {
3690 "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php"
3691 }
3692 },
3693 "end": "(?=}|\\?>)",
3694 "patterns": [
3695 {
3696 "include": "#language"
3697 }
3698 ]
3699 }
3700 ]
3701 }
3702 ]
3703 },
3704 "use-inner": {
3705 "patterns": [
3706 {
3707 "include": "#comments"
3708 },
3709 {
3710 "begin": "(?i)\\b(as)\\s+",
3711 "beginCaptures": {
3712 "1": {
3713 "name": "keyword.other.use-as.php"
3714 }
3715 },
3716 "end": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",
3717 "endCaptures": {
3718 "0": {
3719 "name": "entity.other.alias.php"
3720 }
3721 }
3722 },
3723 {
3724 "include": "#class-name"
3725 },
3726 {
3727 "match": ",",
3728 "name": "punctuation.separator.delimiter.php"
3729 }
3730 ]
3731 },
3732 "var_basic": {
3733 "patterns": [
3734 {
3735 "captures": {
3736 "1": {
3737 "name": "punctuation.definition.variable.php"
3738 }
3739 },
3740 "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\b",
3741 "name": "variable.other.php"
3742 }
3743 ]
3744 },
3745 "var_global": {
3746 "captures": {
3747 "1": {
3748 "name": "punctuation.definition.variable.php"
3749 }
3750 },
3751 "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",
3752 "name": "variable.other.global.php"
3753 },
3754 "var_global_safer": {
3755 "captures": {
3756 "1": {
3757 "name": "punctuation.definition.variable.php"
3758 }
3759 },
3760 "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",
3761 "name": "variable.other.global.safer.php"
3762 },
3763 "var_language": {
3764 "match": "(\\$)this\\b",
3765 "name": "variable.language.this.php",
3766 "captures": {
3767 "1": {
3768 "name": "punctuation.definition.variable.php"
3769 }
3770 }
3771 },
3772 "variable-name": {
3773 "patterns": [
3774 {
3775 "include": "#var_global"
3776 },
3777 {
3778 "include": "#var_global_safer"
3779 },
3780 {
3781 "captures": {
3782 "1": {
3783 "name": "variable.other.php"
3784 },
3785 "2": {
3786 "name": "punctuation.definition.variable.php"
3787 },
3788 "4": {
3789 "name": "keyword.operator.class.php"
3790 },
3791 "5": {
3792 "name": "variable.other.property.php"
3793 },
3794 "6": {
3795 "name": "punctuation.section.array.begin.php"
3796 },
3797 "7": {
3798 "name": "constant.numeric.index.php"
3799 },
3800 "8": {
3801 "name": "variable.other.index.php"
3802 },
3803 "9": {
3804 "name": "punctuation.definition.variable.php"
3805 },
3806 "10": {
3807 "name": "string.unquoted.index.php"
3808 },
3809 "11": {
3810 "name": "punctuation.section.array.end.php"
3811 }
3812 },
3813 "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))(\\])\n)?"
3814 },
3815 {
3816 "captures": {
3817 "1": {
3818 "name": "variable.other.php"
3819 },
3820 "2": {
3821 "name": "punctuation.definition.variable.php"
3822 },
3823 "4": {
3824 "name": "punctuation.definition.variable.php"
3825 }
3826 },
3827 "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(}))"
3828 }
3829 ]
3830 },
3831 "variables": {
3832 "patterns": [
3833 {
3834 "include": "#var_language"
3835 },
3836 {
3837 "include": "#var_global"
3838 },
3839 {
3840 "include": "#var_global_safer"
3841 },
3842 {
3843 "include": "#var_basic"
3844 },
3845 {
3846 "begin": "\\${(?=.*?})",
3847 "beginCaptures": {
3848 "0": {
3849 "name": "punctuation.definition.variable.php"
3850 }
3851 },
3852 "end": "}",
3853 "endCaptures": {
3854 "0": {
3855 "name": "punctuation.definition.variable.php"
3856 }
3857 },
3858 "patterns": [
3859 {
3860 "include": "#language"
3861 }
3862 ]
3863 }
3864 ]
3865 }
3866 }
3867 }
3868