%YAML 1.2 --- name: PHP Source hidden: true scope: source.php variables: identifier_start: '[[:alpha:]_]' identifier: '\b{{identifier_start}}[[:alnum:]_]*\b' path: '\\?({{identifier}}\\)*{{identifier}}' sql_indicator: \s*(?:SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\b contexts: main: - include: statements statements: - include: class - include: use-statement - match: '(?i)^\s*(interface)\s+({{identifier}})\s*' captures: 1: storage.type.interface.php 2: entity.name.interface.php push: - meta_scope: meta.interface.php - match: \b(extends)\b\s* scope: storage.modifier.extends.php set: - match: '(?={{path}})' set: - meta_scope: meta.path.php - meta_content_scope: entity.other.inherited-class.php - include: identifier-parts - match: '(\\)?({{identifier}})(?!\\)' captures: 1: punctuation.separator.namespace.php - match: '' pop: true - match: '(?=\S)' pop: true - match: '(?=\S)' pop: true - match: '(?i)^\s*(namespace)\b\s*' captures: 1: keyword.other.namespace.php push: - meta_scope: meta.namespace.php meta.path.php - meta_content_scope: entity.name.namespace.php - include: identifier-parts - match: '(\\)?({{identifier}})(?!\\)' captures: 1: punctuation.separator.namespace.php - match: '' pop: true - match: '(?i)^\s*(trait)\s+({{identifier}})\s*' captures: 1: storage.type.trait.php 2: entity.name.trait.php - include: function - match: '^\s*((?!default|else){{identifier}})\s*(:)(?!:)' captures: 1: entity.name.label.php 2: punctuation.separator.php - match: \{ scope: punctuation.section.block.begin.php - match: \} scope: punctuation.section.block.end.php - include: expressions block: - match: '\}' scope: punctuation.section.block.end.php pop: true - match: '\{' scope: punctuation.section.block.begin.php push: block - include: embedded-html - include: statements embedded-html: - match: (\?>)(\s*\n)? scope: meta.embedded.block.php captures: 1: punctuation.section.embedded.end.php 2: meta.html-newline-after-php.php push: - meta_scope: embedding.php text.html.basic - clear_scopes: true - match: <\?(?i:php)? scope: meta.embedded.block.php punctuation.section.embedded.begin.php pop: true - match: '' with_prototype: - include: single-line-php-tag - match: (?=<\?(?i:php)?) pop: true push: scope:text.html.basic single-line-php-tag: - match: (?:<\?=|<\?(?i:php)?(?=.*\?>)) scope: punctuation.section.embedded.begin.php push: - meta_scope: meta.embedded.line.nested.php - meta_content_scope: source.php - match: (\?>)(\s*\n)? captures: 1: punctuation.section.embedded.end.php 2: meta.html-newline-after-php.php pop: true - include: statements expressions: - include: comments - match: (?i)\b((?:require|include)(?:_once)?)\b\s* captures: 1: keyword.control.import.include.php push: - meta_scope: meta.include.php # "\s*\?>" is for fixing one-liner ( https://github.com/sublimehq/Packages/issues/1545 ) - match: (?=;|\)|\]|\s*\?>) pop: true - include: expressions # yield from ( http://php.net/manual/en/language.generators.syntax.php#control-structures.yield.from ) - match: \byield\b scope: keyword.control.php push: - match: \bfrom\b scope: keyword.control.php pop: true - match: (?=\S) pop: true - match: |- \b(?xi: break | case | continue | declare | default | die | do | else | elseif | enddeclare | endfor | endforeach | endif | endswitch | endwhile | exit | for | foreach | if | return | switch | use | while )\b scope: keyword.control.php - match: \b(catch)\b\s*\(\s* captures: 1: keyword.control.exception.catch.php push: - meta_scope: meta.catch.php - include: comments - include: identifier-parts-as-path - match: '(\\)' scope: meta.path.php punctuation.separator.namespace.php - match: '({{identifier}})\s*(\|)?' captures: 1: meta.path.php support.class.exception.php 2: punctuation.separator.catch.php - match: '((\$+){{identifier}})\s*\)' captures: 1: variable.other.php 2: punctuation.definition.variable.php pop: true - match: \b(catch|try|throw|finally)\b scope: keyword.control.exception.php - include: arrow-function - include: closure - include: invoke-call - match: |- (?x)\s*(?= [[:alnum:]_$\\]+(::) (?: ({{identifier}})\s*\( | ((\$+){{identifier}}) | ({{identifier}}) )? ) push: - match: (?=::{{identifier}}\s*\() set: - include: function-call-static - match: '' pop: true - match: |- (?x)(::) (?: (class)\b | ((\$+){{identifier}}) | ({{identifier}}) )? captures: 1: punctuation.accessor.double-colon.php 2: constant.class.php 3: variable.other.class.php 4: punctuation.definition.variable.php 5: constant.other.class.php set: after-identifier - match: (self|static|parent)\b scope: variable.language.php - include: class-name - include: variables - include: variables - include: strings - match: (array)(\()(\)) scope: meta.array.empty.php captures: 1: support.function.construct.php 2: punctuation.section.array.begin.php 3: punctuation.section.array.end.php - match: (array)(\() captures: 1: support.function.construct.php 2: punctuation.section.array.begin.php push: - meta_scope: meta.array.php - match: \) scope: punctuation.section.array.end.php pop: true - include: expressions - match: (?i)\s*\(\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset)\s*\) captures: 1: storage.type.php - match: |- \b(?xi: array | bool | boolean | class | clone | double | float | function | int | integer | interface | object | real | string )\b scope: storage.type.php - match: (?i)\b(parent|self)\b scope: variable.language.php - match: |- \b(?xi: abstract | const | extends | final | global | implements | private | protected | public | static )\b scope: storage.modifier.php - include: object - match: ; scope: punctuation.terminator.expression.php - include: heredoc - include: numbers - match: (\+|-|\*|/|%|&|\||\^|>>|<<|\.|\?\?)= scope: keyword.operator.assignment.augmented.php - match: "=>" scope: keyword.operator.key.php - match: '(?:(\=)(&))|(&(?=[[:alpha:]$_]))' captures: 1: keyword.operator.assignment.php 2: storage.modifier.reference.php 3: storage.modifier.reference.php - match: (@) scope: keyword.operator.error-control.php - match: (\-\-|\+\+) scope: keyword.operator.increment-decrement.php - match: (\-|\+|\*|/|%) scope: keyword.operator.arithmetic.php - match: '&&|\|\|' scope: keyword.operator.logical.php - match: '<<|>>|~|\^|&|\|' scope: keyword.operator.bitwise.php - match: (===|!==|<=>|==|!=|<=|>=|<>|<|>) scope: keyword.operator.comparison.php - match: (?i)(!)|\b(and|or|xor|as)\b scope: keyword.operator.logical.php - include: function-call - match: \.\.\. scope: keyword.operator.spread.php - match: \. scope: keyword.operator.string.php - match: "=" scope: keyword.operator.assignment.php - match: '(?i)\b(instanceof)\s+(?=[[:alpha:]\\$_])' captures: 1: keyword.operator.type.php push: - match: '(?=[^[:alnum:]_\\$])' pop: true - include: class-name - include: variables - include: instantiation - match: '(?i)(goto)\s+({{identifier}})' captures: 1: keyword.control.goto.php 2: support.other.php - include: string-backtick - match: '(\[)\s*(\])' scope: meta.array.empty.php captures: 1: punctuation.section.array.begin.php 2: punctuation.section.array.end.php - match: '\[' scope: punctuation.section.array.begin.php push: - meta_scope: meta.array.php - match: '\]' scope: punctuation.section.array.end.php pop: true - include: expressions - include: constants - match: \( scope: punctuation.section.group.begin.php push: - meta_scope: meta.group.php - match: \) scope: punctuation.section.group.end.php pop: true - include: expressions after-identifier: - include: item-access - match: '(?=\S)' pop: true after-function-call: - include: item-access - match: '(?=\S)' pop: true item-access: - match: '\[' scope: meta.item-access.php punctuation.section.brackets.begin.php push: - meta_content_scope: meta.item-access.arguments.php - match: '\]' scope: meta.item-access.php punctuation.section.brackets.end.php pop: true - include: expressions class-builtin: - match: |- (?xi)(\\)?\b( AMQPConnection | AMQPExchange | AMQPQueue | APCIterator | AppendIterator | ArrayAccess | ArrayIterator | ArrayObject | BadFunctionCallException | BadMethodCallException | CachingIterator | Collator | Countable | DOMAttr | DOMCharacterData | DOMComment | DOMDocument | DOMDocumentFragment | DOMElement | DOMEntityReference | DOMImplementation | DOMNamedNodeMap | DOMNode | DOMNodelist | DOMProcessingInstruction | DOMText | DOMXPath | DateInterval | DatePeriod | DateTime | DateTimeZone | DirectoryIterator | DomAttribute | DomDocument | DomDocumentType | DomElement | DomNode | DomProcessingInstruction | DomXsltStylesheet | DomainException | EmptyIterator | ErrorException | Exception | FilesystemIterator | FilterIterator | GlobIterator | Gmagick | GmagickDraw | GmagickPixel | HaruAnnotation | HaruDestination | HaruDoc | HaruEncoder | HaruFont | HaruImage | HaruOutline | HaruPage | HttpDeflateStream | HttpInflateStream | HttpMessage | HttpQueryString | HttpRequest | HttpRequestPool | HttpResponse | Imagick | ImagickDraw | ImagickPixel | ImagickPixelIterator | InfiniteIterator | IntlDateFormatter | InvalidArgumentException | Iterator | IteratorAggregate | IteratorIterator | JsonException | JsonSerializable | KTaglib_ID3v2_AttachedPictureFrame | KTaglib_ID3v2_Frame | KTaglib_ID3v2_Tag | KTaglib_MPEG_AudioProperties | KTaglib_MPEG_File | KTaglib_Tag | LengthException | LimitIterator | Locale | LogicException | Memcache | Memcached | MessageFormatter | Mongo | MongoBinData | MongoCode | MongoCollection | MongoCursor | MongoDB | MongoDBRef | MongoDate | MongoGridFS | MongoGridFSCursor | MongoGridFSFile | MongoGridfsFile | MongoId | MongoInt32 | MongoInt64 | MongoRegex | MongoTimestamp | MultipleIterator | NoRewindIterator | Normalizer | NumberFormatter | OCI-Collection | OCI-Lob | OutOfBoundsException | OutOfRangeException | OuterIterator | OverflowException | PDO | PDOStatement | ParentIterator | Phar | PharData | PharFileInfo | RRDCreator | RRDGraph | RRDUpdater | RangeException | RecursiveArrayIterator | RecursiveCachingIterator | RecursiveDirectoryIterator | RecursiveFilterIterator | RecursiveIterator | RecursiveIteratorIterator | RecursiveRegexIterator | RecursiveTreeIterator | Reflection | ReflectionClass | ReflectionExtension | ReflectionFunction | ReflectionFunctionAbstract | ReflectionMethod | ReflectionObject | ReflectionParameter | ReflectionProperty | Reflector | RegexIterator | ResourceBundle | RuntimeException | SAMConnection | SAMMessage | SCA | SCA_LocalProxy | SCA_SoapProxy | SDO_DAS_ChangeSummary | SDO_DAS_DataFactory | SDO_DAS_DataObject | SDO_DAS_Relational | SDO_DAS_Setting | SDO_DAS_XML | SDO_DAS_XML_Document | SDO_DataFactory | SDO_DataObject | SDO_Exception | SDO_List | SDO_Model_Property | SDO_Model_ReflectionDataObject | SDO_Model_Type | SDO_Sequence | SNMP | SQLite3 | SQLite3Result | SQLite3Stmt | SQLiteDatabase | SQLiteResult | SQLiteUnbuffered | SVM | SVMModel | SeekableIterator | Serializable | SimpleXMLElement | SimpleXMLIterator | SoapClient | SoapFault | SoapHeader | SoapParam | SoapServer | SoapVar | SphinxClient | SplBool | SplDoublyLinkedList | SplEnum | SplFileInfo | SplFileObject | SplFixedArray | SplFloat | SplHeap | SplInt | SplMaxHeap | SplMinHeap | SplObjectStorage | SplObserver | SplPriorityQueue | SplQueue | SplStack | SplString | SplSubject | SplTempFileObject | Swish | SwishResult | SwishResults | SwishSearch | TokyoTyrant | TokyoTyrantQuery | TokyoTyrantTable | Transliterator | Traversable | UnderflowException | UnexpectedValueException | V8Js | V8JsException | XMLReader | XMLWriter | XSLTProcessor | ZipArchive | finfo | mysqli | mysqli_driver | mysqli_result | mysqli_stmt | mysqli_warning | stdClass | streamWrapper | tidy | tidyNode )\b captures: 1: punctuation.separator.namespace.php 2: support.class.builtin.php use-statement: - match: (?i)\b(use)\b\s* captures: 1: keyword.other.use.php push: - meta_scope: meta.use.php - match: \bfunction\b scope: storage.type.php set: use-statement-function - match: \bconst\b scope: storage.type.php set: use-statement-const - match: '(?=\S)' set: use-statement-ns-class # Escape during typing - match: '(?=$\n)' pop: true use-statement-common: - include: comments - match: (?i)\bas\b scope: keyword.other.use-as.php - match: ',' scope: punctuation.separator.php use-statement-identifier-class-def: - match: '(?={{path}})' push: - include: comments # We are going to assume the alias is for a class so that the identifier # gets put into the index. This will be incorrect sometimes (because it # will sometimes be a namespace identifier), but the distinction # shouldn't be a huge deal. - match: '(?i)\b(as)\b' scope: keyword.other.use-as.php push: - include: comments - match: '{{identifier}}' scope: entity.name.class.php pop: true - match: '(?=\S|$\n)' pop: true - include: identifier-parts-as-path # We don't mark this as entity.name.class since the name is pulled # verbatim and the indexer should find the name in the original source # file. - match: '(\\)?({{identifier}})(?!\\)' scope: meta.path.php captures: 1: punctuation.separator.namespace.php 2: support.class.php - match: '(?=\S|$\n)' pop: true use-statement-ns-class: - meta_content_scope: meta.use.php - match: (?=;|$\n) pop: true - match: '\{' scope: punctuation.section.block.php push: - match: '\}' scope: punctuation.section.block.php pop: true - include: use-statement-common - include: use-statement-identifier-class-def - include: use-statement-common - include: use-statement-identifier-class-def use-statement-identifier-function-def: - match: '(?={{path}})' push: - include: comments - match: '(?i)\b(as)\b' scope: keyword.other.use-as.php push: - include: comments - match: '{{identifier}}' scope: entity.name.function.php pop: true - match: '(?=\S|$\n)' pop: true - include: identifier-parts-as-path # We don't mark this as entity.name.function since the name is pulled # verbatim and the indexer should find the name in the original source # file. - match: '(\\)?({{identifier}})(?!\\)' scope: meta.path.php captures: 1: punctuation.separator.namespace.php 2: support.function.php - match: '(?=\S|$\n)' pop: true use-statement-function: - meta_content_scope: meta.use.php - match: (?=;|$\n) pop: true - match: '\{' scope: punctuation.section.block.php push: - match: '\}' scope: punctuation.section.block.php pop: true - include: use-statement-common - include: use-statement-identifier-function-def - include: use-statement-common - include: use-statement-identifier-function-def use-statement-const: - meta_content_scope: meta.use.php - match: (?=;|$\n) pop: true - match: '\{' scope: punctuation.section.block.php push: - match: '\}' scope: punctuation.section.block.php pop: true - include: use-statement-common - include: identifier-constant-pop - include: use-statement-common - include: identifier-constant-pop class: - match: '(?i)(\b(?:abstract|final)\s+)?\b(class)\s+({{identifier}})\s*' captures: 1: storage.modifier.abstract.php 2: storage.type.class.php 3: entity.name.class.php push: class-definition class-definition: - meta_scope: meta.class.php - match: "(?=;)" pop: true - match: '\{' scope: meta.block.php punctuation.section.block.php set: class-body - include: comments - match: (?i)(extends)\b\s* captures: 1: storage.modifier.extends.php push: - match: '(?=implements)' pop: true - include: comments - match: '(?={{path}})' set: - meta_scope: meta.path.php - meta_content_scope: entity.other.inherited-class.php - include: class-builtin - include: identifier-parts - match: '(\\)?{{identifier}}(?!\\)' captures: 1: punctuation.separator.namespace.php - match: '' pop: true - match: '(?=\S)' pop: true - match: (?i)(implements)\b\s* captures: 1: storage.modifier.implements.php push: - include: comments - match: '(?={{path}})' push: - meta_scope: meta.path.php - meta_content_scope: entity.other.inherited-class.php - include: class-builtin - include: identifier-parts - match: '(\\)?{{identifier}}(?!\\)' captures: 1: punctuation.separator.namespace.php - match: '' pop: true - match: ',' scope: punctuation.separator.php - match: '(?=\S)' pop: true class-body: - meta_content_scope: meta.class.php meta.block.php - include: comments - match: '\}' scope: meta.class.php meta.block.php punctuation.section.block.php pop: true - match: (?i)\b(use)\b\s* captures: 1: keyword.other.use.php push: - meta_scope: meta.use.php - match: (?=;|(?:^\s*$)) pop: true - match: '\{' scope: punctuation.section.block.php set: - meta_scope: meta.use.php meta.block.php - match: '}' scope: punctuation.section.block.php pop: true - include: comments - match: \b(as)\b scope: keyword.other.use-as.php - match: \b(insteadof)\b scope: keyword.other.insteadof.php - include: class-builtin - match: '::' scope: punctuation.accessor.double-colon.php - match: (?={{path}}) push: - meta_scope: meta.path.php - include: identifier-parts - match: '(\\)?{{identifier}}(?!\\)' captures: 1: punctuation.separator.namespace.php - match: '' pop: true - include: comments - include: class-builtin - match: (?={{path}}) push: - meta_scope: meta.path.php entity.other.inherited-class.php - include: identifier-parts - match: '(\\)?({{identifier}})(?!\\)' captures: 1: punctuation.separator.namespace.php - match: '' pop: true - match: ',' scope: punctuation.separator.php # https://wiki.php.net/rfc/typed_properties_v2 - match: (?=\b(?:var|public|private|protected|static)\b) push: - match: (?=\b(?:const|function)\b) pop: true - match: \b(?:var|public|private|protected|static)\b scope: storage.modifier.php - match: '(?:(\?)\s*)?({{identifier}})' captures: 1: storage.type.nullable.php 2: support.class.php pop: true # Exit on unexpected content - match: (?=\S) pop: true - include: statements function: - match: (?i)(?=(?:\b(?:final|abstract|var|public|private|protected|static)\s+)*\bfunction\b\s*(&\s*)?{{identifier_start}}) push: - meta_content_scope: meta.function.php - include: comments - match: '(?i)\b(final|abstract|var|public|private|protected|static)\b' scope: storage.modifier.php - match: (?i)\bfunction\b scope: storage.type.function.php - match: '&' scope: storage.modifier.reference.php - match: '(__(?:callStatic|call|construct|destruct|get|set|isset|unset|toString|clone|set_state|sleep|wakeup|autoload|invoke|debugInfo))\b' scope: entity.name.function.php support.function.magic.php - match: '{{identifier}}' scope: entity.name.function.php # Lookahead is used here to prevent doubling up of meta.function and meta.function.parameters - match: (?=\() set: - match: \( scope: meta.function.parameters.php meta.group.php punctuation.section.group.begin.php set: function-parameters # Exit on unexpected content - match: (?=\S) pop: true # https://wiki.php.net/rfc/arrow_functions_v2 arrow-function: # "fn" can be a function name before PHP 7.4 # Since PHP 7.4, "fn" is a reserved word - match: (?i)(?=\bfn\b\s*&?\s*\() branch_point: arrow-function-branch branch: # Anonymous function definition: fn($a) => $a * 2; - is-arrow-function # Function call, where "fn" is the function name: fn($a); - fn-function-call is-arrow-function: - match: (?i)\b(fn)\b\s*(&)?\s*(?=\() scope: meta.function.arrow-function.php captures: 1: storage.type.function.php 2: storage.modifier.reference.php push: - match: \( scope: meta.function.parameters.php meta.group.php punctuation.section.group.begin.php push: function-parameters - match: '=>' scope: punctuation.definition.arrow-function.php set: - match: '(?=;|,|\)|\s*\?>)' pop: 2 - include: expressions - include: comments - match: (?=\S) fail: arrow-function-branch fn-function-call: - include: function-call - match: '' pop: true closure: - match: (?i)\b(function)\s*(&)?\s*(?=\() scope: meta.function.closure.php captures: 1: storage.type.function.php 2: storage.modifier.reference.php push: - match: \( scope: meta.function.parameters.php meta.group.php punctuation.section.group.begin.php set: function-parameters function-parameters: - meta_content_scope: meta.function.parameters.php meta.group.php - match: '\)' scope: punctuation.section.group.end.php set: - meta_content_scope: meta.function.php - match: '\b(use)\b\s*(\()' scope: meta.function.closure.use.php captures: 1: keyword.other.function.use.php 2: punctuation.section.group.begin.php set: function-use - match: '(?=:)' set: function-return-type - match: \{ scope: meta.block.php punctuation.section.block.begin.php set: function-body # Exit on unexpected content - match: (?=\S) pop: true - include: comments - match: \b(array|callable|int|string|bool|float|object)\b scope: storage.type.php # Class name type hint - match: '{{identifier}}' scope: meta.path.php support.class.php - match: '\.\.\.' scope: keyword.operator.spread.php - match: '\?' scope: storage.type.nullable.php - match: '&' scope: storage.modifier.reference.php - match: (\$+){{identifier}} scope: variable.parameter.php captures: 1: punctuation.definition.variable.php - match: ',' scope: punctuation.separator.php - match: '=' scope: keyword.operator.assignment.php push: - match: '(?=,|\))' pop: true - include: expressions function-use: - meta_content_scope: meta.function.closure.use.php - include: comments - match: '\)' scope: punctuation.section.group.end.php set: - meta_content_scope: meta.function.php - match: '(?=:)' set: function-return-type - match: \{ scope: meta.block.php punctuation.section.block.begin.php set: function-body # Exit on unexpected content - match: (?=\S) pop: true - match: '&' scope: storage.modifier.reference.php - match: '(\$+){{identifier}}' scope: variable.parameter.php captures: 1: punctuation.definition.variable.php - match: ',' scope: punctuation.separator.php function-return-type: - meta_content_scope: meta.function.return-type.php - match: '(?=;)' pop: true - match: \{ scope: meta.block.php punctuation.section.block.begin.php set: function-body - match: ':' scope: punctuation.separator.php - match: '\?' scope: storage.type.nullable.php - match: \b(array|callable|int|string|bool|float|object)\b scope: storage.type.php - include: class-builtin - include: identifier-parts-as-path - match: '(\\)?({{identifier}})(?!\\)' scope: meta.path.php captures: 1: punctuation.separator.namespace.php 2: support.class.php # Exit on unexpected content - match: (?=\S) pop: true function-body: - meta_content_scope: meta.function.php meta.block.php - match: \} scope: meta.function.php meta.block.php punctuation.section.block.end.php pop: true - include: embedded-html - match: '\{' scope: punctuation.section.block.begin.php push: block - include: statements class-name: - match: '(?={{path}})' push: - meta_scope: meta.path.php - include: class-builtin - include: identifier-parts - match: '(\\)?({{identifier}})(?!\\)' captures: 1: punctuation.separator.namespace.php 2: support.class.php pop: true - match: '' pop: true comments: # This only highlights a docblock if the first line contains only /** or # /**#@+ (which is used for docblock templates). Otherwise block-level # comment would be highlighted as invalid for constructs such as /**** ****/ - match: |- (?x)/\*\*(?: (?:\#@\+)?\s*$ (?# multi-line doc ) | (?=\s+@.*\s\*/\s*$) (?# inline doc ) ) scope: punctuation.definition.comment.begin.php push: - meta_scope: comment.block.documentation.phpdoc.php - match: \*/ scope: punctuation.definition.comment.end.php pop: true - include: php-doc - match: /\* scope: punctuation.definition.comment.begin.php push: - meta_scope: comment.block.php - match: \*/ scope: punctuation.definition.comment.end.php pop: true - match: // scope: punctuation.definition.comment.php push: - meta_scope: comment.line.double-slash.php - match: '(?=\?>)' pop: true # Consume the newline so that completions aren't shown at the end of the line - match: \n pop: true - match: '#' scope: punctuation.definition.comment.php push: - meta_scope: comment.line.number-sign.php - match: '(?=\?>)' pop: true # Consume the newline so that completions aren't shown at the end of the line - match: \n pop: true constants: - match: |- \b(?xi: TRUE | FALSE | NULL | __CLASS__ | __DIR__ | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__ | __NAMESPACE__ )\b scope: constant.language.php - match: (?=\\?{{identifier}}\\{{path}}) push: - meta_scope: meta.path.php - include: identifier-parts - match: '(\\)?({{identifier}})(?!\\)' captures: 1: punctuation.separator.namespace.php 2: constant.other.php pop: true - match: '(?=\\?[[:alpha:]_])' push: - match: '(?=[^\\_[:alnum:]])' pop: true - match: |- (\\)?\b(?x: DEFAULT_INCLUDE_PATH | E_ALL | E_COMPILE_ERROR | E_COMPILE_WARNING | E_CORE_ERROR | E_CORE_WARNING | E_DEPRECATED | E_ERROR | E_NOTICE | E_PARSE | E_RECOVERABLE_ERROR | E_STRICT | E_USER_DEPRECATED | E_USER_ERROR | E_USER_NOTICE | E_USER_WARNING | E_WARNING | MT_RAND_PHP | PEAR_EXTENSION_DIR | PEAR_INSTALL_DIR | PHP_BINDIR | PHP_CONFIG_FILE_PATH | PHP_CONFIG_FILE_SCAN_DIR | PHP_DATADIR | PHP_DEBUG | PHP_EOL | PHP_EXTENSION_DIR | PHP_EXTRA_VERSION | PHP_FD_SETSIZE | PHP_FLOAT_DIG | PHP_FLOAT_EPSILON | PHP_FLOAT_MAX | PHP_FLOAT_MIN | PHP_INT_MAX | PHP_INT_MIN | PHP_INT_SIZE | PHP_LIBDIR | PHP_LOCALSTATEDIR | PHP_MAJOR_VERSION | PHP_MAXPATHLEN | PHP_MINOR_VERSION | PHP_OS | PHP_OS_FAMILY | PHP_OUTPUT_HANDLER_CONT | PHP_OUTPUT_HANDLER_END | PHP_OUTPUT_HANDLER_START | PHP_PREFIX | PHP_RELEASE_VERSION | PHP_ROUND_HALF_DOWN | PHP_ROUND_HALF_EVEN | PHP_ROUND_HALF_ODD | PHP_ROUND_HALF_UP | PHP_SAPI | PHP_SHLIB_SUFFIX | PHP_SYSCONFDIR | PHP_URL_FRAGMENT | PHP_URL_HOST | PHP_URL_PASS | PHP_URL_PATH | PHP_URL_PORT | PHP_URL_QUERY | PHP_URL_SCHEME | PHP_URL_USER | PHP_VERSION | PHP_VERSION_ID | PHP_WINDOWS_NT_DOMAIN_CONTROLLER | PHP_WINDOWS_NT_SERVER | PHP_WINDOWS_NT_WORKSTATION | PHP_WINDOWS_VERSION_BUILD | PHP_WINDOWS_VERSION_MAJOR | PHP_WINDOWS_VERSION_MINOR | PHP_WINDOWS_VERSION_PLATFORM | PHP_WINDOWS_VERSION_PRODUCTTYPE | PHP_WINDOWS_VERSION_SP_MAJOR | PHP_WINDOWS_VERSION_SP_MINOR | PHP_WINDOWS_VERSION_SUITEMASK | PHP_ZTS | STDERR | STDIN | STDOUT | ZEND_DEBUG_BUILD | ZEND_THREAD_SAFE )\b scope: support.constant.core.php captures: 1: punctuation.separator.namespace.php - match: |- (\\)?\b(?x: ABDAY_[1-7] | ABMON_(?:[1-9]|1[0-2]) | ALT_DIGITS | AM_STR | ASSERT_ACTIVE | ASSERT_BAIL | ASSERT_CALLBACK | ASSERT_QUIET_EVAL | ASSERT_WARNING | CASE_LOWER | CASE_UPPER | CHAR_MAX | CODESET | CONNECTION_ABORTED | CONNECTION_NORMAL | CONNECTION_TIMEOUT | COUNT_NORMAL | COUNT_RECURSIVE | CREDITS_ALL | CREDITS_DOCS | CREDITS_FULLPAGE | CREDITS_GENERAL | CREDITS_GROUP | CREDITS_MODULES | CREDITS_QA | CREDITS_SAPI | CRNCYSTR | CRYPT_BLOWFISH | CRYPT_EXT_DES | CRYPT_MD5 | CRYPT_SALT_LENGTH | CRYPT_SHA256 | CRYPT_SHA512 | CRYPT_STD_DES | CURRENCY_SYMBOL | DATE_ATOM | DATE_COOKIE | DATE_ISO8601 | DATE_RFC1036 | DATE_RFC1123 | DATE_RFC2822 | DATE_RFC3339 | DATE_RFC822 | DATE_RFC850 | DATE_RSS | DATE_W3C | DAY_([1-7]) | DECIMAL_POINT | DIRECTORY_SEPARATOR | D_FMT | D_T_FMT | ENT_COMPAT | ENT_IGNORE | ENT_NOQUOTES | ENT_QUOTES | ERA | ERA_D_FMT | ERA_D_T_FMT | ERA_T_FMT | ERA_YEAR | EXTR_IF_EXISTS | EXTR_OVERWRITE | EXTR_PREFIX_ALL | EXTR_PREFIX_IF_EXISTS | EXTR_PREFIX_INVALID | EXTR_PREFIX_SAME | EXTR_REFS | EXTR_SKIP | FRAC_DIGITS | GROUPING | HASH_HMAC | HTML_ENTITIES | HTML_SPECIALCHARS | INF | INFO_ALL | INFO_CONFIGURATION | INFO_CREDITS | INFO_ENVIRONMENT | INFO_GENERAL | INFO_LICENSE | INFO_MODULES | INFO_VARIABLES | INI_ALL | INI_PERDIR | INI_SCANNER_NORMAL | INI_SCANNER_RAW | INI_SYSTEM | INI_USER | INT_CURR_SYMBOL | INT_FRAC_DIGITS | LC_ALL | LC_COLLATE | LC_CTYPE | LC_MESSAGES | LC_MONETARY | LC_NUMERIC | LC_TIME | LOCK_EX | LOCK_NB | LOCK_SH | LOCK_UN | LOG_ALERT | LOG_AUTH | LOG_AUTHPRIV | LOG_CONS | LOG_CRIT | LOG_CRON | LOG_DAEMON | LOG_DEBUG | LOG_EMERG | LOG_ERR | LOG_INFO | LOG_KERN | LOG_LOCAL0 | LOG_LOCAL1 | LOG_LOCAL2 | LOG_LOCAL3 | LOG_LOCAL4 | LOG_LOCAL5 | LOG_LOCAL6 | LOG_LOCAL7 | LOG_LPR | LOG_MAIL | LOG_NDELAY | LOG_NEWS | LOG_NOTICE | LOG_NOWAIT | LOG_ODELAY | LOG_PERROR | LOG_PID | LOG_SYSLOG | LOG_USER | LOG_UUCP | LOG_WARNING | MON_(?:[1-9]|1[0-2]) | MON_DECIMAL_POINT | MON_GROUPING | MON_THOUSANDS_SEP | M_1_PI | M_2_PI | M_2_SQRTPI | M_E | M_EULER | M_LN10 | M_LN2 | M_LNPI | M_LOG10E | M_LOG2E | M_PI | M_PI_2 | M_PI_4 | M_SQRT1_2 | M_SQRT2 | M_SQRT3 | M_SQRTPI | NAN | NEGATIVE_SIGN | NOEXPR | NOSTR | N_CS_PRECEDES | N_SEP_BY_SPACE | N_SIGN_POSN | PATHINFO_BASENAME | PATHINFO_DIRNAME | PATHINFO_EXTENSION | PATHINFO_FILENAME | PATH_SEPARATOR | PM_STR | POSITIVE_SIGN | P_CS_PRECEDES | P_SEP_BY_SPACE | P_SIGN_POSN | RADIXCHAR | SEEK_CUR | SEEK_END | SEEK_SET | SORT_ASC | SORT_DESC | SORT_LOCALE_STRING | SORT_NUMERIC | SORT_REGULAR | SORT_STRING | STR_PAD_BOTH | STR_PAD_LEFT | STR_PAD_RIGHT | THOUSANDS_SEP | THOUSEP | T_FMT | T_FMT_AMPM | UPLOAD_ERR_CANT_WRITE | UPLOAD_ERR_EXTENSION | UPLOAD_ERR_FORM_SIZE | UPLOAD_ERR_INI_SIZE | UPLOAD_ERR_NO_FILE | UPLOAD_ERR_NO_TMP_DIR | UPLOAD_ERR_OK | UPLOAD_ERR_PARTIAL | YESEXPR | YESSTR | __COMPILER_HALT_OFFSET__ )\b scope: support.constant.std.php captures: 1: punctuation.separator.namespace.php - match: |- (\\)?\b(?x: CURLAUTH_ANY | CURLAUTH_ANYSAFE | CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM | CURLCLOSEPOLICY_CALLBACK | CURLCLOSEPOLICY_LEAST_RECENTLY_USED | CURLCLOSEPOLICY_LEAST_TRAFFIC | CURLCLOSEPOLICY_OLDEST | CURLCLOSEPOLICY_SLOWEST | CURLE_ABORTED_BY_CALLBACK | CURLE_BAD_CALLING_ORDER | CURLE_BAD_CONTENT_ENCODING | CURLE_BAD_FUNCTION_ARGUMENT | CURLE_BAD_PASSWORD_ENTERED | CURLE_COULDNT_CONNECT | CURLE_COULDNT_RESOLVE_HOST | CURLE_COULDNT_RESOLVE_PROXY | CURLE_FAILED_INIT | CURLE_FILESIZE_EXCEEDED | CURLE_FILE_COULDNT_READ_FILE | CURLE_FTP_ACCESS_DENIED | CURLE_FTP_BAD_DOWNLOAD_RESUME | CURLE_FTP_CANT_GET_HOST | CURLE_FTP_CANT_RECONNECT | CURLE_FTP_COULDNT_GET_SIZE | CURLE_FTP_COULDNT_RETR_FILE | CURLE_FTP_COULDNT_SET_ASCII | CURLE_FTP_COULDNT_SET_BINARY | CURLE_FTP_COULDNT_STOR_FILE | CURLE_FTP_COULDNT_USE_REST | CURLE_FTP_PORT_FAILED | CURLE_FTP_QUOTE_ERROR | CURLE_FTP_SSL_FAILED | CURLE_FTP_USER_PASSWORD_INCORRECT | CURLE_FTP_WEIRD_227_FORMAT | CURLE_FTP_WEIRD_PASS_REPLY | CURLE_FTP_WEIRD_PASV_REPLY | CURLE_FTP_WEIRD_SERVER_REPLY | CURLE_FTP_WEIRD_USER_REPLY | CURLE_FTP_WRITE_ERROR | CURLE_FUNCTION_NOT_FOUND | CURLE_GOT_NOTHING | CURLE_HTTP_NOT_FOUND | CURLE_HTTP_PORT_FAILED | CURLE_HTTP_POST_ERROR | CURLE_HTTP_RANGE_ERROR | CURLE_LDAP_CANNOT_BIND | CURLE_LDAP_INVALID_URL | CURLE_LDAP_SEARCH_FAILED | CURLE_LIBRARY_NOT_FOUND | CURLE_MALFORMAT_USER | CURLE_OBSOLETE | CURLE_OK | CURLE_OPERATION_TIMEOUTED | CURLE_OUT_OF_MEMORY | CURLE_PARTIAL_FILE | CURLE_READ_ERROR | CURLE_RECV_ERROR | CURLE_SEND_ERROR | CURLE_SHARE_IN_USE | CURLE_SSH | CURLE_SSL_CACERT | CURLE_SSL_CERTPROBLEM | CURLE_SSL_CIPHER | CURLE_SSL_CONNECT_ERROR | CURLE_SSL_ENGINE_NOTFOUND | CURLE_SSL_ENGINE_SETFAILED | CURLE_SSL_PEER_CERTIFICATE | CURLE_TELNET_OPTION_SYNTAX | CURLE_TOO_MANY_REDIRECTS | CURLE_UNKNOWN_TELNET_OPTION | CURLE_UNSUPPORTED_PROTOCOL | CURLE_URL_MALFORMAT | CURLE_URL_MALFORMAT_USER | CURLE_WRITE_ERROR | CURLFTPAUTH_DEFAULT | CURLFTPAUTH_SSL | CURLFTPAUTH_TLS | CURLFTPMETHOD_MULTICWD | CURLFTPMETHOD_NOCWD | CURLFTPMETHOD_SINGLECWD | CURLFTPSSL_ALL | CURLFTPSSL_CONTROL | CURLFTPSSL_NONE | CURLFTPSSL_TRY | CURLINFO_CERTINFO | CURLINFO_CONNECT_TIME | CURLINFO_CONTENT_LENGTH_DOWNLOAD | CURLINFO_CONTENT_LENGTH_UPLOAD | CURLINFO_CONTENT_TYPE | CURLINFO_EFFECTIVE_URL | CURLINFO_FILETIME | CURLINFO_HEADER_OUT | CURLINFO_HEADER_SIZE | CURLINFO_HTTP_CODE | CURLINFO_NAMELOOKUP_TIME | CURLINFO_PRETRANSFER_TIME | CURLINFO_PRIVATE | CURLINFO_REDIRECT_COUNT | CURLINFO_REDIRECT_TIME | CURLINFO_REQUEST_SIZE | CURLINFO_SIZE_DOWNLOAD | CURLINFO_SIZE_UPLOAD | CURLINFO_SPEED_DOWNLOAD | CURLINFO_SPEED_UPLOAD | CURLINFO_SSL_VERIFYRESULT | CURLINFO_STARTTRANSFER_TIME | CURLINFO_TOTAL_TIME | CURLMOPT_PUSHFUNCTION | CURLMSG_DONE | CURLM_BAD_EASY_HANDLE | CURLM_BAD_HANDLE | CURLM_CALL_MULTI_PERFORM | CURLM_INTERNAL_ERROR | CURLM_OK | CURLM_OUT_OF_MEMORY | CURLOPT_AUTOREFERER | CURLOPT_BINARYTRANSFER | CURLOPT_BUFFERSIZE | CURLOPT_CAINFO | CURLOPT_CAPATH | CURLOPT_CERTINFO | CURLOPT_CLOSEPOLICY | CURLOPT_CONNECTTIMEOUT | CURLOPT_CONNECTTIMEOUT_MS | CURLOPT_COOKIE | CURLOPT_COOKIEFILE | CURLOPT_COOKIEJAR | CURLOPT_COOKIESESSION | CURLOPT_CRLF | CURLOPT_CUSTOMREQUEST | CURLOPT_DNS_CACHE_TIMEOUT | CURLOPT_DNS_USE_GLOBAL_CACHE | CURLOPT_EGDSOCKET | CURLOPT_ENCODING | CURLOPT_FAILONERROR | CURLOPT_FILE | CURLOPT_FILETIME | CURLOPT_FOLLOWLOCATION | CURLOPT_FORBID_REUSE | CURLOPT_FRESH_CONNECT | CURLOPT_FTPAPPEND | CURLOPT_FTPLISTONLY | CURLOPT_FTPPORT | CURLOPT_FTPSSLAUTH | CURLOPT_FTP_CREATE_MISSING_DIRS | CURLOPT_FTP_FILEMETHOD | CURLOPT_FTP_SKIP_PASV_IP | CURLOPT_FTP_SSL | CURLOPT_FTP_USE_EPRT | CURLOPT_FTP_USE_EPSV | CURLOPT_HEADER | CURLOPT_HEADERFUNCTION | CURLOPT_HTTP200ALIASES | CURLOPT_HTTPAUTH | CURLOPT_HTTPGET | CURLOPT_HTTPHEADER | CURLOPT_HTTPPROXYTUNNEL | CURLOPT_HTTP_VERSION | CURLOPT_INFILE | CURLOPT_INFILESIZE | CURLOPT_INTERFACE | CURLOPT_IPRESOLVE | CURLOPT_KEYPASSWD | CURLOPT_KRB4LEVEL | CURLOPT_LOW_SPEED_LIMIT | CURLOPT_LOW_SPEED_TIME | CURLOPT_MAXCONNECTS | CURLOPT_MAXREDIRS | CURLOPT_NETRC | CURLOPT_NOBODY | CURLOPT_NOPROGRESS | CURLOPT_NOSIGNAL | CURLOPT_PORT | CURLOPT_POST | CURLOPT_POSTFIELDS | CURLOPT_POSTQUOTE | CURLOPT_POSTREDIR | CURLOPT_PRIVATE | CURLOPT_PROGRESSFUNCTION | CURLOPT_PROTOCOLS | CURLOPT_PROXY | CURLOPT_PROXYAUTH | CURLOPT_PROXYPORT | CURLOPT_PROXYTYPE | CURLOPT_PROXYUSERPWD | CURLOPT_PUT | CURLOPT_QUOTE | CURLOPT_RANDOM_FILE | CURLOPT_RANGE | CURLOPT_READDATA | CURLOPT_READFUNCTION | CURLOPT_REDIR_PROTOCOLS | CURLOPT_REFERER | CURLOPT_RESUME_FROM | CURLOPT_RETURNTRANSFER | CURLOPT_SSH_AUTH_TYPES | CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | CURLOPT_SSH_PRIVATE_KEYFILE | CURLOPT_SSH_PUBLIC_KEYFILE | CURLOPT_SSLCERT | CURLOPT_SSLCERTPASSWD | CURLOPT_SSLCERTTYPE | CURLOPT_SSLENGINE | CURLOPT_SSLENGINE_DEFAULT | CURLOPT_SSLKEY | CURLOPT_SSLKEYPASSWD | CURLOPT_SSLKEYTYPE | CURLOPT_SSLVERSION | CURLOPT_SSL_CIPHER_LIST | CURLOPT_SSL_VERIFYHOST | CURLOPT_SSL_VERIFYPEER | CURLOPT_STDERR | CURLOPT_TCP_NODELAY | CURLOPT_TIMECONDITION | CURLOPT_TIMEOUT | CURLOPT_TIMEOUT_MS | CURLOPT_TIMEVALUE | CURLOPT_TRANSFERTEXT | CURLOPT_UNRESTRICTED_AUTH | CURLOPT_UPLOAD | CURLOPT_URL | CURLOPT_USERAGENT | CURLOPT_USERPWD | CURLOPT_VERBOSE | CURLOPT_WRITEFUNCTION | CURLOPT_WRITEHEADER | CURLPROTO_ALL | CURLPROTO_DICT | CURLPROTO_FILE | CURLPROTO_FTP | CURLPROTO_FTPS | CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_LDAP | CURLPROTO_LDAPS | CURLPROTO_SCP | CURLPROTO_SFTP | CURLPROTO_TELNET | CURLPROTO_TFTP | CURLPROXY_HTTP | CURLPROXY_SOCKS4 | CURLPROXY_SOCKS5 | CURLSSH_AUTH_DEFAULT | CURLSSH_AUTH_HOST | CURLSSH_AUTH_KEYBOARD | CURLSSH_AUTH_NONE | CURLSSH_AUTH_PASSWORD | CURLSSH_AUTH_PUBLICKEY | CURLVERSION_NOW | CURL_HTTP_VERSION_1_0 | CURL_HTTP_VERSION_1_1 | CURL_HTTP_VERSION_NONE | CURL_IPRESOLVE_V4 | CURL_IPRESOLVE_V6 | CURL_IPRESOLVE_WHATEVER | CURL_NETRC_IGNORED | CURL_NETRC_OPTIONAL | CURL_NETRC_REQUIRED | CURL_PUSH_DENY | CURL_PUSH_OK | CURL_TIMECOND_IFMODSINCE | CURL_TIMECOND_IFUNMODSINCE | CURL_TIMECOND_LASTMOD | CURL_VERSION_IPV6 | CURL_VERSION_KERBEROS4 | CURL_VERSION_LIBZ | CURL_VERSION_SSL | DNS_A | DNS_A6 | DNS_AAAA | DNS_ALL | DNS_ANY | DNS_CNAME | DNS_HINFO | DNS_MX | DNS_NAPTR | DNS_NS | DNS_PTR | DNS_SOA | DNS_SRV | DNS_TXT | DOMSTRING_SIZE_ERR | DOM_HIERARCHY_REQUEST_ERR | DOM_INDEX_SIZE_ERR | DOM_INUSE_ATTRIBUTE_ERR | DOM_INVALID_ACCESS_ERR | DOM_INVALID_CHARACTER_ERR | DOM_INVALID_MODIFICATION_ERR | DOM_INVALID_STATE_ERR | DOM_NAMESPACE_ERR | DOM_NOT_FOUND_ERR | DOM_NOT_SUPPORTED_ERR | DOM_NO_DATA_ALLOWED_ERR | DOM_NO_MODIFICATION_ALLOWED_ERR | DOM_PHP_ERR | DOM_SYNTAX_ERR | DOM_VALIDATION_ERR | DOM_WRONG_DOCUMENT_ERR | FILEINFO_CONTINUE | FILEINFO_DEVICES | FILEINFO_MIME | FILEINFO_MIME_ENCODING | FILEINFO_MIME_TYPE | FILEINFO_NONE | FILEINFO_PRESERVE_ATIME | FILEINFO_RAW | FILEINFO_SYMLINK | FILE_APPEND | FILE_BINARY | FILE_IGNORE_NEW_LINES | FILE_NO_DEFAULT_CONTEXT | FILE_SKIP_EMPTY_LINES | FILE_TEXT | FILE_USE_INCLUDE_PATH | FILTER_CALLBACK | FILTER_DEFAULT | FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_HEX | FILTER_FLAG_ALLOW_OCTAL | FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_FLAG_ALLOW_THOUSAND | FILTER_FLAG_EMAIL_UNICODE | FILTER_FLAG_EMPTY_STRING_NULL | FILTER_FLAG_ENCODE_AMP | FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW | FILTER_FLAG_HOST_REQUIRED | FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NONE | FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_PATH_REQUIRED | FILTER_FLAG_QUERY_REQUIRED | FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_STRIP_BACKTICK | FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_LOW | FILTER_FORCE_ARRAY | FILTER_NULL_ON_FAILURE | FILTER_REQUIRE_ARRAY | FILTER_REQUIRE_SCALAR | FILTER_SANITIZE_EMAIL | FILTER_SANITIZE_ENCODED | FILTER_SANITIZE_FULL_SPECIAL_CHARS | FILTER_SANITIZE_MAGIC_QUOTES | FILTER_SANITIZE_NUMBER_FLOAT | FILTER_SANITIZE_NUMBER_INT | FILTER_SANITIZE_SPECIAL_CHARS | FILTER_SANITIZE_STRING | FILTER_SANITIZE_STRIPPED | FILTER_SANITIZE_URL | FILTER_UNSAFE_RAW | FILTER_VALIDATE_BOOLEAN | FILTER_VALIDATE_EMAIL | FILTER_VALIDATE_FLOAT | FILTER_VALIDATE_INT | FILTER_VALIDATE_IP | FILTER_VALIDATE_REGEXP | FILTER_VALIDATE_URL | FNM_CASEFOLD | FNM_NOESCAPE | FNM_PATHNAME | FNM_PERIOD | FORCE_DEFLATE | FORCE_GZIP | GLOB_AVAILABLE_FLAGS | GLOB_BRACE | GLOB_ERR | GLOB_MARK | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_NOSORT | GLOB_ONLYDIR | ICONV_IMPL | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | ICONV_MIME_DECODE_STRICT | ICONV_VERSION | IMAGETYPE_BMP | IMAGETYPE_COUNT | IMAGETYPE_GIF | IMAGETYPE_ICO | IMAGETYPE_IFF | IMAGETYPE_JB2 | IMAGETYPE_JP2 | IMAGETYPE_JPC | IMAGETYPE_JPEG | IMAGETYPE_JPEG2000 | IMAGETYPE_JPX | IMAGETYPE_PNG | IMAGETYPE_PSD | IMAGETYPE_SWC | IMAGETYPE_SWF | IMAGETYPE_TIFF_II | IMAGETYPE_TIFF_MM | IMAGETYPE_UNKNOWN | IMAGETYPE_WBMP | IMAGETYPE_WEBP | IMAGETYPE_XBM | INPUT_COOKIE | INPUT_ENV | INPUT_GET | INPUT_POST | INPUT_REQUEST | INPUT_SERVER | INPUT_SESSION | JSON_BIGINT_AS_STRING | JSON_ERROR_CTRL_CHAR | JSON_ERROR_DEPTH | JSON_ERROR_INF_OR_NAN | JSON_ERROR_INVALID_PROPERTY_NAME | JSON_ERROR_NONE | JSON_ERROR_RECURSION | JSON_ERROR_STATE_MISMATCH | JSON_ERROR_SYNTAX | JSON_ERROR_UNSUPPORTED_TYPE | JSON_ERROR_UTF16 | JSON_ERROR_UTF8 | JSON_FORCE_OBJECT | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_INVALID_UTF8_IGNORE | JSON_INVALID_UTF8_SUBSTITUTE | JSON_NUMERIC_CHECK | JSON_OBJECT_AS_ARRAY | JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_PRESERVE_ZERO_FRACTION | JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR | JSON_UNESCAPED_LINE_TERMINATORS | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | LIBXML_BIGLINES | LIBXML_COMPACT | LIBXML_DOTTED_VERSION | LIBXML_DTDATTR | LIBXML_DTDLOAD | LIBXML_DTDVALID | LIBXML_ERR_ERROR | LIBXML_ERR_FATAL | LIBXML_ERR_NONE | LIBXML_ERR_WARNING | LIBXML_LOADED_VERSION | LIBXML_NOBLANKS | LIBXML_NOCDATA | LIBXML_NOEMPTYTAG | LIBXML_NOENT | LIBXML_NOERROR | LIBXML_NONET | LIBXML_NOWARNING | LIBXML_NOXMLDECL | LIBXML_NSCLEAN | LIBXML_PARSEHUGE | LIBXML_VERSION | LIBXML_XINCLUDE | MCRYPT_3DES | MCRYPT_ARCFOUR | MCRYPT_ARCFOUR_IV | MCRYPT_BLOWFISH | MCRYPT_BLOWFISH_COMPAT | MCRYPT_CAST_128 | MCRYPT_CAST_256 | MCRYPT_CRYPT | MCRYPT_DECRYPT | MCRYPT_DES | MCRYPT_DEV_RANDOM | MCRYPT_DEV_URANDOM | MCRYPT_ENCRYPT | MCRYPT_ENIGNA | MCRYPT_GOST | MCRYPT_IDEA | MCRYPT_LOKI97 | MCRYPT_MARS | MCRYPT_MODE_CBC | MCRYPT_MODE_CFB | MCRYPT_MODE_ECB | MCRYPT_MODE_NOFB | MCRYPT_MODE_OFB | MCRYPT_MODE_STREAM | MCRYPT_PANAMA | MCRYPT_RAND | MCRYPT_RC2 | MCRYPT_RC6 | MCRYPT_RIJNDAEL_128 | MCRYPT_RIJNDAEL_192 | MCRYPT_RIJNDAEL_256 | MCRYPT_SAFER128 | MCRYPT_SAFER64 | MCRYPT_SAFERPLUS | MCRYPT_SERPENT | MCRYPT_SKIPJACK | MCRYPT_THREEWAY | MCRYPT_TRIPLEDES | MCRYPT_TWOFISH | MCRYPT_WAKE | MCRYPT_XTEA | MHASH_ADLER32 | MHASH_CRC32 | MHASH_CRC32B | MHASH_GOST | MHASH_HAVAL128 | MHASH_HAVAL160 | MHASH_HAVAL192 | MHASH_HAVAL224 | MHASH_HAVAL256 | MHASH_MD2 | MHASH_MD4 | MHASH_MD5 | MHASH_RIPEMD128 | MHASH_RIPEMD160 | MHASH_RIPEMD256 | MHASH_RIPEMD320 | MHASH_SHA1 | MHASH_SHA224 | MHASH_SHA256 | MHASH_SHA384 | MHASH_SHA512 | MHASH_SNEFRU256 | MHASH_TIGER | MHASH_TIGER128 | MHASH_TIGER160 | MHASH_WHIRLPOOL | MYSQLI_ASSOC | MYSQLI_ASYNC | MYSQLI_AUTO_INCREMENT_FLAG | MYSQLI_BINARY_FLAG | MYSQLI_BLOB_FLAG | MYSQLI_BOTH | MYSQLI_CLIENT_COMPRESS | MYSQLI_CLIENT_FOUND_ROWS | MYSQLI_CLIENT_IGNORE_SPACE | MYSQLI_CLIENT_INTERACTIVE | MYSQLI_CLIENT_NO_SCHEMA | MYSQLI_CLIENT_SSL | MYSQLI_CURSOR_TYPE_FOR_UPDATE | MYSQLI_CURSOR_TYPE_NO_CURSOR | MYSQLI_CURSOR_TYPE_READ_ONLY | MYSQLI_CURSOR_TYPE_SCROLLABLE | MYSQLI_DATA_TRUNCATED | MYSQLI_DEBUG_TRACE_ENABLED | MYSQLI_ENUM_FLAG | MYSQLI_GROUP_FLAG | MYSQLI_INIT_COMMAND | MYSQLI_MULTIPLE_KEY_FLAG | MYSQLI_NOT_NULL_FLAG | MYSQLI_NO_DATA | MYSQLI_NO_DEFAULT_VALUE_FLAG | MYSQLI_NUM | MYSQLI_NUM_FLAG | MYSQLI_ON_UPDATE_NOW_FLAG | MYSQLI_OPT_CONNECT_TIMEOUT | MYSQLI_OPT_INT_AND_FLOAT_NATIVE | MYSQLI_OPT_LOCAL_INFILE | MYSQLI_OPT_NET_CMD_BUFFER_SIZE | MYSQLI_OPT_NET_READ_BUFFER_SIZE | MYSQLI_PART_KEY_FLAG | MYSQLI_PRI_KEY_FLAG | MYSQLI_READ_DEFAULT_FILE | MYSQLI_READ_DEFAULT_GROUP | MYSQLI_REFRESH_BACKUP_LOG | MYSQLI_REFRESH_GRANT | MYSQLI_REFRESH_HOSTS | MYSQLI_REFRESH_LOG | MYSQLI_REFRESH_MASTER | MYSQLI_REFRESH_SLAVE | MYSQLI_REFRESH_STATUS | MYSQLI_REFRESH_TABLES | MYSQLI_REFRESH_THREADS | MYSQLI_REPORT_ALL | MYSQLI_REPORT_ERROR | MYSQLI_REPORT_INDEX | MYSQLI_REPORT_OFF | MYSQLI_REPORT_STRICT | MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED | MYSQLI_SERVER_QUERY_NO_INDEX_USED | MYSQLI_SERVER_QUERY_WAS_SLOW | MYSQLI_SET_CHARSET_NAME | MYSQLI_SET_FLAG | MYSQLI_STMT_ATTR_CURSOR_TYPE | MYSQLI_STMT_ATTR_PREFETCH_ROWS | MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | MYSQLI_STORE_RESULT | MYSQLI_TIMESTAMP_FLAG | MYSQLI_TYPE_BIT | MYSQLI_TYPE_BLOB | MYSQLI_TYPE_CHAR | MYSQLI_TYPE_DATE | MYSQLI_TYPE_DATETIME | MYSQLI_TYPE_DECIMAL | MYSQLI_TYPE_DOUBLE | MYSQLI_TYPE_ENUM | MYSQLI_TYPE_FLOAT | MYSQLI_TYPE_GEOMETRY | MYSQLI_TYPE_INT24 | MYSQLI_TYPE_INTERVAL | MYSQLI_TYPE_LONG | MYSQLI_TYPE_LONGLONG | MYSQLI_TYPE_LONG_BLOB | MYSQLI_TYPE_MEDIUM_BLOB | MYSQLI_TYPE_NEWDATE | MYSQLI_TYPE_NEWDECIMAL | MYSQLI_TYPE_NULL | MYSQLI_TYPE_SET | MYSQLI_TYPE_SHORT | MYSQLI_TYPE_STRING | MYSQLI_TYPE_TIME | MYSQLI_TYPE_TIMESTAMP | MYSQLI_TYPE_TINY | MYSQLI_TYPE_TINY_BLOB | MYSQLI_TYPE_VAR_STRING | MYSQLI_TYPE_YEAR | MYSQLI_UNIQUE_KEY_FLAG | MYSQLI_UNSIGNED_FLAG | MYSQLI_USE_RESULT | MYSQLI_ZEROFILL_FLAG | MYSQL_ASSOC | MYSQL_BOTH | MYSQL_CLIENT_COMPRESS | MYSQL_CLIENT_IGNORE_SPACE | MYSQL_CLIENT_INTERACTIVE | MYSQL_CLIENT_SSL | MYSQL_NUM | PCRE_VERSION | POSIX_F_OK | POSIX_RLIMIT_AS | POSIX_RLIMIT_CORE | POSIX_RLIMIT_CPU | POSIX_RLIMIT_DATA | POSIX_RLIMIT_FSIZE | POSIX_RLIMIT_INFINITY | POSIX_RLIMIT_LOCKS | POSIX_RLIMIT_MEMLOCK | POSIX_RLIMIT_MSGQUEUE | POSIX_RLIMIT_NICE | POSIX_RLIMIT_NOFILE | POSIX_RLIMIT_NPROC | POSIX_RLIMIT_RSS | POSIX_RLIMIT_RTPRIO | POSIX_RLIMIT_RTTIME | POSIX_RLIMIT_SIGPENDING | POSIX_RLIMIT_STACK | POSIX_R_OK | POSIX_S_IFBLK | POSIX_S_IFCHR | POSIX_S_IFIFO | POSIX_S_IFREG | POSIX_S_IFSOCK | POSIX_W_OK | POSIX_X_OK | PREG_BACKTRACK_LIMIT_ERROR | PREG_BAD_UTF8_ERROR | PREG_BAD_UTF8_OFFSET_ERROR | PREG_GREP_INVERT | PREG_INTERNAL_ERROR | PREG_JIT_STACKLIMIT_ERROR | PREG_NO_ERROR | PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER | PREG_RECURSION_LIMIT_ERROR | PREG_SET_ORDER | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE | PREG_UNMATCHED_AS_NULL | PSFS_ERR_FATAL | PSFS_FEED_ME | PSFS_FLAG_FLUSH_CLOSE | PSFS_FLAG_FLUSH_INC | PSFS_FLAG_NORMAL | PSFS_PASS_ON | SQLITE3_ASSOC | SQLITE3_BLOB | SQLITE3_BOTH | SQLITE3_FLOAT | SQLITE3_INTEGER | SQLITE3_NULL | SQLITE3_NUM | SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READONLY | SQLITE3_OPEN_READWRITE | SQLITE3_TEXT | SQLITE_ABORT | SQLITE_ASSOC | SQLITE_AUTH | SQLITE_BOTH | SQLITE_BUSY | SQLITE_CANTOPEN | SQLITE_CONSTRAINT | SQLITE_CORRUPT | SQLITE_DONE | SQLITE_EMPTY | SQLITE_ERROR | SQLITE_FORMAT | SQLITE_FULL | SQLITE_INTERNAL | SQLITE_INTERRUPT | SQLITE_IOERR | SQLITE_LOCKED | SQLITE_MISMATCH | SQLITE_MISUSE | SQLITE_NOLFS | SQLITE_NOMEM | SQLITE_NOTADB | SQLITE_NOTFOUND | SQLITE_NUM | SQLITE_OK | SQLITE_PERM | SQLITE_PROTOCOL | SQLITE_READONLY | SQLITE_ROW | SQLITE_SCHEMA | SQLITE_TOOBIG | STREAM_BUFFER_FULL | STREAM_BUFFER_LINE | STREAM_BUFFER_NONE | STREAM_CAST_AS_STREAM | STREAM_CAST_FOR_SELECT | STREAM_CLIENT_ASYNC_CONNECT | STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT | STREAM_CRYPTO_METHOD_SSLv23_CLIENT | STREAM_CRYPTO_METHOD_SSLv23_SERVER | STREAM_CRYPTO_METHOD_SSLv2_CLIENT | STREAM_CRYPTO_METHOD_SSLv2_SERVER | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | STREAM_ENFORCE_SAFE_MODE | STREAM_FILTER_ALL | STREAM_FILTER_READ | STREAM_FILTER_WRITE | STREAM_IGNORE_URL | STREAM_IPPROTO_ICMP | STREAM_IPPROTO_IP | STREAM_IPPROTO_RAW | STREAM_IPPROTO_TCP | STREAM_IPPROTO_UDP | STREAM_IS_URL | STREAM_MKDIR_RECURSIVE | STREAM_MUST_SEEK | STREAM_NOTIFY_AUTH_REQUIRED | STREAM_NOTIFY_AUTH_RESULT | STREAM_NOTIFY_COMPLETED | STREAM_NOTIFY_CONNECT | STREAM_NOTIFY_FAILURE | STREAM_NOTIFY_FILE_SIZE_IS | STREAM_NOTIFY_MIME_TYPE_IS | STREAM_NOTIFY_PROGRESS | STREAM_NOTIFY_REDIRECTED | STREAM_NOTIFY_RESOLVE | STREAM_NOTIFY_SEVERITY_ERR | STREAM_NOTIFY_SEVERITY_INFO | STREAM_NOTIFY_SEVERITY_WARN | STREAM_OOB | STREAM_OPTION_BLOCKING | STREAM_OPTION_READ_BUFFER | STREAM_OPTION_READ_TIMEOUT | STREAM_OPTION_WRITE_BUFFER | STREAM_PEEK | STREAM_PF_INET | STREAM_PF_INET6 | STREAM_PF_UNIX | STREAM_REPORT_ERRORS | STREAM_SERVER_BIND | STREAM_SERVER_LISTEN | STREAM_SHUT_RD | STREAM_SHUT_RDWR | STREAM_SHUT_WR | STREAM_SOCK_DGRAM | STREAM_SOCK_RAW | STREAM_SOCK_RDM | STREAM_SOCK_SEQPACKET | STREAM_SOCK_STREAM | STREAM_URL_STAT_LINK | STREAM_URL_STAT_QUIET | STREAM_USE_PATH | SUNFUNCS_RET_DOUBLE | SUNFUNCS_RET_STRING | SUNFUNCS_RET_TIMESTAMP | XML_ATTRIBUTE_CDATA | XML_ATTRIBUTE_DECL_NODE | XML_ATTRIBUTE_ENTITY | XML_ATTRIBUTE_ENUMERATION | XML_ATTRIBUTE_ID | XML_ATTRIBUTE_IDREF | XML_ATTRIBUTE_IDREFS | XML_ATTRIBUTE_NMTOKEN | XML_ATTRIBUTE_NMTOKENS | XML_ATTRIBUTE_NODE | XML_ATTRIBUTE_NOTATION | XML_CDATA_SECTION_NODE | XML_COMMENT_NODE | XML_DOCUMENT_FRAG_NODE | XML_DOCUMENT_NODE | XML_DOCUMENT_TYPE_NODE | XML_DTD_NODE | XML_ELEMENT_DECL_NODE | XML_ELEMENT_NODE | XML_ENTITY_DECL_NODE | XML_ENTITY_NODE | XML_ENTITY_REF_NODE | XML_ERROR_ASYNC_ENTITY | XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF | XML_ERROR_BAD_CHAR_REF | XML_ERROR_BINARY_ENTITY_REF | XML_ERROR_DUPLICATE_ATTRIBUTE | XML_ERROR_EXTERNAL_ENTITY_HANDLING | XML_ERROR_INCORRECT_ENCODING | XML_ERROR_INVALID_TOKEN | XML_ERROR_JUNK_AFTER_DOC_ELEMENT | XML_ERROR_MISPLACED_XML_PI | XML_ERROR_NONE | XML_ERROR_NO_ELEMENTS | XML_ERROR_NO_MEMORY | XML_ERROR_PARAM_ENTITY_REF | XML_ERROR_PARTIAL_CHAR | XML_ERROR_RECURSIVE_ENTITY_REF | XML_ERROR_SYNTAX | XML_ERROR_TAG_MISMATCH | XML_ERROR_UNCLOSED_CDATA_SECTION | XML_ERROR_UNCLOSED_TOKEN | XML_ERROR_UNDEFINED_ENTITY | XML_ERROR_UNKNOWN_ENCODING | XML_HTML_DOCUMENT_NODE | XML_LOCAL_NAMESPACE | XML_NAMESPACE_DECL_NODE | XML_NOTATION_NODE | XML_OPTION_CASE_FOLDING | XML_OPTION_SKIP_TAGSTART | XML_OPTION_SKIP_WHITE | XML_OPTION_TARGET_ENCODING | XML_PI_NODE | XML_SAX_IMPL | XML_TEXT_NODE )\b scope: support.constant.ext.php captures: 1: punctuation.separator.namespace.php - match: |- (\\)?\b(?x: T_ABSTRACT | T_AND_EQUAL | T_ARRAY | T_ARRAY_CAST | T_AS | T_BAD_CHARACTER | T_BOOLEAN_AND | T_BOOLEAN_OR | T_BOOL_CAST | T_BREAK | T_CASE | T_CATCH | T_CHARACTER | T_CLASS | T_CLASS_C | T_CLONE | T_CLOSE_TAG | T_COMMENT | T_CONCAT_EQUAL | T_CONST | T_CONSTANT_ENCAPSED_STRING | T_CONTINUE | T_CURLY_OPEN | T_DEC | T_DECLARE | T_DEFAULT | T_DIR | T_DIV_EQUAL | T_DNUMBER | T_DO | T_DOC_COMMENT | T_DOLLAR_OPEN_CURLY_BRACES | T_DOUBLE_ARROW | T_DOUBLE_CAST | T_DOUBLE_COLON | T_ECHO | T_ELSE | T_ELSEIF | T_EMPTY | T_ENCAPSED_AND_WHITESPACE | T_ENDDECLARE | T_ENDFOR | T_ENDFOREACH | T_ENDIF | T_ENDSWITCH | T_ENDWHILE | T_END_HEREDOC | T_EVAL | T_EXIT | T_EXTENDS | T_FILE | T_FINAL | T_FOR | T_FOREACH | T_FUNCTION | T_FUNC_C | T_GLOBAL | T_GOTO | T_HALT_COMPILER | T_IF | T_IMPLEMENTS | T_INC | T_INCLUDE | T_INCLUDE_ONCE | T_INLINE_HTML | T_INSTANCEOF | T_INTERFACE | T_INT_CAST | T_ISSET | T_IS_EQUAL | T_IS_GREATER_OR_EQUAL | T_IS_IDENTICAL | T_IS_NOT_EQUAL | T_IS_NOT_IDENTICAL | T_IS_SMALLER_OR_EQUAL | T_LINE | T_LIST | T_LNUMBER | T_LOGICAL_AND | T_LOGICAL_OR | T_LOGICAL_XOR | T_METHOD_C | T_MINUS_EQUAL | T_ML_COMMENT | T_MOD_EQUAL | T_MUL_EQUAL | T_NAMESPACE | T_NEW | T_NS_C | T_NS_SEPARATOR | T_NUM_STRING | T_OBJECT_CAST | T_OBJECT_OPERATOR | T_OLD_FUNCTION | T_OPEN_TAG | T_OPEN_TAG_WITH_ECHO | T_OR_EQUAL | T_PAAMAYIM_NEKUDOTAYIM | T_PLUS_EQUAL | T_PRINT | T_PRIVATE | T_PROTECTED | T_PUBLIC | T_REQUIRE | T_REQUIRE_ONCE | T_RETURN | T_SL | T_SL_EQUAL | T_SR | T_SR_EQUAL | T_START_HEREDOC | T_STATIC | T_STRING | T_STRING_CAST | T_STRING_VARNAME | T_SWITCH | T_THROW | T_TRY | T_UNSET | T_UNSET_CAST | T_USE | T_VAR | T_VARIABLE | T_WHILE | T_WHITESPACE | T_XOR_EQUAL )\b scope: support.constant.parser-token.php captures: 1: punctuation.separator.namespace.php # In PHP, any identifier which is not a variable is taken to be a constant. # However, if there is no constant defined with the given name then a notice # is generated and the constant is assumed to have the value of its name. - match: '{{identifier}}' scope: constant.other.php function-call: # Functions in a user-defined namespace should only be highlighted as user, # any built-in function names should not be highlighted specially - match: '(?={{path}}\\{{identifier}}\s*\()' push: - meta_scope: meta.function-call.php - meta_content_scope: meta.path.php - include: identifier-parts - match: '{{identifier}}(?=\s*\()' scope: variable.function.php set: function-call-parameters - match: (?i)\b(print|echo)\b scope: support.function.construct.php # Root namespace function calls may be a built-in or user - match: '(\\)?(?={{identifier}}\s*\()' captures: 1: punctuation.separator.namespace.php push: - meta_scope: meta.function-call.php - match: (?=\s*\() set: function-call-parameters - match: (?i)\b(isset|unset|e(val|mpty)|list)\b scope: support.function.construct.php - include: support - match: '{{identifier}}' scope: variable.function.php function-call-static: - match: (::)(?={{identifier}}\s*\() captures: 1: punctuation.accessor.double-colon.php push: - meta_scope: meta.function-call.static.php - match: (?=\s*\() set: function-call-parameters - match: '{{identifier}}' scope: variable.function.php function-call-parameters: - match: \s*(\() scope: meta.function-call.php captures: 1: meta.group.php punctuation.section.group.begin.php set: - meta_content_scope: meta.function-call.php meta.group.php - match: \) scope: meta.function-call.php meta.group.php punctuation.section.group.end.php set: after-function-call - match: ',' scope: punctuation.separator.php - include: expressions heredoc: - match: (?=<<<\s*'?({{identifier}})'?\s*$) push: - match: ^\s*(\1)\b(?:(;)(\s*$\n?))? captures: 1: punctuation.section.embedded.end.php keyword.operator.heredoc.php 2: punctuation.terminator.expression.php 3: meta.heredoc-end.php pop: true - match: <<<\s*(HTML)\s*$\n? scope: punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php embed: heredoc-html embed_scope: meta.embedded.html text.html escape: (?=^\s*HTML\b) - match: <<<\s*('HTML')\s*$\n? scope: meta.embedded.html punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php embed: scope:text.html.basic embed_scope: meta.embedded.html text.html escape: (?=^\s*HTML\b) - match: <<<\s*(XML)\s*$\n? scope: punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php embed: heredoc-xml embed_scope: meta.embedded.xml text.xml escape: (?=^\s*XML\b) - match: <<<\s*('XML')\s*$\n? scope: meta.embedded.xml punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php embed: scope:text.xml embed_scope: meta.embedded.xml text.xml escape: (?=^\s*XML\b) - match: <<<\s*(SQL)\s*$\n? scope: punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php embed: heredoc-sql embed_scope: meta.embedded.sql source.sql escape: (?=^\s*SQL\b) - match: <<<\s*('SQL')\s*$\n? scope: meta.embedded.sql punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php embed: scope:source.sql embed_scope: meta.embedded.sql source.sql escape: (?=^\s*SQL\b) - match: <<<\s*(JAVASCRIPT)\s*$\n? scope: punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php embed: heredoc-javascript embed_scope: meta.embedded.js source.js escape: (?=^\s*JAVASCRIPT\b) - match: <<<\s*('JAVASCRIPT')\s*$\n? scope: meta.embedded.js punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php embed: scope:source.js embed_scope: meta.embedded.js source.js escape: (?=^\s*JAVASCRIPT\b) - match: (<<<)\s*(JSON)\s*$\n? scope: punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php embed: heredoc-json embed_scope: meta.embedded.json source.json escape: (?=^\s*JSON\b) - match: (<<<)\s*('JSON')\s*$\n? scope: meta.embedded.json punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php embed: scope:source.json embed_scope: meta.embedded.json source.json escape: (?=^\s*JSON\b) - match: <<<\s*(CSS)\s*$\n? scope: punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php embed: heredoc-css embed_scope: meta.embedded.css source.css escape: (?=^\s*CSS\b) - match: <<<\s*('CSS')\s*$\n? scope: meta.embedded.css punctuation.section.embedded.begin.php punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php embed: scope:source.css embed_scope: meta.embedded.css source.css escape: (?=^\s*CSS\b) - match: '<<<\s*({{identifier}})' scope: punctuation.definition.string.php captures: 1: keyword.operator.heredoc.php push: - meta_scope: string.unquoted.heredoc.php - match: (?=^\s*\1\b) pop: true - include: interpolation - match: <<<\s*('({{identifier}})') scope: punctuation.definition.string.php captures: 1: keyword.operator.nowdoc.php push: - meta_scope: string.unquoted.nowdoc.php - match: (?=^\s*\2\b) pop: true heredoc-html: - meta_include_prototype: false - match: '' push: scope:text.html.basic with_prototype: - include: interpolation heredoc-xml: - meta_include_prototype: false - match: '' push: scope:text.xml with_prototype: - include: interpolation heredoc-sql: - meta_include_prototype: false - match: '' push: scope:source.sql with_prototype: - include: interpolation heredoc-javascript: - meta_include_prototype: false - match: '' push: scope:source.js with_prototype: - include: interpolation heredoc-json: - meta_include_prototype: false - match: '' push: scope:source.json with_prototype: - include: interpolation heredoc-css: - meta_include_prototype: false - match: '' push: scope:source.css with_prototype: - include: interpolation instantiation: # anonymous class ( http://php.net/manual/en/language.oop5.anonymous.php ) - match: '(?i)(new)\s+(class)\b\s*' captures: 1: keyword.other.new.php 2: storage.type.class.php push: - match: (?=\() push: function-call-parameters - match: '' set: class-definition - match: (?i)(new)\s+ captures: 1: keyword.other.new.php push: - match: '(?=[^[:alnum:]$_\\])' pop: true - match: '(parent|static|self)\b' scope: variable.language.php - include: class-name - include: variables interpolation: - match: '\\[0-7]{1,3}' scope: constant.character.escape.octal.php - match: '\\x[0-9A-Fa-f]{1,2}' scope: constant.character.escape.hex.php - match: '\\u\{[0-9A-Fa-f]+\}' scope: constant.character.escape.unicodepoint.php - match: '\\[nrt\\\$\"]' scope: constant.character.escape.php - match: '(\{)(?=\$.*?\})' captures: 1: punctuation.definition.expression.php push: - match: '(\})' captures: 1: punctuation.definition.expression.php pop: true - include: expressions # Handles: "foo${bar}baz" - match: '(\$\{){{identifier}}(\})' scope: variable.other.php captures: 1: punctuation.definition.variable.php 2: punctuation.definition.variable.php - match: '(\$\{)(?=.*?\})' captures: 1: punctuation.definition.variable.php push: - match: '(\})' captures: 1: punctuation.definition.variable.php pop: true - include: expressions # Handles: $foo, $foo[0], $foo[$bar], $foo->bar - match: |- (?x: (?= \${{identifier}} (?: ->{{identifier}} | \[ ( \d+ | \$?{{identifier}} ) \] ) ) ) push: - match: (->)({{identifier}}) captures: 1: punctuation.accessor.arrow.php 2: variable.other.member.php pop: true - match: '\[' scope: meta.item-access.php punctuation.section.brackets.begin.php set: - meta_content_scope: meta.item-access.arguments.php - match: '\]' scope: meta.item-access.php punctuation.section.brackets.end.php pop: true - include: numbers - include: variables - match: '{{identifier}}' scope: constant.other.php - include: variables-no-item-access - include: variables invoke-call: - match: '(\$+)({{identifier}})(?=\s*\()' scope: meta.function-call.invoke.php captures: 1: punctuation.definition.variable.php 2: variable.other.php push: function-call-parameters # Trailing underscores are allowed to prevent numbers from flickering while typing # The underscore is for PHP 7.4: https://wiki.php.net/rfc/numeric_literal_separator numbers: - match: '\b(0[bB])(?!_)([01]|_(?!_))*\b' scope: constant.numeric.integer.binary.php captures: 1: punctuation.definition.numeric.binary.php - match: '\b(0[xX])(?!_)(\h|_(?!_))*\b' scope: constant.numeric.integer.hexadecimal.php captures: 1: punctuation.definition.numeric.hexadecimal.php - match: |- (?x: (?: (?# such as 123.4 or .123) (?:\b(?!_)(?:\d|_(?!_))+|\B)\.(?!_)(?:\d|_(?!_))+ | (?# such as 123.) \b(?!_)(?:\d|_(?!_))+\. )(?:[eE][+-]?(?!_)(?:\d|_(?!_))+)?\b | (?# such as 123e-4) \b(?!_)(?:\d|_(?!_))+(?:[eE][+-]?(?!_)(?:\d|_(?!_))+)\b ) scope: constant.numeric.float.decimal.php - match: '\b(?!_)(?:\d|_(?!_))+\b' scope: constant.numeric.integer.decimal.php object: - match: '(->)(\$?\{)' captures: 1: punctuation.accessor.arrow.php 2: punctuation.definition.variable.php push: - match: '(\})' captures: 1: punctuation.definition.variable.php set: after-identifier - include: expressions - match: (->)({{identifier}})(?=\s*\() scope: meta.function-call.method.php captures: 1: punctuation.accessor.arrow.php 2: variable.function.php push: function-call-parameters - include: function-call-static - match: (->)((\$+)?{{identifier}})? captures: 1: punctuation.accessor.arrow.php 2: variable.other.member.php 3: punctuation.definition.variable.php push: after-identifier - match: '(::)({{identifier}})?' captures: 1: punctuation.accessor.double-colon.php 2: constant.other.class.php push: after-identifier parameter-default-types: - include: strings - include: numbers - include: string-backtick - include: variables - match: "=>" scope: keyword.operator.key.php - match: "=" scope: keyword.operator.assignment.php - match: '&(?=\s*\$)' scope: storage.modifier.reference.php - match: (array)\s*(\() captures: 1: support.function.construct.php 2: punctuation.section.array.begin.php push: - meta_scope: meta.array.php - match: \) scope: punctuation.section.array.end.php pop: true - include: parameter-default-types - include: instantiation - match: \s*(?={{path}}(::)({{identifier}})?) push: - match: '(::)({{identifier}})?' captures: 1: punctuation.accessor.double-colon.php 2: constant.other.class.php pop: true - include: class-name - include: constants php-doc: # If the next line doesn't start with whitespace then an asterisk, the use # is either writing an invalid phpdoc comment, or not using phpdoc. Instead # of marking the comment as invalid, we just switch to a normal block-level # comment. - match: ^(?!\s*\*) set: - meta_scope: comment.block.php - match: \*/ scope: punctuation.definition.comment.end.php pop: true - match: ^\s*(\*)\s*(@access)\s+((var|public|private|protected)|(.+))\s*$ captures: 1: punctuation.definition.comment.php 2: keyword.other.phpdoc.php 4: storage.modifier.php 5: invalid.illegal.wrong-access-type.phpdoc.php - match: ^\s*(\*)(?!/) captures: 1: punctuation.definition.comment.php - match: "((https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=&#]*[-@a-zA-Z0-9_~%+/=&#]" scope: markup.underline.link.php - match: (@xlink)\s+(.+)\s*$ captures: 1: keyword.other.phpdoc.php 2: markup.underline.link.php - match: \@(a(bstract|pi|uthor)|c(ategory|opyright)|example|global|i(nternal|gnore)|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|fi(nal|lesource)|property(-(read|write))?|method|source)\b scope: keyword.other.phpdoc.php - match: \{(@inheritdoc)\} captures: 1: keyword.other.phpdoc.php # Annotations from PHPUnit - match: \@(author|after(?:Class)?|backup(?:Globals|StaticAttributes)|before(?:Class)?|codeCoverageIgnore*|covers(?:DefaultClass|Nothing)?|dataProvider|depends|doesNotPerformAssertions|expectedException(?:Code|Message(?:RegExp)?)?|group|large|medium|preserveGlobalState|requires|run(TestsInSeparateProcesses|InSeparateProcess)|small|test(dox|With)?|ticket|uses)\b scope: keyword.other.phpunit.php - match: '\{(@(link)).+?\}' scope: meta.tag.inline.phpdoc.php captures: 1: keyword.other.phpdoc.php regex-double-quoted: - match: (?="/(\\.|[^"/])+/[eimsuxADJSUX]*") push: - meta_scope: meta.string.php string.quoted.double.php - match: (")(/) captures: 1: punctuation.definition.string.begin.php 2: punctuation.definition.string.regex-delimiter.begin.php - match: (/)([eimsuxADJSUX]*)(") captures: 1: punctuation.definition.string.regex-delimiter.end.php 2: meta.regex.modifier.php 3: punctuation.definition.string.end.php pop: true - match: '' push: scope:source.regexp.php with_prototype: - match: (?=(/)([eimsuxADJSUX]*)(")) pop: true - include: interpolation regex-single-quoted: - match: (?='/(\\.|[^'/])+/[eimsuxADJSUX]*') push: - meta_scope: meta.string.php string.quoted.single.php - match: (')(/) captures: 1: punctuation.definition.string.begin.php 2: punctuation.definition.string.regex-delimiter.begin.php - match: (/)([eimsuxADJSUX]*)(') captures: 1: punctuation.definition.string.regex-delimiter.end.php 2: meta.regex.modifier.php 3: punctuation.definition.string.end.php pop: true - match: '' embed: scope:source.regexp.php escape: (?=(/)([eimsuxADJSUX]*)(')) string-backtick: - match: "`" scope: punctuation.definition.string.begin.php push: - meta_scope: string.interpolated.php - match: "`" scope: punctuation.definition.string.end.php pop: true - match: \\. scope: constant.character.escape.php - include: interpolation string-double-quoted: - match: '"' scope: punctuation.definition.string.begin.php push: - meta_scope: string.quoted.double.php - meta_content_scope: meta.string-contents.quoted.double.php - match: '(?={{sql_indicator}})' set: - meta_scope: string.quoted.double.php - meta_content_scope: meta.string-contents.quoted.double.php - match: '"' scope: punctuation.definition.string.end.php pop: true - match: '' with_prototype: - match: '(?=")' pop: true - include: interpolation push: 'scope:source.sql' - match: '(?=\S)' set: - meta_scope: string.quoted.double.php - meta_content_scope: meta.string-contents.quoted.double.php - match: '"' scope: punctuation.definition.string.end.php pop: true - include: interpolation string-single-quoted: - match: "'" scope: punctuation.definition.string.begin.php push: - meta_scope: string.quoted.single.php - meta_content_scope: meta.string-contents.quoted.single.php - match: '(?={{sql_indicator}})' set: - meta_scope: string.quoted.single.php - meta_content_scope: meta.string-contents.quoted.single.php - match: "'" scope: punctuation.definition.string.end.php pop: true - match: '' with_prototype: - match: "(?=')" pop: true - match: '\\[\\'']' scope: constant.character.escape.php push: 'scope:source.sql' - match: '(?=\S)' set: - meta_scope: string.quoted.single.php - meta_content_scope: meta.string-contents.quoted.single.php - match: "'" scope: punctuation.definition.string.end.php pop: true - match: '\\[\\'']' scope: constant.character.escape.php strings: - include: regex-double-quoted - include: string-double-quoted - include: regex-single-quoted - include: string-single-quoted support: - match: |- \b(?xi: apc_add | apc_bin_dump | apc_bin_dumpfile | apc_bin_load | apc_bin_loadfile | apc_cache_info | apc_cas | apc_clear_cache | apc_compile_file | apc_dec | apc_define_constants | apc_delete | apc_delete_file | apc_exists | apc_fetch | apc_inc | apc_load_constants | apc_sma_info | apc_store )\b scope: support.function.apc.php - match: |- \b(?xi: array | array_change_key_case | array_chunk | array_column | array_combine | array_count_values | array_diff | array_diff_assoc | array_diff_key | array_diff_uassoc | array_diff_ukey | array_fill | array_fill_keys | array_filter | array_flip | array_intersect | array_intersect_assoc | array_intersect_key | array_intersect_uassoc | array_intersect_ukey | array_key_exists | array_keys | array_map | array_merge | array_merge_recursive | array_multisort | array_pad | array_pop | array_product | array_push | array_rand | array_reduce | array_replace | array_replace_recursive | array_reverse | array_search | array_shift | array_slice | array_splice | array_sum | array_udiff | array_udiff_assoc | array_udiff_uassoc | array_uintersect | array_uintersect_assoc | array_uintersect_uassoc | array_unique | array_unshift | array_values | array_walk | array_walk_recursive | arsort | asort | compact | count | current | each | end | extract | in_array | key | krsort | ksort | list | natcasesort | natsort | next | pos | prev | range | reset | rsort | shuffle | sizeof | sort | uasort | uksort | usort )\b scope: support.function.array.php - match: |- \b(?xi: __halt_compiler | connection_aborted | connection_status | connection_timeout | constant | define | defined | die | eval | exit | get_browser | highlight_file | highlight_string | ignore_user_abort | pack | php_check_syntax | php_strip_whitespace | show_source | sleep | sys_getloadavg | time_nanosleep | time_sleep_until | uniqid | unpack | usleep )\b scope: support.function.basic_functions.php - match: |- \b(?xi: bcadd | bccomp | bcdiv | bcmod | bcmul | bcpow | bcpowmod | bcscale | bcsqrt | bcsub )\b scope: support.function.bcmath.php - match: |- \b(?xi: bzclose | bzcompress | bzdecompress | bzerrno | bzerror | bzerrstr | bzflush | bzopen | bzread | bzwrite )\b scope: support.function.bz2.php - match: |- \b(?xi: FrenchToJD | GregorianToJD | JDDayOfWeek | JDMonthName | JDToFrench | JDToGregorian | JDToJulian | JewishToJD | JulianToJD | cal_days_in_month | cal_from_jd | cal_info | cal_to_jd | easter_date | easter_days | jdtojewish | jdtounix | unixtojd )\b scope: support.function.calendar.php - match: |- \b(?xi: call_user_method | call_user_method_array | class_alias | class_exists | get_called_class | get_class | get_class_methods | get_class_vars | get_declared_classes | get_declared_interfaces | get_object_vars | get_parent_class | interface_exists | is_a | is_subclass_of | method_exists | property_exists )\b scope: support.function.classobj.php - match: |- \b(?xi: com_addref | com_create_guid | com_event_sink | com_get | com_get_active_object | com_invoke | com_isenum | com_load | com_load_typelib | com_message_pump | com_print_typeinfo | com_propget | com_propput | com_propset | com_release | com_set | variant_abs | variant_add | variant_and | variant_cast | variant_cat | variant_cmp | variant_date_from_timestamp | variant_date_to_timestamp | variant_div | variant_eqv | variant_fix | variant_get_type | variant_idiv | variant_imp | variant_int | variant_mod | variant_mul | variant_neg | variant_not | variant_or | variant_pow | variant_round | variant_set | variant_set_type | variant_sub | variant_xor )\b scope: support.function.com.php - match: |- \b(?xi: random_bytes | random_int )\b scope: support.function.csprng.php - match: |- \b(?xi: ctype_alnum | ctype_alpha | ctype_cntrl | ctype_digit | ctype_graph | ctype_lower | ctype_print | ctype_punct | ctype_space | ctype_upper | ctype_xdigit )\b scope: support.function.ctype.php - match: |- \b(?xi: curl_close | curl_copy_handle | curl_errno | curl_error | curl_exec | curl_getinfo | curl_init | curl_multi_add_handle | curl_multi_close | curl_multi_exec | curl_multi_getcontent | curl_multi_info_read | curl_multi_init | curl_multi_remove_handle | curl_multi_select | curl_setopt | curl_setopt_array | curl_version )\b scope: support.function.curl.php - match: |- \b(?xi: checkdate | date | date_add | date_create | date_create_from_format | date_date_set | date_default_timezone_get | date_default_timezone_set | date_diff | date_format | date_get_last_errors | date_interval_create_from_date_string | date_interval_format | date_isodate_set | date_modify | date_offset_get | date_parse | date_parse_from_format | date_sub | date_sun_info | date_sunrise | date_sunset | date_time_set | date_timestamp_get | date_timestamp_set | date_timezone_get | date_timezone_set | getdate | gettimeofday | gmdate | gmmktime | gmstrftime | hrtime | idate | localtime | microtime | mktime | strftime | strptime | strtotime | time | timezone_abbreviations_list | timezone_identifiers_list | timezone_location_get | timezone_name_from_abbr | timezone_name_get | timezone_offset_get | timezone_open | timezone_transitions_get | timezone_version_get )\b scope: support.function.datetime.php - match: |- \b(?xi: dba_close | dba_delete | dba_exists | dba_fetch | dba_firstkey | dba_handlers | dba_insert | dba_key_split | dba_list | dba_nextkey | dba_open | dba_optimize | dba_popen | dba_replace | dba_sync )\b scope: support.function.dba.php - match: |- \b(?xi: dbx_close | dbx_compare | dbx_connect | dbx_error | dbx_escape_string | dbx_fetch_row | dbx_query | dbx_sort )\b scope: support.function.dbx.php - match: |- \b(?xi: chdir | chroot | closedir | dir | getcwd | opendir | readdir | rewinddir | scandir )\b scope: support.function.dir.php - match: |- \b(?xi: domxml_new_doc | domxml_open_file | domxml_open_mem | domxml_version | domxml_xmltree | domxml_xslt_stylesheet | domxml_xslt_stylesheet_doc | domxml_xslt_stylesheet_file | domxml_xslt_version | xpath_eval | xpath_eval_expression | xpath_new_context | xpath_register_ns | xpath_register_ns_auto | xptr_eval | xptr_new_context )\b scope: support.function.domxml.php - match: |- \b(?xi: dotnet_load )\b scope: support.function.dotnet.php - match: |- \b(?xi: enchant_broker_describe | enchant_broker_dict_exists | enchant_broker_free | enchant_broker_free_dict | enchant_broker_get_error | enchant_broker_init | enchant_broker_list_dicts | enchant_broker_request_dict | enchant_broker_request_pwl_dict | enchant_broker_set_ordering | enchant_dict_add_to_personal | enchant_dict_add_to_session | enchant_dict_check | enchant_dict_describe | enchant_dict_get_error | enchant_dict_is_in_session | enchant_dict_quick_check | enchant_dict_store_replacement | enchant_dict_suggest )\b scope: support.function.enchant.php - match: |- \b(?xi: ereg | ereg_replace | eregi | eregi_replace | split | spliti | sql_regcase )\b scope: support.function.ereg.php - match: |- \b(?xi: debug_backtrace | debug_print_backtrace | error_clear_last | error_get_last | error_log | error_reporting | restore_error_handler | restore_exception_handler | set_error_handler | set_exception_handler | trigger_error | user_error )\b scope: support.function.errorfunc.php - match: |- \b(?xi: escapeshellarg | escapeshellcmd | exec | passthru | proc_close | proc_get_status | proc_nice | proc_open | proc_terminate | shell_exec | system )\b scope: support.function.exec.php - match: |- \b(?xi: exif_imagetype | exif_read_data | exif_tagname | exif_thumbnail | read_exif_data )\b scope: support.function.exif.php - match: |- \b(?xi: basename | chgrp | chmod | chown | clearstatcache | copy | delete | dirname | disk_free_space | disk_total_space | diskfreespace | fclose | feof | fflush | fgetc | fgetcsv | fgets | fgetss | file | file_exists | file_get_contents | file_put_contents | fileatime | filectime | filegroup | fileinode | filemtime | fileowner | fileperms | filesize | filetype | flock | fnmatch | fopen | fpassthru | fputcsv | fputs | fread | fscanf | fseek | fstat | ftell | ftruncate | fwrite | glob | is_dir | is_executable | is_file | is_link | is_readable | is_uploaded_file | is_writable | is_writeable | lchgrp | lchown | link | linkinfo | lstat | mkdir | move_uploaded_file | parse_ini_file | parse_ini_string | pathinfo | pclose | popen | readfile | readlink | realpath | realpath_cache_get | realpath_cache_size | rename | rewind | rmdir | set_file_buffer | stat | symlink | tempnam | tmpfile | touch | umask | unlink )\b scope: support.function.file.php - match: |- \b(?xi: finfo_buffer | finfo_close | finfo_file | finfo_open | finfo_set_flags | mime_content_type )\b scope: support.function.fileinfo.php - match: |- \b(?xi: filter_has_var | filter_id | filter_input | filter_input_array | filter_list | filter_var | filter_var_array )\b scope: support.function.filter.php - match: |- \b(?xi: call_user_func | call_user_func_array | create_function | forward_static_call | forward_static_call_array | func_get_arg | func_get_args | func_num_args | function_exists | get_defined_functions | register_shutdown_function | register_tick_function | unregister_tick_function )\b scope: support.function.funchand.php - match: |- \b(?xi: bind_textdomain_codeset | bindtextdomain | dcgettext | dcngettext | dgettext | dngettext | gettext | ngettext | textdomain )\b scope: support.function.gettext.php - match: |- \b(?xi: gmp_abs | gmp_add | gmp_and | gmp_binomial | gmp_clrbit | gmp_cmp | gmp_com | gmp_div | gmp_fact | gmp_gcd | gmp_gcdext | gmp_hamdist | gmp_init | gmp_intval | gmp_invert | gmp_jacobi | gmp_kronecker | gmp_kronecker_q | gmp_kronecker_qr | gmp_kronecker_r | gmp_kroneckerexact | gmp_lcm | gmp_legendre | gmp_mod | gmp_mul | gmp_neg | gmp_nextprime | gmp_or | gmp_perfect_power | gmp_perfect_square | gmp_popcount | gmp_pow | gmp_powm | gmp_prob_prime | gmp_random | gmp_scan0 | gmp_scan1 | gmp_setbit | gmp_sign | gmp_sqrt | gmp_sqrtrem | gmp_strval | gmp_sub | gmp_testbit | gmp_xor )\b scope: support.function.gmp.php - match: |- \b(?xi: hash | hash_algos | hash_copy | hash_file | hash_final | hash_hkdf | hash_hmac | hash_hmac_file | hash_init | hash_update | hash_update_file | hash_update_stream )\b scope: support.function.hash.php - match: |- \b(?xi: http_build_cookie | http_build_str | http_build_url | http_cache_etag | http_cache_last_modified | http_chunked_decode | http_date | http_deflate | http_get | http_get_request_body | http_get_request_body_stream | http_get_request_headers | http_head | http_inflate | http_match_etag | http_match_modified | http_match_request_header | http_negotiate_charset | http_negotiate_content_type | http_negotiate_language | http_parse_cookie | http_parse_headers | http_parse_message | http_parse_params | http_persistent_handles_clean | http_persistent_handles_count | http_persistent_handles_ident | http_post_data | http_post_fields | http_put_data | http_put_file | http_put_stream | http_redirect | http_request | http_request_body_encode | http_request_method_exists | http_request_method_name | http_request_method_register | http_request_method_unregister | http_response_code | http_send_content_disposition | http_send_content_type | http_send_data | http_send_file | http_send_last_modified | http_send_status | http_send_stream | http_support | http_throttle | ob_deflatehandler | ob_etaghandler | ob_inflatehandler )\b scope: support.function.http.php - match: |- \b(?xi: iconv | iconv_get_encoding | iconv_mime_decode | iconv_mime_decode_headers | iconv_mime_encode | iconv_set_encoding | iconv_strlen | iconv_strpos | iconv_strrpos | iconv_substr | ob_iconv_handler )\b scope: support.function.iconv.php - match: |- \b(?xi: iis_add_server | iis_get_dir_security | iis_get_script_map | iis_get_server_by_comment | iis_get_server_by_path | iis_get_server_rights | iis_get_service_state | iis_remove_server | iis_set_app_settings | iis_set_dir_security | iis_set_script_map | iis_set_server_rights | iis_start_server | iis_start_service | iis_stop_server | iis_stop_service )\b scope: support.function.iisfunc.php - match: |- \b(?xi: gd_info | getimagesize | image2wbmp | image_type_to_extension | image_type_to_mime_type | imagealphablending | imageantialias | imagearc | imagechar | imagecharup | imagecolorallocate | imagecolorallocatealpha | imagecolorat | imagecolorclosest | imagecolorclosestalpha | imagecolorclosesthwb | imagecolordeallocate | imagecolorexact | imagecolorexactalpha | imagecolormatch | imagecolorresolve | imagecolorresolvealpha | imagecolorset | imagecolorsforindex | imagecolorstotal | imagecolortransparent | imageconvolution | imagecopy | imagecopymerge | imagecopymergegray | imagecopyresampled | imagecopyresized | imagecreate | imagecreatefromgd | imagecreatefromgd2 | imagecreatefromgd2part | imagecreatefromgif | imagecreatefromjpeg | imagecreatefrompng | imagecreatefromstring | imagecreatefromwbmp | imagecreatefromxbm | imagecreatefromxpm | imagecreatetruecolor | imagedashedline | imagedestroy | imageellipse | imagefill | imagefilledarc | imagefilledellipse | imagefilledpolygon | imagefilledrectangle | imagefilltoborder | imagefilter | imagefontheight | imagefontwidth | imageftbbox | imagefttext | imagegammacorrect | imagegd | imagegd2 | imagegif | imagegrabscreen | imagegrabwindow | imageinterlace | imageistruecolor | imagejpeg | imagelayereffect | imageline | imageloadfont | imagepalettecopy | imagepng | imagepolygon | imagepsbbox | imagepsencodefont | imagepsextendfont | imagepsfreefont | imagepsloadfont | imagepsslantfont | imagepstext | imagerectangle | imagerotate | imagesavealpha | imagesetbrush | imagesetpixel | imagesetstyle | imagesetthickness | imagesettile | imagestring | imagestringup | imagesx | imagesy | imagetruecolortopalette | imagettfbbox | imagettftext | imagetypes | imagewbmp | imagexbm | iptcembed | iptcparse | jpeg2wbmp | png2wbmp )\b scope: support.function.image.php - match: |- \b(?xi: assert | assert_options | dl | extension_loaded | gc_collect_cycles | gc_disable | gc_enable | gc_enabled | get_cfg_var | get_current_user | get_defined_constants | get_extension_funcs | get_include_path | get_included_files | get_loaded_extensions | get_magic_quotes_gpc | get_magic_quotes_runtime | get_required_files | getenv | getlastmod | getmygid | getmyinode | getmypid | getmyuid | getopt | getrusage | ini_alter | ini_get | ini_get_all | ini_restore | ini_set | magic_quotes_runtime | main | memory_get_peak_usage | memory_get_usage | php_ini_loaded_file | php_ini_scanned_files | php_logo_guid | php_sapi_name | php_uname | phpcredits | phpinfo | phpversion | putenv | restore_include_path | set_include_path | set_magic_quotes_runtime | set_time_limit | sys_get_temp_dir | version_compare | zend_logo_guid | zend_thread_id | zend_version )\b scope: support.function.info.php - match: |- \b(?xi: ibase_add_user | ibase_affected_rows | ibase_backup | ibase_blob_add | ibase_blob_cancel | ibase_blob_close | ibase_blob_create | ibase_blob_echo | ibase_blob_get | ibase_blob_import | ibase_blob_info | ibase_blob_open | ibase_close | ibase_commit | ibase_commit_ret | ibase_connect | ibase_db_info | ibase_delete_user | ibase_drop_db | ibase_errcode | ibase_errmsg | ibase_execute | ibase_fetch_assoc | ibase_fetch_object | ibase_fetch_row | ibase_field_info | ibase_free_event_handler | ibase_free_query | ibase_free_result | ibase_gen_id | ibase_maintain_db | ibase_modify_user | ibase_name_result | ibase_num_fields | ibase_num_params | ibase_param_info | ibase_pconnect | ibase_prepare | ibase_query | ibase_restore | ibase_rollback | ibase_rollback_ret | ibase_server_info | ibase_service_attach | ibase_service_detach | ibase_set_event_handler | ibase_timefmt | ibase_trans | ibase_wait_event )\b scope: support.function.interbase.php - match: |- \b(?xi: collator_asort | collator_compare | collator_create | collator_get_attribute | collator_get_error_code | collator_get_error_message | collator_get_locale | collator_get_sort_key | collator_get_strength | collator_set_attribute | collator_set_strength | collator_sort | collator_sort_with_sort_keys | datefmt_create | datefmt_format | datefmt_get_calendar | datefmt_get_datetype | datefmt_get_error_code | datefmt_get_error_message | datefmt_get_locale | datefmt_get_pattern | datefmt_get_timetype | datefmt_get_timezone_id | datefmt_is_lenient | datefmt_localtime | datefmt_parse | datefmt_set_calendar | datefmt_set_lenient | datefmt_set_pattern | datefmt_set_timezone_id | grapheme_extract | grapheme_stripos | grapheme_stristr | grapheme_strlen | grapheme_strpos | grapheme_strripos | grapheme_strrpos | grapheme_strstr | grapheme_substr | idn_to_ascii | idn_to_unicode | idn_to_utf8 | intl_error_name | intl_get_error_code | intl_get_error_message | intl_is_failure | locale_accept_from_http | locale_compose | locale_filter_matches | locale_get_all_variants | locale_get_default | locale_get_display_language | locale_get_display_name | locale_get_display_region | locale_get_display_script | locale_get_display_variant | locale_get_keywords | locale_get_primary_language | locale_get_region | locale_get_script | locale_lookup | locale_parse | locale_set_default | msgfmt_create | msgfmt_format | msgfmt_format_message | msgfmt_get_error_code | msgfmt_get_error_message | msgfmt_get_locale | msgfmt_get_pattern | msgfmt_parse | msgfmt_parse_message | msgfmt_set_pattern | normalizer_is_normalized | normalizer_normalize | numfmt_create | numfmt_format | numfmt_format_currency | numfmt_get_attribute | numfmt_get_error_code | numfmt_get_error_message | numfmt_get_locale | numfmt_get_pattern | numfmt_get_symbol | numfmt_get_text_attribute | numfmt_parse | numfmt_parse_currency | numfmt_set_attribute | numfmt_set_pattern | numfmt_set_symbol | numfmt_set_text_attribute | resourcebundle_count | resourcebundle_create | resourcebundle_get | resourcebundle_get_error_code | resourcebundle_get_error_message | resourcebundle_locales | transliterator_create | transliterator_create_from_rules | transliterator_create_inverse | transliterator_get_error_code | transliterator_get_error_message | transliterator_list_ids | transliterator_transliterate )\b scope: support.function.intl.php - match: |- \b(?xi: json_decode | json_encode | json_last_error )\b scope: support.function.json.php - match: |- \b(?xi: ldap_8859_to_t61 | ldap_add | ldap_bind | ldap_close | ldap_compare | ldap_connect | ldap_count_entries | ldap_delete | ldap_dn2ufn | ldap_err2str | ldap_errno | ldap_error | ldap_explode_dn | ldap_first_attribute | ldap_first_entry | ldap_first_reference | ldap_free_result | ldap_get_attributes | ldap_get_dn | ldap_get_entries | ldap_get_option | ldap_get_values | ldap_get_values_len | ldap_list | ldap_mod_add | ldap_mod_del | ldap_mod_replace | ldap_modify | ldap_next_attribute | ldap_next_entry | ldap_next_reference | ldap_parse_reference | ldap_parse_result | ldap_read | ldap_rename | ldap_sasl_bind | ldap_search | ldap_set_option | ldap_set_rebind_proc | ldap_sort | ldap_start_tls | ldap_t61_to_8859 | ldap_unbind )\b scope: support.function.ldap.php - match: |- \b(?xi: libxml_clear_errors | libxml_disable_entity_loader | libxml_get_errors | libxml_get_last_error | libxml_set_streams_context | libxml_use_internal_errors )\b scope: support.function.libxml.php - match: |- \b(?xi: ezmlm_hash | mail )\b scope: support.function.mail.php - match: |- \b(?xi: abs | acos | acosh | asin | asinh | atan | atan2 | atanh | base_convert | bindec | ceil | cos | cosh | decbin | dechex | decoct | deg2rad | exp | expm1 | floor | fmod | getrandmax | hexdec | hypot | intdiv | is_finite | is_infinite | is_nan | lcg_value | log | log10 | log1p | max | min | mt_getrandmax | mt_rand | mt_srand | octdec | pi | pow | rad2deg | rand | round | sin | sinh | sqrt | srand | tan | tanh )\b scope: support.function.math.php - match: |- \b(?xi: mb_check_encoding | mb_convert_case | mb_convert_encoding | mb_convert_kana | mb_convert_variables | mb_decode_mimeheader | mb_decode_numericentity | mb_detect_encoding | mb_detect_order | mb_encode_mimeheader | mb_encode_numericentity | mb_encoding_aliases | mb_ereg | mb_ereg_match | mb_ereg_replace | mb_ereg_search | mb_ereg_search_getpos | mb_ereg_search_getregs | mb_ereg_search_init | mb_ereg_search_pos | mb_ereg_search_regs | mb_ereg_search_setpos | mb_eregi | mb_eregi_replace | mb_get_info | mb_http_input | mb_http_output | mb_internal_encoding | mb_language | mb_list_encodings | mb_output_handler | mb_parse_str | mb_preferred_mime_name | mb_regex_encoding | mb_regex_set_options | mb_send_mail | mb_split | mb_strcut | mb_strimwidth | mb_stripos | mb_stristr | mb_strlen | mb_strpos | mb_strrchr | mb_strrichr | mb_strripos | mb_strrpos | mb_strstr | mb_strtolower | mb_strtoupper | mb_strwidth | mb_substitute_character | mb_substr | mb_substr_count )\b scope: support.function.mbstring.php - match: |- \b(?xi: mcrypt_cbc | mcrypt_cfb | mcrypt_create_iv | mcrypt_decrypt | mcrypt_ecb | mcrypt_enc_get_algorithms_name | mcrypt_enc_get_block_size | mcrypt_enc_get_iv_size | mcrypt_enc_get_key_size | mcrypt_enc_get_modes_name | mcrypt_enc_get_supported_key_sizes | mcrypt_enc_is_block_algorithm | mcrypt_enc_is_block_algorithm_mode | mcrypt_enc_is_block_mode | mcrypt_enc_self_test | mcrypt_encrypt | mcrypt_generic | mcrypt_generic_deinit | mcrypt_generic_end | mcrypt_generic_init | mcrypt_get_block_size | mcrypt_get_cipher_name | mcrypt_get_iv_size | mcrypt_get_key_size | mcrypt_list_algorithms | mcrypt_list_modes | mcrypt_module_close | mcrypt_module_get_algo_block_size | mcrypt_module_get_algo_key_size | mcrypt_module_get_supported_key_sizes | mcrypt_module_is_block_algorithm | mcrypt_module_is_block_algorithm_mode | mcrypt_module_is_block_mode | mcrypt_module_open | mcrypt_module_self_test | mcrypt_ofb | mdecrypt_generic )\b scope: support.function.mcrypt.php - match: |- \b(?xi: memcache_debug )\b scope: support.function.memcache.php - match: |- \b(?xi: mhash | mhash_count | mhash_get_block_size | mhash_get_hash_name | mhash_keygen_s2k )\b scope: support.function.mhash.php - match: |- \b(?xi: bson_decode | bson_encode )\b scope: support.function.mongo.php - match: |- \b(?xi: mysql_affected_rows | mysql_client_encoding | mysql_close | mysql_connect | mysql_create_db | mysql_data_seek | mysql_db_name | mysql_db_query | mysql_drop_db | mysql_errno | mysql_error | mysql_escape_string | mysql_fetch_array | mysql_fetch_assoc | mysql_fetch_field | mysql_fetch_lengths | mysql_fetch_object | mysql_fetch_row | mysql_field_flags | mysql_field_len | mysql_field_name | mysql_field_seek | mysql_field_table | mysql_field_type | mysql_free_result | mysql_get_client_info | mysql_get_host_info | mysql_get_proto_info | mysql_get_server_info | mysql_info | mysql_insert_id | mysql_list_dbs | mysql_list_fields | mysql_list_processes | mysql_list_tables | mysql_num_fields | mysql_num_rows | mysql_pconnect | mysql_ping | mysql_query | mysql_real_escape_string | mysql_result | mysql_select_db | mysql_set_charset | mysql_stat | mysql_tablename | mysql_thread_id | mysql_unbuffered_query )\b scope: support.function.mysql.php - match: |- \b(?xi: mysqli_affected_rows | mysqli_autocommit | mysqli_bind_param | mysqli_bind_result | mysqli_change_user | mysqli_character_set_name | mysqli_client_encoding | mysqli_close | mysqli_commit | mysqli_connect | mysqli_connect_errno | mysqli_connect_error | mysqli_data_seek | mysqli_debug | mysqli_disable_reads_from_master | mysqli_disable_rpl_parse | mysqli_dump_debug_info | mysqli_embedded_server_end | mysqli_embedded_server_start | mysqli_enable_reads_from_master | mysqli_enable_rpl_parse | mysqli_errno | mysqli_error | mysqli_escape_string | mysqli_execute | mysqli_fetch | mysqli_fetch_all | mysqli_fetch_array | mysqli_fetch_assoc | mysqli_fetch_field | mysqli_fetch_field_direct | mysqli_fetch_fields | mysqli_fetch_lengths | mysqli_fetch_object | mysqli_fetch_row | mysqli_field_count | mysqli_field_seek | mysqli_field_tell | mysqli_free_result | mysqli_get_cache_stats | mysqli_get_charset | mysqli_get_client_info | mysqli_get_client_stats | mysqli_get_client_version | mysqli_get_connection_stats | mysqli_get_host_info | mysqli_get_metadata | mysqli_get_proto_info | mysqli_get_server_info | mysqli_get_server_version | mysqli_get_warnings | mysqli_info | mysqli_init | mysqli_insert_id | mysqli_kill | mysqli_master_query | mysqli_more_results | mysqli_multi_query | mysqli_next_result | mysqli_num_fields | mysqli_num_rows | mysqli_options | mysqli_param_count | mysqli_ping | mysqli_poll | mysqli_prepare | mysqli_query | mysqli_real_connect | mysqli_real_escape_string | mysqli_real_query | mysqli_reap_async_query | mysqli_report | mysqli_rollback | mysqli_rpl_parse_enabled | mysqli_rpl_probe | mysqli_rpl_query_type | mysqli_select_db | mysqli_send_long_data | mysqli_send_query | mysqli_set_charset | mysqli_set_local_infile_default | mysqli_set_local_infile_handler | mysqli_set_opt | mysqli_slave_query | mysqli_sqlstate | mysqli_ssl_set | mysqli_stat | mysqli_stmt_affected_rows | mysqli_stmt_attr_get | mysqli_stmt_attr_set | mysqli_stmt_bind_param | mysqli_stmt_bind_result | mysqli_stmt_close | mysqli_stmt_data_seek | mysqli_stmt_errno | mysqli_stmt_error | mysqli_stmt_execute | mysqli_stmt_fetch | mysqli_stmt_field_count | mysqli_stmt_free_result | mysqli_stmt_get_result | mysqli_stmt_get_warnings | mysqli_stmt_init | mysqli_stmt_insert_id | mysqli_stmt_num_rows | mysqli_stmt_param_count | mysqli_stmt_prepare | mysqli_stmt_reset | mysqli_stmt_result_metadata | mysqli_stmt_send_long_data | mysqli_stmt_sqlstate | mysqli_stmt_store_result | mysqli_store_result | mysqli_thread_id | mysqli_thread_safe | mysqli_use_result | mysqli_warning_count )\b scope: support.function.mysqli.php - match: |- \b(?xi: mysqlnd_ms_get_stats | mysqlnd_ms_query_is_select | mysqlnd_ms_set_user_pick_server )\b scope: support.function.mysqlnd-ms.php - match: |- \b(?xi: mysqlnd_qc_change_handler | mysqlnd_qc_clear_cache | mysqlnd_qc_get_cache_info | mysqlnd_qc_get_core_stats | mysqlnd_qc_get_handler | mysqlnd_qc_get_query_trace_log | mysqlnd_qc_set_user_handlers )\b scope: support.function.mysqlnd-qc.php - match: |- \b(?xi: checkdnsrr | closelog | define_syslog_variables | dns_check_record | dns_get_mx | dns_get_record | fsockopen | gethostbyaddr | gethostbyname | gethostbynamel | gethostname | getmxrr | getprotobyname | getprotobynumber | getservbyname | getservbyport | header | header_remove | headers_list | headers_sent | inet_ntop | inet_pton | ip2long | long2ip | openlog | pfsockopen | setcookie | setrawcookie | socket_get_status | socket_set_blocking | socket_set_timeout | syslog )\b scope: support.function.network.php - match: |- \b(?xi: nsapi_request_headers | nsapi_response_headers | nsapi_virtual )\b scope: support.function.nsapi.php - match: |- \b(?xi: aggregate | aggregate_info | aggregate_methods | aggregate_methods_by_list | aggregate_methods_by_regexp | aggregate_properties | aggregate_properties_by_list | aggregate_properties_by_regexp | aggregation_info | deaggregate )\b scope: support.function.objaggregation.php - match: |- \b(?xi: oci_bind_array_by_name | oci_bind_by_name | oci_cancel | oci_client_version | oci_close | oci_commit | oci_connect | oci_define_by_name | oci_error | oci_execute | oci_fetch | oci_fetch_all | oci_fetch_array | oci_fetch_assoc | oci_fetch_object | oci_fetch_row | oci_field_is_null | oci_field_name | oci_field_precision | oci_field_scale | oci_field_size | oci_field_type | oci_field_type_raw | oci_free_statement | oci_internal_debug | oci_lob_copy | oci_lob_is_equal | oci_new_collection | oci_new_connect | oci_new_cursor | oci_new_descriptor | oci_num_fields | oci_num_rows | oci_parse | oci_password_change | oci_pconnect | oci_result | oci_rollback | oci_server_version | oci_set_action | oci_set_call_timeout | oci_set_client_identifier | oci_set_client_info | oci_set_db_operation | oci_set_edition | oci_set_module_name | oci_set_prefetch | oci_statement_type | ocibindbyname | ocicancel | ocicloselob | ocicollappend | ocicollassign | ocicollassignelem | ocicollgetelem | ocicollmax | ocicollsize | ocicolltrim | ocicolumnisnull | ocicolumnname | ocicolumnprecision | ocicolumnscale | ocicolumnsize | ocicolumntype | ocicolumntyperaw | ocicommit | ocidefinebyname | ocierror | ociexecute | ocifetch | ocifetchinto | ocifetchstatement | ocifreecollection | ocifreecursor | ocifreedesc | ocifreestatement | ociinternaldebug | ociloadlob | ocilogoff | ocilogon | ocinewcollection | ocinewcursor | ocinewdescriptor | ocinlogon | ocinumcols | ociparse | ociplogon | ociresult | ocirollback | ocirowcount | ocisavelob | ocisavelobfile | ociserverversion | ocisetprefetch | ocistatementtype | ociwritelobtofile | ociwritetemporarylob )\b scope: support.function.oci8.php - match: |- \b(?xi: openssl_cipher_iv_length | openssl_csr_export | openssl_csr_export_to_file | openssl_csr_get_public_key | openssl_csr_get_subject | openssl_csr_new | openssl_csr_sign | openssl_decrypt | openssl_dh_compute_key | openssl_digest | openssl_encrypt | openssl_error_string | openssl_free_key | openssl_get_cipher_methods | openssl_get_md_methods | openssl_get_privatekey | openssl_get_publickey | openssl_open | openssl_pkcs12_export | openssl_pkcs12_export_to_file | openssl_pkcs12_read | openssl_pkcs7_decrypt | openssl_pkcs7_encrypt | openssl_pkcs7_sign | openssl_pkcs7_verify | openssl_pkey_derive | openssl_pkey_export | openssl_pkey_export_to_file | openssl_pkey_free | openssl_pkey_get_details | openssl_pkey_get_private | openssl_pkey_get_public | openssl_pkey_new | openssl_private_decrypt | openssl_private_encrypt | openssl_public_decrypt | openssl_public_encrypt | openssl_random_pseudo_bytes | openssl_seal | openssl_sign | openssl_verify | openssl_x509_check_private_key | openssl_x509_checkpurpose | openssl_x509_export | openssl_x509_export_to_file | openssl_x509_free | openssl_x509_parse | openssl_x509_read )\b scope: support.function.openssl.php - match: |- \b(?xi: flush | ob_clean | ob_end_clean | ob_end_flush | ob_flush | ob_get_clean | ob_get_contents | ob_get_flush | ob_get_length | ob_get_level | ob_get_status | ob_gzhandler | ob_implicit_flush | ob_list_handlers | ob_start | output_add_rewrite_var | output_reset_rewrite_vars )\b scope: support.function.output.php - match: |- \b(?xi: overload )\b scope: support.function.overload.php - match: |- \b(?xi: pcntl_alarm | pcntl_exec | pcntl_fork | pcntl_getpriority | pcntl_setpriority | pcntl_signal | pcntl_signal_dispatch | pcntl_sigprocmask | pcntl_sigtimedwait | pcntl_sigwaitinfo | pcntl_wait | pcntl_waitpid | pcntl_wexitstatus | pcntl_wifexited | pcntl_wifsignaled | pcntl_wifstopped | pcntl_wstopsig | pcntl_wtermsig )\b scope: support.function.pcntl.php - match: |- \b(?xi: pg_affected_rows | pg_cancel_query | pg_client_encoding | pg_close | pg_connect | pg_connection_busy | pg_connection_reset | pg_connection_status | pg_convert | pg_copy_from | pg_copy_to | pg_dbname | pg_delete | pg_end_copy | pg_escape_bytea | pg_escape_string | pg_execute | pg_fetch_all | pg_fetch_all_columns | pg_fetch_array | pg_fetch_assoc | pg_fetch_object | pg_fetch_result | pg_fetch_row | pg_field_is_null | pg_field_name | pg_field_num | pg_field_prtlen | pg_field_size | pg_field_table | pg_field_type | pg_field_type_oid | pg_free_result | pg_get_notify | pg_get_pid | pg_get_result | pg_host | pg_insert | pg_last_error | pg_last_notice | pg_last_oid | pg_lo_close | pg_lo_create | pg_lo_export | pg_lo_import | pg_lo_open | pg_lo_read | pg_lo_read_all | pg_lo_seek | pg_lo_tell | pg_lo_unlink | pg_lo_write | pg_meta_data | pg_num_fields | pg_num_rows | pg_options | pg_parameter_status | pg_pconnect | pg_ping | pg_port | pg_prepare | pg_put_line | pg_query | pg_query_params | pg_result_error | pg_result_error_field | pg_result_seek | pg_result_status | pg_select | pg_send_execute | pg_send_prepare | pg_send_query | pg_send_query_params | pg_set_client_encoding | pg_set_error_verbosity | pg_trace | pg_transaction_status | pg_tty | pg_unescape_bytea | pg_untrace | pg_update | pg_version )\b scope: support.function.pgsql.php - match: |- \b(?xi: apache_child_terminate | apache_get_modules | apache_get_version | apache_getenv | apache_lookup_uri | apache_note | apache_request_headers | apache_reset_timeout | apache_response_headers | apache_setenv | getallheaders | virtual )\b scope: support.function.php_apache.php - match: |- \b(?xi: dom_import_simplexml )\b scope: support.function.php_dom.php - match: |- \b(?xi: ftp_alloc | ftp_cdup | ftp_chdir | ftp_chmod | ftp_close | ftp_connect | ftp_delete | ftp_exec | ftp_fget | ftp_fput | ftp_get | ftp_get_option | ftp_login | ftp_mdtm | ftp_mkdir | ftp_nb_continue | ftp_nb_fget | ftp_nb_fput | ftp_nb_get | ftp_nb_put | ftp_nlist | ftp_pasv | ftp_put | ftp_pwd | ftp_quit | ftp_raw | ftp_rawlist | ftp_rename | ftp_rmdir | ftp_set_option | ftp_site | ftp_size | ftp_ssl_connect | ftp_systype )\b scope: support.function.php_ftp.php - match: |- \b(?xi: imap_8bit | imap_alerts | imap_append | imap_base64 | imap_binary | imap_body | imap_bodystruct | imap_check | imap_clearflag_full | imap_close | imap_create | imap_createmailbox | imap_delete | imap_deletemailbox | imap_errors | imap_expunge | imap_fetch_overview | imap_fetchbody | imap_fetchheader | imap_fetchmime | imap_fetchstructure | imap_fetchtext | imap_gc | imap_get_quota | imap_get_quotaroot | imap_getacl | imap_getmailboxes | imap_getsubscribed | imap_header | imap_headerinfo | imap_headers | imap_last_error | imap_list | imap_listmailbox | imap_listscan | imap_listsubscribed | imap_lsub | imap_mail | imap_mail_compose | imap_mail_copy | imap_mail_move | imap_mailboxmsginfo | imap_mime_header_decode | imap_msgno | imap_num_msg | imap_num_recent | imap_open | imap_ping | imap_qprint | imap_rename | imap_renamemailbox | imap_reopen | imap_rfc822_parse_adrlist | imap_rfc822_parse_headers | imap_rfc822_write_address | imap_savebody | imap_scan | imap_scanmailbox | imap_search | imap_set_quota | imap_setacl | imap_setflag_full | imap_sort | imap_status | imap_subscribe | imap_thread | imap_timeout | imap_uid | imap_undelete | imap_unsubscribe | imap_utf7_decode | imap_utf7_encode | imap_utf8 )\b scope: support.function.php_imap.php - match: |- \b(?xi: mssql_bind | mssql_close | mssql_connect | mssql_data_seek | mssql_execute | mssql_fetch_array | mssql_fetch_assoc | mssql_fetch_batch | mssql_fetch_field | mssql_fetch_object | mssql_fetch_row | mssql_field_length | mssql_field_name | mssql_field_seek | mssql_field_type | mssql_free_result | mssql_free_statement | mssql_get_last_message | mssql_guid_string | mssql_init | mssql_min_error_severity | mssql_min_message_severity | mssql_next_result | mssql_num_fields | mssql_num_rows | mssql_pconnect | mssql_query | mssql_result | mssql_rows_affected | mssql_select_db )\b scope: support.function.php_mssql.php - match: |- \b(?xi: odbc_autocommit | odbc_binmode | odbc_close | odbc_close_all | odbc_columnprivileges | odbc_columns | odbc_commit | odbc_connect | odbc_cursor | odbc_data_source | odbc_do | odbc_error | odbc_errormsg | odbc_exec | odbc_execute | odbc_fetch_array | odbc_fetch_into | odbc_fetch_object | odbc_fetch_row | odbc_field_len | odbc_field_name | odbc_field_num | odbc_field_precision | odbc_field_scale | odbc_field_type | odbc_foreignkeys | odbc_free_result | odbc_gettypeinfo | odbc_longreadlen | odbc_next_result | odbc_num_fields | odbc_num_rows | odbc_pconnect | odbc_prepare | odbc_primarykeys | odbc_procedurecolumns | odbc_procedures | odbc_result | odbc_result_all | odbc_rollback | odbc_setoption | odbc_specialcolumns | odbc_statistics | odbc_tableprivileges | odbc_tables )\b scope: support.function.php_odbc.php - match: |- \b(?xi: preg_filter | preg_grep | preg_last_error | preg_match | preg_match_all | preg_quote | preg_replace | preg_replace_callback | preg_replace_callback_array | preg_split )\b scope: support.function.php_pcre.php - match: |- \b(?xi: class_implements | class_parents | iterator_apply | iterator_count | iterator_to_array | spl_autoload | spl_autoload_call | spl_autoload_extensions | spl_autoload_functions | spl_autoload_register | spl_autoload_unregister | spl_classes | spl_object_hash | spl_object_id )\b scope: support.function.php_spl.php - match: |- \b(?xi: zip_close | zip_entry_close | zip_entry_compressedsize | zip_entry_compressionmethod | zip_entry_filesize | zip_entry_name | zip_entry_open | zip_entry_read | zip_open | zip_read )\b scope: support.function.php_zip.php - match: |- \b(?xi: posix_access | posix_ctermid | posix_errno | posix_get_last_error | posix_getcwd | posix_getegid | posix_geteuid | posix_getgid | posix_getgrgid | posix_getgrnam | posix_getgroups | posix_getlogin | posix_getpgid | posix_getpgrp | posix_getpid | posix_getppid | posix_getpwnam | posix_getpwuid | posix_getrlimit | posix_getsid | posix_getuid | posix_initgroups | posix_isatty | posix_kill | posix_mkfifo | posix_mknod | posix_setegid | posix_seteuid | posix_setgid | posix_setpgid | posix_setsid | posix_setuid | posix_strerror | posix_times | posix_ttyname | posix_uname )\b scope: support.function.posix.php - match: |- \b(?xi: setproctitle | setthreadtitle )\b scope: support.function.proctitle.php - match: |- \b(?xi: pspell_add_to_personal | pspell_add_to_session | pspell_check | pspell_clear_session | pspell_config_create | pspell_config_data_dir | pspell_config_dict_dir | pspell_config_ignore | pspell_config_mode | pspell_config_personal | pspell_config_repl | pspell_config_runtogether | pspell_config_save_repl | pspell_new | pspell_new_config | pspell_new_personal | pspell_save_wordlist | pspell_store_replacement | pspell_suggest )\b scope: support.function.pspell.php - match: |- \b(?xi: readline | readline_add_history | readline_callback_handler_install | readline_callback_handler_remove | readline_callback_read_char | readline_clear_history | readline_completion_function | readline_info | readline_list_history | readline_on_new_line | readline_read_history | readline_redisplay | readline_write_history )\b scope: support.function.readline.php - match: |- \b(?xi: recode | recode_file | recode_string )\b scope: support.function.recode.php - match: |- \b(?xi: rrd_create | rrd_error | rrd_fetch | rrd_first | rrd_graph | rrd_info | rrd_last | rrd_lastupdate | rrd_restore | rrd_tune | rrd_update | rrd_xport )\b scope: support.function.rrd.php - match: |- \b(?xi: ftok | msg_get_queue | msg_queue_exists | msg_receive | msg_remove_queue | msg_send | msg_set_queue | msg_stat_queue | sem_acquire | sem_get | sem_release | sem_remove | shm_attach | shm_detach | shm_get_var | shm_has_var | shm_put_var | shm_remove | shm_remove_var )\b scope: support.function.sem.php - match: |- \b(?xi: session_cache_expire | session_cache_limiter | session_commit | session_decode | session_destroy | session_encode | session_get_cookie_params | session_id | session_is_registered | session_module_name | session_name | session_regenerate_id | session_register | session_save_path | session_set_cookie_params | session_set_save_handler | session_start | session_unregister | session_unset | session_write_close )\b scope: support.function.session.php - match: |- \b(?xi: shmop_close | shmop_delete | shmop_open | shmop_read | shmop_size | shmop_write )\b scope: support.function.shmop.php - match: |- \b(?xi: simplexml_import_dom | simplexml_load_file | simplexml_load_string )\b scope: support.function.simplexml.php - match: |- \b(?xi: snmp2_get | snmp2_getnext | snmp2_real_walk | snmp2_set | snmp2_walk | snmp3_get | snmp3_getnext | snmp3_real_walk | snmp3_set | snmp3_walk | snmp_get_quick_print | snmp_get_valueretrieval | snmp_read_mib | snmp_set_enum_print | snmp_set_oid_numeric_print | snmp_set_oid_output_format | snmp_set_quick_print | snmp_set_valueretrieval | snmpget | snmpgetnext | snmprealwalk | snmpset | snmpwalk | snmpwalkoid )\b scope: support.function.snmp.php - match: |- \b(?xi: is_soap_fault | use_soap_error_handler )\b scope: support.function.soap.php - match: |- \b(?xi: socket_accept | socket_bind | socket_clear_error | socket_close | socket_connect | socket_create | socket_create_listen | socket_create_pair | socket_export_stream | socket_get_option | socket_getpeername | socket_getsockname | socket_last_error | socket_listen | socket_read | socket_recv | socket_recvfrom | socket_select | socket_send | socket_sendto | socket_set_block | socket_set_nonblock | socket_set_option | socket_shutdown | socket_strerror | socket_write )\b scope: support.function.sockets.php - match: |- \b(?xi: sqlite_array_query | sqlite_busy_timeout | sqlite_changes | sqlite_close | sqlite_column | sqlite_create_aggregate | sqlite_create_function | sqlite_current | sqlite_error_string | sqlite_escape_string | sqlite_exec | sqlite_factory | sqlite_fetch_all | sqlite_fetch_array | sqlite_fetch_column_types | sqlite_fetch_object | sqlite_fetch_single | sqlite_fetch_string | sqlite_field_name | sqlite_has_more | sqlite_has_prev | sqlite_key | sqlite_last_error | sqlite_last_insert_rowid | sqlite_libencoding | sqlite_libversion | sqlite_next | sqlite_num_fields | sqlite_num_rows | sqlite_open | sqlite_popen | sqlite_prev | sqlite_query | sqlite_rewind | sqlite_seek | sqlite_single_query | sqlite_udf_decode_binary | sqlite_udf_encode_binary | sqlite_unbuffered_query | sqlite_valid )\b scope: support.function.sqlite.php - match: |- \b(?xi: stats_absolute_deviation | stats_cdf_beta | stats_cdf_binomial | stats_cdf_cauchy | stats_cdf_chisquare | stats_cdf_exponential | stats_cdf_f | stats_cdf_gamma | stats_cdf_laplace | stats_cdf_logistic | stats_cdf_negative_binomial | stats_cdf_noncentral_chisquare | stats_cdf_noncentral_f | stats_cdf_poisson | stats_cdf_t | stats_cdf_uniform | stats_cdf_weibull | stats_covariance | stats_den_uniform | stats_dens_beta | stats_dens_cauchy | stats_dens_chisquare | stats_dens_exponential | stats_dens_f | stats_dens_gamma | stats_dens_laplace | stats_dens_logistic | stats_dens_negative_binomial | stats_dens_normal | stats_dens_pmf_binomial | stats_dens_pmf_hypergeometric | stats_dens_pmf_poisson | stats_dens_t | stats_dens_weibull | stats_harmonic_mean | stats_kurtosis | stats_rand_gen_beta | stats_rand_gen_chisquare | stats_rand_gen_exponential | stats_rand_gen_f | stats_rand_gen_funiform | stats_rand_gen_gamma | stats_rand_gen_ibinomial | stats_rand_gen_ibinomial_negative | stats_rand_gen_int | stats_rand_gen_ipoisson | stats_rand_gen_iuniform | stats_rand_gen_noncenral_chisquare | stats_rand_gen_noncentral_f | stats_rand_gen_noncentral_t | stats_rand_gen_normal | stats_rand_gen_t | stats_rand_get_seeds | stats_rand_phrase_to_seeds | stats_rand_ranf | stats_rand_setall | stats_skew | stats_standard_deviation | stats_stat_binomial_coef | stats_stat_correlation | stats_stat_gennch | stats_stat_independent_t | stats_stat_innerproduct | stats_stat_noncentral_t | stats_stat_paired_t | stats_stat_percentile | stats_stat_powersum | stats_variance )\b scope: support.function.stats.php - match: |- \b(?xi: set_socket_blocking | stream_bucket_append | stream_bucket_make_writeable | stream_bucket_new | stream_bucket_prepend | stream_context_create | stream_context_get_default | stream_context_get_options | stream_context_get_params | stream_context_set_default | stream_context_set_option | stream_context_set_params | stream_copy_to_stream | stream_encoding | stream_filter_append | stream_filter_prepend | stream_filter_register | stream_filter_remove | stream_get_contents | stream_get_filters | stream_get_line | stream_get_meta_data | stream_get_transports | stream_get_wrappers | stream_is_local | stream_notification_callback | stream_register_wrapper | stream_resolve_include_path | stream_select | stream_set_blocking | stream_set_read_buffer | stream_set_timeout | stream_set_write_buffer | stream_socket_accept | stream_socket_client | stream_socket_enable_crypto | stream_socket_get_name | stream_socket_pair | stream_socket_recvfrom | stream_socket_sendto | stream_socket_server | stream_socket_shutdown | stream_supports_lock | stream_wrapper_register | stream_wrapper_restore | stream_wrapper_unregister )\b scope: support.function.streamsfuncs.php - match: |- \b(?xi: addcslashes | addslashes | bin2hex | chop | chr | chunk_split | convert_cyr_string | convert_uudecode | convert_uuencode | count_chars | crc32 | crypt | echo | explode | fprintf | get_html_translation_table | hebrev | hebrevc | html_entity_decode | htmlentities | htmlspecialchars | htmlspecialchars_decode | implode | join | lcfirst | levenshtein | localeconv | ltrim | md5 | md5_file | metaphone | money_format | nl2br | nl_langinfo | number_format | ord | parse_str | print | printf | quoted_printable_decode | quoted_printable_encode | quotemeta | rtrim | setlocale | sha1 | sha1_file | similar_text | soundex | sprintf | sscanf | str_getcsv | str_ireplace | str_pad | str_repeat | str_replace | str_rot13 | str_shuffle | str_split | str_word_count | strcasecmp | strchr | strcmp | strcoll | strcspn | strip_tags | stripcslashes | stripos | stripslashes | stristr | strlen | strnatcasecmp | strnatcmp | strncasecmp | strncmp | strpbrk | strpos | strrchr | strrev | strripos | strrpos | strspn | strstr | strtok | strtolower | strtoupper | strtr | substr | substr_compare | substr_count | substr_replace | trim | ucfirst | ucwords | vfprintf | vprintf | vsprintf | wordwrap )\b scope: support.function.string.php - match: |- \b(?xi: sybase_affected_rows | sybase_close | sybase_connect | sybase_data_seek | sybase_deadlock_retry_count | sybase_fetch_array | sybase_fetch_assoc | sybase_fetch_field | sybase_fetch_object | sybase_fetch_row | sybase_field_seek | sybase_free_result | sybase_get_last_message | sybase_min_client_severity | sybase_min_error_severity | sybase_min_message_severity | sybase_min_server_severity | sybase_num_fields | sybase_num_rows | sybase_pconnect | sybase_query | sybase_result | sybase_select_db | sybase_set_message_handler | sybase_unbuffered_query )\b scope: support.function.sybase.php - match: |- \b(?xi: ob_tidyhandler | tidy_access_count | tidy_clean_repair | tidy_config_count | tidy_diagnose | tidy_error_count | tidy_get_body | tidy_get_config | tidy_get_error_buffer | tidy_get_head | tidy_get_html | tidy_get_html_ver | tidy_get_opt_doc | tidy_get_output | tidy_get_release | tidy_get_root | tidy_get_status | tidy_getopt | tidy_is_xhtml | tidy_is_xml | tidy_load_config | tidy_parse_file | tidy_parse_string | tidy_repair_file | tidy_repair_string | tidy_reset_config | tidy_save_config | tidy_set_encoding | tidy_setopt | tidy_warning_count )\b scope: support.function.tidy.php - match: |- \b(?xi: token_get_all | token_name )\b scope: support.function.tokenizer.php - match: |- \b(?xi: base64_decode | base64_encode | get_headers | get_meta_tags | http_build_query | parse_url | rawurldecode | rawurlencode | urldecode | urlencode )\b scope: support.function.url.php - match: |- \b(?xi: boolval | debug_zval_dump | doubleval | empty | floatval | get_defined_vars | get_resource_type | gettype | import_request_variables | intval | is_array | is_bool | is_callable | is_countable | is_double | is_float | is_int | is_integer | is_iterable | is_long | is_null | is_numeric | is_object | is_real | is_resource | is_scalar | is_string | isset | print_r | serialize | settype | strval | unserialize | unset | var_dump | var_export )\b scope: support.function.var.php - match: |- \b(?xi: wddx_add_vars | wddx_deserialize | wddx_packet_end | wddx_packet_start | wddx_serialize_value | wddx_serialize_vars )\b scope: support.function.wddx.php - match: |- \b(?xi: xhprof_disable | xhprof_enable | xhprof_sample_disable | xhprof_sample_enable )\b scope: support.function.xhprof.php - match: |- \b(?xi: utf8_decode | utf8_encode | xml_error_string | xml_get_current_byte_index | xml_get_current_column_number | xml_get_current_line_number | xml_get_error_code | xml_parse | xml_parse_into_struct | xml_parser_create | xml_parser_create_ns | xml_parser_free | xml_parser_get_option | xml_parser_set_option | xml_set_character_data_handler | xml_set_default_handler | xml_set_element_handler | xml_set_end_namespace_decl_handler | xml_set_external_entity_ref_handler | xml_set_notation_decl_handler | xml_set_object | xml_set_processing_instruction_handler | xml_set_start_namespace_decl_handler | xml_set_unparsed_entity_decl_handler )\b scope: support.function.xml.php - match: |- \b(?xi: xmlrpc_decode | xmlrpc_decode_request | xmlrpc_encode | xmlrpc_encode_request | xmlrpc_get_type | xmlrpc_is_fault | xmlrpc_parse_method_descriptions | xmlrpc_server_add_introspection_data | xmlrpc_server_call_method | xmlrpc_server_create | xmlrpc_server_destroy | xmlrpc_server_register_introspection_callback | xmlrpc_server_register_method | xmlrpc_set_type )\b scope: support.function.xmlrpc.php - match: |- \b(?xi: xmlwriter_end_attribute | xmlwriter_end_cdata | xmlwriter_end_comment | xmlwriter_end_document | xmlwriter_end_dtd | xmlwriter_end_dtd_attlist | xmlwriter_end_dtd_element | xmlwriter_end_dtd_entity | xmlwriter_end_element | xmlwriter_end_pi | xmlwriter_flush | xmlwriter_full_end_element | xmlwriter_open_memory | xmlwriter_open_uri | xmlwriter_output_memory | xmlwriter_set_indent | xmlwriter_set_indent_string | xmlwriter_start_attribute | xmlwriter_start_attribute_ns | xmlwriter_start_cdata | xmlwriter_start_comment | xmlwriter_start_document | xmlwriter_start_dtd | xmlwriter_start_dtd_attlist | xmlwriter_start_dtd_element | xmlwriter_start_dtd_entity | xmlwriter_start_element | xmlwriter_start_element_ns | xmlwriter_start_pi | xmlwriter_text | xmlwriter_write_attribute | xmlwriter_write_attribute_ns | xmlwriter_write_cdata | xmlwriter_write_comment | xmlwriter_write_dtd | xmlwriter_write_dtd_attlist | xmlwriter_write_dtd_element | xmlwriter_write_dtd_entity | xmlwriter_write_element | xmlwriter_write_element_ns | xmlwriter_write_pi | xmlwriter_write_raw )\b scope: support.function.xmlwriter.php - match: |- \b(?xi: xslt_backend_info | xslt_backend_name | xslt_backend_version | xslt_create | xslt_errno | xslt_error | xslt_free | xslt_getopt | xslt_process | xslt_set_base | xslt_set_encoding | xslt_set_error_handler | xslt_set_log | xslt_set_object | xslt_set_sax_handler | xslt_set_sax_handlers | xslt_set_scheme_handler | xslt_set_scheme_handlers | xslt_setopt )\b scope: support.function.xslt.php - match: |- \b(?xi: gzclose | gzcompress | gzdecode | gzdeflate | gzencode | gzeof | gzfile | gzgetc | gzgets | gzgetss | gzinflate | gzopen | gzpassthru | gzputs | gzread | gzrewind | gzseek | gztell | gzuncompress | gzwrite | readgzfile | zlib_get_coding_type )\b scope: support.function.zlib.php - match: |- \b(?xi: is_int | is_integer )\b scope: support.function.alias.php variables: - match: (\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\b scope: variable.other.global.php captures: 1: punctuation.definition.variable.php push: after-identifier - match: (\$)((GLOBALS|_(ENV|SERVER|SESSION))) scope: variable.other.global.safer.php captures: 1: punctuation.definition.variable.php push: after-identifier - match: '(\$)this\b' scope: variable.language.php captures: 1: punctuation.definition.variable.php push: after-identifier - match: (\$+){{identifier}} scope: variable.other.php captures: 1: punctuation.definition.variable.php push: after-identifier variables-no-item-access: - match: (\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\b scope: variable.other.global.php captures: 1: punctuation.definition.variable.php - match: (\$)((GLOBALS|_(ENV|SERVER|SESSION))) scope: variable.other.global.safer.php captures: 1: punctuation.definition.variable.php - match: '(\$)this\b' scope: variable.language.php captures: 1: punctuation.definition.variable.php - match: (\$+){{identifier}} scope: variable.other.php captures: 1: punctuation.definition.variable.php identifier-parts: - match: (\\)?({{identifier}})(\\) captures: 1: punctuation.separator.namespace.php 2: support.other.namespace.php 3: punctuation.separator.namespace.php identifier-parts-as-path: - match: (\\)?({{identifier}})(\\) scope: meta.path.php captures: 1: punctuation.separator.namespace.php 2: support.other.namespace.php 3: punctuation.separator.namespace.php identifier-constant-pop: - match: '(?={{path}})' push: - meta_scope: meta.path.php - include: identifier-parts - match: '(\\)?({{identifier}})(?!\\)' captures: 1: punctuation.separator.namespace.php 2: constant.other.php set: after-identifier - match: '' pop: true