# # Lua syntax highlighting # # History: # # - 2015: Support for long strings and long comments. # - 2011: String-literal fixes. # - 2005: Started by Mike Gorchak context default lightgray # keywords keyword whole and white keyword whole break white keyword whole do white keyword whole else white keyword whole elseif white keyword whole end white keyword whole false white keyword whole for white keyword whole function white keyword whole if white keyword whole in white keyword whole local white keyword whole nil white keyword whole not white keyword whole or white keyword whole repeat white keyword whole return white keyword whole then white keyword whole true white keyword whole until white keyword whole while white # Comment and string delimiters keyword -- brown keyword ]\[=\]] brown # The following colorizes the start delimiter of "long" strings. # The start delimiter of "long" comments isn't affected by the following # directive but gets its color from the "--" above (gods know why). keyword [\[=\][ brown # Operators keyword ( white keyword ) white keyword { white keyword } white keyword [ white keyword ] white keyword . white keyword , white keyword ; white keyword : white keyword .. white keyword ... white keyword = white keyword == white keyword ~= white keyword <= white keyword => white keyword > white keyword < white keyword \+ white keyword - white keyword \* white keyword / white keyword ^ white # Library Functions # basiclib keyword whole error yellow keyword whole getmetatable yellow keyword whole setmetatable yellow keyword whole getfenv yellow keyword whole setfenv yellow keyword whole next yellow keyword whole ipairs yellow keyword whole pairs yellow keyword whole print yellow keyword whole tonumber yellow keyword whole tostring yellow keyword whole type yellow keyword whole assert yellow #keyword whole unpack yellow # modern code should use table.unpack() keyword whole rawequal yellow keyword whole rawget yellow keyword whole rawset yellow keyword whole pcall yellow keyword whole xpcall yellow keyword whole collectgarbage yellow keyword whole gcinfo yellow keyword whole loadfile yellow keyword whole dofile yellow keyword whole loadstring yellow keyword whole require yellow keyword whole coroutine.create yellow keyword whole coroutine.wrap yellow keyword whole coroutine.resume yellow keyword whole coroutine.yield yellow keyword whole coroutine.status yellow # stringlib keyword whole string.len yellow keyword whole string.sub yellow keyword whole string.lower yellow keyword whole string.upper yellow keyword whole string.char yellow keyword whole string.rep yellow keyword whole string.byte yellow keyword whole string.format yellow keyword whole string.dump yellow keyword whole string.find yellow keyword whole string.gfind yellow keyword whole string.gsub yellow # tablelib keyword whole table.concat yellow keyword whole table.foreach yellow keyword whole table.foreachi yellow keyword whole table.getn yellow keyword whole table.setn yellow keyword whole table.sort yellow keyword whole table.insert yellow keyword whole table.remove yellow keyword whole table.unpack yellow # mathlib keyword whole math.abs yellow keyword whole math.sin yellow keyword whole math.cos yellow keyword whole math.tan yellow keyword whole math.asin yellow keyword whole math.acos yellow keyword whole math.atan yellow keyword whole math.atan2 yellow keyword whole math.ceil yellow keyword whole math.floor yellow keyword whole math.mod yellow keyword whole math.frexp yellow keyword whole math.ldexp yellow keyword whole math.sqrt yellow keyword whole math.min yellow keyword whole math.max yellow keyword whole math.log yellow keyword whole math.log10 yellow keyword whole math.exp yellow keyword whole math.deg yellow keyword whole math.pow yellow keyword whole math.rad yellow keyword whole math.random yellow keyword whole math.randomseed yellow # iolib keyword whole io.input yellow keyword whole io.output yellow keyword whole io.lines yellow keyword whole io.close yellow keyword whole io.flush yellow keyword whole io.open yellow keyword whole io.popen yellow keyword whole io.read yellow keyword whole io.tmpfile yellow keyword whole io.type yellow keyword whole io.write yellow # filelib keyword whole file.flush yellow keyword whole file.read yellow keyword whole file.lines yellow keyword whole file.seek yellow keyword whole file.write yellow keyword whole file.close yellow keyword whole file.__gc yellow keyword whole file.__tostring yellow # syslib keyword whole os.clock yellow keyword whole os.date yellow keyword whole os.difftime yellow keyword whole os.execute yellow keyword whole os.exit yellow keyword whole os.getenv yellow keyword whole os.remove yellow keyword whole os.rename yellow keyword whole os.setlocale yellow keyword whole os.time yellow keyword whole os.tmpname yellow # debuglib keyword whole debug.getlocal yellow keyword whole debug.getinfo yellow keyword whole debug.gethook yellow keyword whole debug.getupvalue yellow keyword whole debug.sethook yellow keyword whole debug.setlocal yellow keyword whole debug.setupvalue yellow keyword whole debug.debug yellow keyword whole debug.traceback yellow # Global Variables keyword whole _VERSION brightmagenta keyword whole _G brightmagenta # # Long comments # context exclusive --[[ ]] brown # hightlights ldoc tags: "@todo", "@param", "@function" etc. keyword @\[abcdefghijklmnopqrstuvwxyz\] brightred base spellcheck context exclusive --[=[ ]=] brown keyword @\[abcdefghijklmnopqrstuvwxyz\] brightred base spellcheck context exclusive --[==[ ]==] brown keyword @\[abcdefghijklmnopqrstuvwxyz\] brightred base spellcheck context exclusive --[===[ ]===] brown keyword @\[abcdefghijklmnopqrstuvwxyz\] brightred base spellcheck # 4 equals and up (the number of ='s doesn't have to match, but that's the best we can do): context exclusive --[====\[=\][ ]====\[=\]] brown keyword @\[abcdefghijklmnopqrstuvwxyz\] brightred base spellcheck # # Long strings # context exclusive [[ ]] brightmagenta spellcheck context exclusive [=[ ]=] brightmagenta spellcheck context exclusive [==[ ]==] brightmagenta spellcheck context exclusive [===[ ]===] brightmagenta spellcheck # 4 equals and up (the number of ='s doesn't have to match, but that's the best we can do): context exclusive [====\[=\][ ]====\[=\]] brightmagenta spellcheck # Simple comments context exclusive -- \n brown keyword @\[abcdefghijklmnopqrstuvwxyz\] brightred base spellcheck # Shebang line context linestart #! \n brown # Strings context " " green keyword %a brightgreen keyword %c brightgreen keyword %d brightgreen keyword %l brightgreen keyword %p brightgreen keyword %q brightgreen keyword %s brightgreen keyword %u brightgreen keyword %w brightgreen keyword %x brightgreen keyword %z brightgreen keyword \\\\ brightgreen keyword \\" brightgreen keyword \\' brightgreen keyword \\\{abtnvfr\} brightgreen keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen keyword \\\{01234567\}\{01234567\} brightgreen keyword \\\{01234567\} brightgreen spellcheck context ' ' green keyword %a brightgreen keyword %c brightgreen keyword %d brightgreen keyword %l brightgreen keyword %p brightgreen keyword %q brightgreen keyword %s brightgreen keyword %u brightgreen keyword %w brightgreen keyword %x brightgreen keyword %z brightgreen keyword \\\\ brightgreen keyword \\" brightgreen keyword \\' brightgreen keyword \\\{abtnvfr\} brightgreen keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen keyword \\\{01234567\}\{01234567\} brightgreen keyword \\\{01234567\} brightgreen spellcheck