{ "name": "Zephir", "scopeName": "source.php.zephir", "patterns": [ { "captures": { "1": { "name": "support.class.zephir" }, "2": { "name": "support.constant.zephir" }, "3": { "name": "keyword.operator.zephir" } } }, { "captures": { "1": { "name": "support.class.zephir" }, "2": { "name": "support.constant.zephir" }, "3": { "name": "entity.name.function.zephir" }, "4": { "name": "keyword.operator.zephir" }, "5": { "name": "storage.type.function.zephir" }, "6": { "name": "punctuation.definition.parameters.begin.zephir" }, "7": { "name": "variable.parameter.function.zephir" }, "8": { "name": "punctuation.definition.parameters.end.zephir" } } }, { "captures": { "1": { "name": "support.class.zephir" }, "2": { "name": "support.constant.zephir" }, "3": { "name": "entity.name.function.zephir" }, "4": { "name": "keyword.operator.zephir" } } }, { "captures": { "1": { "name": "support.class.zephir" }, "2": { "name": "entity.name.function.zephir" }, "3": { "name": "keyword.operator.zephir" }, "4": { "name": "storage.type.function.zephir" }, "5": { "name": "punctuation.definition.parameters.begin.zephir" }, "6": { "name": "variable.parameter.function.zephir" }, "7": { "name": "punctuation.definition.parameters.end.zephir" } } }, { "captures": { "1": { "name": "entity.name.function.zephir" }, "2": { "name": "keyword.operator.zephir" }, "3": { "name": "storage.type.function.zephir" }, "4": { "name": "punctuation.definition.parameters.begin.zephir" }, "5": { "name": "variable.parameter.function.zephir" }, "6": { "name": "punctuation.definition.parameters.end.zephir" } } }, { "name": "meta.function.zephir", "match": "\\b(function)\\s+([a-zA-Z_$]\\w*)?\\s*(\\()(.*?)(\\))", "captures": { "1": { "name": "storage.type.function.zephir" }, "2": { "name": "entity.name.function.zephir" }, "3": { "name": "punctuation.definition.parameters.begin.zephir" }, "4": { "name": "variable.parameter.function.zephir" }, "5": { "name": "punctuation.definition.parameters.end.zephir" } } }, { "name": "meta.function.json.zephir", "match": "\\b([a-zA-Z_?.$][\\w?.$]*)\\s*:\\s*\\b(function)?\\s*(\\()(.*?)(\\))", "captures": { "1": { "name": "entity.name.function.zephir" }, "2": { "name": "storage.type.function.zephir" }, "3": { "name": "punctuation.definition.parameters.begin.zephir" }, "4": { "name": "variable.parameter.function.zephir" }, "5": { "name": "punctuation.definition.parameters.end.zephir" } } }, { "name": "meta.function.json.zephir", "match": "(?:((')([^']*)('))|((\")([^\"]*)(\")))\\s*:\\s*\\b(function)?\\s*(\\()([^)]*)(\\))", "captures": { "1": { "name": "string.quoted.single.zephir" }, "10": { "name": "punctuation.definition.parameters.begin.zephir" }, "11": { "name": "variable.parameter.function.zephir" }, "12": { "name": "punctuation.definition.parameters.end.zephir" }, "2": { "name": "punctuation.definition.string.begin.zephir" }, "3": { "name": "entity.name.function.zephir" }, "4": { "name": "punctuation.definition.string.end.zephir" }, "5": { "name": "string.quoted.double.zephir" }, "6": { "name": "punctuation.definition.string.begin.zephir" }, "7": { "name": "entity.name.function.zephir" }, "8": { "name": "punctuation.definition.string.end.zephir" }, "9": { "name": "entity.name.function.zephir" } } }, { "name": "meta.class.instance.constructor", "match": "(new)\\s+(\\w+(?:\\.\\w*)?)", "captures": { "1": { "name": "keyword.operator.new.zephir" }, "2": { "name": "entity.name.type.instance.zephir" } } }, { "name": "constant.numeric.zephir", "match": "\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b" }, { "name": "string.regexp.zephir", "match": "\u003c([a-zA-Z0-9\\_\\\\\\!]+)\u003e" }, { "name": "string.quoted.single.zephir", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.zephir", "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.zephir" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.zephir" } } }, { "name": "string.quoted.double.zephir", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.zephir", "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.zephir" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.zephir" } } }, { "name": "comment.block.documentation.zephir", "begin": "/\\*\\*(?!/)", "end": "\\*/", "captures": { "0": { "name": "punctuation.definition.comment.zephir" } } }, { "name": "comment.block.zephir", "begin": "/\\*", "end": "\\*/", "captures": { "0": { "name": "punctuation.definition.comment.zephir" } } }, { "name": "comment.line.double-slash.zephir", "match": "(//).*$\\n?", "captures": { "1": { "name": "punctuation.definition.comment.zephir" } } }, { "name": "storage.type.zephir", "match": "\\b(boolean|string|char|class|trait|resource|object|array|callable|namespace|use|as|get|__toString|set|abstract|double|float|fn|function|int|interface|long|var|void|ulong|uint|uchar|unsigned|self)\\b" }, { "name": "storage.modifier.zephir", "match": "\\b(const|fetch|empty|likely|unlikely|isset|unset|extends|final|implements|private|protected|public|static|scoped|internal|inline|deprecated|enum|throws|clone)\\b" }, { "name": "keyword.control.zephir", "match": "\\b(echo|require|break|case|catch|let|continue|default|do|else|elseif|for|goto|if|return|switch|match|throw|try|while|loop)\\b" }, { "name": "keyword.operator.zephir", "match": "\\b(in|reverse|instanceof|new|typeof)\\b" }, { "name": "constant.language.boolean.true.zephir", "match": "\\btrue\\b" }, { "name": "constant.language.boolean.false.zephir", "match": "\\bfalse\\b" }, { "name": "constant.language.null.zephir", "match": "\\bnull\\b" }, { "name": "variable.language.zephir", "match": "\\b(parent|self|this)\\b" }, { "name": "string.regexp.zephir", "match": "\\b(PHP_EOL|PHP_VERSION|([A-Z0-9\\_]+))\\b" }, { "name": "keyword.operator.zephir", "match": "-\u003e|::" }, { "name": "keyword.operator.zephir", "match": "!|\\$|%|\u0026|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|\u003c=|\u003e=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\u003c\u003e|\u003c|\u003e|!|\u0026\u0026|\\|\\||\\?\\:|\\*=|(?\u003c!\\()/=|%=|\\+=|\\-=|\u0026=|\\.=|\\^=|\\b(instanceof|new|typeof|void)\\b" }, { "name": "punctuation.terminator.statement.zephir", "match": "\\;" }, { "name": "meta.delimiter.object.comma.zephir", "match": ",[ |\\t]*" }, { "name": "meta.delimiter.method.period.zephir", "match": "\\." }, { "name": "meta.brace.curly.zephir", "match": "\\{|\\}" }, { "name": "meta.brace.round.zephir", "match": "\\(|\\)" }, { "name": "meta.brace.square.zephir", "match": "\\[|\\]" } ] }