name: PHP firstLineMatch: ^#!.*php{0,1}b scopeName: source.php repository:
regex-single-quoted: name: string.regexp.single-quoted.php endCaptures: "0": name: punctuation.definition.string.end.php begin: (?x)'/ (?= (\\.|[^'/])++/[imsxeADSUXu]*' ) beginCaptures: "0": name: punctuation.definition.string.begin.php end: (/)([imsxeADSUXu]*)(') patterns: - name: string.regexp.arbitrary-repitition.php captures: "1": name: punctuation.definition.arbitrary-repitition.php "3": name: punctuation.definition.arbitrary-repitition.php match: (\{)\d+(,\d+)?(\}) - name: constant.character.escape.regex.php match: (\\){1,2}[.$^\[\]{}] comment: "Escaped from the regexp \xE2\x80\x93 there can also be 2 backslashes (since 1 will escape the first)" - name: constant.character.escape.php match: \\{1,2}[\\'] comment: "Escaped from the PHP string \xE2\x80\x93 there can also be 2 backslashes (since 1 will escape the first)" - name: string.regexp.character-class.php captures: "0": name: punctuation.definition.character-class.php begin: \[(?:\^?\])? end: \] patterns: - name: constant.character.escape.php match: \\[\\'\[\]] - name: keyword.operator.regexp.php match: "[$^+*]" variables: patterns: - include: "#var_global" - include: "#var_global_safer" - include: "#var_basic" string-double-quoted: name: string.quoted.double.php endCaptures: "0": name: punctuation.definition.string.end.php begin: "\"" contentName: meta.string-contents.quoted.double.php beginCaptures: "0": name: punctuation.definition.string.begin.php end: "\"" patterns: - include: "#interpolation" comment: "This contentName is just to allow the usage of \xE2\x80\x9Cselect scope\xE2\x80\x9D to select the string contents first, then the string with quotes" language: patterns: - name: string.unquoted.heredoc.php begin: (?=<<<\s*(HTML|XML|SQL)\s*$) end: (?!<?<<\s*(HTML|XML|SQL)\s*$) patterns: - name: meta.embedded.html endCaptures: "0": name: punctuation.section.embedded.end.php "1": name: keyword.operator.heredoc.php "2": name: punctuation.definition.string.php begin: (<<<)\s*(HTML)\s*$\n? contentName: text.html beginCaptures: "0": name: punctuation.section.embedded.begin.php "1": name: punctuation.definition.string.php "2": name: keyword.operator.heredoc.php end: ^(HTML)(;?)$\n? patterns: - include: text.html.basic - include: "#interpolation" - name: meta.embedded.xml endCaptures: "0": name: punctuation.section.embedded.end.php "1": name: keyword.operator.heredoc.php "2": name: punctuation.definition.string.php begin: (<<<)\s*(XML)\s*$\n? contentName: text.xml beginCaptures: "0": name: punctuation.section.embedded.begin.php "1": name: punctuation.definition.string.php "2": name: keyword.operator.heredoc.php end: ^(XML)(;?)$\n? patterns: - include: text.xml - include: "#interpolation" - name: meta.embedded.sql endCaptures: "0": name: punctuation.section.embedded.end.php "1": name: keyword.operator.heredoc.php "2": name: punctuation.definition.string.php begin: (<<<)\s*(SQL)\s*$\n? contentName: source.sql beginCaptures: "0": name: punctuation.section.embedded.begin.php "1": name: punctuation.definition.string.php "2": name: keyword.operator.heredoc.php end: ^(SQL)(;?)$\n? patterns: - include: source.sql - include: "#interpolation" - name: comment.block.documentation.phpdoc.php captures: "0": name: punctuation.definition.comment.php begin: /\*\*(?:#@\+)?\s*$ end: \*/ patterns: - include: "#php_doc" comment: |- This now only highlights a docblock if the first line contains only /** - this is to stop highlighting everything as invalid when people do comment banners with /******** ... - Now matches /**#@+ too - used for docblock templates: http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate - name: comment.block.php captures: "0": name: punctuation.definition.comment.php begin: /\* end: \*/ - name: comment.line.double-slash.php captures: "1": name: punctuation.definition.comment.php match: (//).*?($\n?|(?=\?>)) - name: comment.line.number-sign.php captures: "1": name: punctuation.definition.comment.php match: (#).*?($\n?|(?=\?>)) - name: meta.interface.php begin: ^(?i)\s*(interface)\s+([a-z0-9_]+)\s*(extends)?\s* beginCaptures: "1": name: storage.type.interface.php "2": name: entity.name.type.interface.php "3": name: storage.modifier.extends.php end: $ patterns: - name: entity.other.inherited-class.php match: "[a-zA-Z0-9_]+" - name: meta.class.php begin: (?i)^\s*(abstract|final)?\s*(class)\s+([a-z0-9_]+)\s* beginCaptures: "1": name: storage.modifier.abstract.php "2": name: storage.type.class.php "3": name: entity.name.type.class.php end: $ patterns: - captures: "1": name: storage.modifier.extends.php "2": name: entity.other.inherited-class.php match: (?i:(extends))\s+([a-zA-Z0-9_]+)\s* - begin: (?i:(implements))\s+([a-zA-Z0-9_]+)\s* beginCaptures: "1": name: storage.modifier.implements.php "2": name: support.class.implements.php end: (?=\s*\b(?i:(extends)))|$ patterns: - captures: "1": name: support.class.implements.php match: ,\s*([a-zA-Z0-9_]+)\s* - name: keyword.control.php match: \b(break|c(ase|ontinue)|d(e(clare|fault)|ie|o)|e(lse(if)?|nd(declare|for(each)?|if|switch|while)|xit)|for(each)?|if|return|switch|use|while)\b - name: meta.include.php begin: (?i)\b((?:require|include)(?:_once)?)\b\s* beginCaptures: "1": name: keyword.control.import.include.php end: (?=\s|;|$) patterns: - include: "#language" - name: keyword.control.exception.php match: \b(catch|try|throw|exception)|([a-zA-Z_]*Exception)\b - name: meta.function.php endCaptures: "1": name: punctuation.definition.parameters.end.php begin: (?:^\s*)((?:(?:final|abstract|public|private|protected|static)\s+)*)(function)(?:\s+|(\s*&\s*))(?:(__(?:call|(?:con|de)struct|get|(?:is|un)?set|tostring|clone|set_state|sleep|wakeup|autoload))|([a-zA-Z0-9_]+))\s*(\() contentName: meta.function.arguments.php beginCaptures: "6": name: punctuation.definition.parameters.begin.php "1": name: storage.modifier.php "2": name: storage.type.function.php "3": name: storage.modifier.reference.php "4": name: support.function.magic.php "5": name: entity.name.function.php end: \) patterns: - name: meta.function.argument.array.php endCaptures: "0": name: punctuation.definition.array.end.php begin: "(?x)\n\ \t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\ \t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\ \t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x7F-\\xFF][a-zA-Z0-9_\\x7F-\\xFF]*) # The variable name\n\ \t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\ \t\t\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\ \t\t\t\t\t\t\t\t\t" contentName: meta.array.php beginCaptures: "6": name: support.function.construct.php "7": name: punctuation.definition.array.begin.php "1": name: storage.type.php "2": name: storage.modifier.php "3": name: variable.other.php "4": name: punctuation.definition.variable.php "5": name: keyword.operator.assignment.php end: \) patterns: - include: "#strings" - include: "#numbers" - name: meta.function.argument.array.php captures: "6": name: constant.language.php "7": name: invalid.illegal.non-null-typehinted.php "1": name: storage.type.php "2": name: storage.modifier.php "3": name: variable.other.php "4": name: punctuation.definition.variable.php "5": name: keyword.operator.assignment.php match: "(?x)\n\ \t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\ \t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\ \t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x7F-\\xFF][a-zA-Z0-9_\\x7F-\\xFF]*) # The variable name\n\ \t\t\t\t\t\t\t\t\t(?:\n\ \t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\ \t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\ \t\t\t\t\t\t\t\t\t\t\t(NULL)\n\ \t\t\t\t\t\t\t\t\t\t\t|\n\ \t\t\t\t\t\t\t\t\t\t\t(\\S.*?)\n\ \t\t\t\t\t\t\t\t\t\t\t)?\n\ \t\t\t\t\t\t\t\t\t)?\n\ \t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\ \t\t\t\t\t\t\t\t\t" - name: meta.function.argument.typehinted.php captures: "6": name: constant.language.php "7": name: invalid.illegal.non-null-typehinted.php "1": name: support.class.php "2": name: storage.modifier.php "3": name: variable.other.php "4": name: punctuation.definition.variable.php "5": name: keyword.operator.assignment.php match: "(?x)\n\ \t\t\t\t\t\t\t\t\t\\s*([A-Za-z_][A-Za-z_0-9]*) # Typehinted class name\n\ \t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\ \t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x7F-\\xFF][a-zA-Z0-9_\\x7F-\\xFF]*) # The variable name\n\ \t\t\t\t\t\t\t\t\t(?:\n\ \t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\ \t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\ \t\t\t\t\t\t\t\t\t\t\t(NULL)\n\ \t\t\t\t\t\t\t\t\t\t\t|\n\ \t\t\t\t\t\t\t\t\t\t\t(\\S.*?)\n\ \t\t\t\t\t\t\t\t\t\t\t)?\n\ \t\t\t\t\t\t\t\t\t)?\n\ \t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\ \t\t\t\t\t\t\t\t\t" - name: meta.function.argument.no-default.php captures: "1": name: storage.modifier.php "2": name: variable.other.php "3": name: punctuation.definition.variable.php match: (\s*&)?\s*((\$+)[a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*)\s*(?=,|\)) - name: meta.function.argument.default.php captures: "1": name: storage.modifier.php "2": name: variable.other.php "3": name: punctuation.definition.variable.php "4": name: keyword.operator.assignment.php begin: (\s*&)?\s*((\$+)[a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*)(?:\s*(=)\s*)\s* end: (?=,|\)) patterns: - include: "#parameter-default-types" - name: comment.block.php captures: "0": name: punctuation.definition.comment.php begin: /\* end: \*/ - name: storage.type.php match: (?i)\b(real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|parent|self|object)\b - name: storage.modifier.php match: (?i)\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\b - include: "#object" - captures: "1": name: keyword.operator.class.php "2": name: meta.function-call.static.php "3": name: variable.other.class.php "4": name: punctuation.definition.variable.php "5": name: constant.other.class.php match: |- (?x)(::) (?: ([A-Za-z_][A-Za-z_0-9]*)\s*\( | ((\$+)[a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*) | ([a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*) )? - include: "#support" - name: string.unquoted.heredoc.php endCaptures: "1": name: keyword.operator.heredoc.php "2": name: punctuation.definition.string.php begin: (<<<)\s*([a-zA-Z_]+[a-zA-Z0-9_]*) beginCaptures: "1": name: punctuation.definition.string.php "2": name: keyword.operator.heredoc.php end: ^(\2)(;?)$ patterns: - include: "#interpolation" - name: keyword.operator.key.php match: => - name: storage.modifier.reference.php match: "&(?=\\s*(\\$|new|[A-Za-z_][A-Za-z_0-9]+(?=\\s*\\()))" - name: punctuation.terminator.expression.php match: ; - name: keyword.operator.error-control.php match: (@) - name: keyword.operator.increment-decrement.php match: (\-\-|\+\+) - name: keyword.operator.arithmetic.php match: (\-|\+|\*|/|%) - name: keyword.operator.logical.php match: (?i)(!|&&|\|\|)|\b(and|or|xor|as)\b - name: keyword.operator.bitwise.php match: <<|>>|~|\^|&|\| - name: keyword.operator.comparison.php match: (===|==|!==|!=|<=|>=|<>|<|>) - name: keyword.operator.string.php match: (\.=|\.) - name: keyword.operator.assignment.php match: "=" - captures: "1": name: keyword.operator.type.php "2": name: support.class.php match: (?i)\b(instanceof)\b(?:\s+(\w+))? - include: "#numbers" - include: "#strings" - include: "#string-backtick" - include: "#function-call" - include: "#variables" - captures: "1": name: keyword.operator.php "2": name: variable.other.property.php match: (?<=[a-zA-Z0-9_\x7F}-\xFF])(->)([a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*?)\b - include: "#instantiation" - include: "#constants" instantiation: captures: "1": name: keyword.other.new.php "2": name: support.class.php "3": name: support.class.php match: (?i)\b(new)\s+(\w+)|(\w+)(?=::) var_basic: name: variable.other.php captures: "1": name: punctuation.definition.variable.php match: |- (?x) (\$+)[a-zA-Z_\x7F}-\xFF] [a-zA-Z0-9_\x7F-\xFF]*?\b string-backtick: name: string.interpolated.php endCaptures: "0": name: punctuation.definition.string.end.php begin: ` beginCaptures: "0": name: punctuation.definition.string.begin.php end: ` patterns: - name: constant.character.escape.php match: \\. - include: "#interpolation" var_global_safer: name: variable.other.global.safer.php captures: "2": name: punctuation.definition.variable.php match: ((\$)(GLOBALS|_(ENV|SERVER|SESSION)))|\b(global)\b strings: patterns: - include: "#regex-double-quoted" - include: "#sql-string-double-quoted" - include: "#string-double-quoted" - include: "#regex-single-quoted" - include: "#sql-string-single-quoted" - include: "#string-single-quoted" string-single-quoted: name: string.quoted.single.php endCaptures: "0": name: punctuation.definition.string.end.php begin: "'" contentName: meta.string-contents.quoted.single.php beginCaptures: "0": name: punctuation.definition.string.begin.php end: "'" patterns: - name: constant.character.escape.php match: \\[\\'] sql-string-double-quoted: name: string.quoted.double.sql.php endCaptures: "0": name: punctuation.definition.string.end.php begin: "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)" contentName: source.sql.embedded.php beginCaptures: "0": name: punctuation.definition.string.begin.php end: "\"" patterns: - name: comment.line.number-sign.sql match: "#(\\\\\"|[^\"])*(?=\"|$\\n?)" - name: comment.line.double-dash.sql match: --(\\"|[^"])*(?="|$\n?) - name: string.quoted.single.unclosed.sql begin: "'(?=[^']*?\")" end: (?=") patterns: - name: constant.character.escape.php match: \\[\\'] comment: |- Unclosed strings must be captured to avoid them eating the remainder of the PHP script Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'" - name: string.quoted.other.backtick.unclosed.sql begin: `(?=[^`]*?") end: (?=") patterns: - name: constant.character.escape.php match: \\[\\'] comment: |- Unclosed strings must be captured to avoid them eating the remainder of the PHP script Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'" - name: string.quoted.double.unclosed.sql begin: \\"(?!([^\\"]|\\[^"])*\\")(?=(\\[^"]|.)*?") end: (?=") patterns: - name: constant.character.escape.php match: \\[\\'] comment: |- Unclosed strings must be captured to avoid them eating the remainder of the PHP script Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'" - name: string.quoted.double.sql captures: "0": name: constant.character.escape.php begin: \\" end: \\" patterns: - include: "#interpolation" - name: string.quoted.other.backtick.sql begin: ` end: ` patterns: - include: "#interpolation" - name: string.quoted.single.sql begin: "'" end: "'" patterns: - include: "#interpolation" - name: constant.character.escape.php match: \\. - include: "#interpolation" - include: source.sql support: patterns: - name: meta.array.php endCaptures: "0": name: punctuation.definition.array.end.php begin: (array)(\() beginCaptures: "1": name: support.function.construct.php "2": name: punctuation.definition.array.begin.php end: \) patterns: - include: "#language" - name: support.function.array.php match: (?i)\b(s(huffle|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|prev|e(nd|xtract)|k(sort|ey|rsort)|a(sort|r(sort|ray_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|verse)|and)|m(ultisort|erge(_recursive)?|ap))))|r(sort|eset|ange)|m(in|ax))(?=\s*\() - name: support.function.assert.php match: (?i)\bassert(_options)?(?=\s*\() - name: support.function.attr.php match: (?i)\bdom_attr_is_id(?=\s*\() - name: support.function.base64.php match: (?i)\bbase64_(decode|encode)(?=\s*\() - name: support.function.basic_functions.php match: (?i)\b(highlight_(string|file)|s(ys_getloadavg|et_(include_path|magic_quotes_runtime)|leep)|c(on(stant|nection_(status|aborted))|all_user_(func(_array)?|method(_array)?))|time_(sleep_until|nanosleep)|i(s_uploaded_file|n(i_(set|restore|get(_all)?)|et_(ntop|pton))|p2long|gnore_user_abort|mport_request_variables)|u(sleep|nregister_tick_function)|error_(log|get_last)|p(hp_strip_whitespace|utenv|arse_ini_file|rint_r)|flush|long2ip|re(store_include_path|gister_(shutdown_function|tick_function))|get(servby(name|port)|opt|_(c(urrent_user|fg_var)|include_path|magic_quotes_(gpc|runtime))|protobyn(umber|ame)|env)|move_uploaded_file)(?=\s*\() - name: support.function.bcmath.php match: (?i)\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))(?=\s*\() - name: support.function.birdstep.php match: (?i)\bbirdstep_(c(o(nnect|mmit)|lose)|off_autocommit|exec|f(ieldn(um|ame)|etch|reeresult)|autocommit|r(ollback|esult))(?=\s*\() - name: support.function.browscap.php match: (?i)\bget_browser(?=\s*\() - name: support.function.builtin_functions.php match: (?i)\b(s(tr(nc(asecmp|mp)|c(asecmp|mp)|len)|et_e(rror_handler|xception_handler))|c(lass_exists|reate_function)|trigger_error|i(s_(subclass_of|a)|nterface_exists)|de(fine(d)?|bug_(print_backtrace|backtrace))|zend_version|property_exists|e(ach|rror_reporting|xtension_loaded)|func(tion_exists|_(num_args|get_arg(s)?))|leak|restore_e(rror_handler|xception_handler)|get_(class(_(vars|methods))?|included_files|de(clared_(classes|interfaces)|fined_(constants|vars|functions))|object_vars|extension_funcs|parent_class|loaded_extensions|resource_type)|method_exists)(?=\s*\() - name: support.function.bz2.php match: (?i)\bbz(compress|decompress|open|err(str|no|or)|read)(?=\s*\() - name: support.function.cal_unix.php match: (?i)\b(jdtounix|unixtojd)(?=\s*\() - name: support.function.calendar.php match: (?i)\b(cal_(to_jd|info|days_in_month|from_jd)|j(d(to(j(ulian|ewish)|french|gregorian)|dayofweek|monthname)|uliantojd|ewishtojd)|frenchtojd|gregoriantojd)(?=\s*\() - name: support.function.characterdata.php match: (?i)\bdom_characterdata_(substring_data|insert_data|delete_data|append_data|replace_data)(?=\s*\() - name: support.function.com_com.php match: (?i)\bcom_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)(?=\s*\() - name: support.function.com_variant.php match: (?i)\bvariant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|get_type|round|xor|m(od|ul))(?=\s*\() - name: support.function.crc32.php match: (?i)\bcrc32(?=\s*\() - name: support.function.crypt.php match: (?i)\bcrypt(?=\s*\() - name: support.function.ctype.php match: (?i)\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)(?=\s*\() - name: support.function.cyr_convert.php match: (?i)\bconvert_cyr_string(?=\s*\() - name: support.function.datetime.php match: (?i)\bstrptime(?=\s*\() - name: support.function.dba.php match: (?i)\bdba_(handlers|sync|nextkey|close|insert|delete|op(timize|en)|exists|popen|key_split|f(irstkey|etch)|list|replace)(?=\s*\() - name: support.function.dbase.php match: (?i)\bdbase_(num(fields|records)|c(lose|reate)|delete_record|open|pack|add_record|get_(header_info|record(_with_names)?)|replace_record)(?=\s*\() - name: support.function.dir.php match: (?i)\b(scandir|c(h(dir|root)|losedir)|dir|opendir|re(addir|winddir)|g(etcwd|lob))(?=\s*\() - name: support.function.dl.php match: (?i)\bdl(?=\s*\() - name: support.function.dns.php match: (?i)\b(dns_(check_record|get_(record|mx))|gethostby(name(l)?|addr))(?=\s*\() - name: support.function.document.php match: (?i)\bdom_document_(s(chema_validate(_file)?|ave(_html(_file)?|xml)?)|normalize_document|create_(c(datasection|omment)|text_node|document_fragment|processing_instruction|e(ntity_reference|lement(_ns)?)|attribute(_ns)?)|import_node|validate|load(_html(_file)?|xml)?|adopt_node|re(name_node|laxNG_validate_(file|xml))|get_element(s_by_tag_name(_ns)?|_by_id)|xinclude)(?=\s*\() - name: support.function.domconfiguration.php match: (?i)\bdom_domconfiguration_(set_parameter|can_set_parameter|get_parameter)(?=\s*\() - name: support.function.domerrorhandler.php match: (?i)\bdom_domerrorhandler_handle_error(?=\s*\() - name: support.function.domimplementation.php match: (?i)\bdom_domimplementation_(has_feature|create_document(_type)?|get_feature)(?=\s*\() - name: support.function.domimplementationlist.php match: (?i)\bdom_domimplementationlist_item(?=\s*\() - name: support.function.domimplementationsource.php match: (?i)\bdom_domimplementationsource_get_domimplementation(s)?(?=\s*\() - name: support.function.domstringlist.php match: (?i)\bdom_domstringlist_item(?=\s*\() - name: support.function.easter.php match: (?i)\beaster_da(ys|te)(?=\s*\() - name: support.function.element.php match: (?i)\bdom_element_(has_attribute(_ns)?|set_(id_attribute(_n(s|ode))?|attribute(_n(s|ode(_ns)?))?)|remove_attribute(_n(s|ode))?|get_(elements_by_tag_name(_ns)?|attribute(_n(s|ode(_ns)?))?))(?=\s*\() - name: support.function.exec.php match: (?i)\b(s(hell_exec|ystem)|p(assthru|roc_nice)|e(scapeshell(cmd|arg)|xec))(?=\s*\() - name: support.function.exif.php match: (?i)\bexif_(imagetype|t(humbnail|agname)|read_data)(?=\s*\() - name: support.function.fdf.php match: (?i)\bfdf_(header|s(et_(s(tatus|ubmit_form_action)|target_frame|o(n_import_javascript|pt)|javascript_action|encoding|v(ersion|alue)|f(ile|lags)|ap)|ave(_string)?)|next_field_name|c(lose|reate)|open(_string)?|e(num_values|rr(no|or))|add_(template|doc_javascript)|remove_item|get_(status|opt|encoding|v(ersion|alue)|f(ile|lags)|a(ttachment|p)))(?=\s*\() - name: support.function.file.php match: (?i)\b(sys_get_temp_dir|copy|t(empnam|mpfile)|u(nlink|mask)|p(close|open)|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(_(put_contents|get_contents))?|open|p(utcsv|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|r(e(name|a(dfile|lpath)|wind)|mdir)|get_meta_tags|mkdir)(?=\s*\() - name: support.function.filestat.php match: (?i)\b(stat|c(h(own|grp|mod)|learstatcache)|is_(dir|executable|file|link|writable|readable)|touch|disk_(total_space|free_space)|file(size|ctime|type|inode|owner|_exists|perms|atime|group|mtime)|l(stat|chgrp))(?=\s*\() - name: support.function.filter.php match: (?i)\bfilter_(has_var|input(_array)?|var(_array)?)(?=\s*\() - name: support.function.formatted_print.php match: (?i)\b(sprintf|printf|v(sprintf|printf|fprintf)|fprintf)(?=\s*\() - name: support.function.fsock.php match: (?i)\b(pfsockopen|fsockopen)(?=\s*\() - name: support.function.ftok.php match: (?i)\bftok(?=\s*\() - name: support.function.gd.php match: (?i)\b(image(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|2wbmp|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|d(estroy|ashedline)|jpeg|ellipse|p(s(slantfont|copyfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|a(ntialias|lphablending|rc)|l(ine|oadfont|ayereffect)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm)|jpeg2wbmp|png2wbmp|gd_info)(?=\s*\() - name: support.function.gettext.php match: (?i)\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))(?=\s*\() - name: support.function.gmp.php match: (?i)\bgmp_(hamdist|s(can(1|0)|ign|trval|ub|etbit|qrt(rem)?)|c(om|lrbit|mp)|ne(g|xtprime)|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))(?=\s*\() - name: support.function.hash.php match: (?i)\bhash(_(hmac(_file)?|init|update(_(stream|file))?|fi(nal|le)|algos))?(?=\s*\() - name: support.function.hash_md.php match: (?i)\bmd5(_file)?(?=\s*\() - name: support.function.hash_sha.php match: (?i)\bsha1(_file)?(?=\s*\() - name: support.function.head.php match: (?i)\b(set(cookie|rawcookie)|header(s_(sent|list))?)(?=\s*\() - name: support.function.html.php match: (?i)\b(html(specialchars(_decode)?|_entity_decode|entities)|get_html_translation_table)(?=\s*\() - name: support.function.http.php match: (?i)\bhttp_build_query(?=\s*\() - name: support.function.ibase_blobs.php match: (?i)\bibase_blob_(c(ancel|lose|reate)|i(nfo|mport)|open|echo|add|get)(?=\s*\() - name: support.function.ibase_events.php match: (?i)\bibase_(set_event_handler|free_event_handler|wait_event)(?=\s*\() - name: support.function.ibase_query.php match: (?i)\bibase_(n(um_(params|fields|rows)|ame_result)|execute|p(aram_info|repare)|f(ield_info|etch_(object|assoc|row)|ree_(query|result))|query|affected_rows)(?=\s*\() - name: support.function.ibase_service.php match: (?i)\bibase_(serv(ice_(detach|attach)|er_info)|d(elete_user|b_info)|add_user|restore|backup|m(odify_user|aintain_db))(?=\s*\() - name: support.function.iconv.php match: (?i)\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)(?=\s*\() - name: support.function.image.php match: (?i)\b(image_type_to_(extension|mime_type)|getimagesize)(?=\s*\() - name: support.function.info.php match: (?i)\b(zend_logo_guid|php(credits|info|_(sapi_name|ini_scanned_files|uname|egg_logo_guid|logo_guid|real_logo_guid)|version))(?=\s*\() - name: support.function.interbase.php match: (?i)\bibase_(c(o(nnect|mmit(_ret)?)|lose)|trans|drop_db|pconnect|err(code|msg)|gen_id|rollback(_ret)?)(?=\s*\() - name: support.function.interface.php match: (?i)\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo)(?=\s*\() - name: support.function.iptc.php match: (?i)\biptc(parse|embed)(?=\s*\() - name: support.function.json.php match: (?i)\bjson_(decode|encode)(?=\s*\() - name: support.function.lcg.php match: (?i)\blcg_value(?=\s*\() - name: support.function.ldap.php match: (?i)\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|co(nnect|unt_entries|mpare)|t61_to_8859|8859_to_t61|d(n2ufn|elete)|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|add|list|get_(option|dn|entries|values_len|attributes)|re(name|ad)|mod_(del|add|replace)|bind)(?=\s*\() - name: support.function.levenshtein.php match: (?i)\blevenshtein(?=\s*\() - name: support.function.libxml.php match: (?i)\blibxml_(set_streams_context|clear_errors|use_internal_errors|get_(errors|last_error))(?=\s*\() - name: support.function.link.php match: (?i)\b(symlink|link(info)?|readlink)(?=\s*\() - name: support.function.mail.php match: (?i)\b(ezmlm_hash|mail)(?=\s*\() - name: support.function.main.php match: (?i)\bset_time_limit(?=\s*\() - name: support.function.math.php match: (?i)\b(h(ypot|exdec)|s(in(h)?|qrt)|number_format|c(os(h)?|eil)|is_(nan|infinite|finite)|tan(h)?|octdec|de(c(hex|oct|bin)|g2rad)|exp(m1)?|p(i|ow)|f(loor|mod)|log(1(p|0))?|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|ad2deg)|b(indec|ase_convert))(?=\s*\() - name: support.function.mbstring.php match: (?i)\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|encode_(numericentity|mimeheader)|p(arse_str|referred_mime_name)|l(ist_(encodings(_alias_names)?|mime_names)|anguage)|get_info)(?=\s*\() - name: support.function.mcrypt.php match: (?i)\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(cb|nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt))|list_(algorithms|modes)|ge(neric(_(init|deinit))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)(?=\s*\() - name: support.function.md5.php match: (?i)\bmd5(_file)?(?=\s*\() - name: support.function.metaphone.php match: (?i)\bmetaphone(?=\s*\() - name: support.function.mhash.php match: (?i)\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?(?=\s*\() - name: support.function.microtime.php match: (?i)\b(get(timeofday|rusage)|microtime)(?=\s*\() - name: support.function.mime_magic.php match: (?i)\bmime_content_type(?=\s*\() - name: support.function.ming.php match: (?i)\b(swf(prebuiltclip_init|videostream_init)|ming_(set(scale|cubicthreshold)|use(swfversion|constants)|keypress))(?=\s*\() - name: support.function.multi.php match: (?i)\bcurl_multi_(select|close|in(it|fo_read)|exec|add_handle|getcontent|remove_handle)(?=\s*\() - name: support.function.mysqli_api.php match: (?i)\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data|qlstate)|num_rows|close|in(sert_id|it)|data_seek|p(aram_count|repare)|e(rr(no|or)|xecute)|f(ield_count|etch|ree_result)|a(ttr_(set|get)|ffected_rows)|res(ult_metadata|et)|bind_(param|result)))|e(t_local_infile_(handler|default)|lect_db)|qlstate)|n(um_(fields|rows)|ext_result)|c(ha(nge_user|racter_set_name)|ommit|lose)|thread_(safe|id)|in(sert_id|it|fo)|options|d(ump_debug_info|ebug|ata_seek)|use_result|p(ing|repare)|err(no|or)|kill|f(ield_(seek|count|tell)|etch_(field(s|_direct)?|lengths|row)|ree_result)|warning_count|a(utocommit|ffected_rows)|r(ollback|eal_(connect|escape_string|query))|get_(server_(info|version)|host_info|client_(info|version)|proto_info)|more_results)(?=\s*\() - name: support.function.mysqli_embedded.php match: (?i)\bmysqli_embedded_server_(start|end)(?=\s*\() - name: support.function.mysqli_nonapi.php match: (?i)\bmysqli_(s(tmt_get_warnings|et_charset)|connect(_err(no|or))?|query|fetch_(object|a(ssoc|rray))|get_(charset|warnings)|multi_query)(?=\s*\() - name: support.function.mysqli_repl.php match: (?i)\bmysqli_(s(end_query|lave_query)|disable_r(pl_parse|eads_from_master)|enable_r(pl_parse|eads_from_master)|rpl_(p(arse_enabled|robe)|query_type)|master_query)(?=\s*\() - name: support.function.mysqli_report.php match: (?i)\bmysqli_report(?=\s*\() - name: support.function.namednodemap.php match: (?i)\bdom_namednodemap_(set_named_item(_ns)?|item|remove_named_item(_ns)?|get_named_item(_ns)?)(?=\s*\() - name: support.function.namelist.php match: (?i)\bdom_namelist_get_name(space_uri)?(?=\s*\() - name: support.function.ncurses_functions.php match: (?i)\bncurses_(s(how_panel|cr(_(set|init|dump|restore)|l)|ta(nd(out|end)|rt_color)|lk_(set|noutrefresh|c(olor|lear)|init|touch|attr(set|o(n|ff))?|re(store|fresh))|avetty)|h(ide_panel|line|a(s_(colors|i(c|l)|key)|lfdelay))|n(o(nl|cbreak|echo|qiflush|raw)|ew(_panel|pad|win)|apms|l)|c(olor_(set|content)|urs_set|l(ear|rto(eol|bot))|an_change_color|break)|t(ypeahead|imeout|op_panel|erm(name|attrs))|i(sendwin|n(s(str|ch|tr|delln|ertln)|ch|it(_(color|pair))?))|d(oupdate|e(f(ine_key|_(shell_mode|prog_mode))|l(ch|_panel|eteln|ay_output|win)))|u(se_(default_colors|e(nv|xtended_names))|nget(ch|mouse)|pdate_panels)|p(noutrefresh|utp|a(nel_(window|above|below)|ir_content)|refresh)|e(cho(char)?|nd|rase(char)?)|v(idattr|line)|k(illchar|ey(ok|pad))|qiflush|f(ilter|l(ushinp|ash))|longname|w(stand(out|end)|hline|noutrefresh|c(olor_set|lear)|erase|vline|a(ttr(set|o(n|ff))|dd(str|ch))|getch|refresh|mo(use_trafo|ve)|border)|a(ssume_default_colors|ttr(set|o(n|ff))|dd(str|nstr|ch(str|nstr)?))|r(e(set(ty|_(shell_mode|prog_mode))|place_panel|fresh)|aw)|get(yx|ch|m(ouse|axyx))|b(o(ttom_panel|rder)|eep|kgd(set)?|audrate)|m(o(use(interval|_trafo|mask)|ve(_panel)?)|eta|v(hline|cur|inch|delch|vline|waddstr|add(str|nstr|ch(str|nstr)?)|getch)))(?=\s*\() - name: support.function.node.php match: (?i)\bdom_node_(set_user_data|has_(child_nodes|attributes)|normalize|c(ompare_document_position|lone_node)|i(s_(s(upported|ame_node)|default_namespace|equal_node)|nsert_before)|lookup_(namespace_uri|prefix)|append_child|get_(user_data|feature)|re(place_child|move_child))(?=\s*\() - name: support.function.nodelist.php match: (?i)\bdom_nodelist_item(?=\s*\() - name: support.function.nsapi.php match: (?i)\bnsapi_(virtual|re(sponse_headers|quest_headers))(?=\s*\() - name: support.function.oci8_interface.php match: (?i)\boci(setbufferinglob|_(s(tatement_type|e(t_prefetch|rver_version))|c(o(nnect|llection_(size|trim|element_(assign|get)|a(ssign|ppend)|max)|mmit)|lose|ancel)|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|is_null|type(_raw)?|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|collection|descriptor))|lob_(s(ize|eek|ave)|c(opy|lose)|t(ell|runcate)|i(s_equal|mport)|e(of|rase|xport)|flush|append|write(_temporary)?|load|re(wind|ad))|r(ollback|esult)|bind_(array_by_name|by_name))|fetchinto|getbufferinglob)(?=\s*\() - name: support.function.openssl.php match: (?i)\bopenssl_(s(ign|eal)|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|open|error_string|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|verify|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))(?=\s*\() - name: support.function.output.php match: (?i)\bo(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|get_(status|c(ontents|lean)|flush|le(ngth|vel))))(?=\s*\() - name: support.function.pack.php match: (?i)\b(unpack|pack)(?=\s*\() - name: support.function.pageinfo.php match: (?i)\bget(lastmod|my(inode|uid|pid|gid))(?=\s*\() - name: support.function.pcntl.php match: (?i)\bpcntl_(s(ignal|etpriority)|exec|fork|w(stopsig|termsig|if(s(ignaled|topped)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)(?=\s*\() - name: support.function.pdo.php match: (?i)\bpdo_drivers(?=\s*\() - name: support.function.pdo_dbh.php match: (?i)\bpdo_drivers(?=\s*\() - name: support.function.pgsql.php match: (?i)\bpg_(se(nd_(execute|prepare|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|ancel_query|l(ient_encoding|ose))|insert|t(ty|ra(nsaction_status|ce))|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|e(scape_(string|bytea)|nd_copy|xecute)|p(connect|ing|ort|ut_line|arameter_status|repare)|version|f(ield_(size|n(um|ame)|is_null|t(ype(_oid)?|able)|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|query(_params)?|affected_rows|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|get_(notify|pid|result)|result_(s(tatus|eek)|error(_field)?)|meta_data)(?=\s*\() - name: support.function.php_apache.php match: (?i)\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|get_(version|modules)|re(s(et_timeout|ponse_headers)|quest_(s(ome_auth_required|ub_req_(lookup_(uri|file)|method_uri)|e(t_(etag|last_modified)|rver_port)|atisfies)|headers(_(in|out))?|is_initial_req|discard_request_body|update_mtime|err_headers_out|log_error|auth_(name|type)|r(un|emote_host)|meets_conditions)))|getallheaders)(?=\s*\() - name: support.function.php_date.php match: (?i)\b(str(totime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|identifiers_list|transitions_get|o(pen|ffset_get)|abbreviations_list))?|idate|date(_(sun(set|_info|rise)|create|isodate_set|time(zone_(set|get)|_set)|d(efault_timezone_(set|get)|ate_set)|offset_get|parse|format|modify))?|localtime|g(etdate|m(strftime|date|mktime))|mktime)(?=\s*\() - name: support.function.php_dom.php match: (?i)\bdom_import_simplexml(?=\s*\() - name: support.function.php_fbsql.php match: (?i)\bfbsql_(hostname|s(t(op_db|art_db)|e(t_(characterset|transaction|password|lob_mode)|lect_db))|n(um_(fields|rows)|ext_result)|c(hange_user|o(nnect|mmit)|lo(se|b_size)|reate_(clob|db|blob))|table_name|insert_id|d(ata(_seek|base(_password)?)|rop_db|b_(status|query))|username|err(no|or)|p(connect|assword)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|warnings|list_(tables|dbs|fields)|a(utocommit|ffected_rows)|get_autostart_info|r(o(ws_fetched|llback)|e(sult|ad_(clob|blob)))|blob_size)(?=\s*\() - name: support.function.php_ftp.php match: (?i)\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|dup|onnect|lose)|delete|exec|p(ut|asv|wd)|f(put|get)|alloc|login|get(_option)?|r(ename|aw(list)?|mdir)|m(dtm|kdir))(?=\s*\() - name: support.function.php_functions.php match: (?i)\b(virtual|apache_(setenv|note|get(_(version|modules)|env)|response_headers)|getallheaders)(?=\s*\() - name: support.function.php_imap.php match: (?i)\bimap_(header(s|info)|s(can|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|c(heck|l(ose|earflag_full)|reatemailbox)|num_(recent|msg)|t(hread|imeout)|8bit|delete(mailbox)?|open|u(n(subscribe|delete)|id|tf(7_(decode|encode)|8))|e(rrors|xpunge)|ping|qprint|fetch(header|structure|_overview|body)|l(sub|ist|ast_error)|a(ppend|lerts)|get(subscribed|_quota(root)?|acl|mailboxes)|r(e(namemailbox|open)|fc822_(parse_(headers|adrlist)|write_address))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))(?=\s*\() - name: support.function.php_mbregex.php match: (?i)\bmb_(split|ereg(i(_replace)?|_(search(_(setpos|init|pos|get(pos|regs)|regs))?|replace|match))?|regex_(set_options|encoding))(?=\s*\() - name: support.function.php_milter.php match: (?i)\bsmfi_(set(timeout|flags|reply)|chgheader|delrcpt|add(header|rcpt)|replacebody|getsymval)(?=\s*\() - name: support.function.php_msql.php match: (?i)\bmsql_(select_db|num_(fields|rows)|c(onnect|lose|reate_db)|d(ata_seek|rop_db|b_query)|error|pconnect|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|array|row)|ree_result)|query|affected_rows|list_(tables|dbs|fields)|result)(?=\s*\() - name: support.function.php_mssql.php match: (?i)\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|execute|pconnect|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|g(uid_string|et_last_message)|r(ows_affected|esult)|bind|min_(error_severity|message_severity))(?=\s*\() - name: support.function.php_mysql.php match: (?i)\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|thread_id|in(sert_id|fo)|d(ata_seek|rop_db|b_query)|unbuffered_query|e(scape_string|rr(no|or))|p(connect|ing)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|affected_rows|list_(tables|dbs|processes|fields)|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))(?=\s*\() - name: support.function.php_odbc.php match: (?i)\b(solid_fetch_prev|odbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|data_source|e(rror(msg)?|xec(ute)?)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|f(ield_(scale|n(um|ame)|type|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|autocommit|longreadlen|gettypeinfo|r(ollback|esult(_all)?)|binmode))(?=\s*\() - name: support.function.php_pcre.php match: (?i)\bpreg_(split|quote|last_error|grep|replace(_callback)?|match(_all)?)(?=\s*\() - name: support.function.php_spl.php match: (?i)\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|parents))(?=\s*\() - name: support.function.php_sybase_ct.php match: (?i)\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|query|affected_rows|result|get_last_message|min_(server_severity|client_severity))(?=\s*\() - name: support.function.php_sybase_db.php match: (?i)\bsybase_(select_db|num_(fields|rows)|c(onnect|lose)|data_seek|pconnect|f(ield_seek|etch_(object|field|array|row)|ree_result)|query|affected_rows|result|get_last_message|min_(error_severity|message_severity))(?=\s*\() - name: support.function.php_xmlwriter.php match: (?i)\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))(?=\s*\() - name: support.function.php_zip.php match: (?i)\b(s(tat(Name|Index)|et(Comment(Name|Index)|ArchiveComment))|c(lose|reateEmptyDir)|delete(Name|Index)|open|zip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)|unchange(Name|Index|All)|locateName|addF(ile|romString)|rename(Name|Index)|get(Stream|Comment(Name|Index)|NameIndex|From(Name|Index)|ArchiveComment))(?=\s*\() - name: support.function.posix.php match: (?i)\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|i(satty|nitgroups)|t(tyname|imes)|uname|kill|access|get(sid|cwd|_last_error|uid|e(uid|gid)|p(id|pid|w(nam|uid)|g(id|rp))|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))(?=\s*\() - name: support.function.proc_open.php match: (?i)\bproc_(close|terminate|open|get_status)(?=\s*\() - name: support.function.pspell.php match: (?i)\bpspell_(s(tore_replacement|uggest|ave_wordlist)|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|new(_(config|personal))?|add_to_(session|personal))(?=\s*\() - name: support.function.quot_print.php match: (?i)\bquoted_printable_decode(?=\s*\() - name: support.function.rand.php match: (?i)\b(srand|getrandmax|rand|mt_(srand|getrandmax|rand))(?=\s*\() - name: support.function.readline.php match: (?i)\breadline(_(c(ompletion_function|allback_(handler_(install|remove)|read_char)|lear_history)|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?(?=\s*\() - name: support.function.recode.php match: (?i)\brecode_(string|file)(?=\s*\() - name: support.function.reg.php match: (?i)\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)(?=\s*\() - name: support.function.session.php match: (?i)\bsession_(s(tart|et_(save_handler|cookie_params)|ave_path)|cache_(expire|limiter)|name|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister|enerate_id)|get_cookie_params|module_name)(?=\s*\() - name: support.function.sha1.php match: (?i)\bsha1(_file)?(?=\s*\() - name: support.function.shmop.php match: (?i)\bshmop_(size|close|delete|open|write|read)(?=\s*\() - name: support.function.simplexml.php match: (?i)\bsimplexml_(import_dom|load_(string|file))(?=\s*\() - name: support.function.skeleton.php match: (?i)\bconfirm_extname_compiled(?=\s*\() - name: support.function.snmp.php match: (?i)\b(snmp(set|2_(set|walk|real_walk|get(next)?)|3_(set|walk|real_walk|get(next)?)|_(set_(oid_output_format|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|walk|realwalk|get(next)?)|php_snmpv3)(?=\s*\() - name: support.function.sockets.php match: (?i)\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|write|l(isten|ast_error)|accept|get(sockname|_option|peername)|re(cv(from)?|ad)|bind)(?=\s*\() - name: support.function.soundex.php match: (?i)\bsoundex(?=\s*\() - name: support.function.spl_iterators.php match: (?i)\biterator_(count|to_array|apply)(?=\s*\() - name: support.function.sqlite.php match: (?i)\bsqlite_(has_prev|s(ingle_query|eek)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|e(scape_string|rror_string|xec)|p(open|rev)|key|valid|query|f(ield_name|etch_(single|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)(?=\s*\() - name: support.function.streamsfuncs.php match: (?i)\bstream_(s(ocket_(s(hutdown|e(ndto|rver))|client|enable_crypto|pair|accept|recvfrom|get_name)|e(t_(timeout|write_buffer|blocking)|lect))|co(ntext_(set_(option|params)|create|get_(default|options))|py_to_stream)|filter_(prepend|append|remove)|get_(contents|transports|line|wrappers|meta_data))(?=\s*\() - name: support.function.string.php match: (?i)\b(hebrev(c)?|s(scanf|imilar_text|tr(s(tr|pn)|natc(asecmp|mp)|c(hr|spn|oll)|i(str|p(slashes|cslashes|os|_tags))|t(o(upper|k|lower)|r)|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace)))|p(os|brk)|r(chr|ipos|ev|pos))|ubstr(_(co(unt|mpare)|replace))?|etlocale)|c(h(unk_split|r)|ount_chars)|nl(2br|_langinfo)|implode|trim|ord|dirname|uc(first|words)|join|pa(thinfo|rse_str)|explode|quotemeta|add(slashes|cslashes)|wordwrap|l(trim|ocaleconv)|rtrim|money_format|b(in2hex|asename))(?=\s*\() - name: support.function.string_extend.php match: (?i)\bdom_string_extend_find_offset(16|32)(?=\s*\() - name: support.function.syslog.php match: (?i)\b(syslog|closelog|openlog|define_syslog_variables)(?=\s*\() - name: support.function.sysvmsg.php match: (?i)\bmsg_(s(tat_queue|e(nd|t_queue))|re(ceive|move_queue)|get_queue)(?=\s*\() - name: support.function.sysvsem.php match: (?i)\bsem_(acquire|re(lease|move)|get)(?=\s*\() - name: support.function.sysvshm.php match: (?i)\bshm_(detach|put_var|attach|get_var|remove(_var)?)(?=\s*\() - name: support.function.text.php match: (?i)\bdom_text_(split_text|is_whitespace_in_element_content|replace_whole_text)(?=\s*\() - name: support.function.tidy.php match: (?i)\btidy_(c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|error_count|parse_(string|file)|access_count|warning_count|repair_(string|file)|get(opt|_(h(tml(_ver)?|ead)|status|config|o(utput|pt_doc)|error_buffer|r(oot|elease)|body)))(?=\s*\() - name: support.function.tokenizer.php match: (?i)\btoken_(name|get_all)(?=\s*\() - name: support.function.type.php match: (?i)\b(s(trval|ettype)|i(s_(s(calar|tring)|callable|nu(ll|meric)|object|float|array|long|resource|bool)|ntval)|floatval|gettype)(?=\s*\() - name: support.function.uniqid.php match: (?i)\buniqid(?=\s*\() - name: support.function.url.php match: (?i)\b(url(decode|encode)|parse_url|get_headers|rawurl(decode|encode))(?=\s*\() - name: support.function.user_filters.php match: (?i)\bstream_(filter_register|get_filters|bucket_(new|prepend|append|make_writeable))(?=\s*\() - name: support.function.userdatahandler.php match: (?i)\bdom_userdatahandler_handle(?=\s*\() - name: support.function.userspace.php match: (?i)\bstream_wrapper_(unregister|re(store|gister))(?=\s*\() - name: support.function.uuencode.php match: (?i)\bconvert_uu(decode|encode)(?=\s*\() - name: support.function.var.php match: (?i)\b(serialize|debug_zval_dump|unserialize|var_(dump|export)|memory_get_(usage|peak_usage))(?=\s*\() - name: support.function.versioning.php match: (?i)\bversion_compare(?=\s*\() - name: support.function.wddx.php match: (?i)\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)(?=\s*\() - name: support.function.xml.php match: (?i)\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|default_handler|object|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|error_string|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|get_(current_(column_number|line_number|byte_index)|error_code)))(?=\s*\() - name: support.function.xmlrpc-epi-php.php match: (?i)\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)(?=\s*\() - name: support.function.xpath.php match: (?i)\bdom_xpath_(evaluate|query|register_ns)(?=\s*\() - name: support.function.xsltprocessor.php match: (?i)\bxsl_xsltprocessor_(has_exslt_support|set_parameter|transform_to_(doc|uri|xml)|import_stylesheet|re(gister_php_functions|move_parameter)|get_parameter)(?=\s*\() - name: support.function.zlib.php match: (?i)\b(ob_gzhandler|zlib_get_coding_type|readgzfile|gz(compress|inflate|deflate|open|uncompress|encode|file))(?=\s*\() - name: support.function.alias.php match: (?i)\bis_int(eger)?(?=\s*\() - name: support.class.builtin.php match: (?i)\b(Re(cursive(RegexIterator|CachingIterator|IteratorIterator|DirectoryIterator|FilterIterator|ArrayIterator)|flection(Method|Class|Object|Extension|P(arameter|roperty)|Function)?|gexIterator)|s(tdClass|wf(s(hape|ound|prite)|text(field)?|displayitem|f(ill|ont(cha(r)?)?)|action|gradient|mo(vie|rph)|b(itmap|utton)))|XMLReader|tidyNode|S(impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|pl(TempFileObject|ObjectStorage|File(Info|Object)))|NoRewindIterator|C(OMPersistHelper|achingIterator)|I(nfiniteIterator|teratorIterator)|D(irectoryIterator|OM(XPath|Node|C(omment|dataSection)|Text|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr))|P(DO(Statement)?|arentIterator)|E(rrorException|mptyIterator|xception)|FilterIterator|LimitIterator|A(p(pendIterator|acheRequest)|rray(Iterator|Object)))(?=\s*\() - name: support.function.construct.php match: (?i)\b((print|echo)\b|(isset|unset|e(val|mpty)|list)(?=\s*\()) regex-double-quoted: name: string.regexp.double-quoted.php endCaptures: "0": name: punctuation.definition.string.end.php begin: (?x)"/ (?= (\\.|[^"/])++/[imsxeADSUXu]*" ) beginCaptures: "0": name: punctuation.definition.string.begin.php end: (/)([imsxeADSUXu]*)(") patterns: - name: constant.character.escape.regex.php match: (\\){1,2}[.$^\[\]{}] comment: "Escaped from the regexp \xE2\x80\x93 there can also be 2 backslashes (since 1 will escape the first)" - include: "#interpolation" - name: string.regexp.arbitrary-repitition.php captures: "1": name: punctuation.definition.arbitrary-repitition.php "3": name: punctuation.definition.arbitrary-repitition.php match: (\{)\d+(,\d+)?(\}) - name: string.regexp.character-class.php captures: "0": name: punctuation.definition.character-class.php begin: \[(?:\^?\])? end: \] patterns: - include: "#interpolation" - name: keyword.operator.regexp.php match: "[$^+*]" interpolation: patterns: - name: constant.numeric.octal.php match: \\[0-7]{1,3} - name: constant.numeric.hex.php match: \\x[0-9A-Fa-f]{1,2} - name: constant.character.escape.php match: \\[nrt\\\$\"] - captures: "1": name: variable.other.php "2": name: punctuation.definition.variable.php "4": name: punctuation.definition.variable.php match: "(?x)\n\ \t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x7F-\\xFF][a-zA-Z0-9_\\x7F-\\xFF]*){0}(\\}))\n\ \t\t\t\t\t\t" comment: "Simple syntax with braces: \"foo${bar}baz\"" - captures: "6": name: invalid.illegal.php "11": name: string.unquoted.index.php "7": name: keyword.operator.index-start.php "12": name: invalid.illegal.invalid-simple-array-index.php "8": name: constant.numeric.index.php "13": name: keyword.operator.index-end.php "9": name: variable.other.index.php "1": name: variable.other.php "2": name: punctuation.definition.variable.php "4": name: keyword.operator.class.php "10": name: punctuation.definition.variable.php "5": name: variable.other.property.php match: "(?x)\n\ \t\t\t\t\t\t((\\$)(?<name>[a-zA-Z_\\x7F-\\xFF][a-zA-Z0-9_\\x7F-\\xFF]*){0})\n\ \t\t\t\t\t\t(?:\n\ \t\t\t\t\t\t\t(->)\n\ \t\t\t\t\t\t\t\t(?:\n\ \t\t\t\t\t\t\t\t\t(\\g<name>)\n\ \t\t\t\t\t\t\t\t\t|\n\ \t\t\t\t\t\t\t\t\t(\\$\\g<name>)\n\ \t\t\t\t\t\t\t\t)\n\ \t\t\t\t\t\t\t|\n\ \t\t\t\t\t\t\t(\\[)\n\ \t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g<name>)|(\\w+)|(.*?))\n\ \t\t\t\t\t\t\t(\\])\n\ \t\t\t\t\t\t\t|\n\ \t\t\t\t\t\t\t(\\$foo)\n\ \t\t\t\t\t\t)?\n\ \t\t\t\t\t\t" comment: "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar" - endCaptures: "0": name: punctuation.definition.variable.php begin: (?=(?<regex>(?#simple syntax)\$(?<name>[a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*){0}(?:\[(?<index>[a-zA-Z0-9_\x7F-\xFF]+|\$\g<name>){0}\]|->\g<name>(\(.*?\))?)?|(?#simple syntax with braces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\]){0}?|\g<complex>|\$\{\g<complex>\})\}|(?#complex syntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\}){0}\}){0})\{ beginCaptures: "0": name: punctuation.definition.variable.php end: \} patterns: - include: "#function-call" - include: "#var_basic" - include: "#object" - include: "#numbers" - name: keyword.operator.index-start.php match: \[ - name: keyword.operator.index-end.php match: \] comment: |- Complex syntax. It seems this now supports complex method calls, as of PHP5. I've put wildcards into the function call parameter lists to handle this, but this may break the pattern. It also might be better to disable it as I shouldn't imagine it's used often (hopefully) and it may confuse PHP4 users. comment: http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing function-call: name: meta.function-call.php match: "[A-Za-z_][A-Za-z_0-9]*(?=\\s*\\()" constants: patterns: - name: constant.language.php match: (?i)\b(TRUE|FALSE|NULL|__(FILE|FUNCTION|CLASS|METHOD|LINE)__|ON|OFF|YES|NO|NL|BR|TAB)\b - name: support.constant.core.php match: \b(DEFAULT_INCLUDE_PATH|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|(RECOVERABLE_)?ERROR|NOTICE|PARSE|STRICT|USER_(ERROR|NOTICE|WARNING)|WARNING)|PEAR_(EXTENSION_DIR|INSTALL_DIR)|PHP_(BINDIR|CONFIG_FILE_PATH|DATADIR|E(OL|XTENSION_DIR)|L(IBDIR|OCALSTATEDIR)|O(S|UTPUT_HANDLER_CONT|UTPUT_HANDLER_END|UTPUT_HANDLER_START)|SYSCONFDIR|VERSION))\b - name: support.constant.std.php match: \b(A(B(DAY_([1-7])|MON_([0-9]{1,2}))|LT_DIGITS|M_STR|SSERT_(ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(ASE_(LOWER|UPPER)|HAR_MAX|O(DESET|NNECTION_(ABORTED|NORMAL|TIMEOUT)|UNT_(NORMAL|RECURSIVE))|REDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)|RNCYSTR|RYPT_(BLOWFISH|EXT_DES|MD5|SALT_LENGTH|STD_DES)|URRENCY_SYMBOL)|D(AY_([1-7])|ECIMAL_POINT|IRECTORY_SEPARATOR|_(FMT|T_FMT))|E(NT_(COMPAT|NOQUOTES|QUOTES)|RA(|_D_FMT|_D_T_FMT|_T_FMT|_YEAR)|XTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(ENTITIES|SPECIALCHARS)|IN(FO_(ALL|CONFIGURATION|CREDITS|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(ALL|PERDIR|SYSTEM|USER)|T_(CURR_SYMBOL|FRAC_DIGITS))|L(C_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|O(CK_(EX|NB|SH|UN)|G_(ALERT|AUTH(|PRIV)|CONS|CRIT|CRON|DAEMON|DEBUG|EMERG|ERR|INFO|KERN|LOCAL([0-7])|LPR|MAIL|NDELAY|NEWS|NOTICE|NOWAIT|ODELAY|PERROR|PID|SYSLOG|USER|UUCP|WARNING)))|M(ON_([0-9]{1,2}|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|YSQL_(ASSOC|BOTH|NUM)|_(1_PI|2_(PI|SQRTPI)|E|L(N10|N2|OG(10E|2E))|PI(|_2|_4)|SQRT1_2|SQRT2))|N(EGATIVE_SIGN|O(EXPR|STR)|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|P(ATH(INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|RADIXCHAR|S(EEK_(CUR|END|SET)|ORT_(ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(BOTH|LEFT|RIGHT))|T(HOUS(ANDS_SEP|EP)|_(FMT(|_AMPM)))|YES(EXPR|STR))\b - name: constant.other.php match: "[a-zA-Z_\\x7F-\\xFF][a-zA-Z0-9_\\x7F-\\xFF]*" comment: |- 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. var_global: name: variable.other.global.php captures: "1": name: punctuation.definition.variable.php match: (\$)(_(COOKIE|FILES|GET|POST|REQUEST))\b sql-string-single-quoted: name: string.quoted.single.sql.php endCaptures: "0": name: punctuation.definition.string.end.php begin: "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)" contentName: source.sql.embedded.php beginCaptures: "0": name: punctuation.definition.string.begin.php end: "'" patterns: - name: comment.line.number-sign.sql match: "#(\\\\'|[^'])*(?='|$\\n?)" - name: comment.line.double-dash.sql match: --(\\'|[^'])*(?='|$\n?) - name: string.quoted.single.unclosed.sql begin: \\'(?!([^\\']|\\[^'])*\\')(?=(\\[^']|.)*?') end: (?=') patterns: - name: constant.character.escape.php match: \\[\\'] comment: |- Unclosed strings must be captured to avoid them eating the remainder of the PHP script Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'" - name: string.quoted.other.backtick.unclosed.sql begin: `(?=[^`]*?') end: (?=') patterns: - name: constant.character.escape.php match: \\[\\'] comment: |- Unclosed strings must be captured to avoid them eating the remainder of the PHP script Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'" - name: string.quoted.double.unclosed.sql begin: "\"(?=[^\"]*?')" end: (?=') patterns: - name: constant.character.escape.php match: \\[\\'] comment: |- Unclosed strings must be captured to avoid them eating the remainder of the PHP script Sample case: $sql = "SELECT * FROM bar WHERE foo = '" . $variable . "'" - name: string.quoted.single.sql captures: "0": name: constant.character.escape.php begin: \\' end: \\' - name: constant.character.escape.php match: \\[\\'] - include: source.sql parameter-default-types: patterns: - include: "#strings" - include: "#numbers" - include: "#string-backtick" - include: "#variables" - name: keyword.operator.key.php match: => - name: keyword.operator.assignment.php match: "=" - name: storage.modifier.reference.php match: "&(?=\\s*\\$)" - name: meta.array.php endCaptures: "0": name: punctuation.definition.array.end.php begin: (array)\s*(\() beginCaptures: "1": name: support.function.construct.php "2": name: punctuation.definition.array.begin.php end: \) patterns: - include: "#parameter-default-types" - include: "#instantiation" - include: "#constants" object: captures: "1": name: keyword.operator.class.php "2": name: meta.function-call.object.php "3": name: variable.other.property.php "4": name: punctuation.definition.variable.php match: |- (?x)(->) (?: ([A-Za-z_][A-Za-z_0-9]*)\s*\( | ((\$+)?[a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*) )? php_doc: patterns: - name: invalid.illegal.missing-asterisk.phpdoc.php match: ^(?!\s*\*).*$\n? comment: PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character - captures: "1": name: keyword.other.phpdoc.php "3": name: storage.modifier.php "4": name: invalid.illegal.wrong-access-type.phpdoc.php match: ^\s*\*\s*(@access)\s+((public|private|protected)|(.+))\s*$ - name: markup.underline.link.php match: ((https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=&#]+(?<![.?:]) - captures: "1": name: keyword.other.phpdoc.php "2": name: markup.underline.link.php match: (@xlink)\s+(.+)\s*$ - name: keyword.other.phpdoc.php match: \@(a(bstract|uthor)|c(ategory|opyright)|global|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final)\b - name: meta.tag.inline.phpdoc.php captures: "1": name: keyword.other.phpdoc.php match: \{(@(link)).+?\} numbers: name: constant.numeric.php match: \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b
uuid: 22986475-8CA5-11D9-AEDD-000D93C8BE28 foldingStartMarker: (/*|{s*$|<<<HTML) patterns:
-
captures:
"6": name: punctuation.section.embedded.end.php "7": name: source.php "8": name: punctuation.whitespace.embedded.trailing.php "1": name: punctuation.whitespace.embedded.leading.php "2": name: source.php.embedded.line.empty.html "3": name: punctuation.section.embedded.begin.php "4": name: meta.consecutive-tags.php "5": name: source.php
match: “(?x)n\
\t\t\t\t(^\\s*)?\t\t\t\t\t\t\t# 1 - Leading whitespace\n\ \t\t\t\t\t(\t\t\t\t\t\t\t# 2 - meta.embedded.line.empty.php\n\ \t\t\t\t\t\t(\t\t\t\t\t\t# 3 - Open Tag\n\ \t\t\t\t\t\t\t(?:\n\ \t\t\t\t\t\t\t\t((?<=\\?>)<)\t\t# 4 - Consecutive tags\n\ \t\t\t\t\t\t\t | <\n\ \t\t\t\t\t\t\t)\n\ \t\t\t\t\t\t\t\\?(?i:php|=)?\n\ \t\t\t\t\t\t)\n\ \t\t\t\t\t\t\t(\\s*)\t\t\t\t# 5 - Loneliness\n\ \t\t\t\t\t\t((\\?)>)\t\t\t\t\t# 6 - Close Tag\n\ \t\t\t\t\t\t\t\t\t\t\t\t# 7 - Scope ? as scope.php\n\ \t\t\t\t\t)\n\ \t\t\t\t(\n\ \t\t\t\t\t\\1\t\t\t\t\t\t\t# Match nothing if there was no\n\ \t\t\t\t\t\t\t\t\t\t\t\t# leading whitespace...\n\ \t\t\t\t | (\\s*$\\n)?\t\t\t\t\t# or match trailing whitespace.\n\ \t\t\t\t)\n\ \t\t\t"
comment: Matches empty tags.
-
endCaptures:
"0": name: punctuation.whitespace.embedded.trailing.php
begin: ^s*(?=<?) beginCaptures:
"0": name: punctuation.whitespace.embedded.leading.php
end: (?<=?>)(s*$n)? patterns:
-
name: source.php.embedded.block.html endCaptures:
"0": name: punctuation.section.embedded.end.php "1": name: source.php
begin: <?(?i:php|=)? beginCaptures:
"0": name: punctuation.section.embedded.begin.php
end: (?)> patterns:
-
include: “#language”
-
comment: Catches tags with preceeding whitespace.
-
-
name: source.php.embedded.line.html endCaptures:
"0": name: punctuation.section.embedded.end.php "1": name: source.php
begin: (((?<=?>)<)|<)?(?i:php|=)? beginCaptures:
"0": name: punctuation.section.embedded.begin.php "2": name: meta.consecutive-tags.php
end: (?)> patterns:
-
include: “#language”
comment: Catches the remainder.
-
foldingStopMarker: (*/|^s*}|^HTML;) comment: “TODO:n\
\xE2\x80\xA2 Try to improve parameters list syntax \xE2\x80\x93 scope numbers, \xE2\x80\x98=\xE2\x80\x99, \xE2\x80\x98,\xE2\x80\x99 and possibly be intelligent about entity ordering\n\ \xE2\x80\xA2 Is meta.function-call the correct scope? I've added it to my theme but by default it's not highlighted"