{ "comment": "JavaScript Syntax: version 2.0", "fileTypes": [ "js", "htc", "jsx" ], "firstLineMatch": "^#!.*\\bnode", "keyEquivalent": "^~J", "name": "JavaScript", "patterns": [ { "captures": { "1": { "name": "support.class.js" }, "2": { "name": "support.constant.js" }, "3": { "name": "keyword.operator.js" } }, "comment": "match stuff like: Sound.prototype = { … } when extending an object", "match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\s*(=)\\s*", "name": "meta.class.js" }, { "begin": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)?\\s*(\\()", "beginCaptures": { "1": { "name": "support.class.js" }, "2": { "name": "support.constant.js" }, "3": { "name": "entity.name.function.js" }, "4": { "name": "keyword.operator.js" }, "5": { "name": "storage.type.function.js" }, "6": { "name": "punctuation.definition.parameters.begin.js" } }, "comment": "match stuff like: Sound.prototype.play = function() { … }", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.js" } }, "name": "meta.function.prototype.js", "patterns": [ { "include": "#function-params" } ] }, { "captures": { "1": { "name": "support.class.js" }, "2": { "name": "support.constant.js" }, "3": { "name": "entity.name.function.js" }, "4": { "name": "keyword.operator.js" } }, "comment": "match stuff like: Sound.prototype.play = myfunc", "match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*", "name": "meta.function.js" }, { "begin": "([a-zA-Z_?.$][\\w?.$]*)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)\\s*(\\()", "beginCaptures": { "1": { "name": "support.class.js" }, "2": { "name": "entity.name.function.js" }, "3": { "name": "keyword.operator.js" }, "4": { "name": "storage.type.function.js" }, "5": { "name": "punctuation.definition.parameters.begin.js" } }, "comment": "match stuff like: Sound.play = function() { … }", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.js" } }, "name": "meta.function.js", "patterns": [ { "include": "#function-params" } ] }, { "begin": "([a-zA-Z_?$][\\w?$]*)\\s*(=)\\s*(function)\\s*(\\()", "beginCaptures": { "1": { "name": "entity.name.function.js" }, "2": { "name": "keyword.operator.js" }, "3": { "name": "storage.type.function.js" }, "4": { "name": "punctuation.definition.parameters.begin.js" } }, "comment": "match stuff like: play = function() { … }", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.js" } }, "name": "meta.function.js", "patterns": [ { "include": "#function-params" } ] }, { "begin": "\\b(function)\\s+([a-zA-Z_$]\\w*)?\\s*(\\()", "beginCaptures": { "1": { "name": "storage.type.function.js" }, "2": { "name": "entity.name.function.js" }, "3": { "name": "punctuation.definition.parameters.begin.js" } }, "comment": "match regular function like: function myFunc(arg) { … }", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.js" } }, "name": "meta.function.js", "patterns": [ { "include": "#function-params" } ] }, { "begin": "\\b([a-zA-Z_?.$][\\w?.$]*)\\s*:\\s*\\b(function)?\\s*(\\()", "beginCaptures": { "1": { "name": "entity.name.function.js" }, "2": { "name": "storage.type.function.js" }, "3": { "name": "punctuation.definition.parameters.begin.js" } }, "comment": "match stuff like: foobar: function() { … }", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.js" } }, "name": "meta.function.json.js", "patterns": [ { "include": "#function-params" } ] }, { "begin": "(?:((')(.*?)('))|((\")(.*?)(\")))\\s*:\\s*\\b(function)?\\s*(\\()", "beginCaptures": { "1": { "name": "string.quoted.single.js" }, "2": { "name": "punctuation.definition.string.begin.js" }, "3": { "name": "entity.name.function.js" }, "4": { "name": "punctuation.definition.string.end.js" }, "5": { "name": "string.quoted.double.js" }, "6": { "name": "punctuation.definition.string.begin.js" }, "7": { "name": "entity.name.function.js" }, "8": { "name": "punctuation.definition.string.end.js" }, "9": { "name": "entity.name.function.js" }, "10": { "name": "punctuation.definition.parameters.begin.js" } }, "comment": "Attempt to match \"foo\": function", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.js" } }, "name": "meta.function.json.js", "patterns": [ { "include": "#function-params" } ] }, { "captures": { "1": { "name": "keyword.operator.new.js" }, "2": { "name": "entity.name.type.instance.js" } }, "match": "(new)\\s+(\\w+(?:\\.\\w*)?)", "name": "meta.class.instance.constructor" }, { "match": "\\b(console)\\b", "name": "entity.name.type.object.js.firebug" }, { "match": "\\.(warn|info|log|error|time|timeEnd|assert)\\b", "name": "support.function.js.firebug" }, { "match": "\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b", "name": "constant.numeric.js" }, { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.js" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.js" } }, "name": "string.quoted.single.js", "patterns": [ { "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)", "name": "constant.character.escape.js" } ] }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.js" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.js" } }, "name": "string.quoted.double.js", "patterns": [ { "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", "name": "constant.character.escape.js" } ] }, { "begin": "/\\*\\*(?!/)", "captures": { "0": { "name": "punctuation.definition.comment.js" } }, "end": "\\*/", "name": "comment.block.documentation.js" }, { "begin": "/\\*", "captures": { "0": { "name": "punctuation.definition.comment.js" } }, "end": "\\*/", "name": "comment.block.js" }, { "begin": "(^[ \\t]+)?(?=//)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.js" } }, "end": "(?!\\G)", "patterns": [ { "begin": "//", "beginCaptures": { "0": { "name": "punctuation.definition.comment.js" } }, "end": "\\n", "name": "comment.line.double-slash.js" } ] }, { "captures": { "0": { "name": "punctuation.definition.comment.html.js" }, "2": { "name": "punctuation.definition.comment.html.js" } }, "match": "()", "name": "comment.block.html.js" }, { "match": "(?=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?