{ "name": "AngelScript", "scopeName": "source.angelscript", "patterns": [ { "name": "comment.line.double-slash.angelscript", "match": "(//).*$\\n?", "captures": { "1": { "name": "punctuation.definition.comment.angelscript" } } }, { "name": "comment.block.angelscript", "begin": "/\\*", "end": "\\*/", "captures": { "0": { "name": "punctuation.definition.comment.angelscript" } } }, { "name": "string.quoted.double.angelscript", "begin": "\"\"\"", "end": "\"\"\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.angelscript" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.angelscript" } } }, { "name": "string.quoted.double.angelscript", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.angelscript", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.angelscript" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.angelscript" } } }, { "name": "string.quoted.single.angelscript", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.angelscript", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.angelscript" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.angelscript" } } }, { "name": "keyword.operator.logical.angelscript", "match": "(~|!|\u0026\u0026|\\|\\|)" }, { "name": "keyword.operator.symbolic.angelscript", "match": "[-!%\u0026\u003e\u003c@*+=/?:]" }, { "name": "keyword.control.angelscript", "match": "\\b(for|in|break|continue|while|do|return|if|else|case|switch|namespace)\\b" }, { "name": "keyword.operator.angelscript", "match": "\\b(is|cast)\\b" }, { "name": "keyword.operator.logical.angelscript", "match": "\\b(or|and|xor|not)\\b" }, { "name": "storage.modifier.angelscript", "match": "\\b(get|in|inout|out|override|set|private|public|const|default|final|shared|mixin)\\b" }, { "name": "storage.type.angelscript", "match": "\\b(enum|void|bool|typedef|funcdef|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)\\b" }, { "name": "storage.type.angelscript", "match": "[A-Za-z][A-Za-z0-9]+@" }, { "name": "constant.language.angelscript", "match": "\\b(null|true|false)\\b" }, { "name": "variable.language.angelscript", "match": "\\b(this|super)\\b" }, { "name": "keyword.control.import.angelscript", "match": "\\b(import|from)\\b" }, { "name": "constant.numeric.angelscript", "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b" }, { "name": "keyword.control.import.angelscript", "match": "^\\s*\\#([a-zA-Z_0-9]*)?" }, { "name": "meta.metadata.angelscript", "match": "^\\s*\\[(.*)\\]\\s*?", "captures": { "1": { "name": "markup.heading.angelscript" } } }, { "name": "variable.other.dot-access.angelscript", "match": "\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()" }, { "name": "meta.class.angelscript", "match": "\\b(class|interface)\\s+([a-zA-Z_0-9]*)(?:\\s*:\\s*([a-zA-Z_0-9]*)(\\s*,\\s*([a-zA-Z_0-9]*))?(\\s*,\\s*([a-zA-Z_0-9]*))?(\\s*,\\s*([a-zA-Z_0-9]*))?(\\s*,\\s*([a-zA-Z_0-9]*))?)?", "captures": { "1": { "name": "storage.type.class.angelscript" }, "11": { "name": "entity.other.inherited-class.angelscript" }, "2": { "name": "entity.name.type.class.angelscript" }, "3": { "name": "entity.other.inherited-class.angelscript" }, "5": { "name": "entity.other.inherited-class.angelscript" }, "7": { "name": "entity.other.inherited-class.angelscript" }, "9": { "name": "entity.other.inherited-class.angelscript" } } }, { "match": "(\\b|\\.)([a-zA-Z_][a-zA-Z_0-9]*)\\b(\\s*\\()", "captures": { "2": { "name": "meta.function-call.angelscript" } } }, { "name": "constant.other.angelscript", "match": "\\b([A-Z][A-Z0-9_]+)\\b" } ] }