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.
227 lines
11 KiB
227 lines
11 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE language SYSTEM "language.dtd">
|
|
<!-- Author: Anders Lund <anders@alweb.dk> //-->
|
|
<!-- Minor changes: Joseph Wenninger <jowenn@kde.org> //-->
|
|
<!-- Full JavaScript 1.0 support by Whitehawk Stormchaser //-->
|
|
<language name="JavaScript" version="1.22-1" kateversion="2.4" section="Scripts" extensions="*.js;*.kwinscript"
|
|
mimetype="text/x-javascript;application/x-javascript" indenter="cstyle"
|
|
author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license="">
|
|
<highlighting>
|
|
<list name="keywords">
|
|
<item> break </item>
|
|
<item> case </item>
|
|
<item> catch </item>
|
|
<item> const </item>
|
|
<item> continue </item>
|
|
<item> debugger </item>
|
|
<item> default </item>
|
|
<item> delete </item>
|
|
<item> do </item>
|
|
<item> else </item>
|
|
<item> finally </item>
|
|
<item> for </item>
|
|
<item> function </item>
|
|
<item> if </item>
|
|
<item> in </item>
|
|
<item> instanceof </item>
|
|
<item> new </item>
|
|
<item> return </item>
|
|
<item> switch </item>
|
|
<item> this </item>
|
|
<item> throw </item>
|
|
<item> try </item>
|
|
<item> typeof </item>
|
|
<item> var </item>
|
|
<item> void </item>
|
|
<item> while </item>
|
|
<item> with </item>
|
|
</list>
|
|
<list name="reserved">
|
|
<item> class </item>
|
|
<item> enum </item>
|
|
<item> export </item>
|
|
<item> extends </item>
|
|
<item> import </item>
|
|
<item> super </item>
|
|
|
|
<!-- The following keywords are reserved only in strict-mode -->
|
|
<item> implements </item>
|
|
<item> interface </item>
|
|
<item> let </item>
|
|
<item> package </item>
|
|
<item> private </item>
|
|
<item> protected </item>
|
|
<item> public </item>
|
|
<item> static </item>
|
|
<item> yield </item>
|
|
</list>
|
|
<list name="primitives">
|
|
<item> Infinity </item>
|
|
<item> NaN </item>
|
|
<item> false </item>
|
|
<item> null </item>
|
|
<item> true </item>
|
|
<item> undefined </item>
|
|
</list>
|
|
<contexts>
|
|
|
|
<!-- Shebang: ("#!") Detect shebang and fallthrough to Normal -->
|
|
<!-- Based on the similar clause from prolog.xml, which notes the following BUG:
|
|
If the file starts with whitespace and a shebang on a line other than the first line,
|
|
this rule will still match it as a shebang, even tough the shebang is only valid on
|
|
the very first line.
|
|
-->
|
|
<context name="Shebang" lineEndContext="Normal" attribute="Syntax Error" fallthrough="true" fallthroughContext="Normal" >
|
|
<Detect2Chars column="0" char="#" char1="!" context="Comment" attribute="Comment" />
|
|
<IncludeRules context="Normal" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
|
|
<DetectSpaces/>
|
|
<StringDetect attribute="Region Marker" context="region_marker" String="//BEGIN" beginRegion="Region1" />
|
|
<StringDetect attribute="Region Marker" context="region_marker" String="//END" endRegion="Region1" />
|
|
|
|
<Float attribute="Float" context="NoRegExp" />
|
|
<HlCOct attribute="Octal" context="NoRegExp" />
|
|
<HlCHex attribute="Hex" context="NoRegExp" />
|
|
<Int attribute="Decimal" context="NoRegExp" />
|
|
<AnyChar context="NoRegExp" String="])" />
|
|
|
|
<keyword attribute="Keyword" String="keywords" />
|
|
<keyword attribute="Reserved" String="reserved" />
|
|
<keyword attribute="Keyword" context="NoRegExp" String="primitives" />
|
|
|
|
<!--DetectIdentifier-->
|
|
<RegExpr attribute="Objects" context="Object Member" String="[a-zA-Z_$][\w$]*(?=\s*\.)" />
|
|
<!--DetectIdentifier-->
|
|
<RegExpr attribute="Object Member" context="NoRegExp" String="[a-zA-Z_$][\w$]*(?=\s*\()" />
|
|
<DetectChar context="Object Member" char="." />
|
|
<!--DetectIdentifier-->
|
|
<RegExpr context="NoRegExp" String="[a-zA-Z_$][\w$]*" />
|
|
|
|
<DetectChar attribute="String" context="String" char=""" />
|
|
<DetectChar attribute="String" context="String SQ" char="'" />
|
|
|
|
<IncludeRules context="##Doxygen" />
|
|
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/" />
|
|
<Detect2Chars attribute="Comment" context="Multi/inline Comment" char="/" char1="*" beginRegion="Comment" />
|
|
|
|
<DetectChar attribute="Regular Expression" context="(regex caret first check)" char="/" />
|
|
|
|
<DetectChar attribute="Symbol" context="Object" char="{" beginRegion="Brace" />
|
|
<DetectChar attribute="Symbol" context="Conditional Expression" char="?" />
|
|
|
|
<AnyChar attribute="Symbol" String=":!%&+,-/.*<=>?|~^;" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Object Member">
|
|
<DetectChar char="." />
|
|
<!--DetectIdentifier-->
|
|
<RegExpr attribute="Objects" context="Object Member" String="[a-zA-Z_$][\w$]*(?=\s*\.)" />
|
|
<!--DetectIdentifier-->
|
|
<RegExpr attribute="Object Member" String="[a-zA-Z_$][\w$]*" />
|
|
<IncludeRules context="NoRegExp" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop" name="NoRegExp">
|
|
<Detect2Chars context="#pop" lookAhead="true" char="/" char1="/" />
|
|
<Detect2Chars context="#pop" lookAhead="true" char="/" char1="*" />
|
|
<DetectChar context="#pop" char="/" />
|
|
<DetectSpaces/>
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="Conditional Expression">
|
|
<DetectChar context="#pop" char=":" />
|
|
<IncludeRules context="Normal" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="Object">
|
|
<!-- Mostly required for define: in switch blocks -->
|
|
<keyword attribute="Keyword" String="keywords" />
|
|
<!--DetectIdentifier-->
|
|
<RegExpr attribute="JSON" String="[a-zA-Z_$][\w$]*\s*(?=:)" />
|
|
<DetectChar attribute="Symbol" char="}" endRegion="Brace" context="#pop" />
|
|
<IncludeRules context="Normal" />
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#pop" name="String">
|
|
<HlCStringChar attribute="Char" />
|
|
<LineContinue/>
|
|
<DetectChar attribute="String" context="#pop" char=""" />
|
|
</context>
|
|
<context attribute="String" lineEndContext="#pop" name="String SQ">
|
|
<HlCStringChar attribute="Char" />
|
|
<LineContinue/>
|
|
<DetectChar attribute="String" context="#pop" char="'" />
|
|
</context>
|
|
|
|
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
|
<IncludeRules context="##Alerts" />
|
|
<IncludeRules context="##Modelines" />
|
|
</context>
|
|
<context attribute="Comment" lineEndContext="#stay" name="Multi/inline Comment">
|
|
<IncludeRules context="##Alerts" />
|
|
<IncludeRules context="##Modelines" />
|
|
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
|
|
</context>
|
|
|
|
<context attribute="Regular Expression" lineEndContext="#stay" name="Regular Expression">
|
|
<RegExpr attribute="Regular Expression" context="#pop#pop" String="/\w*" />
|
|
<RegExpr attribute="Pattern Internal Operator" String="\{[\d, ]+\}" />
|
|
<RegExpr attribute="Pattern Internal Operator" String="\\[bB]" />
|
|
<RegExpr attribute="Pattern Character Class" String="\\[nrtvfDdSsWw]" />
|
|
<DetectChar attribute="Pattern Character Class" context="(charclass caret first check)" char="[" />
|
|
<RegExpr attribute="Pattern Internal Operator" String="\\." />
|
|
<RegExpr attribute="Pattern Internal Operator" String="\$(?=/)" />
|
|
<AnyChar attribute="Pattern Internal Operator" String="?+*()|" />
|
|
</context>
|
|
<context attribute="Pattern Character Class" lineEndContext="#stay" name="Regular Expression Character Class">
|
|
<RegExpr String="\\[\[\]]" />
|
|
<RegExpr attribute="Pattern Internal Operator" String="\\." />
|
|
<DetectChar attribute="Pattern Character Class" context="#pop#pop" char="]" />
|
|
</context>
|
|
<context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(regex caret first check)" fallthrough="true" fallthroughContext="Regular Expression">
|
|
<DetectChar attribute="Pattern Internal Operator" context="Regular Expression" char="^" />
|
|
</context>
|
|
<context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(charclass caret first check)" fallthrough="true" fallthroughContext="Regular Expression Character Class">
|
|
<DetectChar attribute="Pattern Internal Operator" context="Regular Expression Character Class" char="^" />
|
|
</context>
|
|
|
|
<context name="region_marker" attribute="Region Marker" lineEndContext="#pop" >
|
|
<DetectIdentifier/>
|
|
<DetectSpaces/>
|
|
</context>
|
|
</contexts>
|
|
<itemDatas>
|
|
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
|
|
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
|
|
<itemData name="Reserved" defStyleNum="dsKeyword" italic="true" spellChecking="false" />
|
|
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />
|
|
<itemData name="Objects" defStyleNum="dsOthers" spellChecking="false" />
|
|
<itemData name="Object Member" defStyleNum="dsFunction" spellChecking="false" />
|
|
|
|
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
|
|
<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
|
|
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
|
|
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
|
|
<itemData name="Char" defStyleNum="dsChar" spellChecking="false" />
|
|
<itemData name="String" defStyleNum="dsString" />
|
|
|
|
<itemData name="Comment" defStyleNum="dsComment" />
|
|
<itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false" />
|
|
<itemData name="Regular Expression" defStyleNum="dsOthers" spellChecking="false" />
|
|
<itemData name="Pattern Internal Operator" defStyleNum="dsFloat" spellChecking="false" />
|
|
<itemData name="Pattern Character Class" defStyleNum="dsBaseN" spellChecking="false" />
|
|
<itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
|
|
<itemData name="JSON" defStyleNum="dsDataType" spellChecking="false" />
|
|
</itemDatas>
|
|
</highlighting>
|
|
<general>
|
|
<comments>
|
|
<comment name="singleLine" start="//" />
|
|
<comment name="multiLine" start="/*" end="*/" />
|
|
</comments>
|
|
<keywords casesensitive="1" />
|
|
</general>
|
|
</language>
|