{ "name": "Lua", "scopeName": "source.lua", "patterns": [ { "begin": "\\b(?:(local)\\s+)?(function)\\b", "beginCaptures": { "1": { "name": "keyword.local.lua" }, "2": { "name": "keyword.control.lua" } }, "end": "(?=\\)|\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in|local|function)\\b)", "name": "meta.function.lua", "patterns": [ { "begin": "(\\()", "beginCaptures": { "1": { "name": "punctuation.definition.parameters.begin.lua" } }, "end": "\\)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.finish.lua" } }, "name": "meta.parameter.lua", "patterns": [ { "match": "[a-zA-Z_][a-zA-Z0-9_]*", "name": "variable.parameter.function.lua" }, { "match": ",", "name": "punctuation.separator.arguments.lua" } ] }, { "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=:)", "name": "entity.name.class.lua" }, { "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", "name": "entity.name.function.lua" } ] }, { "match": "(?=?|(?