{ "name": "Lua", "scopeName": "source.lua", "patterns": [ { "begin": "\\b(?:(local)\\s+)?(function)\\s*(?:\\s+([a-zA-Z_][a-zA-Z0-9_]*(?:([\\.:])[a-zA-Z_][a-zA-Z0-9_]*)?)\\s*)?(\\()", "beginCaptures": { "1": { "name": "storage.modifier.local.lua" }, "2": { "name": "keyword.control.lua" }, "3": { "name": "entity.name.function.lua" }, "4": { "name": "punctuation.separator.parameter.lua" }, "5": { "name": "punctuation.definition.parameters.begin.lua" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.parameters.end.lua" } }, "name": "meta.function.lua", "patterns": [ { "match": "[a-zA-Z_][a-zA-Z0-9_]*", "name": "variable.parameter.function.lua" }, { "match": ",", "name": "punctuation.separator.arguments.lua" } ] }, { "match": "(?=?|(?