diff --git a/extensions/lua/syntaxes/lua.json b/extensions/lua/syntaxes/lua.json index 0bde9524ea4..a4da3a43c6a 100644 --- a/extensions/lua/syntaxes/lua.json +++ b/extensions/lua/syntaxes/lua.json @@ -1,39 +1,61 @@ { "comment": "Lua Syntax: version 0.8", "fileTypes": [ - "lua" + "lua", + "p8", + "rockspec", + "luacheckrc", + "lakefile" ], - "firstLineMatch": "\\A#!.*?\\blua\\b", + "firstLineMatch": "\\A#!.*?\\blua(\\d+(\\.\\d+)?)?\\b|\\A--\\s+-\\*-\\s*lua\\s*-\\*-", "keyEquivalent": "^~L", "name": "Lua", "patterns": [ { - "captures": { + "begin": "\\b((local\\b)\\s+)?(function)\\s*(\\s+[a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*(:[a-zA-Z_][a-zA-Z0-9_]*)?\\s*)?(\\()", + "beginCaptures": { "1": { - "name": "keyword.control.lua" - }, - "2": { - "name": "entity.name.function.scope.lua" + "name": "storage.modifier.local.lua" }, "3": { - "name": "entity.name.function.lua" + "name": "keyword.control.lua" }, "4": { - "name": "punctuation.definition.parameters.begin.lua" + "name": "entity.name.function.lua" }, "5": { - "name": "variable.parameter.function.lua" - }, - "6": { + "name": "punctuation.definition.parameters.begin.lua" + } + }, + "end": "\\)", + "endCaptures": { + "0": { "name": "punctuation.definition.parameters.end.lua" } }, - "match": "\\b(function)(?:\\s+([a-zA-Z_.:]+[.:])?([a-zA-Z_]\\w*)\\s*)?(\\()([^)]*)(\\))", - "name": "meta.function.lua" + "name": "meta.function.lua", + "patterns": [ + { + "match": "[a-zA-Z_][a-zA-Z0-9_]*", + "name": "variable.parameter.function.lua" + } + ] }, { - "match": "(?