import javascript from './javascript.mjs'; const lang = Object.freeze({ "displayName": "CoffeeScript", "name": "coffee", "patterns": [{ "include": "#jsx" }, { "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" } }, "match": "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))", "name": "meta.class.instance.constructor.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" }] }, { "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" } }, "match": "(`)(.*)(`)", "name": "string.quoted.script.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) (?<=\\s|^)(?:((')([^']*?)('))|((")([^"]*?)("))) \\s*([:=])\\s* (?=(\\([^\\(\\)]*\\)\\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*(?)", "name": "meta.tag.coffee" }] }, "jsx-expression": { "begin": "{", "beginCaptures": { "0": { "name": "meta.brace.curly.coffee" } }, "end": "}", "endCaptures": { "0": { "name": "meta.brace.curly.coffee" } }, "patterns": [{ "include": "#double_quoted_string" }, { "include": "$self" }] }, "jsx-tag": { "patterns": [{ "begin": "(<)([-\\w\\.]+)", "beginCaptures": { "1": { "name": "punctuation.definition.tag.coffee" }, "2": { "name": "entity.name.tag.coffee" } }, "end": "(/?>)", "name": "meta.tag.coffee", "patterns": [{ "include": "#jsx-attribute" }] }] }, "method_calls": { "patterns": [{ "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()", "beginCaptures": { "1": { "name": "punctuation.separator.method.period.coffee" }, "2": { "name": "keyword.operator.prototype.coffee" }, "3": { "patterns": [{ "include": "#method_names" }] } }, "end": "(?<=\\))", "name": "meta.method-call.coffee", "patterns": [{ "include": "#arguments" }] }, { "begin": `(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?|\\-\\d|\\[|{|"|')))`, "beginCaptures": { "1": { "name": "punctuation.separator.method.period.coffee" }, "2": { "name": "keyword.operator.prototype.coffee" }, "3": { "patterns": [{ "include": "#method_names" }] } }, "end": "(?=\\s*(?>=|>>>=|\\|=)" }, { "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" }, { "captures": { "1": { "name": "variable.assignment.coffee" }, "2": { "name": "keyword.operator.assignment.coffee" } }, "match": "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])" }, { "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" }, { "captures": { "1": { "name": "keyword.operator.logical.coffee" }, "2": { "name": "keyword.operator.comparison.coffee" } }, "match": "(?x)\n\\b(?