{ "name": "Candran", "scopeName": "source.candran", "patterns": [ { "begin": "\\b(?:(local)\\s+)?(function)\\b(?![,:])", "beginCaptures": { "1": { "name": "keyword.local.candran" }, "2": { "name": "keyword.control.candran" } }, "end": "(?<=[\\)\\-{}\\[\\]\"'])", "name": "meta.function.candran", "patterns": [ { "include": "#comment" }, { "include": "#function-parameters" }, { "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=:)", "name": "entity.name.class.candran" }, { "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", "name": "entity.name.function.candran" } ] }, { "begin": ":(?=\\()", "beginCaptures": { "0": { "name": "keyword.control.candran" } }, "end": "(?<=[\\)\\-{}\\[\\]\"'])", "name": "meta.function.candran", "patterns": [ { "include": "#comment" }, { "include": "#function-parameters" } ] }, { "match": "(?", "captures": { "0": { "name": "storage.type.attribute.candran" } } }, { "match": "\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>", "name": "storage.type.generic.candran" }, { "match": "\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in|continue|push)\\b", "name": "keyword.control.candran" }, { "match": "\\b(local|let)\\b", "name": "keyword.local.candran" }, { "match": "\\b(const)\\b", "name": "keyword.const.candran" }, { "match": "\\b(close)\\b", "name": "keyword.close.candran" }, { "match": "\\b(function)\\b(?![,:])", "name": "keyword.control.candran" }, { "match": "(?>|<<|==?|~=|!=|<=?|>=?|(?|\\<", "name": "keyword.operator.candran" } ] }, { "begin": "(?<=---)[ \\t]*@see", "beginCaptures": { "0": { "name": "storage.type.annotation.candran" } }, "end": "(?=[\\n@#])", "patterns": [ { "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", "name": "support.class.candran" }, { "match": "#", "name": "keyword.operator.candran" } ] }, { "begin": "(?<=---)[ \\t]*@diagnostic", "beginCaptures": { "0": { "name": "storage.type.annotation.candran" } }, "end": "(?=[\\n@#])", "patterns": [ { "begin": "([a-zA-Z_\\-0-9]+)[ \\t]*(:)?", "beginCaptures": { "1": { "name": "keyword.other.unit" }, "2": { "name": "keyword.operator.unit" } }, "end": "(?=\\n)", "patterns": [ { "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)", "name": "support.class.candran" }, { "match": ",", "name": "keyword.operator.candran" } ] } ] }, { "begin": "(?<=---)[ \\t]*@module", "beginCaptures": { "0": { "name": "storage.type.annotation.candran" } }, "end": "(?=[\\n@#])", "patterns": [ { "include": "#string" } ] }, { "match": "(?<=---)[ \\t]*@(async|nodiscard)", "name": "storage.type.annotation.candran" }, { "begin": "(?<=---)\\|\\s*[\\>\\+]?", "beginCaptures": { "0": { "name": "storage.type.annotation.candran" } }, "end": "(?=[\\n@#])", "patterns": [ { "include": "#string" } ] } ] }, "emmydoc.type": { "patterns": [ { "begin": "\\bfun\\b", "beginCaptures": { "0": { "name": "keyword.control.candran" } }, "end": "(?=[\\s#])", "patterns": [ { "match": "[\\(\\),:\\?][ \\t]*", "name": "keyword.operator.candran" }, { "match": "([a-zA-Z_][a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]*)(?", "name": "storage.type.generic.candran" }, { "match": "\\basync\\b", "name": "entity.name.tag.candran" }, { "match": "[\\{\\}\\:\\,\\?\\|\\`][ \\t]*", "name": "keyword.operator.candran" }, { "begin": "(?=[a-zA-Z_\\.\\*\"'\\[])", "end": "(?=[\\s\\)\\,\\?\\:\\}\\|#])", "patterns": [ { "match": "([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?