Description="Lua" Keywords={ { Id=1, List={"and", "break", "do", "else", "elseif", "end", "false", "for", "function", "if", "in", "local", "nil", "not", "or", "repeat", "return", "then", "true", "until", "while"}, }, { Id=2, List={"number", "string", "function", "userdata", "table", "assert", "call", "collectgarbage", "copytagmethods", "dofile", "dostring", "error", "foreach", "foreachi", "getglobal", "getn", "gettagmethod", "globals", "newtag", "next", "print", "rawget", "rawset", "setglobal", "settag", "settagmethod", "sort", "tag", "tonumber", "tostring", "tinsert", "tremove", "type", "abs", "acos", "asin", "atan", "atan2", "ceil", "cos", "deg", "exp", "floor", "log", "log10", "max", "min", "mod", "rad", "sin", "sqrt", "tan", "frexp", "ldexp", "random", "randomseed", "openfile", "closefile", "readfrom", "writeto", "appendto", "remove", "rename", "flush", "seek", "tmpname", "read", "write", "clock", "date", "execute", "exit", "getenv", "setlocale", "strbyte", "strchar", "strfind", "strlen", "strlower", "strrep", "strsub", "strupper", "format", "gsub"}, }, { Id=4, Regex=[[(\w+)\s*\(]], }, } Strings={ Delimiter=[["|']], DelimiterPairs= { { Open=[[ \[=*\[ ]], Close=[[ \]=*\] ]], Raw=true } }, AssertEqualLength=true } IgnoreCase=false Comments={ { Block=false, Delimiter= { [[\-\-(?!\[\[) ]] }, }, { Block=true, Nested=false, Delimiter= { [[ \-\-\[\[ ]],[[ \]\] ]],} } } Operators=[[\(|\)|\{|\}|\[|\]|\,|\;|\.|\:|\&|<|>|\!|\=|\/|\*|\%|\+|\-|\~|\#|\\]] -- resolve issue with ]] close delimiter which ends comments and strings function OnStateChange(oldState, newState, token) if token=="]]" and oldState==HL_STRING and newState==HL_BLOCK_COMMENT_END then return HL_STRING_END end return newState end