{ "comment": "LiveScript Syntax: version 1", "fileTypes": [ "ls", "Slakefile", "ls.erb" ], "firstLineMatch": "^#!.*\\bls", "foldingStartMarker": "^\\s*class\\s+\\S.*$|.*(->|=>)\\s*$|.*[\\[{]\\s*$", "foldingStopMarker": "^\\s*$|^\\s*[}\\]]\\s*$", "keyEquivalent": "^~C", "name": "LiveScript", "patterns": [ { "match": "(?x)\n\t\t\t\t!?[~-]{1,2}>\\*?\n\t\t\t\t|<[~-]{1,2}!?\n\t\t\t\t|\\(\\s* (?= instanceof[\\s)]|and[\\s)]|or[\\s)]|is[\\s)]|isnt[\\s)]|in[\\s)]|import[\\s)]|import\\ all[\\s)] |\\.|[-+/*%^&<>=|][\\b\\s)\\w$]|\\*\\*|\\%\\%)\n\t\t\t\t| (?<=[\\s(]instanceof|[\\s(]and|[\\s(]or|[\\s(]is|[\\s(]isnt|[\\s(]in|[\\s(]import|[\\s(]import\\ all|[\\s(]do|\\.|\\*\\*|\\%\\%|[\\b\\s(\\w$][-+/*%^&<>=|]) \\s*\\)\n\t\t\t", "name": "storage.type.function.livescript" }, { "begin": "\\/\\*", "captures": { "0": { "name": "punctuation.definition.comment.livescript" } }, "end": "\\*\\/", "name": "comment.block.livescript", "patterns": [ { "match": "@\\w*", "name": "storage.type.annotation.livescriptscript" } ] }, { "captures": { "1": { "name": "punctuation.definition.comment.livescript" } }, "match": "(#)(?!\\{).*$\\n?", "name": "comment.line.number-sign.livescript" }, { "captures": { "1": { "name": "storage.type.function.livescript" }, "2": { "name": "entity.name.function.livescript" } }, "match": "((?:!|~|!~|~!)?function\\*?)\\s+([$\\w\\-]*[$\\w]+)" }, { "captures": { "1": { "name": "keyword.operator.new.livescript" }, "2": { "name": "entity.name.type.instance.livescript" } }, "match": "(new)\\s+(\\w+(?:\\.\\w*)*)" }, { "match": "\\b(package|private|protected|public|interface|enum|static)(?!-)\\b", "name": "keyword.illegal.livescript" }, { "begin": "'''", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.livescript" } }, "end": "'''", "endCaptures": { "0": { "name": "punctuation.definition.string.end.livescript" } }, "name": "string.quoted.heredoc.livescript" }, { "begin": "\"\"\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.livescript" } }, "end": "\"\"\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.livescript" } }, "name": "string.quoted.double.heredoc.livescript", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.livescript" }, { "include": "#interpolated_livescript" } ] }, { "begin": "``", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.livescript" } }, "end": "``", "endCaptures": { "0": { "name": "punctuation.definition.string.end.livescript" } }, "name": "string.quoted.script.livescript", "patterns": [ { "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", "name": "constant.character.escape.livescript" } ] }, { "begin": "<\\[", "end": "\\]>", "name": "string.array-literal.livescript" }, { "match": "/{2}(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}", "name": "string.regexp.livescript" }, { "begin": "/{2}\\n", "end": "/{2}[imgy]{0,4}", "name": "string.regexp.livescript", "patterns": [ { "include": "#embedded_spaced_comment" }, { "include": "#interpolated_livescript" } ] }, { "begin": "/{2}", "end": "/{2}[imgy]{0,4}", "name": "string.regexp.livescript", "patterns": [ { "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", "name": "constant.character.escape.livescript" }, { "include": "#interpolated_livescript" } ] }, { "match": "/(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])", "name": "string.regexp.livescript" }, { "match": "(?x)\n\t\t\t\t\\b(?", "name": "keyword.operator.livescript" }, { "match": "=>", "name": "keyword.control.livescript" }, { "match": "(?x)\n\t\t\t\t\\b(?)|\\+\\+|\\+|\n\t\t\t\t~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|\n\t\t\t\t>>>=|<>|<(?!\\[)|(?|(?)|&&|\\.\\.(\\.)?|\\s\\.\\s|\\?|\\|\\||\\:|\\*=|(?)))\\s*(?!(\\s*!?\\s*\\(.*\\))?\\s*(!?[~-]{1,2}>\\*?))" }, { "begin": "(?<=\\s|^)([\\[\\{])(?=.*?[\\]\\}]\\s+[:=])", "beginCaptures": { "0": { "name": "keyword.operator.livescript" } }, "end": "([\\]\\}]\\s*[:=])", "endCaptures": { "0": { "name": "keyword.operator.livescript" } }, "name": "meta.variable.assignment.destructured.livescript", "patterns": [ { "include": "#variable_name" }, { "include": "#instance_variable" }, { "include": "#single_quoted_string" }, { "include": "#double_quoted_string" }, { "include": "#numeric" } ] }, { "captures": { "2": { "name": "entity.name.function.livescript" }, "3": { "name": "entity.name.function.livescript" }, "4": { "name": "variable.parameter.function.livescript" }, "5": { "name": "storage.type.function.livescript" } }, "match": "(?x)\n\t\t\t\t(\\s*)\n\t\t\t\t(?=[a-zA-Z\\$_])\n\t\t\t\t([a-zA-Z\\$_]([\\w$.:-])*)\\s*\n\t\t\t\t(?=[:=](\\s*!?\\s*\\(.*\\))?\\s*(!?[~-]{1,2}>\\*?))\n\t\t\t", "name": "meta.function.livescript" }, { "match": "\\b(?][ =)]|[`}%*)]|/(?!.*?/)|&&|[.][^.]|=>|\\/ +|\\||\\|\\||\\-\\-|\\+\\+|\\|>|<|\\||$|\\n|\\#|/\\*))" }, { "match": "\\| _", "name": "keyword.control.livescript" }, { "match": "\\|(?![.])", "name": "keyword.control.livescript" }, { "match": "\\|", "name": "keyword.operator.livescript" }, { "match": "((?<=console\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\b", "name": "support.function.console.livescript" }, { "match": "(?x)\\b(\n\t\t\t\tdecodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require\n\t\t\t)\\b", "name": "support.function.livescript" }, { "comment": "Generated by DOM query from http://gkz.github.com/prelude-ls/:\n\t\t\t[].slice\n\t\t\t.call(document.querySelectorAll(\".nav-pills li a\"))\n\t\t\t.map(function(_) {return _.innerText})\n\t\t\t.filter(function(_) {return _.trim() !== '})\n\t\t\t.slice(2)\n\t\t\t.join(\"|\")\n\t\t\t", "match": "(?x)(?