Created
January 15, 2014 06:44
-
-
Save losinggeneration/8431882 to your computer and use it in GitHub Desktop.
A MoonScript syntax file for Kate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE language SYSTEM "language.dtd"> | |
<!-- | |
By Harley Laue <[email protected]> | |
Based on the CoffeeScript syntax file by Max Shawabkeh ([email protected]) | |
and the Lua syntax file by Bruno Massa | |
--> | |
<language name="MoonScript" | |
version="1.0" | |
kateversion="2.4" | |
section="Scripts" | |
extensions="*.moon" | |
mimetype="text/x-moonscript;application/x-moonscript" | |
indenter="python" | |
casesensitive="1" | |
author="Harley Laue ([email protected])" | |
license="MIT"> | |
<highlighting> | |
<!-- Built-in constants. --> | |
<list name="value_keywords"> | |
<item>false</item> | |
<item>true</item> | |
<item>nil</item> | |
</list> | |
<!-- Generic keywords. --> | |
<list name="keywords"> | |
<item>return</item> | |
<item>break</item> | |
<item>continue</item> | |
<item>for</item> | |
<item>while</item> | |
<item>if</item> | |
<item>else</item> | |
<item>unless</item> | |
<item>switch</item> | |
<item>when</item> | |
<item>and</item> | |
<item>or</item> | |
<item>in</item> | |
<item>do</item> | |
<item>not</item> | |
<item>super</item> | |
<item>try</item> | |
<item>catch</item> | |
<item>with</item> | |
<item>export</item> | |
<item>import</item> | |
</list> | |
<!-- Keywords which are always followed by a class name. --> | |
<list name="class_keywords"> | |
<item>class</item> | |
<item>extends</item> | |
<item>new</item> | |
</list> | |
<!-- Built-in globals provided in most contexts. --> | |
<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>dsAlert | |
<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> | |
</list> | |
<list name="attention"> | |
<item> TODO </item> | |
<item> FIXME </item> | |
<item> NOTE </item> | |
</list> | |
<!-- Context-sensitive highlighting rules. --> | |
<contexts> | |
<!-- Generic code. --> | |
<context name="Normal" attribute="Normal" lineEndContext="#stay"> | |
<DetectSpaces/> | |
<keyword attribute="BFunc"context="#stay" String="basefunc"/> | |
<!-- Numbers. --> | |
<Float attribute="Float" context="#stay"/> | |
<Int attribute="Decimal" context="#stay"/> | |
<HlCOct attribute="Oct" context="#stay"/> | |
<HlCHex attribute="Hex" context="#stay"/> | |
<!-- Keywords. --> | |
<keyword attribute="Keyword" context="#stay" String="keywords"/> | |
<keyword attribute="Keyword" context="Class" String="class_keywords"/> | |
<keyword attribute="Value Keywords" context="#stay" String="value_keywords"/> | |
<!-- Member accessors. --> | |
<RegExpr attribute="Accessor" context="#stay" String="(@[_$a-zA-Z][$\w]*|\bthis)\b" insensitive="false"/> | |
<!-- Function definitions. Matches an optional argument list followed by a function arrow (normal or fat). --> | |
<RegExpr attribute="Function" context="#stay" String="(\((\'[^']*'|"[^"]*"|[^()])*\))?\s*(-|=)>" insensitive="true"/> | |
<!-- Generic identifiers. --> | |
<RegExpr attribute="Identifier" context="#stay" String="[_$a-z][$\w]*\b" insensitive="true"/> | |
<!-- Strings. --> | |
<DetectChar attribute="String" context="String" char="'"/> | |
<DetectChar attribute="String" context="Rich String" char="""/> | |
<RegExpr attribute="String" context="String Block" String="\[(=*)\[" dynamic="true" /> | |
<!-- Comments. --> | |
<Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/> | |
<!-- Operators and other non-alphanumeric symbols. --> | |
<AnyChar attribute="Symbol" context="#stay" String="\\#():!%&+,-/.*<=>?[]|~^;{}"/> | |
<DetectChar attribute="Symbols" context="#stay" beginRegion="table" char="{" /> | |
<DetectChar attribute="Symbols" context="#stay" endRegion="table" char="}" /> | |
</context> | |
<!-- Class names. --> | |
<context name="Class" attribute="Normal" lineEndContext="#stay"> | |
<DetectSpaces/> | |
<RegExpr attribute="Class" context="#pop" String="[@$:.\w\[\]]+"/> | |
</context> | |
<!-- Comments. --> | |
<context name="Comment" attribute="Comment" lineEndContext="#pop"> | |
<Detect2Chars attribute="Alerts" context="#stay" char="-" char1="-" /> | |
<keyword attribute="Alerts" context="#stay" String="attention"/> | |
</context> | |
<context name="String Block" attribute="String" lineEndContext="#stay" dynamic="true"> | |
<RegExpr attribute="Symbols" context="#stay" String="\\(a|b|f|n|r|t|v|\\|"|\'|[|])" /> | |
<RegExpr attribute="Strings" context="#pop" String="\]%1\]" dynamic="true" /> | |
</context> | |
<!-- Single-line strings. --> | |
<context name="String" attribute="String" lineEndContext="#stay"> | |
<HlCStringChar attribute="String" context="#stay"/> | |
<DetectChar attribute="String" context="#pop" char="'"/> | |
</context> | |
<context name="Rich String" attribute="String" lineEndContext="#stay"> | |
<HlCStringChar attribute="String" context="#stay"/> | |
<Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/> | |
<DetectChar attribute="String" context="#pop" char="""/> | |
</context> | |
<!-- Expressions embedded in strings. --> | |
<context name="Embedding" attribute="Normal" lineEndContext="#stay"> | |
<DetectChar attribute="Embedding" context="#pop" char="}"/> | |
</context> | |
</contexts> | |
<!-- Style mappings. --> | |
<itemDatas> | |
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/> | |
<itemData name="BFunc" defStyleNum="dsFunction" spellChecking="false"/> | |
<itemData name="Identifier" defStyleNum="dsNormal" spellChecking="false"/> | |
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/> | |
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/> | |
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/> | |
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> | |
<itemData name="Oct" defStyleNum="dsBaseN" spellChecking="false"/> | |
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> | |
<itemData name="String" defStyleNum="dsString" spellChecking="false"/> | |
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/> | |
<itemData name="Symbol" defStyleNum="dsKeyword" spellChecking="false"/> | |
<itemData name="Accessor" defStyleNum="dsDataType" spellChecking="false"/> | |
<itemData name="Class" defStyleNum="dsDataType" spellChecking="false" bold="1"/> | |
<itemData name="Alerts" defStyleNum="dsAlert" spellChecking="false"/> | |
<itemData name="Value Keywords" defStyleNum="dsOthers" spellChecking="false"/> | |
<itemData name="Embedding" defStyleNum="dsChar" spellChecking="false"/> | |
</itemDatas> | |
</highlighting> | |
<!-- Global settings. --> | |
<general> | |
<indentation mode="python"/> | |
<folding indentationsensitive="1"/> | |
<comments> | |
<comment name="singleLine" start="--"/> | |
</comments> | |
<keywords casesensitive="1" additionalDeliminator="#'"/> | |
<emptyLines> | |
<emptyLine regexpr="(?:\s+|\s*#.*)"/> | |
</emptyLines> | |
</general> | |
</language> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment