You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kate/data/lua.xml

301 lines
16 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
LUA (www.lua.org) syntax highlighting for Kate
CHANGES
[ Version 1.03 (2007-09-12) by Bruno Massa ]
- [=[ ]=] comment and string style is now working (thanks to Dominik and Sebastian)
- it uses DoxygenLua.xml to format the comments in a Doxygen style
[ Version 1.02 (2007-07-15) by Bruno Massa ]
- based on Lua 5.1
- highlight the Kepler function (cgilua, luasql, lfs, luazip)
- true, false and nil are highlighted in black
- table.foreach and foreachi are marked as alerts
[ Version 1.01 (2007-01-01) by Bruno Massa ]
- highlighting similar to PHP
- error detection on one-line strings and common mistakes from other languages like using "!=" "++"
- uppercase-only variables are highlighted as constants
- { } now is collapsable
[ Version 1.00 (2006-12-05) by Bruno Massa ]
- based on Lua 5.0.2 syntax
- strings "[[ ]]" and single quoted strings
- block comments
- function, if/elseif/else, do-end chunks, comment blocks, strings using [[ ]] collapsable
- nil, false and true consided pseudo-variables (displayed as numbers)
- NOTE, FIXME, TODO alerts added on comments
- improved highlighting
-->
<language name="Lua" version="1.05" indenter="lua" kateversion="2.4" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
<highlighting>
<list name="keywords">
<item> and </item>
<item> function </item>
<item> in </item>
<item> local </item>
<item> not </item>
<item> or </item>
</list>
<list name="control">
<item> break </item>
<item> do </item>
<item> else </item>
<item> elseif </item>
<item> end </item>
<item> for </item>
<item> if </item>
<item> repeat </item>
<item> return </item>
<item> then </item>
<item> until </item>
<item> while </item>
</list>
<list name="pseudo-variables">
<item> nil </item>
<item> false </item>
<item> true </item>
</list>
<list name="basefunc">
<item> string.byte </item> <item> string.char </item>
<item> string.find </item> <item> string.len </item>
<item> string.lower </item> <item> string.rep </item>
<item> string.sub </item> <item> string.upper </item>
<item> string.format </item><item> string.gfind </item>
<item> string.gsub </item> <item> table.concat </item>
<item> table.getn </item> <item> table.sort </item>
<item> table.insert </item> <item> table.remove </item>
<item> table.setn </item> <item> math.abs </item>
<item> math.sin </item> <item> math.cos </item>
<item> math.tan </item> <item> math.asin </item>
<item> math.acos </item> <item> math.atan </item>
<item> math.atan2 </item> <item> math.ceil </item>
<item> math.floor </item> <item> math.mod </item>
<item> math.frexp </item> <item> math.ldexp </item>
<item> math.squrt </item> <item> math.min </item>
<item> math.max </item> <item> math.log </item>
<item> math.log10 </item> <item> math.exp </item>
<item> math.deg </item> <item> math.rad </item>
<item> math.random </item> <item> math.randomseed </item>
<item> io.close </item> <item> io.flush </item>
<item> io.input </item> <item> io.lines </item>
<item> io.open </item> <item> io.output </item>
<item> io.read </item> <item> io.stderr </item>
<item> io.stdin </item> <item> io.stdout </item>
<item> io.tmpfile </item> <item> io.write </item>
<item> os.clock </item> <item> os.date </item>
<item> os.difftime </item> <item> os.execute </item>
<item> os.exit </item> <item> os.getenv </item>
<item> os.remove </item> <item> os.rename </item>
<item> os.setlocale </item> <item> os.time </item>
<item> os.tmpname </item> <item> debug.getinfo </item>
<item> debug.getlocal </item><item> debug.setlocal </item>
<item> debug.sethook </item><item> debug.gethook </item>
<item> assert </item> <item> collectgarbage </item>
<item> dofile </item> <item> error </item>
<item> next </item> <item> print </item>
<item> rawget </item> <item> rawset </item>
<item> tonumber </item> <item> tostring </item>
<item> type </item> <item> _ALERT </item>
<item> _ERRORMESSAGE </item><item> call </item>
<item> getmetatable </item><item> gcinfo </item>
<item> ipairs </item> <item> loadfile </item>
<item> loadstring </item> <item> pairs </item>
<item> pcall </item> <item> require </item>
<item> LUA_PATH </item> <item> setmetatable </item>
<item> _LOADED </item> <item> _VERSION </item>
<item> gettagmethod </item><item> globals </item>
<item> newtag </item> <item> setglobal </item>
<item> settag </item> <item> settagmethod </item>
<item> setlinehook </item> <item> getglobals </item>
<item> copytagmethods </item><item> dostring </item>
<item> getglobal </item> <item> tag </item>
<item> setglobals </item> <item> unpack </item>
<item> exit </item> <item> readfrom </item>
<item> writeto </item> <item> appendto </item>
<item> read </item> <item> write </item>
<item> getinfo </item> <item> getlocal </item>
<item> setlocal </item> <item> setcallhook </item>
<item> tinsert </item> <item> tremove </item>
<item> flush </item> <item> seek </item>
<item> setlocale </item> <item> execute </item>
<item> remove </item> <item> rename </item>
<item> tmpname </item> <item> getenv </item>
<item> getn </item> <item> sort </item>
<item> table.foreach </item> <item> table.foreachi </item>
<item> foreach </item> <item> foreachi </item>
<item> abs </item> <item> sin </item>
<item> cos </item> <item> tan </item>
<item> asin </item> <item> acos </item>
<item> atan </item> <item> atan2 </item>
<item> ceil </item> <item> floor </item>
<item> mod </item> <item> frexp </item>
<item> ldexp </item> <item> squrt </item>
<item> min </item> <item> max </item>
<item> log </item> <item> log10 </item>
<item> exp </item> <item> deg </item>
<item> rad </item> <item> random </item>
<item> randomseed </item> <item> strlen </item>
<item> strsub </item> <item> strlower </item>
<item> strupper </item> <item> strchar </item>
<item> strrep </item> <item> ascii </item>
<item> strbyte </item> <item> format </item>
<item> strfind </item> <item> gsub </item>
<item> openfile </item> <item> closefile </item>
<item> date </item> <item> clock </item>
<item> cgilua </item> <item> cgilua.lp.translate </item>
<item> cgilua.contentheader </item> <item> cgilua.script_file </item>
<item> cgilua.header </item> <item> cgilua.script_path </item>
<item> cgilua.htmlheader </item> <item> cgilua.script_pdir </item>
<item> cgilua.redirect </item> <item> cgilua.script_vdir </item>
<item> cgilua.mkabsoluteurl </item> <item> cgilua.script_vpath </item>
<item> cgilua.mkurlpath </item> <item> cgilua.servervariable </item>
<item> cgilua.put </item> <item> cgilua.urlpath </item>
<item> cgilua.handlelp </item> <item> cgilua.errorlog </item>
<item> cgilua.lp.compile </item> <item> cgilua.seterrorhandler </item>
<item> cgilua.lp.include </item> <item> cgilua.seterroroutput </item>
<item> cgilua.lp.setcompatmode </item> <item> cgilua.addclosefunction </item>
<item> cgilua.lp.setoutfunc </item> <item> cgilua.addopenfunction </item>
<item> cgilua.addscripthandler </item> <item> cgilua.addscripthandler </item>
<item> cgilua.buildprocesshandler </item> <item> cgilua.setmaxfilesize </item>
<item> cgilua.setmaxinput </item> <item> cgilua.urlcode.encodetable </item>
<item> cgilua.urlcode.escape </item> <item> cgilua.urlcode.parsequery </item>
<item> cgilua.urlcode.unescape </item> <item> cgilua.urlcode.insertfield </item>
<item> cgilua.setoutfunc </item> <item> cgilua.addopenfunction </item>
<item> cgilua.doif </item> <item> cgilua.doscript </item>
<item> cgilua.pack </item> <item> cgilua.splitpath </item>
<item> cgilua.cookies.get </item> <item> cgilua.cookies.set </item>
<item> cgilua.cookies.sethtml </item> <item> cgilua.cookies.delete </item>
<item> cgilua.serialize </item> <item> cgilua.session.close </item>
<item> cgilua.session.data </item> <item> cgilua.session.load </item>
<item> cgilua.session.new </item> <item> cgilua.session.open </item>
<item> cgilua.session.save </item> <item> cgilua.session.setsessiondir </item>
<item> cgilua.session.delete </item> <item> cgilua.session </item>
<item> cgilua.cookies </item>
<item> numrows </item> <item> connect </item>
<item> close </item> <item> fetch </item>
<item> getcolnames </item> <item> getcoltypes </item>
<item> commit </item> <item> rollback </item>
<item> setautocommit </item>
<item> lfs </item> <item> lfs.attributes </item>
<item> lfs.chdir </item> <item> lfs.currentdir </item>
<item> lfs.dir </item> <item> lfs.lock </item>
<item> lfs.mkdir </item> <item> lfs.rmdir </item>
<item> lfs.touch </item> <item> lfs.unlock </item>
<item> zip </item> <item> zip.open </item>
<item> zip.openfile </item> <item> files </item>
<item> seek </item> <item> close </item>
<item> lines </item>
</list>
<list name="attention">
<item> TODO </item>
<item> FIXME </item>
<item> NOTE </item>
</list>
<list name="deprecated">
<item> table.foreach </item> <item> table.foreachi </item>
<item> foreach </item> <item> foreachi </item>
</list>
<contexts>
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
<IncludeRules context="##DoxygenLua" />
<keyword attribute="Error" context="#stay" String="deprecated" />
<DetectSpaces />
<RegExpr attribute="Comment" context="Block Comment" beginRegion="block comment" String="--\[(=*)\[" dynamic="true" />
<Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
<RegExpr attribute="Strings" context="String_block" String="\[(=*)\[" dynamic="true" />
<DetectChar attribute="Strings" context="String_single" char="'"/>
<DetectChar attribute="Strings" context="String_double" char="&quot;"/>
<keyword attribute="BFunc" context="#stay" String="basefunc"/>
<RegExpr attribute="Keyword" context="#stay" beginRegion="chunk" String="\bfunction\b" />
<keyword attribute="Keyword" context="#stay" String="keywords" />
<keyword attribute="Keyword" context="#stay" String="pseudo-variables" />
<RegExpr attribute="Control" context="#stay" endRegion="chunk" beginRegion="chunk" String="\belse\b" />
<RegExpr attribute="Control" context="#stay" endRegion="chunk" beginRegion="chunk" String="\belseif\b" />
<RegExpr attribute="Control" context="#stay" beginRegion="chunk" String="\bdo\b" />
<RegExpr attribute="Control" context="#stay" beginRegion="chunk" String="\bif\b" />
<RegExpr attribute="Control" context="#stay" endRegion="chunk" String="\bend\b" />
<keyword attribute="Control" context="#stay" String="control" />
<DetectChar attribute="Symbols" context="#stay" beginRegion="table" char="{" />
<DetectChar attribute="Symbols" context="#stay" endRegion="table" char="}" />
<RegExpr attribute="Numbers" context="#stay" String="\b\d*\.?\d*(e|e\-|e\+)?\d+\b"/>
<RegExpr attribute="Numbers" context="#stay" String="\b-?0[xX][0-9a-fA-F]+\b"/>
<RegExpr attribute="Normal Text" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*(?=\s*([({'&quot;]|\[\[))\b" />
<RegExpr attribute="Constant" context="#stay" String="\b[A-Z_][A-Z0-9_]*\b" />
<RegExpr attribute="Variable" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*\b" />
<Detect2Chars attribute="Error" context="#stay" char="!" char1="="/>
<Detect2Chars attribute="Error" context="#stay" char="-" char1="="/>
<Detect2Chars attribute="Error" context="#stay" char="+" char1="="/>
<Detect2Chars attribute="Error" context="#stay" char="+" char1="+"/>
<Detect2Chars attribute="Error" context="#stay" char="." char1="="/>
<AnyChar attribute="Symbols" context="#stay" String="[]().=~+-*/^&gt;&lt;#;" />
</context>
<context name="Comment" attribute="Comment" lineEndContext="#pop">
<Detect2Chars attribute="Alerts" context="#stay" char="-" char1="-" />
<keyword attribute="Alerts" context="#stay" String="attention"/>
</context>
<context name="Block Comment" attribute="Comment" lineEndContext="#stay" dynamic="true" >
<RegExpr attribute="Comment" context="#pop" endRegion="block comment" String="\]%1\]" dynamic="true" />
<Detect2Chars attribute="Alerts" context="#stay" char="-" char1="-" />
<keyword attribute="Alerts" context="#stay" String="attention" />
</context>
<context name="String_single" attribute="Strings" lineEndContext="Error">
<RegExpr attribute="Symbols" context="#stay" String="\\(a|b|f|n|r|t|v|\\|&quot;|\'|[|])" />
<DetectChar attribute="Strings" context="#pop" char="'"/>
</context>
<context name="String_double" attribute="Strings" lineEndContext="Error">
<RegExpr attribute="Symbols" context="#stay" String="\\[abfnrtv'&quot;\\\[\]]" />
<DetectChar attribute="Strings" context="#pop" char="&quot;"/>
</context>
<context name="String_block" attribute="Strings" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="Symbols" context="#stay" String="\\(a|b|f|n|r|t|v|\\|&quot;|\'|[|])" />
<RegExpr attribute="Strings" context="#pop" String="\]%1\]" dynamic="true" />
</context>
<context name="Error" attribute="Error" lineEndContext="#stay">
</context>
</contexts>
<itemDatas>
<itemData name="Alerts" defStyleNum="dsAlert" />
<itemData name="BFunc" defStyleNum="dsFunction"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Constant" defStyleNum="dsKeyword"/>
<itemData name="Control" defStyleNum="dsKeyword" color="#A1A100" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Error" defStyleNum="dsError"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Numbers" defStyleNum="dsDecVal"/>
<itemData name="Strings" defStyleNum="dsString"/>
<itemData name="Symbols" defStyleNum="dsOthers"/>
<itemData name="Variable" defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="0" italic="0" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="--" />
<comment name="multiLine" start="--[[" end="]]" />
</comments>
<keywords casesensitive="1" weakDeliminator="&#46;" additionalDeliminator="&quot;"/>
</general>
</language>