{ "displayName": "ActionScript", "fileTypes": [ "as" ], "name": "actionscript-3", "patterns": [ { "include": "#comments" }, { "include": "#package" }, { "include": "#class" }, { "include": "#interface" }, { "include": "#namespace_declaration" }, { "include": "#import" }, { "include": "#mxml" }, { "include": "#strings" }, { "include": "#regexp" }, { "include": "#variable_declaration" }, { "include": "#numbers" }, { "include": "#primitive_types" }, { "include": "#primitive_error_types" }, { "include": "#dynamic_type" }, { "include": "#primitive_functions" }, { "include": "#language_constants" }, { "include": "#language_variables" }, { "include": "#guess_type" }, { "include": "#guess_constant" }, { "include": "#other_operators" }, { "include": "#arithmetic_operators" }, { "include": "#logical_operators" }, { "include": "#array_access_operators" }, { "include": "#vector_creation_operators" }, { "include": "#control_keywords" }, { "include": "#other_keywords" }, { "include": "#use_namespace" }, { "include": "#functions" } ], "repository": { "arithmetic_operators": { "match": "([-%+/]|(??^|~])", "name": "keyword.operator.actionscript.3" }, "metadata": { "begin": "(?<=(?:^|[;{}]|\\*/)\\s*)\\[\\s*\\b([$A-Z_a-z][$0-9A-Z_a-z]+)\\b", "beginCaptures": { "1": { "name": "keyword.other.actionscript.3" } }, "end": "]", "name": "meta.metadata_info.actionscript.3", "patterns": [ { "include": "#metadata_info" } ] }, "metadata_info": { "begin": "\\(", "end": "\\)", "patterns": [ { "include": "#strings" }, { "captures": { "1": { "name": "variable.parameter.actionscript.3" }, "2": { "name": "keyword.operator.actionscript.3" } }, "match": "(\\w+)\\s*(=)" } ] }, "method": { "begin": "(^|\\s+)((\\w+)\\s+)?((\\w+)\\s+)?((\\w+)\\s+)?((\\w+)\\s+)?(?=\\bfunction\\b)", "beginCaptures": { "3": { "name": "storage.modifier.actionscript.3" }, "5": { "name": "storage.modifier.actionscript.3" }, "7": { "name": "storage.modifier.actionscript.3" }, "8": { "name": "storage.modifier.actionscript.3" } }, "end": "(?<=([;}]))", "name": "meta.method.actionscript.3", "patterns": [ { "include": "#functions" }, { "include": "#code_block" } ] }, "mxml": { "begin": "", "name": "meta.cdata.actionscript.3", "patterns": [ { "include": "#comments" }, { "include": "#import" }, { "include": "#metadata" }, { "include": "#class" }, { "include": "#namespace_declaration" }, { "include": "#use_namespace" }, { "include": "#class_declaration" }, { "include": "#method" }, { "include": "#comments" }, { "include": "#strings" }, { "include": "#regexp" }, { "include": "#numbers" }, { "include": "#primitive_types" }, { "include": "#primitive_error_types" }, { "include": "#dynamic_type" }, { "include": "#primitive_functions" }, { "include": "#language_constants" }, { "include": "#language_variables" }, { "include": "#other_keywords" }, { "include": "#guess_type" }, { "include": "#guess_constant" }, { "include": "#other_operators" }, { "include": "#arithmetic_operators" }, { "include": "#array_access_operators" }, { "include": "#vector_creation_operators" }, { "include": "#variable_declaration" } ] }, "namespace_declaration": { "captures": { "2": { "name": "storage.modifier.actionscript.3" }, "3": { "name": "storage.modifier.actionscript.3" } }, "match": "((\\w+)\\s+)?(namespace)\\s+[$0-9A-Z_a-z]+", "name": "meta.namespace_declaration.actionscript.3" }, "numbers": { "match": "\\b((0([Xx])\\h*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))(([Ee])([-+])?[0-9]+)?)([Ll]|UL|ul|[FUfu])?\\b", "name": "constant.numeric.actionscript.3" }, "object_literal": { "begin": "\\{", "end": "}", "name": "meta.object_literal.actionscript.3", "patterns": [ { "include": "#object_literal" }, { "include": "#comments" }, { "include": "#strings" }, { "include": "#regexp" }, { "include": "#numbers" }, { "include": "#primitive_types" }, { "include": "#primitive_error_types" }, { "include": "#dynamic_type" }, { "include": "#primitive_functions" }, { "include": "#language_constants" }, { "include": "#language_variables" }, { "include": "#guess_type" }, { "include": "#guess_constant" }, { "include": "#array_access_operators" }, { "include": "#vector_creation_operators" }, { "include": "#functions" } ] }, "other_keywords": { "match": "\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\b", "name": "keyword.other.actionscript.3" }, "other_operators": { "match": "([.=])", "name": "keyword.operator.actionscript.3" }, "package": { "begin": "(^|\\s+)(package)\\b", "beginCaptures": { "2": { "name": "keyword.other.actionscript.3" } }, "end": "}", "name": "meta.package.actionscript.3", "patterns": [ { "include": "#package_name" }, { "include": "#variable_declaration" }, { "include": "#method" }, { "include": "#comments" }, { "include": "#return_type" }, { "include": "#import" }, { "include": "#use_namespace" }, { "include": "#strings" }, { "include": "#numbers" }, { "include": "#language_constants" }, { "include": "#metadata" }, { "include": "#class" }, { "include": "#interface" }, { "include": "#namespace_declaration" } ] }, "package_name": { "begin": "(?<=package)\\s+([._\\w]*)\\b", "end": "\\{", "name": "meta.package_name.actionscript.3" }, "parameters": { "begin": "(\\.\\.\\.)?\\s*([$A-Z_a-z][$0-9A-Z_a-z]*)(?:\\s*(:)\\s*(?:([$A-Za-z][$0-9A-Z_a-z]+(?:\\.[$A-Za-z][$0-9A-Z_a-z]+)*)(?:\\.<([$A-Za-z][$0-9A-Z_a-z]+(?:\\.[$A-Za-z][$0-9A-Z_a-z]+)*)>)?|(\\*)))?(?:\\s*(=))?", "beginCaptures": { "1": { "name": "keyword.operator.actionscript.3" }, "2": { "name": "variable.parameter.actionscript.3" }, "3": { "name": "keyword.operator.actionscript.3" }, "4": { "name": "support.type.actionscript.3" }, "5": { "name": "support.type.actionscript.3" }, "6": { "name": "support.type.actionscript.3" }, "7": { "name": "keyword.operator.actionscript.3" } }, "end": ",|(?=\\))", "patterns": [ { "include": "#strings" }, { "include": "#numbers" }, { "include": "#language_constants" }, { "include": "#comments" }, { "include": "#primitive_types" }, { "include": "#primitive_error_types" }, { "include": "#dynamic_type" }, { "include": "#guess_type" }, { "include": "#guess_constant" } ] }, "primitive_error_types": { "captures": { "1": { "name": "support.class.error.actionscript.3" } }, "match": "\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\b" }, "primitive_functions": { "captures": { "1": { "name": "support.function.actionscript.3" } }, "match": "\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()" }, "primitive_types": { "captures": { "1": { "name": "support.class.builtin.actionscript.3" } }, "match": "\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\*(?<=a))\\b" }, "regexp": { "begin": "(?<=[(,:=\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![*+/?{}])", "end": "$|(/)[gim]*", "name": "string.regex.actionscript.3", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.actionscript.3" }, { "match": "\\[(\\\\]|[^]])*]", "name": "constant.character.class.actionscript.3" } ] }, "return_type": { "captures": { "1": { "name": "keyword.operator.actionscript.3" }, "2": { "name": "support.type.actionscript.3" }, "3": { "name": "support.type.actionscript.3" }, "4": { "name": "support.type.actionscript.3" } }, "match": "(:)\\s*([$A-Za-z][$0-9A-Z_a-z]+(?:\\.[$A-Za-z][$0-9A-Z_a-z]+)*)(?:\\.<([$A-Za-z][$0-9A-Z_a-z]+(?:\\.[$A-Za-z][$0-9A-Z_a-z]+)*)>)?|(\\*)" }, "strings": { "patterns": [ { "begin": "@\"", "end": "\"", "name": "string.quoted.verbatim.actionscript.3" }, { "begin": "\"", "end": "\"", "name": "string.quoted.double.actionscript.3", "patterns": [ { "include": "#escapes" } ] }, { "begin": "'", "end": "'", "name": "string.quoted.single.actionscript.3", "patterns": [ { "include": "#escapes" } ] } ] }, "use_namespace": { "captures": { "2": { "name": "keyword.other.actionscript.3" }, "3": { "name": "keyword.other.actionscript.3" }, "4": { "name": "storage.modifier.actionscript.3" } }, "match": "(^|\\s+|;)(use\\s+)?(namespace)\\s+(\\w+)\\s*(;|$)" }, "variable_declaration": { "captures": { "2": { "name": "storage.modifier.actionscript.3" }, "4": { "name": "storage.modifier.actionscript.3" }, "6": { "name": "storage.modifier.actionscript.3" }, "7": { "name": "storage.modifier.actionscript.3" }, "8": { "name": "keyword.operator.actionscript.3" } }, "match": "((static)\\s+)?((\\w+)\\s+)?((static)\\s+)?(const|var)\\s+[$0-9A-Z_a-z]+(?:\\s*(:))?", "name": "meta.variable_declaration.actionscript.3" }, "vector_creation_operators": { "match": "([<>])", "name": "keyword.operator.actionscript.3" } }, "scopeName": "source.actionscript.3" }