{"information_for_contributors":["This file has been converted from https://github.com/atom/language-coffee-script/blob/master/grammars/coffeescript.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],"version":"https://github.com/atom/language-coffee-script/commit/0f6db9143663e18b1ad00667820f46747dba495e","name":"CoffeeScript","scopeName":"source.coffee","patterns":[{"include":"#jsx"},{"match":"(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))","name":"meta.class.instance.constructor.coffee","captures":{"1":{"name":"keyword.operator.new.coffee"},"2":{"name":"storage.type.class.coffee"},"3":{"name":"entity.name.type.instance.coffee"},"4":{"name":"entity.name.type.instance.coffee"}}},{"begin":"'''","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"'''","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.single.heredoc.coffee","patterns":[{"captures":{"1":{"name":"punctuation.definition.escape.backslash.coffee"}},"match":"(\\\\).","name":"constant.character.escape.backslash.coffee"}]},{"begin":"\"\"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"\"\"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.double.heredoc.coffee","patterns":[{"captures":{"1":{"name":"punctuation.definition.escape.backslash.coffee"}},"match":"(\\\\).","name":"constant.character.escape.backslash.coffee"},{"include":"#interpolated_coffee"}]},{"match":"(`)(.*)(`)","name":"string.quoted.script.coffee","captures":{"1":{"name":"punctuation.definition.string.begin.coffee"},"2":{"name":"source.js.embedded.coffee","patterns":[{"include":"source.js"}]},"3":{"name":"punctuation.definition.string.end.coffee"}}},{"begin":"(?)","beginCaptures":{"1":{"name":"entity.name.function.coffee"},"2":{"name":"variable.other.readwrite.instance.coffee"},"3":{"name":"keyword.operator.assignment.coffee"}},"end":"[=-]>","endCaptures":{"0":{"name":"storage.type.function.coffee"}},"name":"meta.function.coffee","patterns":[{"include":"#function_params"}]},{"begin":"(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)","beginCaptures":{"1":{"name":"string.quoted.single.coffee"},"2":{"name":"punctuation.definition.string.begin.coffee"},"3":{"name":"entity.name.function.coffee"},"4":{"name":"punctuation.definition.string.end.coffee"},"5":{"name":"string.quoted.double.coffee"},"6":{"name":"punctuation.definition.string.begin.coffee"},"7":{"name":"entity.name.function.coffee"},"8":{"name":"punctuation.definition.string.end.coffee"},"9":{"name":"keyword.operator.assignment.coffee"}},"end":"[=-]>","endCaptures":{"0":{"name":"storage.type.function.coffee"}},"name":"meta.function.coffee","patterns":[{"include":"#function_params"}]},{"begin":"(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)","end":"[=-]>","endCaptures":{"0":{"name":"storage.type.function.coffee"}},"name":"meta.function.inline.coffee","patterns":[{"include":"#function_params"}]},{"begin":"(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)","beginCaptures":{"1":{"name":"punctuation.definition.destructuring.begin.bracket.curly.coffee"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.destructuring.end.bracket.curly.coffee"}},"name":"meta.variable.assignment.destructured.object.coffee","patterns":[{"include":"$self"},{"match":"[a-zA-Z$_]\\w*","name":"variable.assignment.coffee"}]},{"begin":"(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)","beginCaptures":{"1":{"name":"punctuation.definition.destructuring.begin.bracket.square.coffee"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.destructuring.end.bracket.square.coffee"}},"name":"meta.variable.assignment.destructured.array.coffee","patterns":[{"include":"$self"},{"match":"[a-zA-Z$_]\\w*","name":"variable.assignment.coffee"}]},{"match":"\\b(?|\\-\\d|\\[|{|\"|'))","end":"(?=\\s*(?|\\-\\d|\\[|{|\"|')))","beginCaptures":{"1":{"name":"variable.other.readwrite.instance.coffee"},"2":{"patterns":[{"include":"#function_names"}]}},"end":"(?=\\s*(?|\\-\\d|\\[|{|\"|')))","beginCaptures":{"1":{"name":"punctuation.separator.method.period.coffee"},"2":{"name":"keyword.operator.prototype.coffee"},"3":{"patterns":[{"include":"#method_names"}]}},"end":"(?=\\s*(?>=|>>>=|\\|=)","captures":{"1":{"name":"variable.assignment.coffee"},"2":{"name":"keyword.operator.assignment.compound.bitwise.coffee"}}},{"match":"<<|>>>|>>","name":"keyword.operator.bitwise.shift.coffee"},{"match":"!=|<=|>=|==|<|>","name":"keyword.operator.comparison.coffee"},{"match":"&&|!|\\|\\|","name":"keyword.operator.logical.coffee"},{"match":"&|\\||\\^|~","name":"keyword.operator.bitwise.coffee"},{"match":"([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])","captures":{"1":{"name":"variable.assignment.coffee"},"2":{"name":"keyword.operator.assignment.coffee"}}},{"match":"--","name":"keyword.operator.decrement.coffee"},{"match":"\\+\\+","name":"keyword.operator.increment.coffee"},{"match":"\\.\\.\\.","name":"keyword.operator.splat.coffee"},{"match":"\\?","name":"keyword.operator.existential.coffee"},{"match":"%|\\*|/|-|\\+","name":"keyword.operator.coffee"},{"match":"(?x)\n\\b(?)","name":"meta.tag.coffee","patterns":[{"include":"#jsx-attribute"}]}]},"jsx-end-tag":{"patterns":[{"begin":"()","name":"meta.tag.coffee"}]}}}