'scopeName': 'source.js' 'fileTypes': [ 'js' 'htc' '_js' 'es6' ] 'firstLineMatch': '^#!.*\\bnode' 'name': 'JavaScript (Meteor)' 'patterns': [ { 'match': '(Meteor.isClient|Meteor.isServer|Meteor.isCordova|Meteor.startup|Meteor.absolute)' 'name': 'api.meteor.core' } { 'match': '(Meteor.publish|Meteor.subscribe)' 'name': 'api.meteor.ddp' } { 'match': '(HTTP.get|HTTP.post|HTTP.call|HTTP.put|HTTP.del)' 'name': 'api.meteor.http' } { 'match': '(Session.setDefault|Session.set|Session.get|Session.equals|Session.toggle|Session.clear)' 'name': 'api.meteor.session' } { 'match': '(([a-zA-Z_?.$][\\w?.$]*)\\.findOne|([a-zA-Z_?.$][\\w?.$]*)\\.find|([a-zA-Z_?.$][\\w?.$]*)\\.update|([a-zA-Z_?.$][\\w?.$]*)\\.upsert|([a-zA-Z_?.$][\\w?.$]*)\\.remove|([a-zA-Z_?.$][\\w?.$]*)\\.insert)' 'name': 'api.mongo.collection' } { 'match': 'Template.(.*).events|Template.(.*).helpers|Template.(.*).rendered|Template.(.*).created|Template.(.*).destroyed|Template.registerHelper' 'name': 'api.meteor.template' } { 'match': '(Blaze.render|Blaze.renderWithData|Blaze.remove|Blaze.getData|Blaze.toHTML|Blaze.toHTMLWithData|Blaze.isTemplate)' 'name': 'api.meteor.blaze' } { 'match': '(Router.map|Router.go|Router.configure|this.route)' 'name': 'api.meteor.router' } { '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': 'storage.type.function.js' '7': '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': 'storage.type.function.js' '6': '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': 'storage.type.function.js' '5': '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' # '3': # 'name': 'storage.type.function.js' # '4': # 'name': 'entity.name.function.js' # '5': # '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': 'storage.type.function.js' '4': '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': 'storage.type.function.js' # '10': # 'name': 'storage.type.function.js' # '11': # '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]+)?)((e|E)[+-]?[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': '`' 'beginCaptures': '0': 'name': 'punctuation.definition.string.begin.js' 'end': '`' 'endCaptures': '0': 'name': 'punctuation.definition.string.end.js' 'name': 'string.quoted.template.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' } { 'include': '#interpolated_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': '(?=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?|\\:|\\*=|(?