UNPKG

tm-grammars

Version:
241 lines (240 loc) 6.09 kB
{ "displayName": "ZenScript", "fileTypes": [ "zs" ], "name": "zenscript", "patterns": [ { "match": "\\b((0([Xx])\\h*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))(([Ee])([-+])?[0-9]+)?)([DFLUdflu]|UL|ul)?\\b", "name": "constant.numeric.zenscript" }, { "match": "\\b-?(0[BOXbox])(0|[1-9A-Fa-f][_\\h]*)[A-Z_a-z]*\\b", "name": "constant.numeric.zenscript" }, { "include": "#code" }, { "match": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)", "name": "storage.type.object.array.zenscript" } ], "repository": { "brackets": { "patterns": [ { "captures": { "1": { "name": "keyword.control.zenscript" }, "2": { "name": "keyword.other.zenscript" }, "3": { "name": "keyword.control.zenscript" }, "4": { "name": "variable.other.zenscript" }, "5": { "name": "keyword.control.zenscript" }, "6": { "name": "constant.numeric.zenscript" }, "7": { "name": "keyword.control.zenscript" } }, "match": "(<)\\b(.*?)(:(.*?(:(\\*|\\d+)?)?)?)(>)", "name": "keyword.other.zenscript" } ] }, "class": { "captures": { "1": { "name": "storage.type.zenscript" }, "2": { "name": "entity.name.type.class.zenscript" } }, "match": "(zenClass)\\s+(\\w+)", "name": "meta.class.zenscript" }, "code": { "patterns": [ { "include": "#class" }, { "include": "#functions" }, { "include": "#dots" }, { "include": "#quotes" }, { "include": "#brackets" }, { "include": "#comments" }, { "include": "#var" }, { "include": "#keywords" }, { "include": "#constants" }, { "include": "#operators" } ] }, "comments": { "patterns": [ { "match": "//[^\\n]*", "name": "comment.line.double=slash" }, { "begin": "/\\*", "beginCaptures": { "0": { "name": "comment.block" } }, "end": "\\*/", "endCaptures": { "0": { "name": "comment.block" } }, "name": "comment.block" } ] }, "dots": { "captures": { "1": { "name": "storage.type.zenscript" }, "2": { "name": "keyword.control.zenscript" }, "5": { "name": "keyword.control.zenscript" } }, "match": "\\b(\\w+)(\\.)(\\w+)((\\.)(\\w+))*", "name": "plain.text.zenscript" }, "functions": { "captures": { "0": { "name": "storage.type.function.zenscript" }, "1": { "name": "entity.name.function.zenscript" } }, "match": "function\\s+([$A-Z_a-z][$\\w]*)\\s*(?=\\()", "name": "meta.function.zenscript" }, "keywords": { "patterns": [ { "match": "\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\b", "name": "keyword.control.zenscript" }, { "match": "\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\b", "name": "storage.type.zenscript" }, { "match": "\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\b", "name": "storage.modifier.zenscript" }, { "match": "\\b(Native|Precondition)\\b", "name": "entity.other.attribute-name" }, { "match": "\\b(null|true|false)\\b", "name": "constant.language" } ] }, "operators": { "patterns": [ { "match": "\\b(\\.\\.??|\\.\\.\\.|[+,]|\\+=|\\+\\+|-=??|--|~=??|\\*=??|/=??|%=??|\\|=??|\\|\\||&=??|&&|\\^=??|\\?\\.??|\\?\\?|<=??|<<=??|>=??|>>=??|>>>=??|=>?|===??|!=??|!==|[$`])\\b", "name": "keyword.control" }, { "match": "\\b([:;])\\b", "name": "keyword.control" } ] }, "quotes": { "patterns": [ { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.zenscript" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.zenscript" } }, "name": "string.quoted.double.zenscript", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.zenscript" } ] }, { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.zenscript" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.zenscript" } }, "name": "string.quoted.single.zenscript", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.zenscript" } ] } ] }, "var": { "match": "\\b(va[lr])\\b", "name": "storage.type" } }, "scopeName": "source.zenscript" }