summaryrefslogtreecommitdiffstats
path: root/kate/data/lua.xml
diff options
context:
space:
mode:
Diffstat (limited to 'kate/data/lua.xml')
-rw-r--r--kate/data/lua.xml479
1 files changed, 271 insertions, 208 deletions
diff --git a/kate/data/lua.xml b/kate/data/lua.xml
index 5b868aeec..6de4c8a17 100644
--- a/kate/data/lua.xml
+++ b/kate/data/lua.xml
@@ -1,237 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
-<language name="Lua" version="0.23" kateversion="2.3" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
+<!--
+ 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.03" kateversion="2.4" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
<highlighting>
<list name="keywords">
<item> and </item>
- <item> end </item>
+ <item> function </item>
+ <item> in </item>
<item> local </item>
- <item> return </item>
+ <item> not </item>
+ <item> or </item>
+ </list>
+ <list name="control">
<item> break </item>
- <item> for </item>
<item> do </item>
+ <item> else </item>
+ <item> elseif </item>
+ <item> end </item>
+ <item> for </item>
<item> if </item>
- <item> nil </item>
+ <item> repeat </item>
+ <item> return </item>
<item> then </item>
- <item> function </item>
- <item> not </item>
<item> until </item>
- <item> else </item>
- <item> or </item>
<item> while </item>
- <item> elseif </item>
- <item> in </item>
- <item> repeat </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.foreach </item>
- <item> table.foreachi </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> copytagmethods </item>
- <item> dostring </item>
- <item> foreach </item>
- <item> foreachi </item>
- <item> getglobal </item>
- <item> getn </item>
- <item> gettagmethod </item>
- <item> globals </item>
- <item> newtag </item>
- <item> setglobal </item>
- <item> settag </item>
- <item> settagmethod </item>
- <item> sort </item>
- <item> tag </item>
- <item> tinsert </item>
- <item> tremove </item>
- <item> openfile </item>
- <item> closefile </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> date </item>
- <item> clock </item>
- <item> exit </item>
- <item> readfrom </item>
- <item> writeto </item>
- <item> appendto </item>
- <item> read </item>
- <item> write </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> getinfo </item>
- <item> getlocal </item>
- <item> setlocal </item>
- <item> setcallhook </item>
- <item> setlinehook </item>
- <item> getglobals </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> setglobals </item>
- <item> setmetatable </item>
- <item> unpack </item>
- <item> LUA_PATH </item>
- <item> _LOADED </item>
- <item> _VERSION </item>
+ <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 attribute="Normal Text" lineEndContext="#stay" name="Normal">
- <keyword attribute="Keyword" context="#stay" String="keywords" />
- <keyword attribute="BaseFunc" context="#stay" String="basefunc"/>
- <HlCChar attribute="Char" context="#stay"/>
- <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
- <DetectChar attribute="Comment" context="Comment" char="#"/>
- <DetectChar attribute="String" context="String" char="&quot;"/>
- <AnyChar attribute="Symbol" context="#stay" String="!%&amp;()+,-&lt;=&gt;?[]^{|}~"/>
- <RegExpr attribute="Number" context="#stay" String="\d*\.?\d*e?\d+"/>
+ <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 attribute="Comment" lineEndContext="#pop" name="Comment">
- <RegExpr attribute="Alert" context="#stay" String="(FIXME|TODO)" />
+ <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 attribute="String" lineEndContext="#pop" name="String">
- <DetectChar attribute="String" context="#pop" char="&quot;"/>
+ <context name="Error" attribute="Error" lineEndContext="#stay">
</context>
</contexts>
<itemDatas>
- <itemData name="Normal Text" defStyleNum="dsNormal"/>
- <itemData name="Keyword" defStyleNum="dsKeyword"/>
- <itemData name="Comment" defStyleNum="dsComment"/>
- <itemData name="String" defStyleNum="dsString"/>
- <itemData name="Decimal" defStyleNum="dsDecVal"/>
- <itemData name="Number" defStyleNum="dsBaseN"/>
- <itemData name="Symbol" defStyleNum="dsNormal"/>
- <itemData name="BaseFunc" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
- <itemData name="Alert" defStyleNum="dsAlert" />
+ <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>
-<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
+</language> \ No newline at end of file