packages feed

skylighting-core 0.7.3 → 0.7.4

raw patch · 54 files changed

+5282/−2237 lines, 54 filesdep ~criterion

Dependency ranges changed: criterion

Files

changelog.md view
@@ -1,5 +1,18 @@ # Revision history for skylighting-core +## 0.7.4 -- 2018-10-08++  * HTML output: use title instead of data-line-number.+    data- attributes are not valid HTML 4, and we would like this to+    work with HTML 4 (e.g. in epub v2).  See jgm/pandoc#4920.+  * Print FALLTHROUGH in --trace output.+  * Updated syntax definitions for actionscript, awk, bash, c, clojure, cmake,+    coffee, cs, css, dockerfile, email, fortran, gcc, haskell, ini, isocpp,+    java, javadoc, javascript, jsp, kotlin, latex, lua, mediawiki, modelines,+    modula-2, objectivec, objectivecpp, opencl, perl, powershell, prolog,+    python, r, rest, rhtml, ruby, rust, scala, sql-mysql, sql-postgresql, sql,+    tcl, vhdl, xml, xul, yaml, zsh.+ ## 0.7.3 -- 2018-08-27    * Add 'default.xml' to syntax descriptions.
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.7.3+version:             0.7.4 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax@@ -180,7 +180,7 @@                    text,                    containers,                    directory,-                   criterion >= 1.0 && < 1.5+                   criterion >= 1.0 && < 1.6   Ghc-Options:   -rtsopts -Wall -fno-warn-unused-do-bind   Default-Language: Haskell2010 
src/Skylighting/Format/HTML.hs view
@@ -93,8 +93,7 @@          lineNum = toValue prefixedLineNo          lineRef = toValue ('#':prefixedLineNo)          prefixedLineNo = Text.unpack (lineIdPrefix opts) <> show (lineNo lno)-         dataAttrib = H.dataAttribute (fromString "line-number")-                          (toValue (show (lineNo lno)))+         dataAttrib = A.title (toValue (show (lineNo lno)))  tokenToHtml :: FormatOptions -> Token -> Html tokenToHtml _ (NormalTok, txt)  = toHtml txt@@ -155,7 +154,7 @@             "pre.numberSource a.sourceLine"           , "  { position: relative; left: -4em; }"           , "pre.numberSource a.sourceLine::before"-          , "  { content: attr(data-line-number);"+          , "  { content: attr(title);"           , "    position: relative; left: -1em; text-align: right; vertical-align: baseline;"           , "    border: none; pointer-events: all; display: inline-block;"           , "    -webkit-touch-callout: none; -webkit-user-select: none;"
src/Skylighting/Tokenizer.hs view
@@ -254,7 +254,11 @@                                         cs -> cs           doContextSwitches fallthroughContext           getToken-        else (\x -> Just (cAttribute context, x)) <$> normalChunk+        else do+          t <- normalChunk+          let mbtok = Just (cAttribute context, t)+          info $ "FALLTHROUGH " ++ show mbtok+          return mbtok  takeChars :: Int -> TokenizerM Text takeChars 0 = mzero
test/expected/abc.haskell.native view
@@ -101,13 +101,25 @@   ] , [ ( NormalTok , "main " )   , ( FunctionTok , "=" )-  , ( NormalTok , " mapM_ (\\w " )+  , ( NormalTok , " " )+  , ( FunctionTok , "mapM_" )+  , ( NormalTok , " (\\w " )   , ( OtherTok , "->" )-  , ( NormalTok , " print (w, not " )+  , ( NormalTok , " " )+  , ( FunctionTok , "print" )+  , ( NormalTok , " (w, " )+  , ( FunctionTok , "not" )+  , ( NormalTok , " " )   , ( FunctionTok , "." )-  , ( NormalTok , " null " )+  , ( NormalTok , " " )+  , ( FunctionTok , "null" )+  , ( NormalTok , " " )   , ( FunctionTok , "$" )-  , ( NormalTok , " abc blocks (map toUpper w)))" )+  , ( NormalTok , " abc blocks (" )+  , ( FunctionTok , "map" )+  , ( NormalTok , " " )+  , ( FunctionTok , "toUpper" )+  , ( NormalTok , " w)))" )   ] , [ ( NormalTok , "         [" )   , ( StringTok , "\"\"" )
test/test-skylighting.hs view
@@ -131,19 +131,16 @@             ] @=? tokenize defConfig perl                      "my $foo = q/bar/;\nmy $baz = 'quux';\n"       , testCase "cpp floats" $ Right-           [ [ ( FloatTok , "0.1f" ) ]-           , [ ( FloatTok , "1.0f" ) ]-           , [ ( FloatTok , "-0.1f" ) ]-           , [ ( FloatTok , "-1.0F" ) ]-           , [ ( FloatTok , "-1.0L" ) ]-           , [ ( FloatTok , "1e3" ) ]-           , [ ( FloatTok , "-15e+3" ) ]-           , [ ( FloatTok , "0.f" ) ]-           , [ ( FloatTok , "1.F" ) ]-           , [ ( DecValTok , "1" )-             , ( NormalTok ,".E" )-             , ( DecValTok , "3" )-             ]+           [ [ (FloatTok,"0.1") , (BuiltInTok,"f")]+           , [ (FloatTok,"1.0") , (BuiltInTok,"f")]+           , [ (NormalTok,"-") , (FloatTok,"0.1") , (BuiltInTok,"f")]+           , [ (NormalTok,"-") , (FloatTok,"1.0") , (BuiltInTok,"F")]+           , [ (NormalTok,"-") , (FloatTok,"1.0") , (BuiltInTok,"L")]+           , [ (FloatTok,"1e3")]+           , [ (NormalTok,"-") , (FloatTok,"15e+3")]+           , [ (FloatTok,"0.") , (BuiltInTok,"f")]+           , [ (FloatTok,"1.") , (BuiltInTok,"F")]+           , [ (FloatTok,"1.E3")]            ] @=? tokenize defConfig cpp                      "0.1f\n1.0f\n-0.1f\n-1.0F\n-1.0L\n1e3\n-15e+3\n0.f\n1.F\n1.E3"       ]
xml/actionscript.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="ActionScript 2.0" version="2" kateversion="5.0" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">+<language name="ActionScript 2.0" version="3" kateversion="5.0" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">   <highlighting>          <list name="properties">@@ -253,21 +253,10 @@         <keyword attribute="Keyword" context="#stay" String="keywords"/>         <keyword attribute="Constants" context="#stay" String="const"/>         <keyword attribute="Data Type" context="#stay" String="types"/>-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay">-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>         <RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>@@ -282,6 +271,19 @@         <RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />         <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />          <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>+      </context>+      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>+      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>       <context attribute="String" lineEndContext="#pop" name="String">         <LineContinue attribute="String" context="#stay"/>
xml/awk.xml view
@@ -1,94 +1,117 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="AWK" version="2" kateversion="5.0" section="Scripts"+<language name="AWK" version="3" kateversion="5.0" section="Scripts"   extensions="*.awk" mimetype="text/x-awk" indenter="cstyle"   license="LGPL"> <!-- patched by igli#kate@irc:chat.freenode.net -->   <highlighting>-    <list name="keywords">+    <list name="controlflow">       <item>if</item>       <item>else</item>       <item>while</item>       <item>do</item>       <item>for</item>-      <item>in</item>-      <item>continue</item>       <item>break</item>+      <item>continue</item>+      <item>return</item>+      <item>switch</item>+      <item>case</item>+      <item>default</item>+      <item>exit</item>+    </list>+    <list name="keywords">+      <item>in</item>+      <item>delete</item>       <item>print</item>       <item>printf</item>       <item>getline</item>       <item>function</item>-      <item>return</item>       <item>next</item>       <item>nextfile</item>-      <item>exit</item>-      <item>switch</item>-      <item>case</item>-      <item>default</item>       <item>@include</item>       <item>@load</item>     </list>     <list name="builtins">       <item>ARGC</item>+      <item>ARGIND</item>       <item>ARGV</item>+      <item>BINMODE</item>       <item>CONVFMT</item>       <item>ENVIRON</item>       <item>ERRNO</item>+      <item>FIELDWIDTHS</item>       <item>FILENAME</item>       <item>FNR</item>       <item>FPAT</item>       <item>FS</item>       <item>FUNCTAB</item>       <item>IGNORECASE</item>+      <item>LINT</item>       <item>NF</item>       <item>NR</item>       <item>OFMT</item>       <item>OFS</item>       <item>ORS</item>+      <item>PREC</item>       <item>PROCINFO</item>+      <item>ROUNDMODE</item>       <item>RS</item>+      <item>RT</item>       <item>RSTART</item>       <item>RLENGTH</item>       <item>SUBSEP</item>       <item>SYMTAB</item>+      <item>TEXTDOMAIN</item>     </list>     <list name="functions">+      <!-- I/O -->+      <item>close</item>+      <item>fflush</item>+      <item>system</item>+      <!-- Arithmetic -->+      <item>atan2</item>+      <item>cos</item>+      <item>exp</item>+      <item>int</item>+      <item>log</item>+      <item>rand</item>+      <item>sin</item>+      <item>sqrt</item>+      <item>srand</item>+      <!-- String -->       <item>asort</item>       <item>asorti</item>-      <item>gsub</item>       <item>gensub</item>+      <item>gsub</item>       <item>index</item>-      <item>isarray</item>       <item>length</item>-      <item>lshift</item>       <item>match</item>-      <item>mktime</item>       <item>patsplit</item>-      <item>rshift</item>       <item>split</item>       <item>sprintf</item>-      <item>sround</item>-      <item>strftime</item>       <item>strtonum</item>       <item>sub</item>       <item>substr</item>-      <item>systime</item>       <item>tolower</item>       <item>toupper</item>-      <item>typeof</item>+      <!-- Time -->+      <item>mktime</item>+      <item>strftime</item>+      <item>systime</item>+      <!-- Bit Manipulationse -->+      <item>and</item>+      <item>compl</item>+      <item>lshift</item>+      <item>or</item>+      <item>rshift</item>       <item>xor</item>-      <item>atan2</item>-      <item>cos</item>-      <item>exp</item>-      <item>int</item>-      <item>log</item>-      <item>rand</item>-      <item>sin</item>-      <item>sqrt</item>-      <item>srand</item>-      <item>close</item>-      <item>fflush</item>-      <item>system</item>+      <!-- Type -->+      <item>isarray</item>+      <item>typeof</item>+      <!-- Internationalization -->+      <item>bindtextdomain</item>+      <item>dcgettext</item>+      <item>dcngettext</item>     </list>     <list name="special">       <item>BEGIN</item>@@ -96,122 +119,149 @@       <item>END</item>       <item>ENDFILE</item>     </list>+    <list name="charclass">+      <item>alpha</item>+      <item>alnum</item>+      <item>blank</item>+      <item>cntrl</item>+      <item>digit</item>+      <item>graph</item>+      <item>lower</item>+      <item>print</item>+      <item>punct</item>+      <item>space</item>+      <item>upper</item>+      <item>xdigit</item>+    </list>  <contexts> <!-- START CONTEXTS --> <context name="Pattern" attribute="Normal" lineEndContext="#stay">-	<DetectChar char="{" context="Block" attribute="Keyword" beginRegion="block" />+	<DetectSpaces />+	<DetectChar char="{" attribute="Symbol" context="Block" beginRegion="block" /> 	<DetectChar char="}" attribute="Error" context="#stay"/>-	<DetectChar char="/" firstNonSpace="true" lookAhead="true" context="MatchPattern"/>+	<DetectChar char="/" attribute="Regex Op" firstNonSpace="true" context="Regex"/> 	<IncludeRules context="base" /> 	<keyword String="special" attribute="Special" context="#stay"/> </context>  <context name="Block" attribute="Normal" lineEndContext="#stay">-	<DetectChar char="}" attribute="Keyword" context="#pop" endRegion="block" />-	<DetectChar char="{" context="Block" attribute="Keyword" beginRegion="block" />+	<DetectSpaces />+	<DetectChar char="}" attribute="Symbol" context="#pop" endRegion="block" />+	<DetectChar char="{" attribute="Symbol" context="Block" beginRegion="block" /> 	<IncludeRules context="base" /> 	<keyword String="special" attribute="Error" context="#stay"/> </context>  <context name="base" attribute="Normal" lineEndContext="#stay">-	<DetectSpaces />-	<DetectChar char="#" context="Comment" attribute="Comment"/>-	<DetectChar char="~" context="Match" attribute="Operator"/>-	<DetectChar char="&quot;" context="String" attribute="String"/>-	<AnyChar String="!%&amp;*+,-./:;&lt;=&gt;?^|" attribute="Operator" context="#stay"/>+	<DetectChar char=")" attribute="Symbol" context="#stay"/>+	<DetectChar char="(" attribute="Symbol" context="Match"/>+	<AnyChar String="=~" attribute="Operator" context="Match"/>+	<DetectChar char="," attribute="Separator Symbol" context="ArgSep"/>+	<DetectChar char="&quot;" attribute="String" context="String"/>+	<DetectChar char="#" attribute="Comment" context="Comment"/>+	<AnyChar String="@!%&amp;*+-/:&lt;&gt;?^|" attribute="Operator" context="#stay"/>+	<keyword String="controlflow" attribute="ControlFlow" context="#stay"/> 	<keyword String="keywords" attribute="Keyword" context="#stay"/> 	<keyword String="builtins" attribute="Builtin" context="#stay"/> 	<keyword String="functions" attribute="Function" context="#stay"/> 	<Float attribute="Float"   context="#stay"/> 	<Int   attribute="Decimal" context="#stay"/> 	<RegExpr String="\$[A-Za-z0-9_]+" attribute="Field" context="#stay"/>+	<DetectChar char=";" attribute="Separator Symbol" context="#stay"/> </context> +<context name="ArgSep" attribute="Normal" lineEndContext="#stay"+   fallthrough="true" fallthroughContext="#pop">+	<IncludeRules context="Match" />+</context>+ <context name="String" attribute="String" lineEndContext="#stay"> 	<DetectChar char="&quot;" attribute="String" context="#pop"/>-	<HlCStringChar attribute="Escape" context="#stay"/>-	<DetectChar char="\" context="Escape" attribute="Operator"/>+	<DetectChar char="\" context="Escape" attribute="Escape"/> </context>  <context name="Comment" attribute="Comment" lineEndContext="#pop"> 	<IncludeRules context="##Alerts"/> </context> -<context name="Escape" attribute="Normal" lineEndContext="#pop">-	<RegExpr String="." attribute="String" context="#pop"/>+<context name="Escape" attribute="Error" lineEndContext="#pop">+	<RegExpr String="[\\abfnrtv]|x[0-9a-fA-F]{1,2}|[0-7]{1,3}" attribute="Escape" context="#pop"/>+	<RegExpr String="." attribute="Error" context="#pop"/> </context>  <context name="Match" attribute="Normal" lineEndContext="#pop"    fallthrough="true" fallthroughContext="#pop"> 	<DetectSpaces />-	<Detect2Chars char="/" char1="^" attribute="Regex Op" context="Regex"/>-	<DetectChar char="/" attribute="Regex Op" context="Regex"/>+	<DetectChar char="/" attribute="Regex Op" context="#pop!Regex"/> </context>-<context name="Regex" attribute="Regex" lineEndContext="#stay">++<context name="Regex" attribute="Regex" lineEndContext="#pop"> 	<IncludeRules context="regex"/>-	<DetectChar char="/" context="#pop#pop" attribute="Regex Op"/>+	<DetectChar char="/" context="#pop" attribute="Regex Op"/> </context>+ <context name="regex" attribute="Normal" lineEndContext="#stay">-	<HlCStringChar attribute="Escape" context="#stay"/>-	<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/> 	<Detect2Chars char="[" char1="^" context="RegexChar" attribute="Regex Op"/> 	<DetectChar char="[" context="RegexChar" attribute="Regex Op"/>-	<AnyChar String="$.+?*()|" context="#stay" attribute="Regex Op"/>+	<AnyChar String="^$.+?*()|" context="#stay" attribute="Regex Op"/>+	<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/> </context>+ <context name="Regex Escape" attribute="Normal" lineEndContext="#pop">+	<RegExpr String="[&lt;&gt;sSwW`'[\]{}^$.+?*()|/\\abfnrtv]|x[0-9a-fA-F]{1,2}|[0-7]{1,3}" attribute="Escape" context="#pop"/> 	<RegExpr String="." attribute="Regex" context="#pop"/> </context>  <context name="RegexChar" attribute="Regex" lineEndContext="#pop"    fallthrough="true" fallthroughContext="InChar">-	<Detect2Chars char="-" char1="]" context="InChar" attribute="Regex"/> 	<AnyChar String="-]" context="InChar" attribute="Regex"/> </context>-<context name="InChar" attribute="Regex" lineEndContext="#stay">-	<HlCStringChar attribute="String" context="#stay"/>++<context name="InChar" attribute="Regex" lineEndContext="#pop#pop">+	<Detect2Chars char="-" char1="]" context="InCharEnd" attribute="Regex" lookAhead="true"/>+	<DetectChar char="-" context="#stay" attribute="Regex Op"/> 	<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/>-	<Detect2Chars char="-" char1="]" context="Regex Escape" lookAhead="true"/>+	<DetectChar char="[" context="CharClassSelect" attribute="Regex" lookAhead="true"/> 	<DetectChar char="]" context="#pop#pop" attribute="Regex Op"/>-	<DetectChar char="-" context="#stay" attribute="Regex Op"/>-	<RegExpr String="\[:(?=[_\w][_\d\w]*:\])" context="CharClass" attribute="Regex Op"/> </context>-<context name="CharClass" attribute="Custom" lineEndContext="#pop">-	<RegExpr String="(alpha|alnum|blank|cntrl|digit|graph|lower|punct|space|upper|xdigit)(?=:\])"-		attribute="CharClass" context="#stay"/>-	<Detect2Chars char=":" char1="]" attribute="Regex Op" context="#pop"/>-</context> -<context name="MatchPattern" attribute="Normal" lineEndContext="#pop"-   fallthrough="true" fallthroughContext="#pop">-	<Detect2Chars char="/" char1="^" attribute="Regex Op" context="RegexPattern"/>-	<DetectChar char="/" attribute="Regex Op" context="RegexPattern"/>+<context name="InCharEnd" attribute="Regex Op" lineEndContext="#stay">+	<DetectChar char="-" context="#stay" attribute="Regex"/>+	<DetectChar char="]" context="#pop#pop#pop" attribute="Regex Op"/> </context>-<context name="RegexPattern" attribute="Regex" lineEndContext="#stay">-	<IncludeRules context="regex"/>-	<DetectChar char="/" context="CheckRange" attribute="Regex Op"/>++<context name="CharClassSelect" attribute="Custom" lineEndContext="#pop#pop#pop#pop">+	<Detect2Chars char="[" char1=":" context="#pop!CharClass" attribute="CharClass"/>+	<Detect2Chars char="[" char1="." context="#pop!CollatingSymbols" attribute="CharClass"/>+	<Detect2Chars char="[" char1="=" context="#pop!EquivalenceClass" attribute="CharClass"/>+	<DetectChar char="[" context="#pop" attribute="Regex"/> </context>-<context name="CheckRange" attribute="Normal" lineEndContext="#pop#pop#pop"-   fallthrough="true" fallthroughContext="#pop#pop#pop">-	<RegExpr String="\s*,\s*(?=/)" context="RangePattern" attribute="Operator"/>++<context name="CharClass" attribute="Custom" lineEndContext="#pop#pop#pop#pop">+	<keyword String="charclass" attribute="CharClass" context="#stay"/>+	<Detect2Chars char=":" char1="]" attribute="CharClass" context="#pop"/>+	<DetectChar char="]" attribute="Error" context="#pop"/> </context>-<context name="RangePattern" attribute="Normal" lineEndContext="#pop#pop#pop#pop"-   fallthrough="true" fallthroughContext="#pop#pop#pop#pop">-	<Detect2Chars char="/" char1="^" attribute="Regex Op" context="Pattern2"/>-	<DetectChar char="/" attribute="Regex Op" context="Pattern2"/>++<context name="CollatingSymbols" attribute="Custom" lineEndContext="#pop#pop#pop#pop">+	<Detect2Chars char="." char1="]" attribute="CharClass" context="#pop"/>+	<DetectChar char="]" attribute="Error" context="#pop"/> </context>-<context name="Pattern2" attribute="Regex" lineEndContext="#stay">-	<IncludeRules context="regex"/>-	<DetectChar char="/" context="#pop#pop#pop#pop#pop" attribute="Regex Op"/>++<context name="EquivalenceClass" attribute="Custom" lineEndContext="#pop#pop#pop#pop">+	<Detect2Chars char="=" char1="]" attribute="CharClass" context="#pop"/>+	<DetectChar char="]" attribute="Error" context="#pop"/> </context>  <!-- END OF CONTEXTS --> </contexts>     <itemDatas>       <itemData name="Normal"   defStyleNum="dsNormal"/>-      <itemData name="Keyword"  defStyleNum="dsKeyword"/>-      <itemData name="Builtin"  defStyleNum="dsBuiltIn"/>-      <itemData name="Function" defStyleNum="dsFunction"/>+      <itemData name="ControlFlow" defStyleNum="dsControlFlow" spellChecking="false"/>+      <itemData name="Keyword"  defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="Builtin"  defStyleNum="dsBuiltIn" spellChecking="false"/>+      <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>       <itemData name="Decimal"  defStyleNum="dsDecVal"/>       <itemData name="Float"    defStyleNum="dsFloat"/>       <itemData name="String"   defStyleNum="dsString"/>@@ -221,16 +271,18 @@       <itemData name="Error"    defStyleNum="dsError"/>       <itemData name="Special"  defStyleNum="dsControlFlow" bold="0"/>       <itemData name="Operator" defStyleNum="dsOperator"/>-      <itemData name="Regex"    defStyleNum="dsSpecialString"/>+      <itemData name="Symbol"   defStyleNum="dsNormal"/>+      <itemData name="Separator Symbol" defStyleNum="dsNormal"/>+      <itemData name="Regex"    defStyleNum="dsSpecialString" spellChecking="false"/>       <itemData name="Regex Op" defStyleNum="dsOthers"/>-      <itemData name="CharClass" defStyleNum="dsExtension"/>-      <itemData name="Custom"   defStyleNum="dsOthers" />+      <itemData name="CharClass" defStyleNum="dsExtension" spellChecking="false"/>+      <itemData name="Custom"   defStyleNum="dsOthers" spellChecking="false"/>     </itemDatas>   </highlighting>   <general>     <comments>       <comment name="singleLine" start="#"/>     </comments>-    <keywords casesensitive="1" />+    <keywords casesensitive="1" weakDeliminator="@"/>   </general> </language>
xml/bash.xml view
@@ -8,7 +8,7 @@         <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->         <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name --> ]>-<language name="Bash" version="8" kateversion="5.0" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">+<language name="Bash" version="9" kateversion="5.0" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">  <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)     Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)@@ -615,14 +615,27 @@        <!-- FindOthers contains various rules to mark different shell input -->       <context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">-        <RegExpr attribute="Escape" context="#stay" String="\\[][;\\$`{}()|&amp;&lt;&gt;* ]" />+        <IncludeRules context="Escapes" />         <RegExpr attribute="Keyword" context="#stay" String="\\$" />-        <RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />+        <!-- Only highlighting closed braces. The "BraceExpansion" context corrects+             the closure of braces and allows recursive braces (bug #387915). -->+        <RegExpr attribute="Escape" context="BraceExpansion" String="\{(?=(\\[ \{\}]|[^\s\{\}]|\{(\\[ ]|\S)*\})+\})" />         <RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />         <RegExpr attribute="Path" context="#stay" String="~\w*" />         <RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />         <!-- TODO: shell globs beside * and ? (in Path's) -->       </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="Escapes">+        <RegExpr attribute="Escape" context="#stay" String="\\[][;\\$`{}()|&amp;&lt;&gt;* ]" />+      </context>+      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion">+        <DetectSpaces context="#pop" lookAhead="true" />+        <DetectChar attribute="Escape" context="#pop" char="}" />+        <DetectChar attribute="Escape" context="BraceExpansion" char="{" />+        <RegExpr attribute="Error" context="#stay" String="[^\s\{\}\\](?=\s|$)" />+        <IncludeRules context="Escapes" />+        <IncludeRules context="FindSubstitutions" />+      </context>        <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->       <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">@@ -800,7 +813,7 @@       <context attribute="Error" lineEndContext="#stay" name="VarBrace">         <DetectChar attribute="Variable" context="#pop" char="}" />         <DetectChar attribute="Variable" context="Subscript" char="[" />-        <RegExpr attribute="Variable" context="VarAlt" String="(:?[-=?+]|##?|%%?)" />+        <RegExpr attribute="Variable" context="VarAlt" String="(:?[-=?+@]|##?|%%?|\^\^?|,,?)" />         <RegExpr attribute="Variable" context="VarSubst" String="//?" />         <DetectChar attribute="Variable" context="VarSub" char=":" />       </context>@@ -827,16 +840,18 @@        <!-- VarSub is to substrings of variables -->       <context attribute="Error" lineEndContext="#stay" name="VarSub">+        <DetectSpaces attribute="Variable" context="#stay" />         <DetectChar attribute="Variable" context="VarSub2" char=":" />         <DetectChar attribute="Variable" context="#pop#pop" char="}" />         <RegExpr attribute="Variable" context="#stay" String="&varname;" />-        <RegExpr attribute="Variable" context="#stay" String="[0-9]+(?=[:}])" />+        <RegExpr attribute="Variable" context="#stay" String="([\-\+]\s*)?[0-9]+\s*(?=[:}])" />         <IncludeRules context="FindSubstitutions" />       </context>       <context attribute="Error" lineEndContext="#stay" name="VarSub2">+        <DetectSpaces attribute="Variable" context="#stay" />         <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />         <RegExpr attribute="Variable" context="#stay" String="&varname;" />-        <RegExpr attribute="Variable" context="#stay" String="[0-9](?=[:}])" />+        <RegExpr attribute="Variable" context="#stay" String="([\-\+]\s*)?[0-9]+\s*(?=[:}])" />         <IncludeRules context="FindSubstitutions" />       </context> 
xml/c.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <language name="C" section="Sources"-          version="4" kateversion="5.0"+          version="5" kateversion="5.0"           indenter="cstyle"           extensions="*.c;*.C;*.h"           mimetype="text/x-csrc;text/x-c++src;text/x-chdr"@@ -119,28 +119,32 @@         <DetectIdentifier />         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>         <RegExpr attribute="Binary" context="#stay" String="0b[01]+[ul]{0,3}" insensitive="true" />-        <Int attribute="Decimal" context="#stay" >-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <DetectChar attribute="String" context="String" char="&quot;"/>         <IncludeRules context="##Doxygen" />         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>         <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>+      </context>++      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>++      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>        <context attribute="String" lineEndContext="#pop" name="String">
xml/clojure.xml view
@@ -22,7 +22,7 @@  * Boston, MA  02110-1301, USA.                                       *  **********************************************************************  -->-<language version="9" kateversion="5.0" name="Clojure" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">+<language version="10" kateversion="5.0" name="Clojure" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">   <highlighting>     <list name="definitions">       <item>def</item>@@ -736,13 +736,15 @@         <RegExpr attribute="BaseN" context="#stay" String="0[xX][0-9A-Fa-f]+"/>         <RegExpr attribute="BaseN" context="#stay" String="([12]?[0-9]|3[0-6])[rR][0-9a-zA-Z]+"/>         <RegExpr attribute="Error" context="#stay" String="(3[7-9]|[0-9]*[4-9][0-9]+)[rR][0-9a-zA-Z]+"/>-        <Float attribute="Float" context="#stay">-            <StringDetect attribute="Decimal" context="#stay" String="M" insensitive="false"/>-        </Float>-        <Int attribute="Decimal" context="#stay">-            <StringDetect attribute="Decimal" context="#stay" String="N" insensitive="false"/>-        </Int>+        <Float attribute="Float" context="Float Suffixes"/>+        <Int attribute="Decimal" context="Int Suffixes"/>         <DetectChar attribute="Brackets1" context="Level1" char="("/>+      </context>+      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+            <StringDetect attribute="Float" context="#pop" String="M" insensitive="false"/>+      </context>+      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+            <StringDetect attribute="Decimal" context="#pop" String="N" insensitive="false"/>       </context>       <context name="Comment" attribute="Comment" lineEndContext="#pop">         <RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
xml/cmake.xml view
@@ -31,7 +31,7 @@  <language     name="CMake"-    version="6"+    version="8"     kateversion="2.4"     section="Other"     extensions="CMakeLists.txt;*.cmake;*.cmake.in"@@ -89,6 +89,7 @@         <item>unset</item>         <item>variable_watch</item>         <item>while</item>+        <item>add_compile_definitions</item>         <item>add_compile_options</item>         <item>add_custom_command</item>         <item>add_custom_target</item>@@ -269,6 +270,7 @@     <list name="file_nargs">       <item>APPEND</item>       <item>CONDITION</item>+      <item>CONFIGURE_DEPENDS</item>       <item>CONTENT</item>       <item>COPY</item>       <item>DESTINATION</item>@@ -336,6 +338,8 @@       <item>TIMESTAMP</item>       <item>TLS_CAINFO</item>       <item>TLS_VERIFY</item>+      <item>TOUCH</item>+      <item>TOUCH_NOCREATE</item>       <item>TO_CMAKE_PATH</item>       <item>TO_NATIVE_PATH</item>       <item>UPLOAD</item>@@ -541,19 +545,30 @@     </list>     <list name="list_nargs">       <item>APPEND</item>+      <item>AT</item>       <item>EXCLUDE</item>       <item>FILTER</item>       <item>FIND</item>+      <item>FOR</item>+      <item>GENEX_STRIP</item>       <item>GET</item>       <item>INCLUDE</item>       <item>INSERT</item>+      <item>JOIN</item>       <item>LENGTH</item>+      <item>OUTPUT_VARIABLE</item>+      <item>PREPEND</item>       <item>REGEX</item>       <item>REMOVE_AT</item>       <item>REMOVE_DUPLICATES</item>       <item>REMOVE_ITEM</item>+      <item>REPLACE</item>       <item>REVERSE</item>       <item>SORT</item>+      <item>STRIP</item>+      <item>SUBLIST</item>+      <item>TOLOWER</item>+      <item>TRANSFORM</item>     </list>     <list name="mark_as_advanced_nargs">       <item>CLEAR</item>@@ -618,6 +633,7 @@       <item>GENEX_STRIP</item>       <item>GREATER</item>       <item>GREATER_EQUAL</item>+      <item>JOIN</item>       <item>LENGTH</item>       <item>LESS</item>       <item>LESS_EQUAL</item>@@ -822,6 +838,7 @@       <item>INCLUDES</item>       <item>LIBRARY</item>       <item>MESSAGE_NEVER</item>+      <item>NAMELINK_COMPONENT</item>       <item>NAMELINK_ONLY</item>       <item>NAMELINK_SKIP</item>       <item>NAMESPACE</item>@@ -865,11 +882,14 @@     </list>     <list name="project_nargs">       <item>DESCRIPTION</item>+      <item>HOMEPAGE_URL</item>       <item>LANGUAGES</item>       <item>VERSION</item>     </list>     <list name="project_sargs">+      <item>ASM</item>       <item>C</item>+      <item>CUDA</item>       <item>CXX</item>       <item>Fortran</item>       <item>NONE</item>@@ -957,6 +977,7 @@       <item>cxx_std_11</item>       <item>cxx_std_14</item>       <item>cxx_std_17</item>+      <item>cxx_std_20</item>       <item>cxx_std_98</item>       <item>cxx_strong_enums</item>       <item>cxx_template_template_parameters</item>@@ -1213,6 +1234,7 @@       <item>CMAKE_DEPENDS_IN_PROJECT_ONLY</item>       <item>CMAKE_DIRECTORY_LABELS</item>       <item>CMAKE_DL_LIBS</item>+      <item>CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION</item>       <item>CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES</item>       <item>CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT</item>       <item>CMAKE_ECLIPSE_MAKE_ARGUMENTS</item>@@ -1247,6 +1269,7 @@       <item>CMAKE_FIND_ROOT_PATH_MODE_LIBRARY</item>       <item>CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</item>       <item>CMAKE_FIND_ROOT_PATH_MODE_PROGRAM</item>+      <item>CMAKE_FOLDER</item>       <item>CMAKE_FRAMEWORK_PATH</item>       <item>CMAKE_Fortran_FORMAT</item>       <item>CMAKE_Fortran_MODDIR_DEFAULT</item>@@ -1379,7 +1402,13 @@       <item>CMAKE_PREFIX_PATH</item>       <item>CMAKE_PROGRAM_PATH</item>       <item>CMAKE_PROJECT_DESCRIPTION</item>+      <item>CMAKE_PROJECT_HOMEPAGE_URL</item>       <item>CMAKE_PROJECT_NAME</item>+      <item>CMAKE_PROJECT_VERSION</item>+      <item>CMAKE_PROJECT_VERSION_MAJOR</item>+      <item>CMAKE_PROJECT_VERSION_MINOR</item>+      <item>CMAKE_PROJECT_VERSION_PATCH</item>+      <item>CMAKE_PROJECT_VERSION_TWEAK</item>       <item>CMAKE_RANLIB</item>       <item>CMAKE_REQUIRED_DEFINITIONS</item>       <item>CMAKE_REQUIRED_FLAGS</item>@@ -1411,6 +1440,7 @@       <item>CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE</item>       <item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>       <item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>+      <item>CMAKE_SUPPRESS_REGENERATION</item>       <item>CMAKE_SWIG_FLAGS</item>       <item>CMAKE_SWIG_OUTDIR</item>       <item>CMAKE_SYSROOT</item>@@ -1453,6 +1483,13 @@       <item>CMAKE_VS_PLATFORM_TOOLSET</item>       <item>CMAKE_VS_PLATFORM_TOOLSET_CUDA</item>       <item>CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE</item>+      <item>CMAKE_VS_SDK_EXCLUDE_DIRECTORIES</item>+      <item>CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES</item>+      <item>CMAKE_VS_SDK_INCLUDE_DIRECTORIES</item>+      <item>CMAKE_VS_SDK_LIBRARY_DIRECTORIES</item>+      <item>CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES</item>+      <item>CMAKE_VS_SDK_REFERENCE_DIRECTORIES</item>+      <item>CMAKE_VS_SDK_SOURCE_DIRECTORIES</item>       <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION</item>       <item>CMAKE_WARN_DEPRECATED</item>       <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>@@ -1593,14 +1630,33 @@       <item>CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP</item>       <item>CPACK_NSIS_PACKAGE_NAME</item>       <item>CPACK_NSIS_URL_INFO_ABOUT</item>+      <item>CPACK_NUGET_COMPONENT_INSTALL</item>+      <item>CPACK_NUGET_PACKAGE_AUTHORS</item>+      <item>CPACK_NUGET_PACKAGE_COPYRIGHT</item>+      <item>CPACK_NUGET_PACKAGE_DEBUG</item>+      <item>CPACK_NUGET_PACKAGE_DEPENDENCIES</item>+      <item>CPACK_NUGET_PACKAGE_DESCRIPTION</item>+      <item>CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY</item>+      <item>CPACK_NUGET_PACKAGE_HOMEPAGE_URL</item>+      <item>CPACK_NUGET_PACKAGE_ICONURL</item>+      <item>CPACK_NUGET_PACKAGE_LICENSEURL</item>+      <item>CPACK_NUGET_PACKAGE_NAME</item>+      <item>CPACK_NUGET_PACKAGE_OWNERS</item>+      <item>CPACK_NUGET_PACKAGE_RELEASE_NOTES</item>+      <item>CPACK_NUGET_PACKAGE_TAGS</item>+      <item>CPACK_NUGET_PACKAGE_TITLE</item>+      <item>CPACK_NUGET_PACKAGE_VERSION</item>       <item>CPACK_OSX_PACKAGE_VERSION</item>       <item>CPACK_OUTPUT_CONFIG_FILE</item>       <item>CPACK_PACKAGE_CHECKSUM</item>+      <item>CPACK_PACKAGE_CONTACT</item>+      <item>CPACK_PACKAGE_DESCRIPTION</item>       <item>CPACK_PACKAGE_DESCRIPTION_FILE</item>       <item>CPACK_PACKAGE_DESCRIPTION_SUMMARY</item>       <item>CPACK_PACKAGE_DIRECTORY</item>       <item>CPACK_PACKAGE_EXECUTABLES</item>       <item>CPACK_PACKAGE_FILE_NAME</item>+      <item>CPACK_PACKAGE_HOMEPAGE_URL</item>       <item>CPACK_PACKAGE_ICON</item>       <item>CPACK_PACKAGE_INSTALL_DIRECTORY</item>       <item>CPACK_PACKAGE_INSTALL_REGISTRY_KEY</item>@@ -1823,6 +1879,7 @@       <item>MSVC80</item>       <item>MSVC90</item>       <item>MSVC_IDE</item>+      <item>MSVC_TOOLSET_VERSION</item>       <item>MSVC_VERSION</item>       <item>PACKAGE_FIND_NAME</item>       <item>PACKAGE_FIND_VERSION</item>@@ -1835,8 +1892,12 @@       <item>PACKAGE_VERSION_COMPATIBLE</item>       <item>PACKAGE_VERSION_EXACT</item>       <item>PACKAGE_VERSION_UNSUITABLE</item>+      <item>PKG_CONFIG_EXECUTABLE</item>+      <item>PKG_CONFIG_USE_CMAKE_PREFIX_PATH</item>+      <item>PKG_CONFIG_VERSION_STRING</item>       <item>PROJECT_BINARY_DIR</item>       <item>PROJECT_DESCRIPTION</item>+      <item>PROJECT_HOMEPAGE_URL</item>       <item>PROJECT_NAME</item>       <item>PROJECT_SOURCE_DIR</item>       <item>PROJECT_VERSION</item>@@ -1919,6 +1980,7 @@       <item>RULE_LAUNCH_LINK</item>       <item>SOURCE_DIR</item>       <item>SUBDIRECTORIES</item>+      <item>TESTS</item>       <item>TEST_INCLUDE_FILE</item>       <item>TEST_INCLUDE_FILES</item>       <item>VARIABLES</item>@@ -1961,6 +2023,7 @@       <item>BUILD_WITH_INSTALL_RPATH</item>       <item>BUNDLE</item>       <item>BUNDLE_EXTENSION</item>+      <item>COMMON_LANGUAGE_RUNTIME</item>       <item>COMPATIBLE_INTERFACE_BOOL</item>       <item>COMPATIBLE_INTERFACE_NUMBER_MAX</item>       <item>COMPATIBLE_INTERFACE_NUMBER_MIN</item>@@ -1986,10 +2049,12 @@       <item>C_STANDARD_REQUIRED</item>       <item>DEFINE_SYMBOL</item>       <item>DEPLOYMENT_REMOTE_DIRECTORY</item>+      <item>DOTNET_TARGET_FRAMEWORK_VERSION</item>       <item>ENABLE_EXPORTS</item>       <item>EXCLUDE_FROM_ALL</item>       <item>EXCLUDE_FROM_DEFAULT_BUILD</item>       <item>EXPORT_NAME</item>+      <item>EXPORT_PROPERTIES</item>       <item>EchoString</item>       <item>FOLDER</item>       <item>FRAMEWORK</item>@@ -2001,6 +2066,7 @@       <item>HAS_CXX</item>       <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>       <item>IMPORTED</item>+      <item>IMPORTED_COMMON_LANGUAGE_RUNTIME</item>       <item>IMPORTED_CONFIGURATIONS</item>       <item>IMPORTED_GLOBAL</item>       <item>IMPORTED_IMPLIB</item>@@ -2079,6 +2145,7 @@       <item>VERSION</item>       <item>VISIBILITY_INLINES_HIDDEN</item>       <item>VS_CONFIGURATION_TYPE</item>+      <item>VS_DEBUGGER_COMMAND</item>       <item>VS_DEBUGGER_WORKING_DIRECTORY</item>       <item>VS_DESKTOP_EXTENSIONS_VERSION</item>       <item>VS_DOTNET_REFERENCES</item>@@ -2141,6 +2208,7 @@       <item>VS_SHADER_ENTRYPOINT</item>       <item>VS_SHADER_FLAGS</item>       <item>VS_SHADER_MODEL</item>+      <item>VS_SHADER_OBJECT_FILE_NAME</item>       <item>VS_SHADER_OUTPUT_HEADER_FILE</item>       <item>VS_SHADER_TYPE</item>       <item>VS_SHADER_VARIABLE_NAME</item>@@ -2166,6 +2234,7 @@       <item>MEASUREMENT</item>       <item>PASS_REGULAR_EXPRESSION</item>       <item>PROCESSORS</item>+      <item>PROCESSOR_AFFINITY</item>       <item>REQUIRED_FILES</item>       <item>RESOURCE_LOCK</item>       <item>RUN_SERIAL</item>@@ -2208,9 +2277,11 @@       <item>C_COMPILER_ID</item>       <item>C_COMPILER_VERSION</item>       <item>EQUAL</item>+      <item>GENEX_EVAL</item>       <item>IF</item>       <item>INSTALL_INTERFACE</item>       <item>INSTALL_PREFIX</item>+      <item>IN_LIST</item>       <item>JOIN</item>       <item>LINK_ONLY</item>       <item>LOWER_CASE</item>@@ -2223,13 +2294,16 @@       <item>STREQUAL</item>       <item>TARGET_BUNDLE_CONTENT_DIR</item>       <item>TARGET_BUNDLE_DIR</item>+      <item>TARGET_EXISTS</item>       <item>TARGET_FILE</item>       <item>TARGET_FILE_DIR</item>       <item>TARGET_FILE_NAME</item>+      <item>TARGET_GENEX_EVAL</item>       <item>TARGET_LINKER_FILE</item>       <item>TARGET_LINKER_FILE_DIR</item>       <item>TARGET_LINKER_FILE_NAME</item>       <item>TARGET_NAME</item>+      <item>TARGET_NAME_IF_EXISTS</item>       <item>TARGET_OBJECTS</item>       <item>TARGET_PDB_FILE</item>       <item>TARGET_PDB_FILE_DIR</item>@@ -2297,6 +2371,7 @@         <WordDetect String="unset" insensitive="true" attribute="Command" context="unset_ctx" />         <WordDetect String="variable_watch" insensitive="true" attribute="Command" context="variable_watch_ctx" />         <WordDetect String="while" insensitive="true" attribute="Command" context="while_ctx" />+        <WordDetect String="add_compile_definitions" insensitive="true" attribute="Command" context="add_compile_definitions_ctx" />         <WordDetect String="add_compile_options" insensitive="true" attribute="Command" context="add_compile_options_ctx" />         <WordDetect String="add_custom_command" insensitive="true" attribute="Command" context="add_custom_command_ctx" />         <WordDetect String="add_custom_target" insensitive="true" attribute="Command" context="add_custom_target_ctx" />@@ -2354,9 +2429,10 @@         <WordDetect String="ctest_update" insensitive="true" attribute="Command" context="ctest_update_ctx" />         <WordDetect String="ctest_upload" insensitive="true" attribute="Command" context="ctest_upload_ctx" />         <RegExpr attribute="Region Marker" context="RST Documentation" String="^#\[(=*)\[\.rst:" column="0" />-        <RegExpr attribute="Comment" context="Bracketed Comment" String="^#\[(=*)\[" column="0" />+        <RegExpr attribute="Comment" context="Bracketed Comment" String="#\[(=*)\[" />         <DetectChar attribute="Comment" context="Comment" char="#" />         <DetectIdentifier attribute="User Function/Macro" context="User Function" />+        <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&id_re;@" lookAhead="true" />         <!-- Include keywords matching for language autocompleter work -->         <keyword attribute="Command" context="#stay" String="commands" />       </context>@@ -2768,6 +2844,13 @@         <keyword attribute="Named Args" context="#stay" String="while_nargs" />         <IncludeRules context="User Function Args" />       </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_definitions_ctx">+        <DetectChar attribute="Normal Text" context="add_compile_definitions_ctx_op" char="(" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_definitions_ctx_op">+        <IncludeRules context="EndCmdPop2" />+        <IncludeRules context="User Function Args" />+      </context>       <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_options_ctx">         <DetectChar attribute="Normal Text" context="add_compile_options_ctx_op" char="(" />       </context>@@ -3319,7 +3402,10 @@         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_MINOR\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_PATCH\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_TWEAK\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_ROOT\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;__TRYRUN_OUTPUT\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_CONSIDERED_CONFIGS\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_CONSIDERED_VERSIONS\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_COMPONENTS\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_QUIETLY\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_REQUIRED\b" />@@ -3446,6 +3532,22 @@         <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_SOURCE\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_SUGGESTS\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NSIS_&id_re;_INSTALL_DIRECTORY\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_AUTHORS\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_COPYRIGHT\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES_&id_re;_VERSION\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION_SUMMARY\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_HOMEPAGE_URL\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_ICONURL\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_LICENSEURL\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_NAME\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_OWNERS\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_RELEASE_NOTES\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_TAGS\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_TITLE\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_&id_re;_PACKAGE_VERSION\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_NUGET_PACKAGE_DEPENDENCIES_&id_re;_VERSION\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_DEFAULT_DIR_PERMISSIONS\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_DEFAULT_FILE_PERMISSIONS\b" />         <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_DEFAULT_GROUP\b" />@@ -3488,6 +3590,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">         <RegExpr attribute="Environment Variable Substitution" context="#stay" String="\$ENV\{\s*[\w-]+\s*\}" />         <Detect2Chars attribute="Variable Substitution" context="VarSubst" char="$" char1="{" />+        <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&id_re;@" lookAhead="true" />       </context>        <context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">@@ -3497,12 +3600,23 @@         <IncludeRules context="Detect Variable Substitutions" />       </context> +      <context attribute="@Variable Substitution" lineEndContext="#pop" name="@VarSubst">+        <DetectChar attribute="@Variable Substitution" context="VarSubst@" char="@" />+      </context>++      <context attribute="@Variable Substitution" lineEndContext="#pop#pop" name="VarSubst@">+        <IncludeRules context="Detect Builtin Variables" />+        <DetectIdentifier />+        <DetectChar attribute="@Variable Substitution" context="#pop#pop" char="@" />+      </context>+       <context attribute="Normal Text" lineEndContext="#stay" name="User Function Args">         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="(" />         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")" />         <RegExpr attribute="Escapes" context="#stay" String="\\[&quot;$n\\]" />         <DetectChar attribute="Strings" context="String" char="&quot;" />         <RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" />+        <RegExpr attribute="Comment" context="Bracketed Comment" String="#\[(=*)\[" />         <DetectChar attribute="Comment" context="Comment" char="#" />         <IncludeRules context="Detect Builtin Variables" />         <IncludeRules context="Detect Variable Substitutions" />@@ -3533,7 +3647,7 @@       </context>        <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">-        <RegExpr attribute="Comment" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />+        <RegExpr attribute="Comment" context="#pop" String=".*\]%1\]" dynamic="true" />         <IncludeRules context="##Alerts" />         <IncludeRules context="##Modelines" />       </context>@@ -3578,6 +3692,7 @@       <itemData name="Escapes" defStyleNum="dsChar" spellChecking="false" />       <itemData name="Builtin Variable" defStyleNum="dsDecVal" color="#c09050" selColor="#c09050" spellChecking="false" />       <itemData name="Variable Substitution" defStyleNum="dsDecVal" spellChecking="false" />+      <itemData name="@Variable Substitution" defStyleNum="dsBaseN" spellChecking="false" />       <itemData name="Internal Name" defStyleNum="dsDecVal" color="#303030" selColor="#303030" spellChecking="false" />       <itemData name="Environment Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />       <itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false" />
xml/coffee.xml view
@@ -2,11 +2,11 @@ <!DOCTYPE language SYSTEM "language.dtd">  <language name="CoffeeScript"-          version="3"+          version="8"           kateversion="3.4"           section="Scripts"-          extensions="Cakefile;*.coffee;*.coco"-          mimetype="text/x-coffeescript;application/x-coffeescript"+          extensions="Cakefile;*.coffee;*.coco;*.cson"+          mimetype="text/x-coffeescript;application/x-coffeescript;application/vnd.coffeescript"           indenter="python"           casesensitive="1"           author="Max Shawabkeh (max99x@gmail.com)"@@ -166,6 +166,7 @@         <DetectChar attribute="String" context="String" char="'"/>         <DetectChar attribute="String" context="Rich String" char="&quot;"/>         <!-- Embedded JavaScript. -->+        <StringDetect attribute="Javascript" context="Javascript Triple Backticks" String="```" beginRegion="Javascript TB"/>         <DetectChar attribute="Javascript" context="Javascript" char="`" beginRegion="Javascript"/>         <!-- Comments. -->         <StringDetect attribute="Comment" context="Multiline Comment" String="###" beginRegion="Comment"/>@@ -173,6 +174,8 @@         <!-- Regular expressions. -->         <StringDetect attribute="Regex" context="Multiline Regex" String="///" beginRegion="Multiline Regex"/>         <RegExpr attribute="Regex" context="#stay" String="/([^/\\\r\n]|\\.)*/[mig]{0,3}"/>+        <!-- Member objects. -->+        <DetectChar attribute="Symbol" context="Member Object" char="."/>         <!-- Operators and other non-alphanumeric symbols. -->         <AnyChar attribute="Symbol" context="#stay" String="():!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;{}"/>       </context>@@ -187,44 +190,107 @@         <DetectSpaces/>         <RegExpr attribute="Class" context="#pop" String="[@$:.\w\[\]]+"/>       </context>+      <!-- Member objects. -->+      <context name="Member Object" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <RegExpr attribute="Identifier" context="#pop" String="\s*[_$a-z][$\w]*" insensitive="true"/>+      </context>       <!-- Comments. -->       <context name="Comment" attribute="Comment" lineEndContext="#pop">-        <IncludeRules context="##Alerts_indent"/>+        <IncludeRules context="##Alerts"/>       </context>       <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="1">         <StringDetect attribute="Comment" context="#pop" String="###" endRegion="Comment"/>-        <IncludeRules context="##Alerts_indent"/>+        <IncludeRules context="##Alerts"/>       </context>       <!-- Single-line strings. -->       <context name="String" attribute="String" lineEndContext="#stay">-        <HlCStringChar attribute="String" context="#stay"/>+        <IncludeRules context="Escape"/>         <DetectChar attribute="String" context="#pop" char="'"/>       </context>       <context name="Rich String" attribute="String" lineEndContext="#stay">-        <HlCStringChar attribute="String" context="#stay"/>+        <IncludeRules context="Escape"/>         <Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>         <DetectChar attribute="String" context="#pop" char="&quot;"/>       </context>       <!-- Multi-line strings. -->       <context name="Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">-        <HlCStringChar attribute="String" context="#stay"/>+        <IncludeRules context="Escape"/>         <StringDetect attribute="String" context="#pop" String="'''" endRegion="Heredoc"/>       </context>       <context name="Rich Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">-        <HlCStringChar attribute="String" context="#stay"/>+        <IncludeRules context="Escape"/>         <Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>         <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;" endRegion="Rich Heredoc"/>       </context>+      <!-- Escaped characters. -->+      <context name="Escape" attribute="String" lineEndContext="#stay">+        <!-- Hexadecimal, unicode & reserved character escape sequences. -->+        <RegExpr attribute="Escape" context="#stay" String="\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u\{[0-9a-fA-F]+\}|[\\0bfnrtv&quot;&apos;])"/>+        <!-- Invalid escapes. Octal escape sequences are not allowed. -->+        <RegExpr attribute="Error" context="#stay" String="\\[ux1-7]"/>+        <!-- Make any character literal. -->+        <RegExpr attribute="Literal Character Escape" context="#stay" String="\\."/>+        <LineContinue attribute="Escape" context="#stay"/>+      </context>       <!-- Expressions embedded in strings. -->       <context name="Embedding" attribute="Normal" lineEndContext="#stay">         <DetectChar attribute="Embedding" context="#pop" char="}"/>       </context>-      <!-- Embedded Javascript. -->-      <context name="Javascript" attribute="Javascript" lineEndContext="#stay" noIndentationBasedFolding="1">++      <!-- Embedded Javascript (one backtick). -->+      <context name="Javascript" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">         <DetectChar attribute="Javascript" context="#pop" char="`" endRegion="Javascript"/>-        <!-- NOTE: This hides errors where a backtick is embedded in a JS string. -->+        <!-- NOTE: This hides errors where a backtick is embedded in a JS string or a comment. -->+        <IncludeRules context="Overwrite Javascript"/>         <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>       </context>+      <!-- Allow template strings in JavaScript embedded code (with one backtick). -->+      <context name="Overwrite Javascript" attribute="Javascript" lineEndContext="#stay" noIndentationBasedFolding="1">+        <!-- JavaScript Template. -->+        <Detect2Chars attribute="JavaScript Template" context="Javascript Template" char="\" char1="`"/>+        <RegExpr attribute="Error" context="#stay" String="String\.raw(?=`)"/>+        <StringDetect attribute="JavaScript Template" context="Javascript RawTemplate" String="String.raw\`"/>+        <!-- Contexts of javascript.xml. -->+        <DetectChar attribute="JavaScript Symbol" context="JavaScript Object" char="{" beginRegion="Brace" />+      </context>+      <context name="JavaScript Object" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">+        <DetectChar context="#pop" char="`" lookAhead="true"/>+        <DetectChar attribute="JavaScript Symbol" context="#pop" char="}" endRegion="Brace"/>+        <IncludeRules context="Overwrite Javascript"/>+        <IncludeRules context="Object##JavaScript"/>+      </context>+      <context name="Javascript Template" attribute="JavaScript Template" lineEndContext="#stay" noIndentationBasedFolding="1">+        <RegExpr attribute="Escape" context="#stay" String="\\\\\\`"/>+        <Detect2Chars attribute="JavaScript Template" context="#pop" char="\" char1="`"/> <!-- End template. -->+        <DetectChar context="#pop" char="`" lookAhead="true"/>+        <Detect2Chars attribute="JavaScript Substitution" context="Javascript Substitution" char="$" char1="{"/>+        <IncludeRules context="Template##JavaScript"/>+        <RegExpr attribute="Error" context="#stay" String="([^\\\s](?=`)|\S(?=\s+`))"/>+      </context>+      <context name="Javascript RawTemplate" attribute="JavaScript Template" lineEndContext="#stay">+        <Detect2Chars attribute="JavaScript Template" context="#stay" char="\" char1="\"/>+        <Detect2Chars attribute="JavaScript Template" context="#pop" char="\" char1="`"/>+        <DetectChar context="#pop" char="`" lookAhead="true"/>+        <RegExpr attribute="Error" context="#stay" String="([^\\\s](?=`)|\S(?=\s+`))"/>+      </context>+      <context name="Javascript Substitution" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">+        <DetectChar attribute="Javascript" context="#pop" char="`" lookAhead="true"/>+        <DetectChar context="#pop" attribute="JavaScript Substitution" char="}"/>+        <IncludeRules context="Overwrite Javascript"/>+        <IncludeRules context="Substitution##JavaScript"/>+      </context>+      <!-- Embedded Javascript (triple backticks). -->+      <context name="Javascript Triple Backticks" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">+        <StringDetect attribute="Javascript" context="#pop" String="```" endRegion="Javascript TB"/>+        <DetectChar attribute="JavaScript Symbol" context="JavaScript-TB Object" char="{" beginRegion="Brace"/>+        <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>+      </context>+      <context name="JavaScript-TB Object" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">+        <StringDetect attribute="Javascript" context="#pop" String="```" lookAhead="true"/>+        <DetectChar attribute="JavaScript Symbol" context="#pop" char="}" endRegion="Brace"/>+        <DetectChar attribute="JavaScript Symbol" context="JavaScript-TB Object" char="{" beginRegion="Brace"/>+        <IncludeRules context="Object##JavaScript"/>+      </context>     </contexts>     <!-- Style mappings. -->     <itemDatas>@@ -250,17 +316,23 @@       <!-- Context-sensitive globals - not styled by default. -->       <itemData name="Browser Globals" defStyleNum="dsNormal" spellChecking="false"/>       <itemData name="Node.js Globals" defStyleNum="dsNormal" spellChecking="false"/>+      <itemData name="Escape" defStyleNum="dsSpecialChar" spellChecking="false" />+      <itemData name="Literal Character Escape" defStyleNum="dsChar" spellChecking="false" />+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>++      <itemData name="JavaScript Symbol" defStyleNum="dsOperator" spellChecking="false"/>+      <itemData name="JavaScript Template" defStyleNum="dsVerbatimString"/>+      <itemData name="JavaScript Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>     </itemDatas>   </highlighting>   <!-- Global settings. -->   <general>-    <indentation mode="python"/>     <folding indentationsensitive="1"/>     <comments>       <comment name="singleLine" start="#"/>       <comment name="multiLine" start="###" end="###" region="Comment"/>     </comments>-    <keywords casesensitive="1" additionalDeliminator="#'"/>+    <keywords casesensitive="1" additionalDeliminator="#'`"/>     <emptyLines>       <emptyLine regexpr="(?:\s+|\s*#.*)"/>     </emptyLines>
xml/cs.xml view
@@ -1,5 +1,5 @@ <!DOCTYPE language SYSTEM "language.dtd">-<language name="C#" version="3" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde">+<language name="C#" version="5" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde" indenter="cstyle" style="C++">   <highlighting>     <list name="keywords">       <item>abstract</item>@@ -94,21 +94,10 @@       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">         <keyword attribute="Keyword" context="#stay" String="keywords"/>         <keyword attribute="Data Type" context="#stay" String="types" />-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay" >-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <DetectChar attribute="String" context="String" char="&quot;"/>         <IncludeRules context="##Doxygen" />@@ -126,6 +115,19 @@         <RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />         <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>+      </context>+      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>+      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>       <context attribute="String" lineEndContext="#pop" name="String">         <LineContinue attribute="String" context="#pop"/>
xml/css.xml view
@@ -1,1053 +1,1732 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [-  <!-- http://www.w3.org/TR/CSS21/syndata.html#tokenization -->-  <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">-  <!ENTITY nmchar  "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">-]>--<!----Kate CSS syntax highlighting definition--Changelog:--- Version 4, by Guo Yunhe guoyunhebrave@gmail.com-- Remake for complex CSS syntax, avoid errors--- Version 2.13, by Guo Yunhe-- Add all W3C Work Draft properties--- Version 2.06, by Mte90:-- CSS3 tag--- Version 2.03, by Milian Wolff:-- Make it spelling aware--- Version 2.08, Joseph Wenninger:-- CSS3 media queries---->--<language name="CSS" version="6" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">--    <highlighting>-        <list name="properties">-            <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties -->-            <item>azimuth</item>-            <item>align-content</item>-            <item>align-items</item>-            <item>align-self</item>-            <item>alignment-baseline</item>-            <item>all</item>-            <item>animation-name</item>-            <item>animation-duration</item>-            <item>animation-iteration-count</item>-            <item>animation-direction</item>-            <item>animation-delay</item>-            <item>animation-play-state</item>-            <item>animation-fill-mode</item>-            <item>animation-timing-function</item>-            <item>backface-visibility</item>-            <item>background</item>-            <item>background-attachment</item>-            <item>background-blend-mode</item>-            <item>background-break</item>-            <item>background-clip</item>-            <item>background-color</item>-            <item>background-image</item>-            <item>background-origin</item>-            <item>background-position</item>-            <item>background-repeat</item>-            <item>background-size</item>-            <item>baseline-shift</item>-            <item>bookmark-label</item>-            <item>bookmark-level</item>-            <item>bookmark-level</item>-            <item>border</item>-            <item>border-bottom</item>-            <item>border-bottom-color</item>-            <item>border-bottom-image</item>-            <item>border-bottom-style</item>-            <item>border-bottom-width</item>-            <item>border-bottom-left-image</item>-            <item>border-bottom-left-radius</item>-            <item>border-bottom-right-image</item>-            <item>border-bottom-right-radius</item>-            <item>border-boundary</item>-            <item>border-collapse</item>-            <item>border-color</item>-            <item>border-corner-image</item>-            <item>border-image</item>-            <item>border-image-outset</item>-            <item>border-image-repeat</item>-            <item>border-image-slice</item>-            <item>border-image-source</item>-            <item>border-image-width</item>-            <item>border-left</item>-            <item>border-left-color</item>-            <item>border-left-image</item>-            <item>border-left-style</item>-            <item>border-left-width</item>-            <item>border-radius</item>-            <item>border-right</item>-            <item>border-right-color</item>-            <item>border-right-image</item>-            <item>border-right-style</item>-            <item>border-right-width</item>-            <item>border-spacing</item>-            <item>border-style</item>-            <item>border-top</item>-            <item>border-top-color</item>-            <item>border-top-image</item>-            <item>border-top-style</item>-            <item>border-top-width</item>-            <item>border-top-left-image</item>-            <item>border-top-left-radius</item>-            <item>border-top-right-image</item>-            <item>border-top-right-radius</item>-            <item>border-width</item>-            <item>bottom</item>-            <item>box-align</item>-            <item>box-decoration-break</item>-            <item>box-direction</item>-            <item>box-flex</item>-            <item>box-shadow</item>-            <item>box-sizing</item>-            <item>box-snap</item>-            <item>box-suppress</item>-            <item>break-after</item>-            <item>break-before</item>-            <item>break-inside</item>-            <item>caret-color</item>-            <item>caption-side</item>-            <item>chains</item>-            <item>clear</item>-            <item>clip</item>-            <item>clip-path</item>-            <item>clip-rule</item>-            <item>color</item>-            <item>color-interpolation-filters</item>-            <item>column-count</item>-            <item>column-fill</item>-            <item>column-gap</item>-            <item>column-rule</item>-            <item>column-rule-color</item>-            <item>column-rule-style</item>-            <item>column-rule-width</item>-            <item>column-span</item>-            <item>column-width</item>-            <item>columns</item>-            <item>content</item>-            <item>counter-increment</item>-            <item>counter-reset</item>-            <item>counter-set</item>-            <item>cue</item>-            <item>cue-after</item>-            <item>cue-before</item>-            <item>cursor</item>-            <item>direction</item>-            <item>display</item>-            <item>dominant-baseline</item>-            <item>elevation</item>-            <item>empty-cells</item>-            <item>filter</item>-            <item>flex</item>-            <item>flex-basis</item>-            <item>flex-direction</item>-            <item>flex-flow</item>-            <item>flex-grow</item>-            <item>flex-shrink</item>-            <item>flex-wrap</item>-            <item>float</item>-            <item>flood-color</item>-            <item>flood-opacity</item>-            <item>flow</item>-            <item>flow-from</item>-            <item>flow-into</item>-            <item>font</item>-            <item>font-family</item>-            <item>font-size</item>-            <item>font-size-adjust</item>-            <item>font-stretch</item>-            <item>font-style</item>-            <item>font-variant</item>-            <item>font-weight</item>-            <item>font-stretch</item>-            <item>font-feature-settings</item>-            <item>font-kerning</item>-            <item>font-language-override</item>-            <item>font-synthesis</item>-            <item>font-variant-alternates</item>-            <item>font-variant-caps</item>-            <item>font-variant-east-asian</item>-            <item>font-variant-ligatures</item>-            <item>font-variant-numeric</item>-            <item>font-variant-position</item>-            <item>footnote-display</item>-            <item>footnote-policy</item>-            <item>glyph-orientation-vertical</item>-            <item>grid</item>-            <item>grid-area</item>-            <item>grid-auto-columns</item>-            <item>grid-auto-flow</item>-            <item>grid-auto-rows</item>-            <item>grid-column</item>-            <item>grid-column-end</item>-            <item>grid-column-gap</item>-            <item>grid-column-start</item>-            <item>grid-gap</item>-            <item>grid-row</item>-            <item>grid-row-end</item>-            <item>grid-row-gap</item>-            <item>grid-row-start</item>-            <item>grid-template</item>-            <item>grid-template-areas</item>-            <item>grid-template-columns</item>-            <item>grid-template-rows</item>-            <item>hanging-punctuation</item>-            <item>height</item>-            <item>hyphens</item>-            <item>image-orientation</item>-            <item>image-rendering</item>-            <item>image-resolution</item>-            <item>initial-letter</item>-            <item>initial-letter-align</item>-            <item>initial-letter-wrap</item>-            <item>isolation</item>-            <item>justify-content</item>-            <item>justify-items</item>-            <item>justify-self</item>-            <item>left</item>-            <item>letter-spacing</item>-            <item>lighting-color</item>-            <item>linear-gradient</item>-            <item>line-grid</item>-            <item>line-height</item>-            <item>line-snap</item>-            <item>list-style</item>-            <item>list-style-image</item>-            <item>list-style-keyword</item>-            <item>list-style-position</item>-            <item>list-style-type</item>-            <item>margin</item>-            <item>margin-bottom</item>-            <item>margin-left</item>-            <item>margin-right</item>-            <item>margin-top</item>-            <item>marker-offset</item>-            <item>marker-side</item>-            <item>marquee-direction</item>-            <item>marquee-loop</item>-            <item>marquee-speed</item>-            <item>marquee-style</item>-            <item>mask</item>-            <item>mask-border</item>-            <item>mask-border-mode</item>-            <item>mask-border-outset</item>-            <item>mask-border-repeat</item>-            <item>mask-border-slice</item>-            <item>mask-border-source</item>-            <item>mask-border-width</item>-            <item>mask-clip</item>-            <item>mask-composite</item>-            <item>mask-image</item>-            <item>mask-mode</item>-            <item>mask-origin</item>-            <item>mask-position</item>-            <item>mask-repeat</item>-            <item>mask-size</item>-            <item>mask-type</item>-            <item>max-height</item>-            <item>max-lines</item>-            <item>max-width</item>-            <item>min-height</item>-            <item>min-width</item>-            <item>mix-blend-mode</item>-            <item>nav-down</item>-            <item>nav-left</item>-            <item>nav-right</item>-            <item>nav-up</item>-            <item>object-fit</item>-            <item>object-position</item>-            <item>offset-after</item>-            <item>offset-before</item>-            <item>offset-end</item>-            <item>offset-start</item>-            <item>opacity</item>-            <item>order</item>-            <item>orphans</item>-            <item>outline</item>-            <item>outline-color</item>-            <item>outline-offset</item>-            <item>outline-style</item>-            <item>outline-width</item>-            <item>overflow</item>-            <item>overflow-style</item>-            <item>overflow-wrap</item>-            <item>overflow-x</item>-            <item>overflow-y</item>-            <item>padding</item>-            <item>padding-bottom</item>-            <item>padding-left</item>-            <item>padding-right</item>-            <item>padding-top</item>-            <item>page</item>-            <item>page-break-after</item>-            <item>page-break-before</item>-            <item>page-break-inside</item>-            <item>pause</item>-            <item>pause-after</item>-            <item>pause-before</item>-            <item>perspective</item>-            <item>perspective-origin</item>-            <item>pitch</item>-            <item>pitch-range</item>-            <item>play-during</item>-            <item>pointer-events</item>-            <item>polar-anchor</item>-            <item>polar-angle</item>-            <item>polar-distance</item>-            <item>polar-origin</item>-            <item>position</item>-            <item>presentation-level</item>-            <item>quotes</item>-            <item>resize</item>-            <item>rest</item>-            <item>rest-after</item>-            <item>rest-before</item>-            <item>richness</item>-            <item>right</item>-            <item>rotation</item>-            <item>rotation-point</item>-            <item>ruby-align</item>-            <item>ruby-merge</item>-            <item>ruby-position</item>-            <item>running</item>-            <item>scroll-behavior</item>-            <item>scroll-snap-align</item>-            <item>scroll-snap-margin</item>-            <item>scroll-snap-margin-block</item>-            <item>scroll-snap-margin-block-end</item>-            <item>scroll-snap-margin-block-start</item>-            <item>scroll-snap-margin-bottom</item>-            <item>scroll-snap-margin-inline</item>-            <item>scroll-snap-margin-inline-end</item>-            <item>scroll-snap-margin-inline-start</item>-            <item>scroll-snap-margin-left</item>-            <item>scroll-snap-margin-right</item>-            <item>scroll-snap-margin-top</item>-            <item>scroll-snap-padding</item>-            <item>scroll-snap-padding-block</item>-            <item>scroll-snap-padding-block-end</item>-            <item>scroll-snap-padding-block-start</item>-            <item>scroll-snap-padding-bottom</item>-            <item>scroll-snap-padding-inline</item>-            <item>scroll-snap-padding-inline-end</item>-            <item>scroll-snap-padding-inline-start</item>-            <item>scroll-snap-padding-left</item>-            <item>scroll-snap-padding-right</item>-            <item>scroll-snap-padding-top</item>-            <item>scroll-snap-stop</item>-            <item>scroll-snap-type</item>-            <item>shape-image-threshold</item>-            <item>shape-inside</item>-            <item>shape-margin</item>-            <item>shape-outside</item>-            <item>size</item>-            <item>speak</item>-            <item>speak-as</item>-            <item>speak-header</item>-            <item>speak-numeral</item>-            <item>speak-punctuation</item>-            <item>speech-rate</item>-            <item>stress</item>-            <item>string-set</item>-            <item>tab-size</item>-            <item>table-layout</item>-            <item>text-align</item>-            <item>text-align-last</item>-            <item>text-combine-upright</item>-            <item>text-decoration</item>-            <item>text-decoration-color</item>-            <item>text-decoration-line</item>-            <item>text-decoration-skip</item>-            <item>text-decoration-style</item>-            <item>text-emphasis</item>-            <item>text-emphasis-color</item>-            <item>text-emphasis-position</item>-            <item>text-emphasis-style</item>-            <item>text-indent</item>-            <item>text-justify</item>-            <item>text-orientation</item>-            <item>text-overflow</item>-            <item>text-shadow</item>-            <item>text-transform</item>-            <item>text-underline-position</item>-            <item>text-wrap</item>-            <item>top</item>-            <item>transform</item>-            <item>transform-origin</item>-            <item>transform-style</item>-            <item>transition</item>-            <item>transition-delay</item>-            <item>transition-property</item>-            <item>transition-duration</item>-            <item>transition-timing-function</item>-            <item>unicode-bidi</item>-            <item>vertical-align</item>-            <item>visibility</item>-            <item>voice-balance</item>-            <item>voice-duration</item>-            <item>voice-family</item>-            <item>voice-pitch</item>-            <item>voice-range</item>-            <item>voice-rate</item>-            <item>voice-stress</item>-            <item>voice-volume</item>-            <item>volume</item>-            <item>white-space</item>-            <item>widows</item>-            <item>width</item>-            <item>will-change</item>-            <item>word-break</item>-            <item>word-spacing</item>-            <item>word-wrap</item>-            <item>wrap-flow</item>-            <item>wrap-through</item>-            <item>writing-mode</item>-            <item>z-index</item>--            <!-- Gecko rendering engine CSS property extensions -->-            <item>-moz-animation-name</item>-            <item>-moz-animation-duration</item>-            <item>-moz-animation-iteration</item>-            <item>-moz-animation-direction</item>-            <item>-moz-animation-delay</item>-            <item>-moz-animation-play-state</item>-            <item>-moz-animation-fill-mode</item>-            <item>-moz-background-size</item>-            <item>-moz-border-image</item>-            <item>-moz-border-bottom-colors</item>-            <item>-moz-border-left-colors</item>-            <item>-moz-border-radius</item>-            <item>-moz-border-radius-topleft</item>-            <item>-moz-border-radius-topright</item>-            <item>-moz-border-radius-bottomleft</item>-            <item>-moz-border-radius-bottomright</item>-            <item>-moz-border-right-colors</item>-            <item>-moz-border-top-colors</item>-            <item>-moz-box</item>-            <item>-moz-box-flex</item>-            <item>-moz-box-shadow</item>-            <item>-moz-box-sizing</item>-            <item>-moz-column-count</item>-            <item>-moz-column-gap</item>-            <item>-moz-hyphens</item>-            <item>-moz-linear-gradient</item>-            <item>-moz-opacity</item>-            <item>-moz-outline-style</item>-            <item>-moz-perspective</item>-            <item>-moz-radial-gradient</item>-            <item>-moz-resize</item>-            <item>-moz-transform</item>-            <item>-moz-transform-origin</item>-            <item>-moz-transform-style</item>-            <item>-moz-transition</item>-            <item>-moz-transition-property</item>-            <item>-moz-transition-duration</item>--            <!-- Opera rendering engine CSS property extensions -->-            <item>-o-background-size</item>-            <item>-o-linear-gradient</item>-            <item>-o-text-overflow</item>-            <item>-o-transition</item>-            <item>-o-transform-origin</item>--            <!-- konq specific -->-            <item>konq_bgpos_x</item>-            <item>konq_bgpos_y</item>-            <item>-khtml-background-size</item>-            <item>-khtml-border-top-left-radius</item>-            <item>-khtml-border-top-right-radius</item>-            <item>-khtml-border-bottom-left-radius</item>-            <item>-khtml-border-bottom-right-radius</item>-            <item>-khtml-border-radius</item>-            <item>-khtml-box-shadow</item>-            <item>-khtml-opacity</item>--            <!-- Webkit rendering engine CSS property extensions -->-            <item>-webkit-appearance</item>-            <item>-webkit-animation-name</item>-            <item>-webkit-animation-duration</item>-            <item>-webkit-animation-iteration</item>-            <item>-webkit-animation-direction</item>-            <item>-webkit-animation-delay</item>-            <item>-webkit-animation-play-state</item>-            <item>-webkit-animation-fill-mode</item>-            <item>-webkit-background-size</item>-            <item>-webkit-border-image</item>-            <item>-webkit-border-bottom-colors</item>-            <item>-webkit-border-left-colors</item>-            <item>-webkit-border-radius</item>-            <item>-webkit-border-right-colors</item>-            <item>-webkit-border-top-colors</item>-            <item>-webkit-border-top-left-radius</item>-            <item>-webkit-border-top-right-radius</item>-            <item>-webkit-border-bottom-left-radius</item>-            <item>-webkit-border-bottom-right-radius</item>-            <item>-webkit-border-radius-bottomleft</item>-            <item>-webkit-border-radius-bottomright</item>-            <item>-webkit-box-flex</item>-            <item>-webkit-box-reflect</item>-            <item>-webkit-box-shadow</item>-            <item>-webkit-box-sizing</item>-            <item>-webkit-column-count</item>-            <item>-webkit-column-gap</item>-            <item>-webkit-hyphens</item>-            <item>-webkit-linear-gradient</item>-            <item>-webkit-gradient</item>-            <item>-webkit-perspective</item>-            <item>-webkit-text-fill-color</item>-            <item>-webkit-text-stroke-color</item>-            <item>-webkit-text-stroke-width</item>-            <item>-webkit-text-size-adjust</item>-            <item>-webkit-transform</item>-            <item>-webkit-transform-origin</item>-            <item>-webkit-transform-style</item>-            <item>-webkit-transition</item>-            <item>-webkit-transition-property</item>-            <item>-webkit-transition-duration</item>--            <!-- Trident (a.k.a., MSHTML) CSS property extensions -->-            <item>zoom</item>-            <item>-ms-animation-name</item>-            <item>-ms-animation-duration</item>-            <item>-ms-animation-iteration</item>-            <item>-ms-animation-direction</item>-            <item>-ms-animation-delay</item>-            <item>-ms-animation-play-state</item>-            <item>-ms-animation-fill-mode</item>-            <item>-ms-box-sizing</item>-            <item>-ms-filter</item>-            <item>-ms-interpolation-mode</item>-            <item>-ms-linear-gradient</item>-            <item>-ms-text-size-adjust</item>-            <item>-ms-transform</item>-            <item>-ms-transition</item>--            <!-- font properties in @font-face -->-            <item>font-family</item>-            <item>font-size</item>-            <item>font-stretch</item>-            <item>font-style</item>-            <item>font-variant</item>-            <item>font-weight</item>-            <item>unicode-range</item>-            <item>units-per-em</item>-            <item>src</item>-            <item>panose-1</item>-            <item>stemv</item>-            <item>stemh</item>-            <item>slope</item>-            <item>cap-height</item>-            <item>x-height</item>-            <item>ascent</item>-            <item>descent</item>-            <item>widths</item>-            <item>bbox</item>-            <item>definition-src</item>-            <item>baseline</item>-            <item>centerline</item>-            <item>mathline</item>-            <item>topline</item>-        </list>--        <list name="values">-            <item>inherit</item>-            <item>none</item>-            <item>hidden</item>-            <item>dotted</item>-            <item>dashed</item>-            <item>solid</item>-            <item>double</item>-            <item>groove</item>-            <item>ridge</item>-            <item>inset</item>-            <item>outset</item>-            <item>xx-small</item>-            <item>x-small</item>-            <item>small</item>-            <item>medium</item>-            <item>large</item>-            <item>x-large</item>-            <item>xx-large</item>-            <item>smaller</item>-            <item>larger</item>-            <item>italic</item>-            <item>oblique</item>-            <item>small-caps</item>-            <item>normal</item>-            <item>bold</item>-            <item>bolder</item>-            <item>lighter</item>-            <item>light</item>-            <item>100</item>-            <item>200</item>-            <item>300</item>-            <item>400</item>-            <item>500</item>-            <item>600</item>-            <item>700</item>-            <item>800</item>-            <item>900</item>-            <item>transparent</item>-            <item>repeat</item>-            <item>repeat-x</item>-            <item>repeat-y</item>-            <item>no-repeat</item>-            <item>baseline</item>-            <item>sub</item>-            <item>super</item>-            <item>top</item>-            <item>text-top</item>-            <item>middle</item>-            <item>bottom</item>-            <item>text-bottom</item>-            <item>left</item>-            <item>right</item>-            <item>center</item>-            <item>justify</item>-            <item>konq-center</item>-            <item>disc</item>-            <item>circle</item>-            <item>square</item>-            <item>box</item>-            <item>decimal</item>-            <item>decimal-leading-zero</item>-            <item>lower-roman</item>-            <item>upper-roman</item>-            <item>lower-greek</item>-            <item>lower-alpha</item>-            <item>lower-latin</item>-            <item>upper-alpha</item>-            <item>upper-latin</item>-            <item>hebrew</item>-            <item>armenian</item>-            <item>georgian</item>-            <item>cjk-ideographic</item>-            <item>hiragana</item>-            <item>katakana</item>-            <item>hiragana-iroha</item>-            <item>katakana-iroha</item>-            <item>inline</item>-            <item>inline-block</item>-            <item>block</item>-            <item>list-item</item>-            <item>run-in</item>-            <item>compact</item>-            <item>marker</item>-            <item>table</item>-            <item>inline-table</item>-            <item>table-row-group</item>-            <item>table-header-group</item>-            <item>table-footer-group</item>-            <item>table-row</item>-            <item>table-column-group</item>-            <item>table-column</item>-            <item>table-cell</item>-            <item>table-caption</item>-            <item>auto</item>-            <item>crosshair</item>-            <item>default</item>-            <item>pointer</item>-            <item>move</item>-            <item>e-resize</item>-            <item>ne-resize</item>-            <item>nw-resize</item>-            <item>n-resize</item>-            <item>se-resize</item>-            <item>sw-resize</item>-            <item>s-resize</item>-            <item>w-resize</item>-            <item>text</item>-            <item>wait</item>-            <item>help</item>-            <item>above</item>-            <item>absolute</item>-            <item>always</item>-            <item>avoid</item>-            <item>below</item>-            <item>bidi-override</item>-            <item>blink</item>-            <item>both</item>-            <item>capitalize</item>-            <item>caption</item>-            <item>clip</item>-            <item>close-quote</item>-            <item>collapse</item>-            <item>condensed</item>-            <item>crop</item>-            <item>cross</item>-            <item>ellipsis</item>-            <item>ellipsis-word</item>-            <item>embed</item>-            <item>expanded</item>-            <item>extra-condensed</item>-            <item>extra-expanded</item>-            <item>fixed</item>-            <item>hand</item>-            <item>hide</item>-            <item>higher</item>-            <item>icon</item>-            <item>inside</item>-            <item>invert</item>-            <item>landscape</item>-            <item>level</item>-            <item>line-through</item>-            <item>loud</item>-            <item>lower</item>-            <item>lowercase</item>-            <item>ltr</item>-            <item>menu</item>-            <item>message-box</item>-            <item>mix</item>-            <item>narrower</item>-            <item>no-close-quote</item>-            <item>no-open-quote</item>-            <item>nowrap</item>-            <item>open-quote</item>-            <item>outside</item>-            <item>overline</item>-            <item>portrait</item>-            <item>pre</item>-            <item>pre-line</item>-            <item>pre-wrap</item>-            <item>relative</item>-            <item>rtl</item>-            <item>scroll</item>-            <item>semi-condensed</item>-            <item>semi-expanded</item>-            <item>separate</item>-            <item>show</item>-            <item>small-caption</item>-            <item>static</item>-            <item>static-position</item>-            <item>status-bar</item>-            <item>thick</item>-            <item>thin</item>-            <item>ultra-condensed</item>-            <item>ultra-expanded</item>-            <item>underline</item>-            <item>uppercase</item>-            <item>visible</item>-            <item>wider</item>-            <item>break</item>-            <item>serif</item>-            <item>sans-serif</item>-            <item>cursive</item>-            <item>fantasy</item>-            <item>monospace</item>-            <item>border-box</item>-            <item>content-box</item>-            <item>-epub-hyphens</item>-        </list>--        <list name="colors">-            <item>aqua</item>-            <item>black</item>-            <item>blue</item>-            <item>cyan</item>-            <item>fuchsia</item>-            <item>gray</item>-            <item>green</item>-            <item>lime</item>-            <item>maroon</item>-            <item>navy</item>-            <item>olive</item>-            <item>purple</item>-            <item>red</item>-            <item>silver</item>-            <item>teal</item>-            <item>white</item>-            <item>yellow</item>-            <item>ActiveBorder</item>-            <item>ActiveCaption</item>-            <item>AppWorkspace</item>-            <item>Background</item>-            <item>ButtonFace</item>-            <item>ButtonHighlight</item>-            <item>ButtonShadow</item>-            <item>ButtonText</item>-            <item>CaptionText</item>-            <item>GrayText</item>-            <item>Highlight</item>-            <item>HighlightText</item>-            <item>InactiveBorder</item>-            <item>InactiveCaption</item>-            <item>InactiveCaptionText</item>-            <item>InfoBackground</item>-            <item>InfoText</item>-            <item>Menu</item>-            <item>MenuText</item>-            <item>Scrollbar</item>-            <item>ThreeDDarkShadow</item>-            <item>ThreeDFace</item>-            <item>ThreeDHighlight</item>-            <item>ThreeDLightShadow</item>-            <item>ThreeDShadow</item>-            <item>Window</item>-            <item>WindowFrame</item>-            <item>WindowText</item>-        </list>--        <list name="functions">-            <item>url</item>-            <item>attr</item>-            <item>rect</item>-            <item>rgb</item>-            <item>rgba</item>-            <item>hsl</item>-            <item>hsla</item>-            <item>counter</item>-            <item>counters</item>--            <!-- in @font-face -->-            <item>local</item>-            <item>format</item>--            <!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions -->-            <item>expression</item>--        </list>--        <list name="mediatypes">-            <item>all</item>-            <item>aural</item>-            <item>braille</item>-            <item>embossed</item>-            <item>handheld</item>-            <item>print</item>-            <item>projection</item>-            <item>screen</item>-            <item>speech</item>-            <item>tty</item>-            <item>tv</item>-        </list>--        <list name="media_features">-            <item>width</item>-            <item>min-width</item>-            <item>max-width</item>-            <item>height</item>-            <item>min-height</item>-            <item>max-height</item>-            <item>device-width</item>-            <item>min-device-width</item>-            <item>max-device-width</item>-            <item>device-height</item>-            <item>min-device-height</item>-            <item>max-device-height</item>-            <item>orientation</item>-            <item>aspect-ratio</item>-            <item>min-aspect-ratio</item>-            <item>max-aspect-ratio</item>-            <item>device-aspect-ratio</item>-            <item>min-device-aspect-ratio</item>-            <item>max-device-aspect-ratio</item>-            <item>color</item>-            <item>min-color</item>-            <item>max-color</item>-            <item>color-index</item>-            <item>min-color-index</item>-            <item>max-color-index</item>-            <item>monochrome</item>-            <item>min-monochrome</item>-            <item>max-monochrome</item>-            <item>resolution</item>-            <item>min-resolution</item>-            <item>max-resolution</item>-            <item>scan</item>-            <item>grid</item>-        </list>--        <list name="pseudoclasses">-            <item>hover</item>-            <item>link</item>-            <item>visited</item>-            <item>active</item>-            <item>focus</item>-            <item>first-child</item>-            <item>last-child</item>-            <item>only-child</item>-            <item>first-of-type</item>-            <item>last-of-type</item>-            <item>only-of-type</item>-            <item>first-letter</item>-            <item>first-line</item>-            <item>before</item>-            <item>after</item>-            <item>selection</item>-            <item>root</item>-            <item>empty</item>-            <item>target</item>-            <item>enabled</item>-            <item>disabled</item>-            <item>checked</item>-            <item>indeterminate</item>-            <item>nth-child</item>-            <item>nth-last-child</item>-            <item>nth-of-type</item>-            <item>nth-last-of-type</item>-            <item>not</item>-        </list>--        <contexts>-            <context name="Base" attribute="Normal Text" lineEndContext="#stay">-                <IncludeRules context="FindComments" />-                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />-                <RegExpr attribute="At Rule" context="AtRule" String="@[a-zA-Z0-1-]+\b" />-                <IncludeRules context="FindSelectors" />-            </context>--            <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->-            <context name="FindSelectors" attribute="Normal Text" lineEndContext="#stay">-                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />-                <RegExpr attribute="Selector Id" context="#stay" String="#(-)?(&nmstart;)(&nmchar;)*" />-                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />-                <RegExpr attribute="Selector Pseudo" context="#stay" String=":lang\([\w_-]+\)" />-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />-            </context>--            <!-- find functions // rgba(255,255,255,0.75) -->-            <context name="FindFunctions" attribute="Normal Text" lineEndContext="#stay">-                <RegExpr attribute="Function" context="Function" String="[a-z\-]+\(" lookAhead="true" />-            </context>--            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->-            <context name="FindValues" attribute="Normal Text" lineEndContext="#stay">-                <RegExpr attribute="Annotation" context="#stay" String="!important\b" />-                <keyword attribute="Value" context="#stay" String="values" />-                <keyword attribute="Value" context="#stay" String="colors" />-                <RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" />-                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\b" />-                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+[%]?" />-                <RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" />-            </context>--            <!-- find strings // "some words" 'some words' -->-            <context name="FindStrings" attribute="Normal Text" lineEndContext="#stay">-                <DetectChar attribute="String" context="StringDQ" char="&quot;" />-                <DetectChar attribute="String" context="StringSQ" char="'" />-            </context>--            <!-- find comments // /* comment */ -->-            <context name="FindComments" attribute="Normal Text" lineEndContext="#stay">-                <RegExpr attribute="Region Marker" context="#stay" String="/\*BEGIN.*\*/" beginRegion="UserDefined" />-                <RegExpr attribute="Region Marker" context="#stay" String="/\*END.*\*/" endRegion="UserDefined" />-                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />-            </context>--            <context name="AtRule" attribute="Normal Text" lineEndContext="#pop">-                <IncludeRules context="FindComments" />-                <IncludeRules context="FindStrings" />-                <keyword attribute="Value" context="#stay" String="mediatypes" />-                <keyword attribute="Property" context="#stay" String="media_features" />-                <AnyChar attribute="Normal Text" context="#pop" String=";{" lookAhead="true" />-                <IncludeRules context="FindValues" />-            </context>--            <context name="SelectorAttr" attribute="Selector Attribute" lineEndContext="#stay">-                <DetectChar attribute="Selector Attribute" context="#pop" char="]" />-                <IncludeRules context="FindStrings" />-            </context>--            <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop"-                     fallthrough="true" fallthroughContext="#pop">-                <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" />-            </context>--            <context name="Comment" attribute="Comment" lineEndContext="#stay">-                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment" />-                <IncludeRules context="##Alerts" />-            </context>--            <context name="RuleSet" attribute="Normal Text" lineEndContext="#stay">-                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />-                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />-                <RegExpr attribute="Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" lookAhead="true" />-                <IncludeRules context="Base" />-            </context>--            <context name="Rule" attribute="Normal Text" lineEndContext="#stay">-                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />-                <keyword attribute="Property" context="#stay" String="properties" />-                <RegExpr attribute="Unknown Property" context="#stay" String="-?[A-Za-z_-]+(?=\s*:)" />-                <RegExpr attribute="Error" context="#stay" String="\S" />-            </context>--            <context name="RuleParameters" attribute="Normal Text" lineEndContext="#stay">-                <IncludeRules context="FindComments" />-                <IncludeRules context="FindStrings" />-                <IncludeRules context="FindFunctions" />-                <IncludeRules context="FindValues" />-                <!-- Jump out conditions -->-                <DetectChar attribute="Normal Text" context="#pop#pop" char=";" />-                <DetectChar attribute="Normal Text" context="#pop#pop#pop" char="}" endRegion="ruleset" />-            </context>--            <context name="Function" attribute="Normal Text" lineEndContext="#stay">-                <DetectChar attribute="Normal Text" context="FunctionParameters" char="(" />-                <keyword attribute="Function" context="#stay" String="functions" />-            </context>--            <context name="FunctionParameters" attribute="Normal Text" lineEndContext="#stay">-                <IncludeRules context="FindComments" />-                <IncludeRules context="FindStrings" />-                <IncludeRules context="FindValues" />-                <!-- Jump out conditions -->-                <DetectChar attribute="Normal Text" context="#pop#pop" char=")" />-            </context>--            <!-- string contexts -->-            <context name="StringDQ" attribute="String" lineEndContext="#stay">-                <DetectChar attribute="String" context="#pop" char="&quot;" />-                <IncludeRules context="InsideString" />-            </context>--            <context name="StringSQ" attribute="String" lineEndContext="#stay">-                <DetectChar attribute="String" context="#pop" char="'" />-                <IncludeRules context="InsideString" />-            </context>--            <context name="InsideString" attribute="String" lineEndContext="#stay">-                <RegExpr attribute="String" context="#stay" String="\\[&quot;']" />-                <DetectIdentifier/>-            </context>--        </contexts>--        <itemDatas>-            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>-            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>-            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>-            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>-            <itemData name="String" defStyleNum="dsString"/>-            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>-            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>-            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>-            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>-            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>-            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>-            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>-            <itemData name="Comment" defStyleNum="dsComment" />-            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>-            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>-        </itemDatas>-    </highlighting>--    <general>-        <keywords casesensitive="0" weakDeliminator="-%"/>+  <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->+  <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">+  <!ENTITY nmchar  "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">+]>++<!--++Kate CSS syntax highlighting definition++Changelog:++- Version 8, by Jonathan Poelen+- fix some Operator and Selector Tag highlighting++- Version 7, by Jonathan Poelen+- fix tag followed by a pseudo-class in a nested rule (@media, ...)+- fix constraint in a rule+- fix Kate auto-completion for properties and rules+- New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Variable, Value Keyword, Color, Number, Unit, Selector Tag++- Version 4, by Guo Yunhe guoyunhebrave@gmail.com+- Remake for complex CSS syntax, avoid errors++- Version 2.13, by Guo Yunhe+- Add all W3C Work Draft properties++- Version 2.06, by Mte90:+- CSS3 tag++- Version 2.03, by Milian Wolff:+- Make it spelling aware++- Version 2.08, Joseph Wenninger:+- CSS3 media queries++-->++<language name="CSS" version="8" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">++    <highlighting>+        <list name="properties">+            <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties -->+            <item>align-content</item>+            <item>align-items</item>+            <item>alignment-baseline</item>+            <item>align-self</item>+            <item>all</item>+            <item>animation</item>+            <item>animation-delay</item>+            <item>animation-direction</item>+            <item>animation-duration</item>+            <item>animation-fill-mode</item>+            <item>animation-iteration-count</item>+            <item>animation-name</item>+            <item>animation-play-state</item>+            <item>animation-timing-function</item>+            <item>appearance</item>+            <item>azimuth</item>+            <item>backface-visibility</item>+            <item>background</item>+            <item>background-attachment</item>+            <item>background-blend-mode</item>+            <item>background-clip</item>+            <item>background-color</item>+            <item>background-image</item>+            <item>background-image-transform</item>+            <item>background-origin</item>+            <item>background-position</item>+            <item>background-repeat</item>+            <item>background-size</item>+            <item>baseline-shift</item>+            <item>block-size</item>+            <item>block-step</item>+            <item>block-step-align</item>+            <item>block-step-insert</item>+            <item>block-step-round</item>+            <item>block-step-size</item>+            <item>bookmark-label</item>+            <item>bookmark-level</item>+            <item>bookmark-state</item>+            <item>border</item>+            <item>border-block</item>+            <item>border-block-color</item>+            <item>border-block-end</item>+            <item>border-block-end-color</item>+            <item>border-block-end-style</item>+            <item>border-block-end-width</item>+            <item>border-block-start</item>+            <item>border-block-start-color</item>+            <item>border-block-start-style</item>+            <item>border-block-start-width</item>+            <item>border-block-style</item>+            <item>border-block-width</item>+            <item>border-bottom</item>+            <item>border-bottom-color</item>+            <item>border-bottom-left-radius</item>+            <item>border-bottom-right-radius</item>+            <item>border-bottom-style</item>+            <item>border-bottom-width</item>+            <item>border-boundary</item>+            <item>border-collapse</item>+            <item>border-color</item>+            <item>border-image</item>+            <item>border-image-outset</item>+            <item>border-image-repeat</item>+            <item>border-image-slice</item>+            <item>border-image-source</item>+            <item>border-image-transform</item>+            <item>border-image-width</item>+            <item>border-inline</item>+            <item>border-inline-color</item>+            <item>border-inline-end</item>+            <item>border-inline-end-color</item>+            <item>border-inline-end-style</item>+            <item>border-inline-end-width</item>+            <item>border-inline-start</item>+            <item>border-inline-start-color</item>+            <item>border-inline-start-style</item>+            <item>border-inline-start-width</item>+            <item>border-inline-style</item>+            <item>border-inline-width</item>+            <item>border-left</item>+            <item>border-left-color</item>+            <item>border-left-style</item>+            <item>border-left-width</item>+            <item>border-radius</item>+            <item>border-right</item>+            <item>border-right-color</item>+            <item>border-right-style</item>+            <item>border-right-width</item>+            <item>border-spacing</item>+            <item>border-style</item>+            <item>border-top</item>+            <item>border-top-color</item>+            <item>border-top-left-radius</item>+            <item>border-top-right-radius</item>+            <item>border-top-style</item>+            <item>border-top-width</item>+            <item>border-width</item>+            <item>bottom</item>+            <item>box-decoration-break</item>+            <item>box-shadow</item>+            <item>box-sizing</item>+            <item>box-snap</item>+            <item>break-after</item>+            <item>break-before</item>+            <item>break-inside</item>+            <item>caption-side</item>+            <item>caret</item>+            <item>caret-color</item>+            <item>caret-shape</item>+            <item>clear</item>+            <item>clip</item>+            <item>clip-path</item>+            <item>clip-rule</item>+            <item>color</item>+            <item>color-adjust</item>+            <item>color-interpolation-filters</item>+            <item>columns</item>+            <item>column-count</item>+            <item>column-fill</item>+            <item>column-gap</item>+            <item>column-rule</item>+            <item>column-rule-color</item>+            <item>column-rule-style</item>+            <item>column-rule-width</item>+            <item>column-span</item>+            <item>column-width</item>+            <item>contain</item>+            <item>content</item>+            <item>continue</item>+            <item>counter-increment</item>+            <item>counter-reset</item>+            <item>counter-set</item>+            <item>cue</item>+            <item>cue-after</item>+            <item>cue-before</item>+            <item>cursor</item>+            <item>direction</item>+            <item>display</item>+            <item>dominant-baseline</item>+            <item>elevation</item>+            <item>empty-cells</item>+            <item>fill</item>+            <item>fill-break</item>+            <item>fill-color</item>+            <item>fill-image</item>+            <item>fill-opacity</item>+            <item>fill-origin</item>+            <item>fill-position</item>+            <item>fill-repeat</item>+            <item>fill-rule</item>+            <item>fill-size</item>+            <item>filter</item>+            <item>flex</item>+            <item>flex-basis</item>+            <item>flex-direction</item>+            <item>flex-flow</item>+            <item>flex-grow</item>+            <item>flex-shrink</item>+            <item>flex-wrap</item>+            <item>float</item>+            <item>float-defer</item>+            <item>float-offset</item>+            <item>float-reference</item>+            <item>flood-color</item>+            <item>flood-opacity</item>+            <item>flow-from</item>+            <item>flow-into</item>+            <item>font</item>+            <item>font-family</item>+            <item>font-feature-settings</item>+            <item>font-kerning</item>+            <item>font-language-override</item>+            <item>font-max-size</item>+            <item>font-min-size</item>+            <item>font-optical-sizing</item>+            <item>font-palette</item>+            <item>font-size</item>+            <item>font-size-adjust</item>+            <item>font-stretch</item>+            <item>font-style</item>+            <item>font-synthesis</item>+            <item>font-variant</item>+            <item>font-variant-alternates</item>+            <item>font-variant-caps</item>+            <item>font-variant-east-asian</item>+            <item>font-variant-emoji</item>+            <item>font-variant-ligatures</item>+            <item>font-variant-numeric</item>+            <item>font-variant-position</item>+            <item>font-variation-settings</item>+            <item>font-weight</item>+            <item>footnote-display</item>+            <item>footnote-policy</item>+            <item>gap</item>+            <item>glyph-orientation-vertical</item>+            <item>grid</item>+            <item>grid-area</item>+            <item>grid-auto-columns</item>+            <item>grid-auto-flow</item>+            <item>grid-auto-rows</item>+            <item>grid-column</item>+            <item>grid-column-end</item>+            <item>grid-column-gap</item>+            <item>grid-column-start</item>+            <item>grid-gap</item>+            <item>grid-row</item>+            <item>grid-row-end</item>+            <item>grid-row-gap</item>+            <item>grid-row-start</item>+            <item>grid-template</item>+            <item>grid-template-areas</item>+            <item>grid-template-columns</item>+            <item>grid-template-rows</item>+            <item>hanging-punctuation</item>+            <item>height</item>+            <item>hyphenate-character</item>+            <item>hyphenate-limit-chars</item>+            <item>hyphenate-limit-last</item>+            <item>hyphenate-limit-lines</item>+            <item>hyphenate-limit-zone</item>+            <item>hyphens</item>+            <item>image-orientation</item>+            <item>image-rendering</item>+            <item>image-resolution</item>+            <item>initial-letter</item>+            <item>initial-letter-align</item>+            <item>initial-letter-wrap</item>+            <item>inline-size</item>+            <item>inset</item>+            <item>inset-block</item>+            <item>inset-block-end</item>+            <item>inset-block-start</item>+            <item>inset-inline</item>+            <item>inset-inline-end</item>+            <item>inset-inline-start</item>+            <item>isolation</item>+            <item>justify-content</item>+            <item>justify-items</item>+            <item>justify-self</item>+            <item>left</item>+            <item>letter-spacing</item>+            <item>lighting-color</item>+            <item>line-break</item>+            <item>line-grid</item>+            <item>line-height</item>+            <item>line-height-step</item>+            <item>line-snap</item>+            <item>list-style</item>+            <item>list-style-image</item>+            <item>list-style-position</item>+            <item>list-style-type</item>+            <item>margin</item>+            <item>margin-block</item>+            <item>margin-block-end</item>+            <item>margin-block-start</item>+            <item>margin-bottom</item>+            <item>margin-inline</item>+            <item>margin-inline-end</item>+            <item>margin-inline-start</item>+            <item>margin-left</item>+            <item>margin-right</item>+            <item>margin-top</item>+            <item>marker</item>+            <item>marker-end</item>+            <item>marker-knockout-left</item>+            <item>marker-knockout-right</item>+            <item>marker-mid</item>+            <item>marker-pattern</item>+            <item>marker-segment</item>+            <item>marker-side</item>+            <item>marker-start</item>+            <item>marquee-direction</item>+            <item>marquee-loop</item>+            <item>marquee-speed</item>+            <item>marquee-style</item>+            <item>mask</item>+            <item>mask-border</item>+            <item>mask-border-mode</item>+            <item>mask-border-outset</item>+            <item>mask-border-repeat</item>+            <item>mask-border-slice</item>+            <item>mask-border-source</item>+            <item>mask-border-width</item>+            <item>mask-clip</item>+            <item>mask-composite</item>+            <item>mask-image</item>+            <item>mask-mode</item>+            <item>mask-origin</item>+            <item>mask-position</item>+            <item>mask-repeat</item>+            <item>mask-size</item>+            <item>mask-type</item>+            <item>max-block-size</item>+            <item>max-height</item>+            <item>max-inline-size</item>+            <item>max-lines</item>+            <item>max-width</item>+            <item>min-block-size</item>+            <item>min-height</item>+            <item>min-inline-size</item>+            <item>min-width</item>+            <item>mix-blend-mode</item>+            <item>nav-up</item>+            <item>nav-down</item>+            <item>nav-left</item>+            <item>nav-right</item>+            <item>object-fit</item>+            <item>object-position</item>+            <item>offset</item>+            <item>offset-after</item>+            <item>offset-anchor</item>+            <item>offset-before</item>+            <item>offset-distance</item>+            <item>offset-end</item>+            <item>offset-path</item>+            <item>offset-position</item>+            <item>offset-rotate</item>+            <item>offset-start</item>+            <item>opacity</item>+            <item>order</item>+            <item>orphans</item>+            <item>outline</item>+            <item>outline-color</item>+            <item>outline-offset</item>+            <item>outline-style</item>+            <item>outline-width</item>+            <item>overflow</item>+            <item>overflow-style</item>+            <item>overflow-wrap</item>+            <item>overflow-x</item>+            <item>overflow-y</item>+            <item>padding</item>+            <item>padding-block</item>+            <item>padding-block-end</item>+            <item>padding-block-start</item>+            <item>padding-bottom</item>+            <item>padding-inline</item>+            <item>padding-inline-end</item>+            <item>padding-inline-start</item>+            <item>padding-left</item>+            <item>padding-right</item>+            <item>padding-top</item>+            <item>page</item>+            <item>page-break-after</item>+            <item>page-break-before</item>+            <item>page-break-inside</item>+            <item>pause</item>+            <item>pause-after</item>+            <item>pause-before</item>+            <item>perspective</item>+            <item>perspective-origin</item>+            <item>pitch</item>+            <item>pitch-range</item>+            <item>place-content</item>+            <item>place-items</item>+            <item>place-self</item>+            <item>play-during</item>+            <item>pointer-events</item>+            <item>position</item>+            <item>quotes</item>+            <item>region-fragment</item>+            <item>resize</item>+            <item>richness</item>+            <item>right</item>+            <item>rotation</item>+            <item>rotation-point</item>+            <item>row-gap</item>+            <item>ruby-align</item>+            <item>ruby-merge</item>+            <item>ruby-position</item>+            <item>running</item>+            <item>scrollbar-gutter</item>+            <item>shape-image-threshold</item>+            <item>shape-inside</item>+            <item>shape-margin</item>+            <item>shape-outside</item>+            <item>size</item>+            <item>speak</item>+            <item>speak-header</item>+            <item>speak-numeral</item>+            <item>speak-punctuation</item>+            <item>speech-rate</item>+            <item>stress</item>+            <item>string-set</item>+            <item>table-layout</item>+            <item>tab-size</item>+            <item>text-align-all</item>+            <item>text-align</item>+            <item>text-align-last</item>+            <item>text-combine-upright</item>+            <item>text-decoration-color</item>+            <item>text-decoration</item>+            <item>text-decoration-line</item>+            <item>text-decoration-skip</item>+            <item>text-decoration-skip-ink</item>+            <item>text-decoration-style</item>+            <item>text-decoration-width</item>+            <item>text-emphasis</item>+            <item>text-emphasis-color</item>+            <item>text-emphasis-position</item>+            <item>text-emphasis-skip</item>+            <item>text-emphasis-style</item>+            <item>text-indent</item>+            <item>text-justify</item>+            <item>text-orientation</item>+            <item>text-overflow</item>+            <item>text-shadow</item>+            <item>text-space-collapse</item>+            <item>text-space-trim</item>+            <item>text-spacing</item>+            <item>text-transform</item>+            <item>text-underline-offset</item>+            <item>text-underline-position</item>+            <item>text-wrap</item>+            <item>top</item>+            <item>transform</item>+            <item>transform-box</item>+            <item>transform-origin</item>+            <item>transform-style</item>+            <item>transition</item>+            <item>transition-delay</item>+            <item>transition-duration</item>+            <item>transition-property</item>+            <item>transition-timing-function</item>+            <item>unicode-bidi</item>+            <item>user-select</item>+            <item>vertical-align</item>+            <item>visibility</item>+            <item>voice-family</item>+            <item>volume</item>+            <item>white-space</item>+            <item>widows</item>+            <item>width</item>+            <item>will-change</item>+            <item>word-break</item>+            <item>word-spacing</item>+            <item>word-wrap</item>+            <item>wrap-after</item>+            <item>wrap-before</item>+            <item>wrap-flow</item>+            <item>wrap-inside</item>+            <item>wrap-through</item>+            <item>writing-mode</item>+            <item>z-index</item>++            <!-- Gecko rendering engine CSS property extensions -->+            <item>-moz-animation</item>+            <item>-moz-animation-delay</item>+            <item>-moz-animation-direction</item>+            <item>-moz-animation-duration</item>+            <item>-moz-animation-fill-mode</item>+            <item>-moz-animation-iteration-count</item>+            <item>-moz-animation-name</item>+            <item>-moz-animation-play-state</item>+            <item>-moz-animation-timing-function</item>+            <item>-moz-appearance</item>+            <item>-moz-background-clip</item>+            <item>-moz-background-origin</item>+            <item>-moz-background-size</item>+            <item>-moz-border-image</item>+            <item>-moz-border-radius</item>+            <item>-moz-border-radius-bottomleft</item>+            <item>-moz-border-radius-bottomright</item>+            <item>-moz-border-radius-topleft</item>+            <item>-moz-border-radius-topright</item>+            <item>-moz-box-align</item>+            <item>-moz-box-direction</item>+            <item>-moz-box-flex</item>+            <item>-moz-box-flex-group</item>+            <item>-moz-box-ordinal-group</item>+            <item>-moz-box-orient</item>+            <item>-moz-box-pack</item>+            <item>-moz-box-shadow</item>+            <item>-moz-box-sizing</item>+            <item>-moz-box</item>+            <item>-moz-column-count</item>+            <item>-moz-column-fill</item>+            <item>-moz-column-gap</item>+            <item>-moz-column-rule</item>+            <item>-moz-column-rule-color</item>+            <item>-moz-column-rule-style</item>+            <item>-moz-column-rule-width</item>+            <item>-moz-columns</item>+            <item>-moz-column-width</item>+            <item>-moz-hyphens</item>+            <item>-moz-opacity</item>+            <item>-moz-outline-style</item>+            <item>-moz-perspective</item>+            <item>-moz-resize</item>+            <item>-moz-text-align-last</item>+            <item>-moz-text-decoration-color</item>+            <item>-moz-text-decoration-line</item>+            <item>-moz-text-decoration-style</item>+            <item>-moz-transform</item>+            <item>-moz-transform-origin</item>+            <item>-moz-transform-style</item>+            <item>-moz-transition</item>+            <item>-moz-transition-delay</item>+            <item>-moz-transition-duration</item>+            <item>-moz-transition-property</item>+            <item>-moz-transition-timing-function</item>+            <item>-moz-user-select</item>++            <!-- Opera rendering engine CSS property extensions -->+            <item>-o-background-size</item>+            <item>-o-linear-gradient</item>+            <item>-o-text-overflow</item>+            <item>-o-transition</item>+            <item>-o-transform-origin</item>++            <!-- konq specific -->+            <item>konq_bgpos_x</item>+            <item>konq_bgpos_y</item>+            <item>-khtml-background-size</item>+            <item>-khtml-border-top-left-radius</item>+            <item>-khtml-border-top-right-radius</item>+            <item>-khtml-border-bottom-left-radius</item>+            <item>-khtml-border-bottom-right-radius</item>+            <item>-khtml-border-radius</item>+            <item>-khtml-box-shadow</item>+            <item>-khtml-opacity</item>++            <!-- Webkit rendering engine CSS property extensions -->+            <item>-webkit-appearance</item>+            <item>-webkit-animation</item>+            <item>-webkit-animation-name</item>+            <item>-webkit-animation-duration</item>+            <item>-webkit-animation-iteration</item>+            <item>-webkit-animation-direction</item>+            <item>-webkit-animation-delay</item>+            <item>-webkit-animation-play-state</item>+            <item>-webkit-animation-fill-mode</item>+            <item>-webkit-background-size</item>+            <item>-webkit-backface-visibility</item>+            <item>-webkit-border-image</item>+            <item>-webkit-border-bottom-colors</item>+            <item>-webkit-border-left-colors</item>+            <item>-webkit-border-radius</item>+            <item>-webkit-border-right-colors</item>+            <item>-webkit-border-top-colors</item>+            <item>-webkit-border-top-left-radius</item>+            <item>-webkit-border-top-right-radius</item>+            <item>-webkit-border-bottom-left-radius</item>+            <item>-webkit-border-bottom-right-radius</item>+            <item>-webkit-border-radius-bottomleft</item>+            <item>-webkit-border-radius-bottomright</item>+            <item>-webkit-box-align</item>+            <item>-webkit-box-direction</item>+            <item>-webkit-box-flex</item>+            <item>-webkit-box-ordinal-group</item>+            <item>-webkit-box-orient</item>+            <item>-webkit-box-pack</item>+            <item>-webkit-box-reflect</item>+            <item>-webkit-box-shadow</item>+            <item>-webkit-box-sizing</item>+            <item>-webkit-column-count</item>+            <item>-webkit-column-gap</item>+            <item>-webkit-hyphens</item>+            <item>-webkit-linear-gradient</item>+            <item>-webkit-gradient</item>+            <item>-webkit-overflow-scrolling</item>+            <item>-webkit-perspective</item>+            <item>-webkit-text-decoration</item>+            <item>-webkit-text-decoration-skip</item>+            <item>-webkit-text-fill-color</item>+            <item>-webkit-text-stroke-color</item>+            <item>-webkit-text-stroke-width</item>+            <item>-webkit-text-size-adjust</item>+            <item>-webkit-tap-highlight-color</item>+            <item>-webkit-transform</item>+            <item>-webkit-transform-origin</item>+            <item>-webkit-transform-style</item>+            <item>-webkit-transition</item>+            <item>-webkit-transition-property</item>+            <item>-webkit-transition-delay</item>+            <item>-webkit-transition-duration</item>+            <item>-webkit-user-select</item>++            <!-- Trident (a.k.a., MSHTML) CSS property extensions -->+            <item>zoom</item>+            <item>-ms-animation-name</item>+            <item>-ms-animation-duration</item>+            <item>-ms-animation-iteration</item>+            <item>-ms-animation-direction</item>+            <item>-ms-animation-delay</item>+            <item>-ms-animation-play-state</item>+            <item>-ms-animation-fill-mode</item>+            <item>-ms-box-sizing</item>+            <item>-ms-filter</item>+            <item>-ms-flex</item>+            <item>-ms-flex-align</item>+            <item>-ms-flex-direction</item>+            <item>-ms-flex-flow</item>+            <item>-ms-flex-item-align</item>+            <item>-ms-flex-line-pack</item>+            <item>-ms-flex-negative</item>+            <item>-ms-flex-order</item>+            <item>-ms-flex-pack</item>+            <item>-ms-flex-positive</item>+            <item>-ms-flex-position</item>+            <item>-ms-flex-preferred-size</item>+            <item>-ms-flex-wrap</item>+            <item>-ms-interpolation-mode</item>+            <item>-ms-linear-gradient</item>+            <item>-ms-overflow-style</item>+            <item>-ms-text-size-adjust</item>+            <item>-ms-transform</item>+            <item>-ms-transition</item>+            <item>-ms-user-select</item>+        </list>++        <list name="value keywords">+            <item>inherit</item>+            <item>unset</item>+            <item>auto</item>+            <!-- <item>revert</item> -->+        </list>++        <list name="values">+            <item>none</item>+            <item>hidden</item>+            <item>dotted</item>+            <item>dashed</item>+            <item>solid</item>+            <item>double</item>+            <item>groove</item>+            <item>ridge</item>+            <item>inset</item>+            <item>outset</item>+            <item>xx-small</item>+            <item>x-small</item>+            <item>small</item>+            <item>medium</item>+            <item>large</item>+            <item>x-large</item>+            <item>xx-large</item>+            <item>smaller</item>+            <item>larger</item>+            <item>italic</item>+            <item>oblique</item>+            <item>small-caps</item>+            <item>normal</item>+            <item>bold</item>+            <item>bolder</item>+            <item>lighter</item>+            <item>light</item>+            <item>transparent</item>+            <item>repeat</item>+            <item>repeat-x</item>+            <item>repeat-y</item>+            <item>no-repeat</item>+            <item>baseline</item>+            <item>sub</item>+            <item>super</item>+            <item>top</item>+            <item>text-top</item>+            <item>middle</item>+            <item>bottom</item>+            <item>text-bottom</item>+            <item>left</item>+            <item>right</item>+            <item>center</item>+            <item>justify</item>+            <item>konq-center</item>+            <item>disc</item>+            <item>circle</item>+            <item>square</item>+            <item>box</item>+            <item>decimal</item>+            <item>decimal-leading-zero</item>+            <item>lower-roman</item>+            <item>upper-roman</item>+            <item>lower-greek</item>+            <item>lower-alpha</item>+            <item>lower-latin</item>+            <item>upper-alpha</item>+            <item>upper-latin</item>+            <item>hebrew</item>+            <item>armenian</item>+            <item>georgian</item>+            <item>cjk-ideographic</item>+            <item>hiragana</item>+            <item>katakana</item>+            <item>hiragana-iroha</item>+            <item>katakana-iroha</item>+            <item>inline</item>+            <item>inline-block</item>+            <item>block</item>+            <item>list-item</item>+            <item>run-in</item>+            <item>compact</item>+            <item>marker</item>+            <item>table</item>+            <item>inline-table</item>+            <item>table-row-group</item>+            <item>table-header-group</item>+            <item>table-footer-group</item>+            <item>table-row</item>+            <item>table-column-group</item>+            <item>table-column</item>+            <item>table-cell</item>+            <item>table-caption</item>+            <item>crosshair</item>+            <item>default</item>+            <item>pointer</item>+            <item>move</item>+            <item>e-resize</item>+            <item>ne-resize</item>+            <item>nw-resize</item>+            <item>n-resize</item>+            <item>se-resize</item>+            <item>sw-resize</item>+            <item>s-resize</item>+            <item>w-resize</item>+            <item>text</item>+            <item>wait</item>+            <item>help</item>+            <item>above</item>+            <item>absolute</item>+            <item>always</item>+            <item>avoid</item>+            <item>below</item>+            <item>bidi-override</item>+            <item>blink</item>+            <item>both</item>+            <item>capitalize</item>+            <item>caption</item>+            <item>clip</item>+            <item>close-quote</item>+            <item>collapse</item>+            <item>condensed</item>+            <item>crop</item>+            <item>cross</item>+            <item>ellipsis</item>+            <item>ellipsis-word</item>+            <item>embed</item>+            <item>expanded</item>+            <item>extra-condensed</item>+            <item>extra-expanded</item>+            <item>fixed</item>+            <item>hand</item>+            <item>hide</item>+            <item>higher</item>+            <item>icon</item>+            <item>inside</item>+            <item>invert</item>+            <item>landscape</item>+            <item>level</item>+            <item>line-through</item>+            <item>loud</item>+            <item>lower</item>+            <item>lowercase</item>+            <item>ltr</item>+            <item>menu</item>+            <item>message-box</item>+            <item>mix</item>+            <item>narrower</item>+            <item>no-close-quote</item>+            <item>no-open-quote</item>+            <item>nowrap</item>+            <item>open-quote</item>+            <item>outside</item>+            <item>overline</item>+            <item>portrait</item>+            <item>pre</item>+            <item>pre-line</item>+            <item>pre-wrap</item>+            <item>relative</item>+            <item>rtl</item>+            <item>scroll</item>+            <item>semi-condensed</item>+            <item>semi-expanded</item>+            <item>separate</item>+            <item>show</item>+            <item>small-caption</item>+            <item>static</item>+            <item>static-position</item>+            <item>status-bar</item>+            <item>thick</item>+            <item>thin</item>+            <item>ultra-condensed</item>+            <item>ultra-expanded</item>+            <item>underline</item>+            <item>uppercase</item>+            <item>visible</item>+            <item>wider</item>+            <item>break</item>+            <item>serif</item>+            <item>sans-serif</item>+            <item>cursive</item>+            <item>fantasy</item>+            <item>monospace</item>+            <item>border-box</item>+            <item>content-box</item>+            <item>-epub-hyphens</item>+            <item>contain</item>+            <item>cover</item>++            <!-- transition and animation -->+            <item>all</item>+            <item>ease</item>+            <item>ease-in</item>+            <item>ease-out</item>+            <item>ease-in-out</item>+            <item>step-start</item>+            <item>step-end</item>+            <item>linear</item>++            <!-- animation -->+            <item>infinite</item>+            <item>reverse</item>+            <item>alternate</item>+            <item>alternate-reverse</item>+            <item>forwards</item>+            <item>backwards</item>+            <item>running</item>+            <item>paused</item>+        </list>++        <list name="colors">+            <item>black</item>+            <item>silver</item>+            <item>gray</item>+            <item>white</item>+            <item>maroon</item>+            <item>red</item>+            <item>purple</item>+            <item>fuchsia</item>+            <item>green</item>+            <item>lime</item>+            <item>olive</item>+            <item>yellow</item>+            <item>navy</item>+            <item>blue</item>+            <item>teal</item>+            <item>aqua</item>+            <item>orange</item>+            <item>aliceblue</item>+            <item>antiquewhite</item>+            <item>aquamarine</item>+            <item>azure</item>+            <item>beige</item>+            <item>bisque</item>+            <item>blanchedalmond</item>+            <item>blueviolet</item>+            <item>brown</item>+            <item>burlywood</item>+            <item>cadetblue</item>+            <item>chartreuse</item>+            <item>chocolate</item>+            <item>coral</item>+            <item>cornflowerblue</item>+            <item>cornsilk</item>+            <item>crimson</item>+            <item>cyan</item>+            <item>aqua</item>+            <item>darkblue</item>+            <item>darkcyan</item>+            <item>darkgoldenrod</item>+            <item>darkgray</item>+            <item>darkgreen</item>+            <item>darkgrey</item>+            <item>darkkhaki</item>+            <item>darkmagenta</item>+            <item>darkolivegreen</item>+            <item>darkorange</item>+            <item>darkorchid</item>+            <item>darkred</item>+            <item>darksalmon</item>+            <item>darkseagreen</item>+            <item>darkslateblue</item>+            <item>darkslategray</item>+            <item>darkslategrey</item>+            <item>darkturquoise</item>+            <item>darkviolet</item>+            <item>deeppink</item>+            <item>deepskyblue</item>+            <item>dimgray</item>+            <item>dimgrey</item>+            <item>dodgerblue</item>+            <item>firebrick</item>+            <item>floralwhite</item>+            <item>forestgreen</item>+            <item>gainsboro</item>+            <item>ghostwhite</item>+            <item>gold</item>+            <item>goldenrod</item>+            <item>greenyellow</item>+            <item>grey</item>+            <item>honeydew</item>+            <item>hotpink</item>+            <item>indianred</item>+            <item>indigo</item>+            <item>ivory</item>+            <item>khaki</item>+            <item>lavender</item>+            <item>lavenderblush</item>+            <item>lawngreen</item>+            <item>lemonchiffon</item>+            <item>lightblue</item>+            <item>lightcoral</item>+            <item>lightcyan</item>+            <item>lightgoldenrodyellow</item>+            <item>lightgray</item>+            <item>lightgreen</item>+            <item>lightgrey</item>+            <item>lightpink</item>+            <item>lightsalmon</item>+            <item>lightseagreen</item>+            <item>lightskyblue</item>+            <item>lightslategray</item>+            <item>lightslategrey</item>+            <item>lightsteelblue</item>+            <item>lightyellow</item>+            <item>limegreen</item>+            <item>linen</item>+            <item>magenta</item>+            <item>fuchsia</item>+            <item>mediumaquamarine</item>+            <item>mediumblue</item>+            <item>mediumorchid</item>+            <item>mediumpurple</item>+            <item>mediumseagreen</item>+            <item>mediumslateblue</item>+            <item>mediumspringgreen</item>+            <item>mediumturquoise</item>+            <item>mediumvioletred</item>+            <item>midnightblue</item>+            <item>mintcream</item>+            <item>mistyrose</item>+            <item>moccasin</item>+            <item>navajowhite</item>+            <item>oldlace</item>+            <item>olivedrab</item>+            <item>orangered</item>+            <item>orchid</item>+            <item>palegoldenrod</item>+            <item>palegreen</item>+            <item>paleturquoise</item>+            <item>palevioletred</item>+            <item>papayawhip</item>+            <item>peachpuff</item>+            <item>peru</item>+            <item>pink</item>+            <item>plum</item>+            <item>powderblue</item>+            <item>rosybrown</item>+            <item>royalblue</item>+            <item>saddlebrown</item>+            <item>salmon</item>+            <item>sandybrown</item>+            <item>seagreen</item>+            <item>seashell</item>+            <item>sienna</item>+            <item>skyblue</item>+            <item>slateblue</item>+            <item>slategray</item>+            <item>slategrey</item>+            <item>snow</item>+            <item>springgreen</item>+            <item>steelblue</item>+            <item>tan</item>+            <item>thistle</item>+            <item>tomato</item>+            <item>turquoise</item>+            <item>violet</item>+            <item>wheat</item>+            <item>whitesmoke</item>+            <item>yellowgreen</item>+            <item>rebeccapurple</item>++            <item>ActiveBorder</item>+            <item>ActiveCaption</item>+            <item>AppWorkspace</item>+            <item>Background</item>+            <item>ButtonFace</item>+            <item>ButtonHighlight</item>+            <item>ButtonShadow</item>+            <item>ButtonText</item>+            <item>CaptionText</item>+            <item>GrayText</item>+            <item>Highlight</item>+            <item>HighlightText</item>+            <item>InactiveBorder</item>+            <item>InactiveCaption</item>+            <item>InactiveCaptionText</item>+            <item>InfoBackground</item>+            <item>InfoText</item>+            <item>Menu</item>+            <item>MenuText</item>+            <item>Scrollbar</item>+            <item>ThreeDDarkShadow</item>+            <item>ThreeDFace</item>+            <item>ThreeDHighlight</item>+            <item>ThreeDLightShadow</item>+            <item>ThreeDShadow</item>+            <item>Window</item>+            <item>WindowFrame</item>+            <item>WindowText</item>+        </list>++        <list name="functions">+            <item>attr</item>+            <item>calc</item>+            <item>hsl</item>+            <item>hsla</item>+            <item>linear-gradient</item>+            <item>radial-gradient</item>+            <item>repeating-linear-gradient</item>+            <item>repeating-radial-gradient</item>+            <item>rgb</item>+            <item>rgba</item>+            <item>var</item>+            <item>url</item>++            <!-- clip -->+            <item>rect</item>++            <!-- shape-outside and clip-path -->+            <item>inset</item>+            <item>circle</item>+            <item>ellipse</item>+            <item>polygon</item>++            <!-- filter and backdrop-filter -->+            <item>blur</item>+            <item>brightness</item>+            <item>contrast</item>+            <item>drop-shadow</item>+            <item>grayscale</item>+            <item>hue-rotate</item>+            <item>invert</item>+            <item>opacity</item>+            <item>saturate</item>+            <item>sepia</item>++            <!-- grid-template-columns and grid-template-rows -->+            <item>max-content</item>+            <item>min-content</item>+            <item>minmax</item>+            <item>fix-content</item>+            <item>repeat</item>++            <!-- transition and animation -->+            <item>cubic-bezier</item>+            <item>frames</item>+            <item>steps</item>++            <!-- transform -->+            <item>matrix</item>+            <item>matrix3d</item>+            <item>perspective</item>+            <item>rotate</item>+            <item>rotate3d</item>+            <item>rotateX</item>+            <item>rotateY</item>+            <item>rotateZ</item>+            <item>scale</item>+            <item>scale3d</item>+            <item>scaleX</item>+            <item>scaleY</item>+            <item>scaleZ</item>+            <item>skew</item>+            <item>skewX</item>+            <item>skewY</item>+            <item>translate</item>+            <item>translate3d</item>+            <item>translateX</item>+            <item>translateY</item>+            <item>translateZ</item>++            <!-- inner @font-face -->+            <item>local</item>+            <item>format</item>+        </list>++        <list name="medias">+            <!-- types -->+            <item>all</item>+            <item>print</item>+            <item>screen</item>+            <item>speech</item>++            <!-- features -->+            <item>any-pointer</item>+            <item>any-hover</item>+            <item>aspect-ratio</item>+            <item>color</item>+            <item>color-gamut</item>+            <item>color-index</item>+            <item>display-mode</item>+            <item>grid</item>+            <item>height</item>+            <item>hover</item>+            <item>max-aspect-ratio</item>+            <item>max-color</item>+            <item>max-color-index</item>+            <item>max-device-aspect-ratio</item>+            <item>max-device-height</item>+            <item>max-device-width</item>+            <item>max-height</item>+            <item>max-monochrome</item>+            <item>max-resolution</item>+            <item>max-width</item>+            <item>min-aspect-ratio</item>+            <item>min-color</item>+            <item>min-color-index</item>+            <item>min-device-aspect-ratio</item>+            <item>min-device-height</item>+            <item>min-device-width</item>+            <item>min-height</item>+            <item>min-monochrome</item>+            <item>min-resolution</item>+            <item>min-width</item>+            <item>monochrome</item>+            <item>orientation</item>+            <item>pointer</item>+            <item>resolution</item>+            <item>scan</item>+            <item>update</item>+            <item>width</item>+        </list>++        <!-- prefixed by :: -->+        <list name="pseudoelements">+            <item>after</item>+            <item>before</item>+            <item>cue</item>+            <item>first-letter</item>+            <item>first-line</item>+            <item>selection</item>++            <!-- experimental -->+            <item>backdrop</item>+            <item>placeholder</item>+            <!-- <item>marker</item> -->+            <item>slotted</item>+            <!-- <item>spelling-error</item> -->+            <!-- <item>grammar-error</item> -->++            <!-- UI pseudo-classes -->+            <item>value</item>+            <item>choices</item>+            <item>repeat-item</item>+            <item>repeat-index</item>++            <item>-moz-progress-bar</item>+            <item>-moz-range-progress</item>+            <item>-moz-range-thumb</item>+            <item>-moz-range-track</item>+            <item>-moz-selection</item>+            <item>-ms-fill</item>+            <item>-ms-fill-lower</item>+            <item>-ms-fill-upper</item>+            <item>-ms-thumb</item>+            <item>-ms-track</item>+            <item>-webkit-progress-bar</item>+            <item>-webkit-progress-value</item>+            <item>-webkit-slider-runnable-track</item>+            <item>-webkit-slider-thumb</item>+        </list>++        <!-- prefixed by : -->+        <list name="pseudoclasses">+            <item>active</item>+            <item>any-link</item>+            <item>checked</item>+            <item>default</item>+            <item>defined</item>+            <!-- <item>dir</item> -->+            <item>disabled</item>+            <item>empty</item>+            <item>enabled</item>+            <item>first-child</item>+            <item>first-of-type</item>+            <item>fullscreen</item>+            <item>focus</item>+            <item>focus-within</item>+            <item>host</item>+            <item>hover</item>+            <item>in-range</item>+            <item>indeterminate</item>+            <item>invalid</item>+            <item>lang</item>+            <item>last-child</item>+            <item>last-of-type</item>+            <item>link</item>+            <item>not</item>+            <item>nth-child</item>+            <item>nth-last-child</item>+            <item>nth-last-of-type</item>+            <item>nth-of-type</item>+            <item>only-child</item>+            <item>only-of-type</item>+            <item>optional</item>+            <item>out-of-range</item>+            <item>placeholder-shown</item>+            <item>read-only</item>+            <item>read-write</item>+            <item>required</item>+            <item>root</item>+            <item>scope</item>+            <item>target</item>+            <item>valid</item>+            <item>visited</item>++            <!-- pseudo-elements -->+            <item>after</item>+            <item>before</item>+            <item>cue</item>+            <item>first-letter</item>+            <item>first-line</item>+            <item>selection</item>+        </list>++        <list name="pseudoclass-not">+            <item>not</item>+        </list>++        <list name="pseudoclasses-@page">+            <item>blank</item>+            <item>first</item>+            <item>left</item>+            <item>recto</item>+            <item>right</item>+            <item>verso</item>+        </list>++        <list name="at-rules">+            <item>@character</item>+            <item>@charset</item>+            <item>@import</item>+            <item>@namespace</item>+        </list>++        <list name="nested at-rules">+            <item>@document</item>+            <item>@media</item>+            <item>@supports</item>+        </list>++        <list name="@viewport">+            <item>@viewport</item>+        </list>++        <list name="within-@viewport">+            <item>min-width</item>+            <item>max-width</item>+            <item>width</item>+            <item>min-height</item>+            <item>max-height</item>+            <item>height</item>+            <item>zoom</item>+            <item>min-zoom</item>+            <item>max-zoom</item>+            <item>user-zoom</item>+            <item>orientation</item>+            <item>viewport-fit</item>+        </list>++        <list name="@page">+            <item>@page</item>+        </list>++        <list name="within-@page">+            <item>size</item>+            <item>marks</item>+            <item>bleed</item>+        </list>++        <list name="@font-face">+            <item>@font-face</item>+        </list>++        <list name="within-@font-face">+            <item>font-display</item>+            <item>font-family</item>+            <item>font-stretch</item>+            <item>font-style</item>+            <item>font-weight</item>+            <item>font-variant</item>+            <item>font-feature-settings</item>+            <item>font-variation-settings</item>+            <item>src</item>+            <item>unicode-range</item>+        </list>++        <list name="@keyframes">+            <item>@keyframes</item>+        </list>++        <list name="within-@keyframes">+            <item>from</item>+            <item>to</item>+        </list>++        <list name="media operators">+            <item>and</item>+            <item>only</item>+            <item>not</item>+        </list>++        <contexts>+            <context name="Base" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />+                <DetectChar attribute="At Rule" context="SelectAtRule" char="@" lookAhead="true" />+                <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />+                <AnyChar attribute="Operator" context="#stay" String="*>+~|" />+                <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" />+                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />+                <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />+            </context>++            <context name="FindSelector" attribute="Normal Text" lineEndContext="#stay">+                <IncludeRules context="FindComments" />+                <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />+                <AnyChar attribute="Operator" context="#stay" String="*>+~|" />+                <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" />+                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />+                <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />+            </context>++            <!-- find functions // rgba(255,255,255,0.75) -->+            <context name="FindFunctions" attribute="Normal Text" lineEndContext="#stay">+                <RegExpr attribute="Function" context="Function" String="[a-z\-]{2,}\(" lookAhead="true" />+            </context>++            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->+            <context name="FindValues" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar attribute="Annotation" context="Annotation" char="!" />+                <keyword attribute="Value Keyword" context="#stay" String="value keywords" />+                <keyword attribute="Value" context="#stay" String="values" />+                <keyword attribute="Color" context="#stay" String="colors" />+                <RegExpr attribute="Color" context="#stay" String="#([0-9A-Fa-f]{3}){1,2}\b" />+                <RegExpr attribute="Number" context="FindUnits" String="[-+]?[0-9.]+(?![-+])" />+                <RegExpr attribute="Normal Text" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />+            </context>++            <context name="Annotation" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+                <WordDetect attribute="Annotation" context="#pop" String="important" />+            </context>++            <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+                <RegExpr attribute="Unit" context="#stay" String="(%|(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\b)(?![-+])" />+            </context>++            <!-- find strings // "some words" 'some words' -->+            <context name="FindStrings" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar attribute="String" context="StringDQ" char="&quot;" />+                <DetectChar attribute="String" context="StringSQ" char="'" />+            </context>++            <!-- find comments // /* comment */ -->+            <context name="FindComments" attribute="Normal Text" lineEndContext="#stay">+                <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="true"/>+                <Detect2Chars attribute="Error" context="Error" char="/" char1="/" />+            </context>++            <context name="Error" attribute="Error" lineEndContext="#pop">+                <RegExpr attribute="Error" context="#pop" String=".*" />+            </context>++            <context name="IsComments" attribute="Normal Text" lineEndContext="#stay">+                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*BEGIN\b.*\*/" beginRegion="UserDefined" />+                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*END\b.*\*/" endRegion="UserDefined" />+                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />+            </context>++            <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">+                <keyword attribute="At Rule" context="#pop!NestedAtRule" String="nested at-rules" />+                <keyword attribute="At Rule" context="#pop!AtRule" String="at-rules" />+                <keyword attribute="At Rule" context="#pop!@keyframes" String="@keyframes" />+                <keyword attribute="At Rule" context="#pop!@viewport" String="@viewport" />+                <keyword attribute="At Rule" context="#pop!@font-face" String="@font-face" />+                <keyword attribute="At Rule" context="#pop!@page" String="@page" />+                <RegExpr attribute="At Rule" context="#pop!UnknownAtRule" String="@[a-zA-Z0-9\-_]+\b" />+            </context>++            <context name="@keyframes" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <DetectChar attribute="Normal Text" context="Within-@keyframes" char="{" beginRegion="ruleset" />+            </context>++            <context name="Within-@keyframes" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset" />+                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />+                <keyword attribute="Value" context="#stay" String="within-@keyframes" />+                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+%" />+            </context>++            <context name="@viewport" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />+                <DetectChar attribute="Normal Text" context="#pop!Within-@viewport" char="{" beginRegion="ruleset" />+            </context>++            <context name="Within-@viewport" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <keyword attribute="Property" context="IsProperty" String="within-@viewport" />+                <IncludeRules context="RuleSet" />+            </context>++            <context name="@font-face" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <DetectChar attribute="Normal Text" context="#pop!Within-@font-face" char="{" beginRegion="ruleset" />+            </context>++            <context name="Within-@font-face" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <keyword attribute="Property" context="IsProperty" String="within-@font-face" />+                <RegExpr attribute="Unknown Property" context="IsProperty" String="[A-Za-z_-]+\b" />+                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />+            </context>++            <context name="@page" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo-@page" char=":" />+                <DetectChar attribute="Normal Text" context="#pop!Within-@page" char="{" beginRegion="ruleset" />+            </context>++            <context name="SelectorPseudo-@page" attribute="Selector Pseudo" lineEndContext="#pop">+                <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses-@page" />+                <RegExpr attribute="Selector Pseudo" context="#pop" String="[-a-zA-Z][-a-zA-Z0-9]*" />+            </context>++            <context name="Within-@page" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <keyword attribute="Property" context="IsProperty" String="within-@page" />+                <IncludeRules context="RuleSet" />+            </context>++            <context name="IsProperty" attribute="Error" lineEndContext="#stay">+                <DetectSpaces attribute="Normal Text" />+                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />+            </context>++            <context name="NestedAtRule" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Normal Text" context="NestedBase" char="{" beginRegion="ruleset" />+                <IncludeRules context="AtRuleValue" />+            </context>++            <context name="NestedBase" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset" />+                <IncludeRules context="Base" />+            </context>++            <context name="AtRule" attribute="Normal Text" lineEndContext="#pop">+                <DetectSpaces />+                <DetectChar attribute="Separator Symbol" context="#pop" char=";" />+                <IncludeRules context="AtRuleValue" />+            </context>++            <context name="UnknownAtRule" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Separator Symbol" context="#pop" char=";" />+                <DetectChar attribute="Normal Text" context="#pop!RuleSet" char="{" beginRegion="ruleset" />+                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />+                <IncludeRules context="AtRuleValue" />+            </context>++            <context name="AtRuleValue" attribute="Normal Text" lineEndContext="#stay">+                <IncludeRules context="FindComments" />+                <IncludeRules context="FindStrings" />+                <IncludeRules context="FindFunctions" />+                <keyword attribute="Keyword" context="#stay" String="media operators" />+                <RegExpr attribute="Property" context="#stay" String="[A-Za-z_-]+(?=\s*:)" />+                <keyword attribute="Value" context="#stay" String="medias" />+                <IncludeRules context="FindValues" />+            </context>++            <context name="SelectorAttr" attribute="Selector Attribute" lineEndContext="#stay">+                <DetectChar attribute="Selector Attribute" context="#pop" char="]" />+                <IncludeRules context="FindStrings" />+                <DetectChar   attribute="Operator" context="SelectorAttrValue" char="=" />+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="~" char1="=" />+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="^" char1="=" />+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="$" char1="=" />+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="*" char1="=" />+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="|" char1="=" />+                <DetectIdentifier />+            </context>++            <context name="SelectorAttrValue" attribute="String" lineEndContext="#stay">+                <DetectChar attribute="Selector Attribute" context="#pop#pop" char="]" />+                <DetectIdentifier />+            </context>++            <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop">+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoElements" char=":" />+                <keyword attribute="Selector Pseudo" context="SelectorPseudoValueSelector" String="pseudoclass-not" />+                <keyword attribute="Selector Pseudo" context="SelectorPseudoValue" String="pseudoclasses" />+                <RegExpr attribute="Selector Pseudo" context="SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" />+            </context>++            <context name="SelectorPseudoElements" attribute="Selector Pseudo" lineEndContext="#pop#pop">+                <keyword attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="pseudoelements" />+                <RegExpr attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" />+            </context>++            <context name="SelectorPseudoValueSelector" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueCloseSelector" char="(" />+            </context>++            <context name="SelectorPseudoValueCloseSelector" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" />+                <DetectChar attribute="Error" context="#pop#pop#pop!RuleSet" char="{" beginRegion="ruleset" />+                <IncludeRules context="FindSelector" />+            </context>++            <context name="SelectorPseudoValue" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueClose" char="(" />+            </context>++            <context name="SelectorPseudoValueClose" attribute="Selector Pseudo" lineEndContext="#pop#pop#pop">+                <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" />+                <DetectIdentifier />+            </context>++            <context name="Comment" attribute="Comment" lineEndContext="#stay">+                <DetectSpaces />+                <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="comment" />+                <IncludeRules context="##Alerts" />+                <DetectIdentifier />+            </context>++            <context name="RuleSet" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />+                <RegExpr attribute="Property" context="Rule" String="[A-Za-z_-]+(?=\s*:)" lookAhead="true" />+                <IncludeRules context="Base" />+                <RegExpr attribute="Normal Text" context="#stay" String="[A-Za-z_-]+" />+                <!-- auto-completion only, includes by previous rule -->+                <keyword attribute="Normal Text" context="#stay" String="properties" />+            </context>++            <context name="Rule" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />+                <Detect2Chars attribute="Variable" context="IsVariable" char="-" char1="-" />+                <keyword attribute="Property" context="#stay" String="properties" />+                <RegExpr attribute="Unknown Property" context="#stay" String="[^:]+" />+            </context>++            <context name="IsVariable" attribute="Normal Text" lineEndContext="#pop">+                <DetectChar attribute="Normal Text" context="#pop!RuleParameters" char=":" />+                <RegExpr attribute="Variable" context="#stay" String="[^:]+" />+            </context>++            <context name="RuleParameters" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <IncludeRules context="FindComments" />+                <IncludeRules context="FindStrings" />+                <IncludeRules context="FindFunctions" />+                <IncludeRules context="FindValues" />+                <!-- Jump out conditions -->+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";" />+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />+                <DetectChar attribute="Normal Text" context="#pop#pop#pop" char="}" endRegion="ruleset" />+                <!-- auto-completion only -->+                <keyword attribute="Normal Text" context="#stay" String="functions" />+            </context>++            <context name="Function" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar attribute="Function" context="FunctionParameters" char="(" />+                <StringDetect attribute="Function" context="FunctionVar" String="var(" />+                <StringDetect attribute="Function" context="FunctionUrl" String="url(" />+                <StringDetect attribute="Function" context="FunctionCalc" String="calc(" />+                <keyword attribute="Function" context="#stay" String="functions" />+                <RegExpr attribute="Normal Text" context="#stay" String="[-a-zA-Z][-a-zA-Z0-9]*" />+            </context>++            <context name="FunctionVar" attribute="Variable" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!FunctionParameters">+                <DetectSpaces />+                <RegExpr attribute="Variable" context="#pop!FunctionParameters" String="--[^ \t\),]+" />+            </context>++            <context name="FunctionCalc" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Function" context="#pop#pop" char=")" />+                <IncludeRules context="Calc" />+            </context>++            <context name="NestedCalc" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Normal Text" context="#pop" char=")" />+                <IncludeRules context="Calc" />+            </context>++            <context name="Calc" attribute="Normal Text" lineEndContext="#stay">+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />+                <DetectChar attribute="Normal Text" context="NestedCalc" char="(" />+                <IncludeRules context="FindComments" />+                <IncludeRules context="FindStrings" />+                <IncludeRules context="FindFunctions" />+                <IncludeRules context="FindValues" />+                <RegExpr attribute="Operator" context="#stay" String="[-](?=$|[ \t(,;])|[+](?=$|[^0-9)])|[/*]" />+                <!-- auto-completion only -->+                <keyword attribute="Normal Text" context="#stay" String="functions" />+            </context>++            <context name="FunctionUrl" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="UrlValue">+                <DetectSpaces />+                <IncludeRules context="FindStrings" />+                <DetectChar attribute="Function" context="#pop#pop" char=")" />+            </context>++            <context name="UrlValue" attribute="String" lineEndContext="#stay">+                <DetectChar attribute="Function" context="#pop#pop#pop" char=")" />+            </context>++            <context name="FunctionParameters" attribute="Normal Text" lineEndContext="#stay">+                <DetectSpaces />+                <DetectChar attribute="Function" context="#pop#pop" char=")" />+                <IncludeRules context="FindComments" />+                <IncludeRules context="FindStrings" />+                <IncludeRules context="FindValues" />+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />+            </context>++            <!-- string contexts -->+            <context name="StringDQ" attribute="String" lineEndContext="#stay">+                <DetectChar attribute="String" context="#pop" char="&quot;" />+                <IncludeRules context="InsideString" />+            </context>++            <context name="StringSQ" attribute="String" lineEndContext="#stay">+                <DetectChar attribute="String" context="#pop" char="'" />+                <IncludeRules context="InsideString" />+            </context>++            <context name="InsideString" attribute="String" lineEndContext="#stay">+                <RegExpr attribute="SpecialChar" context="#stay" String="\\([0-9A-Fa-f]{1,6}|.?)" />+                <RegExpr attribute="String" context="#stay" String="\\?[^&quot;'\\]+" />+            </context>++        </contexts>++        <itemDatas>+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>+            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>+            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>+            <itemData name="String" defStyleNum="dsString"/>+            <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>+            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>+            <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>+            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>+            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>+            <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>+            <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>+            <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>+            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>+            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>+            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>+            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>+            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>+            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>+            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>+            <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>+            <itemData name="Comment" defStyleNum="dsComment" />+            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>+        </itemDatas>+    </highlighting>++    <general>+        <keywords casesensitive="0" weakDeliminator="-%@" />         <comments>             <comment name="multiLine" start="/*" end="*/" />         </comments>
xml/dockerfile.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <!-- Dockerfile syntaxfile v1.0 by James Turnbull <james@lovedthanlost.net> -->-<language name="Dockerfile" section="Other" version="6" kateversion="3.4" extensions="Dockerfile" author="James Turnbull (james@lovedthanlost.net)" license="LGPLv2+">+<language name="Dockerfile" section="Other" version="7" kateversion="3.4" extensions="Dockerfile" author="James Turnbull (james@lovedthanlost.net)" license="MIT">   <highlighting>     <list name="keywords">       <item>ADD</item>
xml/email.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Email" version="4" kateversion="5.0" extensions="*.eml;*.email;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT">+<language name="Email" version="5" kateversion="5.0" extensions="*.eml;*.email;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT">     <highlighting>         <list name="header-names">             <item>Authentication-Results:</item>@@ -51,8 +51,14 @@          <contexts>             <context name="header" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop!body-context">+                <WordDetect attribute="Common Header" context="header-subject" String="Subject:" column="0"/>                 <keyword attribute="Common Header" context="header-structured-content" String="header-names" column="0"/>                 <RegExpr attribute="Other Header" context="header-content" String="[0-9a-zA-Z-]+:\s" column="0"/>+            </context>++            <context name="header-subject" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop#pop!body-context">+                <RegExpr context="#pop" String="\S" column="0" lookAhead="true"/>+                <DetectChar attribute="String" context="string-context" char="&quot;"/>             </context>              <context name="header-structured-content" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop#pop!body-context">
xml/fortran.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Fortran" version="2" kateversion="5.0" section="Sources" extensions="*.f;*.F;*.for;*.FOR;*.f90;*.F90;*.fpp;*.FPP;*.f95;*.F95;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it)" license="LGPL" priority="9">+<language name="Fortran" version="3" kateversion="5.0" section="Sources" extensions="*.f;*.F;*.for;*.FOR;*.f90;*.F90;*.fpp;*.FPP;*.f95;*.F95;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it)" license="LGPL" priority="9"> <!-- by Franchin Matteo, fnch@libero.it -->   <highlighting> @@ -402,8 +402,12 @@  <!-- This context highlights comments -->       <context attribute="Normal Text" lineEndContext="#stay" name="find_comments">-        <RegExpr attribute="Comment" context="#stay" String="[cC\*].*$" column="0"/>-        <RegExpr attribute="Comment" context="#stay" String="!.*$"/>+        <AnyChar attribute="Comment" context="comment" String="cC*" column="0"/>+        <DetectChar attribute="Comment" context="comment" char="!"/>+      </context>++      <context attribute="Comment" lineEndContext="#pop" name="comment">+        <IncludeRules context="##Alerts"/>       </context>  <!-- This context highlights symbols -->
xml/gcc.xml view
@@ -13,7 +13,7 @@   --> <language     name="GCCExtensions"-    version="3"+    version="4"     kateversion="5.0"     section="Sources"     extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;"@@ -421,7 +421,6 @@     <item>__UINT_LEAST8_TYPE__</item>     <item>__USER_LABEL_PREFIX__</item>     <item>__USING_SJLJ_EXCEPTIONS__</item>-    <item>__VA_ARGS__</item>     <item>__VERSION__</item>     <item>__WCHAR_MAX__</item>     <item>__WCHAR_MIN__</item>@@ -532,14 +531,22 @@       <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />       <keyword attribute="GNU Functions" context="#stay" String="GNUFunctions" />       <keyword attribute="GNU Types" context="#stay" String="GNUTypes" />-      <StringDetect attribute="GNU Extensions" context="AttrArgs" String="__attribute__" />-      <StringDetect attribute="GNU Extensions" context="AttrArgs" String="__declspec" />+      <WordDetect attribute="GNU Extensions" context="AttrArgs" String="__attribute__" />+      <WordDetect attribute="GNU Extensions" context="AttrArgs" String="__declspec" />       <keyword attribute="GNU Extensions" context="#stay" String="GNUKeywords" />       <RegExpr attribute="GNU Functions" context="#stay" String="__builtin_[a-zA-Z0-9_]+" />-      <!-- (gcc info 6.57) Binary constants using the `0b' prefix -->-      <RegExpr attribute="GNU Extensions" context="#stay" String="0[Bb][01]+([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />     </context> +    <context name="DetectGccExtensionsInPP" attribute="Normal Text" lineEndContext="#stay">+      <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />+      <keyword attribute="GNU Functions" context="#stay" String="GNUFunctions" />+      <keyword attribute="GNU Types" context="#stay" String="GNUTypes" />+      <WordDetect attribute="GNU Extensions" context="AttrArgsInPP" String="__attribute__" />+      <WordDetect attribute="GNU Extensions" context="AttrArgsInPP" String="__declspec" />+      <keyword attribute="GNU Extensions" context="#stay" String="GNUKeywords" />+      <RegExpr attribute="GNU Functions" context="#stay" String="__builtin_[a-zA-Z0-9_]+" />+    </context>+     <context name="GNUMacros" attribute="Normal Text" lineEndContext="#stay">       <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />     </context>@@ -550,6 +557,11 @@       <DetectChar attribute="GNU Extensions" context="Close" char="(" />     </context> +    <context name="AttrArgsInPP" attribute="GNU Extensions" lineEndContext="#pop">+      <DetectChar attribute="Error" context="#pop" char="\" lookAhead="true" />+      <IncludeRules context="AttrArgs" />+    </context>+     <context name="Close" attribute="GNU Extensions" lineEndContext="#stay">       <DetectChar attribute="GNU Extensions" context="#pop" char=")" />       <DetectChar attribute="String" context="AttrStringArg" char="&quot;" />@@ -559,15 +571,32 @@       <DetectChar attribute="String" context="#pop" char="&quot;" />     </context> ++    <context name="DetectGccAttributes" attribute="Normal Text" lineEndContext="#stay">+      <StringDetect attribute="GNU Extensions" context="CppAttr" String="gnu::" />+      <StringDetect attribute="GNU Extensions" context="CppAttr" String="clang::" />+    </context>++    <context name="DetectNamespaceGccAttributes" attribute="Normal Text" lineEndContext="#stay">+      <WordDetect attribute="GNU Extensions" context="#pop" String="gnu" />+      <WordDetect attribute="GNU Extensions" context="#pop" String="clang" />+    </context>++    <context name="CppAttr" attribute="Error" lineEndContext="#stay">+      <DetectSpaces/>+      <DetectIdentifier attribute="GNU Extensions" context="#pop" />+    </context>+   </contexts>    <itemDatas>-    <itemData name="Normal Text"    defStyleNum="dsNormal" spellChecking="false" />+    <itemData name="Normal Text"    defStyleNum="dsNormal"    spellChecking="false" />     <itemData name="GNU Extensions" defStyleNum="dsExtension" spellChecking="false" italic="1" />-    <itemData name="GNU Functions"  defStyleNum="dsFunction" spellChecking="false" />-    <itemData name="GNU Macros"     defStyleNum="dsOthers" spellChecking="false" />-    <itemData name="GNU Types"      defStyleNum="dsDataType" spellChecking="false" />-    <itemData name="String"         defStyleNum="dsString" spellChecking="false" />+    <itemData name="GNU Functions"  defStyleNum="dsFunction"  spellChecking="false" />+    <itemData name="GNU Macros"     defStyleNum="dsOthers"    spellChecking="false" />+    <itemData name="GNU Types"      defStyleNum="dsDataType"  spellChecking="false" />+    <itemData name="String"         defStyleNum="dsString"    spellChecking="false" />+    <itemData name="Error"          defStyleNum="dsError"     spellChecking="false" />   </itemDatas> </highlighting> 
xml/haskell.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Haskell" version="9" kateversion="3.4" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">+<language name="Haskell" version="10" kateversion="3.4" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">   <highlighting>   <list name="keywords">     <item>case</item>@@ -9,6 +9,8 @@     <item>deriving</item>     <item>do</item>     <item>else</item>+    <item>family</item>+    <item>forall</item>     <item>if</item>     <item>in</item>     <item>infixl</item>@@ -18,14 +20,13 @@     <item>module</item>     <item>newtype</item>     <item>of</item>+    <item>pattern</item>     <item>primitive</item>     <item>then</item>     <item>type</item>     <item>where</item>   </list>   <list name="prelude function">-    <item>FilePath</item>-    <item>IOError</item>     <item>abs</item>     <item>acos</item>     <item>acosh</item>@@ -477,6 +478,7 @@       <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z_][a-zA-Z0-9_']*" />       <RegExpr attribute="Operator"         context="#stay" String="([A-Z][a-zA-Z0-0_']*\.)*[\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]+" />       <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />+      <RegExpr attribute="Type"             context="#stay" String="'(?![A-Z]')([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />        <RegExpr    attribute="Float"   context="#stay" String ="\d+\.\d+([Ee][+-]?\d+)?|\d+[Ee][+-]?\d+"/>       <RegExpr    attribute="Octal"   context="#stay" String="0[Oo][0-7]+"/>@@ -605,7 +607,7 @@      <itemData name="Keyword"          defStyleNum="dsKeyword"  spellChecking="false" />     <itemData name="Type Prelude"     defStyleNum="dsDataType" spellChecking="false" />-    <itemData name="Function Prelude" defStyleNum="dsNormal"   spellChecking="false" />+    <itemData name="Function Prelude" defStyleNum="dsFunction" spellChecking="false" />     <itemData name="Data Prelude"     defStyleNum="dsDataType" spellChecking="false" />     <itemData name="Class Prelude"    defStyleNum="dsDataType" spellChecking="false" /> 
xml/ini.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="3" kateversion="2.4" author="Jan Janssen (medhefgo@web.de)" license="LGPL">+<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc;*.conf" mimetype="" version="4" kateversion="2.4" author="Jan Janssen (medhefgo@web.de)" license="LGPL">  <highlighting> <list name="keywords">
xml/isocpp.xml view
@@ -1,17 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [-    <!ENTITY space " ">-    <!ENTITY separators ",&#59;">-    <!ENTITY ns_punctuators "!&#37;&space;&amp;()+-/.*&lt;=&gt;?[]{|}~^&separators;">+    <!ENTITY int "(?:[0-9](?:'?[0-9]+)*)">+    <!ENTITY hex_int "(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f]+)*)">+    <!ENTITY exp_float "(?:[eE][+-]?&int;)">+    <!ENTITY exp_hexfloat "(?:[pP][-+]?&int;)">++    <!ENTITY separators ",;">+    <!ENTITY ns_punctuators "(){}[].+-/*&#37;=&lt;&gt;!|&amp;?~^">     <!ENTITY punctuators ":&ns_punctuators;">+     <!-- printf-like format strings conversion specifiers -->-    <!ENTITY convspec "diouxXeEfFgGaAcspn&#37;">+    <!ENTITY printf_like "&#37;(?:ll?|[zjtL]|hh?)?[diouxXeEfFgGaAcspn&#37;]">++    <!ENTITY ispphash "(?:#|&#37;\:|\?\?=)">+    <!ENTITY pphash "&ispphash;\s*">+    <!ENTITY ppemptypp "($|(?=(/\*([^*]|\*[^/])*\*/\s*)?(//.*)?$))">+    <!ENTITY ppcond0 "\s+(?:0|false)\s*&ppemptypp;">+    <!ENTITY ppcond1 "\s+(?:1|true)\s*(\|\|([^/]|/[^*/])+)?&ppemptypp;"> ]> <language     name="ISO C++"     section="Sources"-    version="12"+    version="14"     kateversion="5.0"     indenter="cstyle"     style="C++"@@ -50,6 +61,8 @@       <item>asm</item>       <item>auto</item>       <item>class</item>+      <item>concept</item> <!-- C++20 -->+      <item>requires</item> <!-- C++20 -->       <item>constexpr</item>       <item>const_cast</item>       <item>decltype</item>@@ -97,6 +110,20 @@       <item>or_eq</item>       <item>xor</item>       <item>xor_eq</item>+      <!-- TM TS -->+      <!-- <list>atomic_cancel</list>+      <list>atomic_commit</list>+      <list>atomic_noexcept</list>+      <list>synchronized</list>+      <list>transaction_safe</list>+      <list>transaction_safe_dynamic</list> -->+      <!-- module TS -->+      <!-- <list>import</list>+      <list>module</list> -->+      <!-- coroutine TS -->+      <!-- <list>co_await</list>+      <list>co_return</list>+      <list>co_yield</list> -->     </list>     <!-- This keyword may appear in InternalsNS context. For example in code:       details::some_class::template some_templated_static();@@ -107,13 +134,31 @@     </list>      <!-- 7.6 Attributes -->+    <!-- http://en.cppreference.com/w/cpp/language/attributes -->     <list name="attributes">       <!-- C++11 -->       <item>noreturn</item>       <item>carries_dependency</item>-      <!-- C++1y -->+      <!-- C++14 -->       <item>deprecated</item>+      <!-- C++17 -->+      <item>fallthrough</item>+      <item>nodiscard</item>+      <item>maybe_unused</item>+      <!-- C++20 -->+      <item>likely</item>+      <item>unlikely</item>+      <item>no_unique_address</item>+      <!-- TM TS -->+      <!-- <item>optimize_for_synchronized</item> -->     </list>+    <!-- This keyword may appear in Attribute context. For example in code:+    [[using CC: opt(1), debug]]+    and it should be displayed as keyword, not like part of attribute...+    -->+    <list name="using">+      <item>using</item>+    </list>      <list name="types">       <item>bool</item>@@ -176,71 +221,81 @@       <item>thread_local</item>       <item>volatile</item>     </list>+    <!-- http://en.cppreference.com/w/cpp/preprocessor/replace -->     <list name="StdMacros">+      <item>__DATE__</item>       <item>__FILE__</item>       <item>__LINE__</item>-      <item>__DATE__</item>-      <item>__TIME__</item>-      <item>__STDC__</item>-      <item>__STDC_VERSION__</item>+      <item>__STDCPP_DEFAULT_NEW_ALIGNMENT__</item>+      <item>__STDCPP_STRICT_POINTER_SAFETY__</item>+      <item>__STDCPP_THREADS__</item>       <item>__STDC_HOSTED__</item>       <item>__STDC_ISO_10646__</item>       <item>__STDC_MB_MIGHT_NEQ_WC__</item>+      <item>__STDC_VERSION__</item>+      <item>__STDC__</item>+      <item>__TIME__</item>       <item>__cplusplus</item>       <item>__func__</item>+      <item>assert</item>+      <item>_Pragma</item>+      <item>__has_include</item>     </list>+    <list name="InMacro">+      <item>__VA_ARGS__</item>+      <item>__VA_OPT__</item>+    </list>+    <list name="preprocessorIf">+      <item>if</item>+    </list>+    <list name="preprocessorIfDef">+      <item>ifdef</item>+      <item>ifndef</item>+    </list>+    <list name="preprocessorElseIf">+      <item>elif</item>+    </list>+    <list name="preprocessorElse">+      <item>else</item>+    </list>+    <list name="preprocessorEndIf">+      <item>endif</item>+    </list>+    <list name="preprocessorDefine">+      <item>cmakedefine01</item>+      <item>cmakedefine</item>+      <item>define</item>+    </list>+    <list name="preprocessorInclude">+      <item>include</item>+    </list>+    <list name="preprocessorOther">+      <item>error</item>+      <item>line</item>+      <item>pragma</item>+      <item>undef</item>+      <item>warning</item>+    </list>      <contexts>-      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">-        <DetectSpaces />-        <RegExpr attribute="Preprocessor" context="Outscoped" String="(#|%\:|\?\?=)\s*if\s+(0|false)\s*" beginRegion="PP" firstNonSpace="true" insensitive="false" />-        <RegExpr attribute="Preprocessor" context="Inscoped" String="(#|%\:|\?\?=)\s*if\s+(1|true)\s*" beginRegion="PP" firstNonSpace="true" insensitive="false" />-        <IncludeRules context="Main" />-      </context>-       <context name="Main" attribute="Normal Text" lineEndContext="#stay">-        <!-- Match preprocessor directives -->-        <DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />-        <Detect2Chars context="AfterHash" char="%" char1=":" firstNonSpace="true" lookAhead="true" />-        <StringDetect context="AfterHash" String="??=" firstNonSpace="true" lookAhead="true" />-        <Detect2Chars attribute="Error" context="#stay" char="%" char1=":" />-        <StringDetect attribute="Error" String="??=" context="#stay" />-        <!-- Match special comments for region markers -->-        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />-        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />-        <!-- ATTENTION Special case `operator""` cuz Kate doesn't recognize-                       `operator` joined w/ quotes as a keyword here. BUG??-          -->-        <RegExpr attribute="Normal Text" context="UDLOperator" String="operator\s*&quot;&quot; _[_0-9A-Za-z]*\b" lookAhead="true" />-        <RegExpr attribute="Error" context="#stay" String="operator\s*&quot;&quot; [_0-9A-Za-z]*\b" />-        <!-- Match keywords -->-        <keyword attribute="Control Flow" context="#stay" String="controlflow" />-        <keyword attribute="Keyword" context="#stay" String="keywords" />+        <DetectSpaces/>+        <!-- Match scope regions -->+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />         <!-- Detect attributes -->         <Detect2Chars attribute="Symbol" context="Attribute" char="[" char1="[" />         <!-- Match numbers -->-        <!-- ATTENTION Builtin number detectors have strange behaviour and definitely lack of required features -->-        <!-- NOTE Order is important! -->-        <RegExpr attribute="Hex" context="#stay" String="[\+\-]?0x[0-9A-Fa-f]('?[0-9A-Fa-f]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />-        <RegExpr attribute="Binary" context="#stay" String="0[Bb][01]('?[01]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />-        <Float attribute="Float" context="#stay">-          <AnyChar String="FfLl" attribute="Float" context="#stay"/>-        </Float>-        <RegExpr attribute="Octal" context="#stay" String="[\+\-]?0'?[0-7]('?[0-7]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />-        <RegExpr attribute="Decimal" context="#stay" String="[\+\-]?(0|[1-9]('?[0-9]+)*)([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />-        <RegExpr attribute="Error" context="#stay" String="[\+\-]?(0x?|[1-9][0-9]*)[0-9A-Za-z][_0-9A-Za-z]*\b" />+        <RegExpr attribute="Decimal" context="Number" String="\.?[0-9]" lookAhead="true" />+        <!-- Match comments -->+        <IncludeRules context="match comments and region markers" />+        <!-- Match punctuators -->+        <AnyChar attribute="Separator Symbol" context="#stay" String="&separators;" />+        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />+        <!-- Match keywords -->+        <IncludeRules context="match keywords" />         <!-- Match string literals -->-        <DetectChar attribute="String" context="String" char="&quot;" />-        <Detect2Chars attribute="String" context="String" char="U" char1="&quot;" />-        <Detect2Chars attribute="String" context="String" char="u" char1="&quot;" />-        <Detect2Chars attribute="String" context="String" char="L" char1="&quot;" />-        <StringDetect attribute="String" context="String" String="u8&quot;" />-        <RegExpr attribute="String" context="RawString" String="(u|u8|U|L)?R&quot;([^\(]{0,16})\(" lookAhead="true" />-        <RegExpr attribute="Error" context="#stay" String="(u|u8|U|L)?R&quot;([^\(]{16,})\(" />-        <DetectChar attribute="Char" context="Char Literal" char="'" />-        <Detect2Chars attribute="Char" context="Char Literal" char="L" char1="'" />-        <Detect2Chars attribute="Char" context="U-Char Literal" char="u" char1="'" />-        <Detect2Chars attribute="Char" context="U-Char Literal" char="U" char1="'" />+        <IncludeRules context="match string" />         <!-- Match GCC extensions -->         <IncludeRules context="DetectGccExtensions##GCCExtensions" />         <!-- Match most used namespaces and styles -->@@ -251,120 +306,278 @@         <StringDetect attribute="Internals" context="InternalsNS" String="details::" />         <StringDetect attribute="Internals" context="InternalsNS" String="aux::" />         <StringDetect attribute="Internals" context="InternalsNS" String="internals::" />+        <IncludeRules context="match identifier" />+        <!-- Match preprocessor directives -->+        <RegExpr attribute="Preprocessor" context="AfterHash" String="&ispphash;" lookAhead="true" />+        <!-- Match invalid symbols -->+        <AnyChar attribute="Error" context="#stay" String="$@`" />+      </context>++      <context name="match comments" attribute="Normal Text" lineEndContext="#pop">+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />+      </context>++      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <IncludeRules context="##Doxygen" />+        <Detect2Chars attribute="Comment" context="#pop!Comment 1" char="/" char1="/" />+        <Detect2Chars attribute="Comment" context="#pop!Comment 2" char="/" char1="*" beginRegion="Comment" />+      </context>++      <context name="match comments and region markers" attribute="Normal Text" lineEndContext="#pop">+        <Detect2Chars attribute="Comment" context="MatchCommentAndRegionMarkers" char="/" char1="/" lookAhead="true"/>+        <Detect2Chars attribute="Comment" context="MatchCommentAndRegionMarkers" char="/" char1="*" lookAhead="true" />+      </context>++      <context name="MatchCommentAndRegionMarkers" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />+        <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />+        <IncludeRules context="MatchComment" />+      </context>++      <context name="match keywords" attribute="Normal Text" lineEndContext="#pop">+        <WordDetect attribute="Keyword" context="CheckUDLOperator" String="operator" />+        <keyword attribute="Control Flow" context="#stay" String="controlflow" />+        <keyword attribute="Keyword" context="#stay" String="keywords" />+      </context>++      <context name="match string" attribute="Normal Text" lineEndContext="#pop">+        <DetectChar attribute="String" context="String" char="&quot;" />+        <Detect2Chars attribute="String" context="String32" char="U" char1="&quot;" />+        <Detect2Chars attribute="String" context="String16" char="u" char1="&quot;" />+        <Detect2Chars attribute="String" context="String16" char="L" char1="&quot;" />+        <StringDetect attribute="String" context="String8" String="u8&quot;" />+        <Detect2Chars attribute="String" context="RawString" char="R" char1="&quot;" />+        <StringDetect attribute="String" context="RawString" String="uR&quot;" />+        <StringDetect attribute="String" context="RawString" String="UR&quot;" />+        <StringDetect attribute="String" context="RawString" String="LR&quot;" />+        <StringDetect attribute="String" context="RawString" String="u8R&quot;" />+        <DetectChar attribute="Char" context="Char8 Literal" char="'" />+        <Detect2Chars attribute="Char" context="Char16 Literal" char="L" char1="'" />+        <Detect2Chars attribute="Char" context="Char16 Literal" char="u" char1="'" />+        <Detect2Chars attribute="Char" context="Char32 Literal" char="U" char1="'" />+        <StringDetect attribute="Char" context="Char8 Literal" String="u8'" />+      </context>++      <context name="match identifier" attribute="Normal Text" lineEndContext="#pop">         <keyword attribute="Data Type" context="#stay" String="types" />         <keyword attribute="Type Modifiers" context="#stay" String="modifiers" />         <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />-        <RegExpr attribute="Internals" context="#stay" String="_[a-zA-Z0-9_]+" />-        <RegExpr attribute="Internals" context="#stay" String="[a-zA-Z][a-zA-Z0-9_]*__\b" />-        <RegExpr attribute="Data Members (m_*)" context="#stay" String="[a-z][a-zA-Z0-9_]*_\b" />-        <RegExpr attribute="Data Members (m_*)" context="#stay" String="m_[a-zA-Z0-9_]+" />+        <RegExpr attribute="Internals" context="#stay" String="_[a-zA-Z0-9_]+|[a-zA-Z][a-zA-Z0-9_]*__\b" />+        <RegExpr attribute="Data Members (m_*)" context="#stay" String="m_[a-zA-Z0-9_]+|[a-z][a-zA-Z0-9_]*_\b" />         <RegExpr attribute="Globals (g_*)" context="#stay" String="g_[a-zA-Z0-9_]+" />         <RegExpr attribute="Statics (s_*)" context="#stay" String="s_[a-zA-Z0-9_]+" />         <RegExpr attribute="CONSTS/MACROS" context="#stay" String="[A-Z][A-Z0-9_]{2,}\b" />         <RegExpr attribute="Types (*_t/*_type)" context="#stay" String="[a-zA-Z][a-zA-Z0-9_]*_t(ype)?\b" />         <DetectIdentifier />-        <!-- Match comments -->-        <IncludeRules context="##Doxygen" />-        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />-        <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />-        <!-- Match scope regions -->-        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />-        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />-        <!-- Match punctuators -->-        <AnyChar attribute="Separator Symbol" context="#stay" String="&separators;" />-        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />-        <!-- Match invalid symbols -->-        <DetectChar attribute="Error" context="#stay" char="#" />-        <DetectChar attribute="Error" context="#stay" char="$" />-        <DetectChar attribute="Error" context="#stay" char="@" />-        <DetectChar attribute="Error" context="#stay" char="`" />       </context> -      <context name="UDLOperator" attribute="Normal Text" lineEndContext="#pop">-        <StringDetect attribute="Keyword" context="#stay" String="operator" />-        <StringDetect attribute="String" context="#stay" String="&quot;&quot;" />-        <DetectIdentifier context="#pop" />+      <context name="Number" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <RegExpr attribute="Float" context="FloatSuffix" String="\.&int;&exp_float;?|&int;(?:&exp_float;|\.&int;?&exp_float;?)|0[xX](?:\.&hex_int;&exp_hexfloat;?|&hex_int;(?:&exp_hexfloat;|\.&hex_int;?&exp_hexfloat;?))" />+        <IncludeRules context="Integer" />       </context> -      <context name="Char Literal" attribute="Char" lineEndContext="#pop">-        <IncludeRules context="Universal Char" />-        <DetectChar attribute="String Char" context="Simple Esc" char="\" />-        <DetectChar attribute="Char" context="#pop" char="'" />+      <context name="Integer" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <RegExpr attribute="Hex" context="IntSuffix" String="0[xX]&hex_int;" />+        <RegExpr attribute="Binary" context="IntSuffix" String="0[Bb][01](?:'?[01]+)*" />+        <RegExpr attribute="Octal" context="IntSuffix" String="0(?:'?[0-7]+)+" />+        <RegExpr attribute="Decimal" context="IntSuffix" String="0(?![xXbB0-9])|[1-9](?:'?[0-9]+)*" />+        <RegExpr attribute="Error" context="#pop" String="[._0-9A-Za-z']+" />       </context> -      <context name="U-Char Literal" attribute="Char" lineEndContext="#pop">-        <IncludeRules context="Universal Char" />-        <DetectChar attribute="String Char" context="Simple Esc" char="\" />-        <DetectChar attribute="Char" context="#pop" char="'" />-        <RegExpr attribute="Error" context="#stay" String="[^']{2,}" />-        <RegExpr attribute="Char" context="#stay" String=".{1}" />+      <context name="IntSuffix" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">+        <DetectChar attribute="Error" context="#stay" char="'" />+        <AnyChar attribute="Error" context="#pop!IntSuffixPattern" String="uUlLimunshyd_" lookAhead="true" />       </context> -      <context  name="Simple Esc" attribute="String Char" lineEndContext="#pop">-        <AnyChar attribute="String Char" context="#pop" String="tnvbrfa'&quot;\" />-        <RegExpr attribute="String Char" context="#pop" String="[0-7]{1,3}" />-        <RegExpr attribute="String Char" context="#pop" String="x[0-9A-Fa-f]{1,}" />-        <RegExpr attribute="String" context="#pop" String="." />+      <context name="IntSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">+        <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="[Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?" />+        <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library -->+        <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|[hyd])\b" />+        <DetectChar attribute="Error" context="#pop!NumericUserSuffixPattern" char="_" lookAhead="true" />       </context> -      <context name="Universal Char" attribute="String Char" lineEndContext="#pop">-        <RegExpr attribute="String Char" context="#stay" String="\\u[0-9A-Fa-f]{4}" />-        <RegExpr attribute="Error" context="#stay" String="\\u.{0,3}" />-        <RegExpr attribute="String Char" context="#stay" String="\\U[0-9A-Fa-f]{8}" />-        <RegExpr attribute="Error" context="#stay" String="\\U.{0,7}" />+      <context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">+        <AnyChar attribute="Standard Suffix" context="NumericSuffixError" String="fFlL" />+        <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library -->+        <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|h)\b" />+        <DetectChar attribute="Error" context="#pop!NumericUserSuffixPattern" char="_" lookAhead="true" />       </context> +      <context name="NumericUserSuffixPattern" attribute="Error" lineEndContext="#pop#pop">+        <!--+        http://en.cppreference.com/w/cpp/language/user_literal#Notes+        Due to maximal munch, user-defined integer and floating point literals ending in+        p, P, (since C++17) e and E, when followed by the operators + or -,+        must be separated from the operator with whitespace or parentheses in the source+        -->+        <RegExpr attribute="Error" context="#pop#pop" String="_[eEpP][+-]" />+        <RegExpr attribute="UDL Numeric Suffix" context="NumericSuffixError" String="_[_[:alnum:]]*" />+      </context>++      <context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="true" fallthroughContext="#pop#pop#pop">+        <RegExpr attribute="Error" context="#pop#pop#pop" String="\.[_0-9A-Za-z]*|[_0-9A-Za-z]+" />+      </context>++      <context name="CheckUDLOperator" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <DetectSpaces />+        <Detect2Chars attribute="String" context="UDLOperatorName" char="&quot;" char1="&quot;" />+      </context>++      <context name="UDLOperatorName" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!IdentifierError">+        <DetectSpaces />+        <RegExpr attribute="Normal Text" context="#pop#pop" String="_[_[:alnum:]]*\b" />+      </context>++      <context name="IdentifierError" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">+        <RegExpr attribute="Error" context="#pop#pop" String=".[^\s()]*" />+      </context>+++      <context name="Char8 Literal" attribute="Char" lineEndContext="#pop" fallthrough="true" fallthroughContext="Char Literal Close">+        <RegExpr attribute="String Char" context="Char Literal Close" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})" />+        <DetectChar attribute="Error" context="#pop" char="'" />+        <RegExpr attribute="Char" context="Char Literal Close" String="." />+      </context>++      <context name="Char16 Literal" attribute="Char" lineEndContext="#pop" fallthrough="true" fallthroughContext="Char Literal Close">+        <RegExpr attribute="String Char" context="Char Literal Close" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4})" />+        <DetectChar attribute="Error" context="#pop" char="'" />+        <RegExpr attribute="Char" context="Char Literal Close" String="." />+      </context>++      <context name="Char32 Literal" attribute="Char" lineEndContext="#pop" fallthrough="true" fallthroughContext="Char Literal Close">+        <RegExpr attribute="String Char" context="Char Literal Close" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,8}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})" />+        <DetectChar attribute="Error" context="#pop" char="'" />+        <RegExpr attribute="Char" context="Char Literal Close" String="." />+      </context>++      <context name="Char Literal Close" attribute="Error" lineEndContext="#pop#pop">+        <DetectChar attribute="Char" context="#pop#pop" char="'" />+      </context>++       <context name="String" attribute="String" lineEndContext="#pop">+        <IncludeRules context="string normal char" />+        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,8}" />+        <IncludeRules context="string special char" />+      </context>++      <context name="String8" attribute="String" lineEndContext="#pop">+        <IncludeRules context="string normal char" />+        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,2}" />+        <IncludeRules context="string special char" />+      </context>++      <context name="String16" attribute="String" lineEndContext="#pop">+        <IncludeRules context="string normal char" />+        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,4}" />+        <IncludeRules context="string special char" />+      </context>++      <context name="String32" attribute="String" lineEndContext="#pop">+        <IncludeRules context="string normal char" />+        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,8}" />+        <IncludeRules context="string special char" />+      </context>++      <context name="StringNoHex" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <RegExpr attribute="Error" context="#pop" String="[0-9A-Fa-f]{1,}" />+      </context>++      <context name="string special char" attribute="String" lineEndContext="#pop">+        <RegExpr attribute="String Char" context="#stay" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|&printf_like;" />+        <RegExpr attribute="Error" context="#stay" String="\\(?:u[^&quot;]{0,3}|U[^&quot;]{0,7}|.)" />         <LineContinue attribute="String" context="#stay" />-        <HlCStringChar attribute="String Char" context="#stay" />-        <IncludeRules context="Universal Char" />-        <RegExpr attribute="String Char" context="#stay" String="%[^&quot;&convspec;\s]*[&convspec;]" />+      </context>++      <context name="string normal char" attribute="String" lineEndContext="#pop">+        <!-- fast way, can be replaced by a `UntilChars` rule if it exists -->+        <RegExpr attribute="String" context="#stay" String="[^%\\&quot;]+" />         <DetectChar attribute="String" context="UDLStringSuffix" char="&quot;" />       </context>        <context name="UDLStringSuffix" attribute="String" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">-        <!-- Standard UDL is not matched. BUG?? -->-        <RegExpr attribute="String" context="#pop#pop" String="_[_0-9A-Za-z]*\b" />+        <WordDetect attribute="Standard Classes" context="#pop#pop" String="sv" />+        <WordDetect attribute="Standard Classes" context="#pop#pop" String="s" />+        <RegExpr attribute="UDL String Suffix" context="#pop#pop" String="_[_0-9A-Za-z]*\b" />       </context> +       <context name="Attribute" attribute="Attribute" lineEndContext="#stay">         <keyword attribute="Standard Attribute" context="#stay" String="attributes" />         <Detect2Chars attribute="Symbol" context="#pop" char="]" char1="]" />-        <AnyChar context="#stay" String="&ns_punctuators;" attribute="Symbol" />+        <DetectChar attribute="Separator Symbol" context="#stay" char="," />+        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />         <!-- Attributes may contain some text: [[deprecated("Reason text")]] -->         <DetectChar attribute="String" context="String" char="&quot;" />+        <AnyChar attribute="Decimal" context="Integer" String="0123456789" lookAhead="true" />+        <keyword attribute="Keyword" context="AttributeNamespace" String="using" />+        <IncludeRules context="DetectGccAttributes##GCCExtensions" />+        <RegExpr attribute="CONSTS/MACROS" context="#stay" String="[A-Z][A-Z0-9_]{2,}\b" />+        <DetectIdentifier />       </context> -      <context name="RawString" attribute="String" lineEndContext="#stay" dynamic="true">-        <LineContinue attribute="String" context="#stay" />-        <RegExpr attribute="String Char" context="#stay" String="%[^&quot;&convspec;\s]*[&convspec;]" />-        <RegExpr attribute="String" context="#pop" String="\)%2&quot;" dynamic="true"/>+      <context name="Attribute In PP" attribute="Attribute" lineEndContext="#pop">+        <IncludeRules context="InPreprocessor" />+        <IncludeRules context="Attribute" />       </context> +      <context name="AttributeNamespace" attribute="Attribute" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">+        <DetectSpaces />+        <IncludeRules context="DetectNamespaceGccAttributes##GCCExtensions" />+        <DetectIdentifier />+      </context>++      <context name="RawString" attribute="String" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!LineError">+        <RegExpr attribute="String" context="#pop!InRawString" String="([^\(]{0,16})\(" />+      </context>++      <context name="InRawString" attribute="String" lineEndContext="#stay" dynamic="true">+        <!-- fast way, can be replaced by a `UntilChars` rule if it exists -->+        <RegExpr attribute="String" context="#stay" String="[^%)]+" />+        <RegExpr attribute="String Char" context="#stay" String="&printf_like;" />+        <StringDetect attribute="String" context="#pop" String=")%1&quot;" dynamic="true"/>+      </context>+       <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop" /> -      <context name="DetectNSEnd" attribute="Normal Text" lineEndContext="#pop">+      <context name="DetectNSEnd" attribute="Normal Text" lineEndContext="#stay">         <keyword attribute="Keyword" context="#stay" String="template" />         <DetectIdentifier context="#stay" />-        <AnyChar context="#pop" String="&separators;" attribute="Separator Symbol" />-        <AnyChar context="#pop" String="&ns_punctuators;" attribute="Symbol" />-        <AnyChar context="#stay" String="&space;" attribute="Normal Text" />+        <AnyChar attribute="Separator Symbol" context="#pop" String="&separators;" />+        <AnyChar attribute="Symbol" context="#pop" String="&ns_punctuators; &#9;" />       </context> -      <context name="Standard Classes" attribute="Standard Classes" lineEndContext="#pop">+      <context name="Standard Classes" attribute="Standard Classes" lineEndContext="#stay">         <IncludeRules context="DetectNSEnd" />       </context> -      <context name="Boost Stuff" attribute="Boost Stuff" lineEndContext="#pop">+      <context name="Boost Stuff" attribute="Boost Stuff" lineEndContext="#stay">         <IncludeRules context="DetectNSEnd" />       </context> -      <context name="InternalsNS" attribute="Internals" lineEndContext="#pop">+      <context name="InternalsNS" attribute="Internals" lineEndContext="#stay">         <IncludeRules context="DetectNSEnd" />       </context> +      <context name="Standard Classes In PP" attribute="Standard Classes" lineEndContext="#pop">+        <IncludeRules context="InPreprocessor" />+        <IncludeRules context="DetectNSEnd" />+      </context>++      <context name="Boost Stuff In PP" attribute="Boost Stuff" lineEndContext="#pop">+        <IncludeRules context="InPreprocessor" />+        <IncludeRules context="DetectNSEnd" />+      </context>++      <context name="InternalsNS In PP" attribute="Internals" lineEndContext="#pop">+        <IncludeRules context="InPreprocessor" />+        <IncludeRules context="DetectNSEnd" />+      </context>+       <context name="Comment 1" attribute="Comment" lineEndContext="#pop">-        <LineContinue attribute="Comment" context="#stay" />+        <LineContinue attribute="Error" context="#stay" />         <DetectSpaces />         <IncludeRules context="##Alerts" />         <IncludeRules context="##Modelines" />@@ -380,128 +593,225 @@         <DetectIdentifier />       </context> -      <context name="AfterHash" attribute="Error" lineEndContext="#pop">-        <RegExpr attribute="Preprocessor" context="Include" String="#\s*(?:include|include_next)" insensitive="true" firstNonSpace="true" />+      <context name="AfterHash" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHashLineError">+        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorCmd" String="&pphash;(?=.)" firstNonSpace="true" />+      </context> -        <!-- define, elif, else, endif, error, if, ifdef, ifndef, line, pragma, undef, warning -->-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s*if(?:def|ndef)?(?=(?:\(|\s+)\S)" beginRegion="PP" firstNonSpace="true" insensitive="false" />-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />-        <!-- Switch to seperate context for multiline #defines -->-        <RegExpr attribute="Preprocessor" context="Define" String="(#|%\:|\?\?=)\s*(cmake)?define.*((?=\\))" firstNonSpace="true" lookAhead="true" insensitive="false" />-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s*(?:el(?:se|if)|(cmake)?define|undef|line|error|warning|pragma)" insensitive="false" firstNonSpace="true" />-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s+[0-9]+" firstNonSpace="true" insensitive="false" />+      <context name="AfterHashLineError" attribute="Region Marker" lineEndContext="#pop">+        <LineContinue attribute="Error" context="#stay" />+        <RegExpr attribute="Error" context="#pop!LineError" String="[^\\]+" />+        <!-- for auto-completion in Kate editor -->+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorInclude" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorIfDef" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorIf" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorElseIf" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorElse" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorEndIf" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorOther" />+        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorDefine" />       </context> -      <context attribute="Preprocessor" lineEndContext="#pop" name="Include">-        <LineContinue attribute="Preprocessor" context="#stay"/>-        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>-        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>+      <context name="LineError" attribute="Error" lineEndContext="#pop">+        <LineContinue attribute="Error" context="#stay" />+      </context>++      <context name="PreprocessorCmd" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHashLineError">+        <keyword attribute="Preprocessor" context="#pop!Include" String="preprocessorInclude" />+        <keyword attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="preprocessorIfDef" beginRegion="PP" lookAhead="true" />+        <keyword attribute="Preprocessor" context="#pop!PreprocessorIf" String="preprocessorIf" beginRegion="PP" lookAhead="true" />+        <keyword attribute="Preprocessor" context="#pop!PreprocessorIf" String="preprocessorElseIf" endRegion="PP" beginRegion="PP" lookAhead="true" />+        <keyword attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="preprocessorElse" endRegion="PP" beginRegion="PP" />+        <keyword attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="preprocessorEndIf" endRegion="PP" />+        <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessorOther" />+        <keyword attribute="Preprocessor" context="#pop!Define" String="preprocessorDefine" />+        <!-- GCC extension -->+        <WordDetect attribute="Preprocessor" context="#pop!Include" String="include_next" />+        <RegExpr attribute="Preprocessor" context="#pop!Preprocessor" String="[0-9]+" />+      </context>++      <context name="Include" attribute="Preprocessor" lineEndContext="#pop" >+        <LineContinue attribute="Preprocessor" context="#stay" />+        <RangeDetect attribute="Prep. Lib" context="PreprocessorEndOfLineSpace" char="&quot;" char1="&quot;" />+        <RangeDetect attribute="Prep. Lib" context="PreprocessorEndOfLineSpace" char="&lt;" char1="&gt;" />         <IncludeRules context="Preprocessor" />       </context> +      <context name="PreprocessorIfDef" attribute="Preprocessor" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!LineError">+        <RegExpr attribute="Preprocessor" context="#pop!Preprocessor" String="\w+\s+([_A-Za-z][A-Za-z0-9]*\s*|(?=//|/\*))" />+      </context>++      <context name="PreprocessorIf" attribute="Preprocessor" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!LineError">+        <RegExpr attribute="Preprocessor" context="#pop!Inscoped" String="\w+&ppcond1;" />+        <RegExpr attribute="Preprocessor" context="#pop!Outscoped" String="\w+&ppcond0;" />+        <RegExpr attribute="Preprocessor" context="#pop!Preprocessor" String="\w+\s+(?=[^\s])" />+      </context>++      <context name="PreprocessorEndOfLineSpace" attribute="Preprocessor" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop!LineError">+        <DetectSpaces />+        <IncludeRules context="match comments" />+      </context>+       <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop">         <LineContinue attribute="Preprocessor" context="#stay" />         <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />         <IncludeRules context="GNUMacros##GCCExtensions" />-        <IncludeRules context="##Doxygen" />-        <Detect2Chars attribute="Comment" context="Comment/Preprocessor" char="/" char1="*" beginRegion="Comment2" />-        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />+        <IncludeRules context="match comments" />       </context>        <context name="Define" attribute="Preprocessor" lineEndContext="#pop">-        <LineContinue attribute="Separator Symbol" context="#stay" />-        <DetectChar attribute="Error" context="#stay" char="\" />+        <DetectSpaces/>+        <!--+        Old version: non-contextual macro+        <IncludeRules context="InPreprocessor" />         <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />+        <keyword attribute="Standard Macros" context="#stay" String="InMacro" />         <IncludeRules context="GNUMacros##GCCExtensions" />+        <IncludeRules context="match comments" />+        -->++        <IncludeRules context="InPreprocessor" />+        <Detect2Chars attribute="Error" context="#pop!LineError" char="/" char1="/" />+        <IncludeRules context="##Doxygen" />+        <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />+        <IncludeRules context="GNUMacros##GCCExtensions" />+        <DetectIdentifier attribute="Preprocessor" context="#pop!In Define"/>       </context> -      <context name="Comment/Preprocessor" attribute="Comment" lineEndContext="#stay">-        <DetectSpaces />-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />-        <DetectIdentifier />+      <context name="In Define" attribute="Preprocessor" lineEndContext="#pop">+        <DetectSpaces/>+        <IncludeRules context="InPreprocessor" />+        <!-- Match scope regions -->+        <AnyChar attribute="Symbol" context="#stay" String="{}" />+        <!-- Detect attributes -->+        <Detect2Chars attribute="Symbol" context="Attribute In PP" char="[" char1="[" />+        <!-- Match numbers -->+        <RegExpr attribute="Decimal" context="Number" String="\.?[0-9]" lookAhead="true" />+        <!-- Match comments -->+        <IncludeRules context="match comments" />+        <!-- Match punctuators -->+        <AnyChar attribute="Separator Symbol" context="#stay" String="&separators;" />+        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />+        <!-- Match keywords -->+        <IncludeRules context="match keywords" />+        <!-- Match string literals -->+        <IncludeRules context="match string" />+        <!-- Match GCC extensions -->+        <IncludeRules context="DetectGccExtensionsInPP##GCCExtensions" />+        <!-- Match most used namespaces and styles -->+        <StringDetect attribute="Standard Classes" context="Standard Classes In PP" String="std::" />+        <StringDetect attribute="Boost Stuff" context="Boost Stuff In PP" String="boost::" />+        <StringDetect attribute="Boost Stuff" context="Boost Stuff In PP" String="BOOST_" />+        <StringDetect attribute="Internals" context="InternalsNS In PP" String="detail::" />+        <StringDetect attribute="Internals" context="InternalsNS In PP" String="details::" />+        <StringDetect attribute="Internals" context="InternalsNS In PP" String="aux::" />+        <StringDetect attribute="Internals" context="InternalsNS In PP" String="internals::" />+        <keyword attribute="Standard Macros" context="#stay" String="InMacro" />+        <IncludeRules context="match identifier" />+        <!-- Match preprocessor directives -->+        <DetectChar attribute="Preprocessor" context="#stay" char="#" />+        <!-- Match invalid symbols -->+        <AnyChar attribute="Error" context="#stay" String="$@`" />       </context> +      <context name="InPreprocessor" attribute="Normal Text" lineEndContext="#pop">+        <LineContinue attribute="Separator Symbol" context="#stay" />+        <DetectChar attribute="Error" context="#stay" char="\" />+      </context>+       <context name="Outscoped Common" attribute="Comment" lineEndContext="#stay">         <DetectSpaces />         <IncludeRules context="##Alerts" />         <IncludeRules context="##Modelines" />         <DetectIdentifier />-        <IncludeRules context="##Doxygen" />-        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />-        <!-- Do not try to detect "C" style comments inside outscoped text-             to prevent incorrect highlighting in case of overlapped (or not closed properly)-             comment block...--             <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />-        -->-        <RegExpr attribute="Comment" context="Outscoped intern" String="(#|%\:|\?\?=)\s*if" beginRegion="PP" firstNonSpace="true" insensitive="false" />+        <!-- prevent incorrect highlighting in case of not closed properly comment block -->+        <Detect2Chars attribute="Comment" context="#stay" char="*" char1="/" />+        <IncludeRules context="match comments" />+        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if" beginRegion="PP" firstNonSpace="true" />         <LineContinue context="#stay" />       </context>        <context name="Outscoped" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces />+        <RegExpr attribute="Preprocessor" context="Outscoped AfterHash" String="&ispphash;" firstNonSpace="true" lookAhead="true" />         <IncludeRules context="Outscoped Common" />-        <RegExpr attribute="Preprocessor" context="#pop" String="(#|%\:|\?\?=)\s*el(?:se|if)" firstNonSpace="true" insensitive="false" />-        <RegExpr attribute="Preprocessor" context="#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />       </context> +      <context name="Outscoped AfterHash" attribute="Comment" lineEndContext="#pop">+        <RegExpr attribute="Preprocessor" context="#pop#pop!PreprocessorEndOfLineSpace" String="&pphash;endif\b" endRegion="PP" />+        <RegExpr attribute="Preprocessor" context="#pop#pop!Inscoped"          String="&pphash;else\b" endRegion="PP" beginRegion="PP" />+        <RegExpr attribute="Comment" context="#pop!Outscoped intern"           String="&pphash;if" beginRegion="PP" />+        <RegExpr attribute="Preprocessor" context="#pop#pop!Inscoped"          String="&pphash;elif&ppcond1;" endRegion="PP" beginRegion="PP" />+        <RegExpr attribute="Preprocessor" context="#pop"                       String="&pphash;elif&ppcond0;" endRegion="PP" beginRegion="PP" />+        <RegExpr attribute="Preprocessor" context="#pop#pop!Preprocessor"      String="&pphash;elif\b" endRegion="PP" beginRegion="PP" />+        <RegExpr attribute="Comment" context="#pop"                            String="&pphash;" />+      </context>+       <context name="Outscoped 2" attribute="Comment" lineEndContext="#stay">         <IncludeRules context="Outscoped Common" />-        <RegExpr attribute="Preprocessor" context="#pop#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />+        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorEndOfLineSpace" String="&pphash;endif" endRegion="PP" firstNonSpace="true" />       </context>        <context name="Inscoped" attribute="Normal Text" lineEndContext="#stay">         <DetectSpaces />-        <RegExpr attribute="Preprocessor" context="Outscoped" String="(#|%\:|\?\?=)\s*if\s+(0|false)\s*" beginRegion="PP" firstNonSpace="true" insensitive="false" />-        <RegExpr attribute="Preprocessor" context="Outscoped 2" String="(#|%\:|\?\?=)\s*el(?:se|if)" firstNonSpace="true" insensitive="false" />-        <RegExpr attribute="Preprocessor" context="#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />+        <RegExpr attribute="Preprocessor" context="Inscoped AfterHash" String="&ispphash;" firstNonSpace="true" lookAhead="true" />         <IncludeRules context="Main" />       </context> +      <context name="Inscoped AfterHash" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHash">+        <DetectSpaces />+        <RegExpr attribute="Preprocessor" context="#pop!Outscoped 2" String="&pphash;el(?:se|if)" endRegion="PP" beginRegion="PP"/>+        <RegExpr attribute="Preprocessor" context="#pop#pop!PreprocessorEndOfLineSpace" String="&pphash;endif\b" endRegion="PP" />+      </context>+       <context name="Outscoped intern" attribute="Comment" lineEndContext="#stay">         <DetectSpaces />         <IncludeRules context="##Alerts" />         <IncludeRules context="##Modelines" />         <DetectIdentifier />-        <IncludeRules context="##Doxygen" />-        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />-        <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />-        <RegExpr attribute="Comment" context="Outscoped intern" String="(#|%\:|\?\?=)\s*if" beginRegion="PP" firstNonSpace="true" insensitive="false" />-        <RegExpr attribute="Comment" context="#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />+        <!-- prevent incorrect highlighting in case of not closed properly comment block -->+        <Detect2Chars attribute="Comment" context="#stay" char="*" char1="/" />+        <IncludeRules context="match comments" />+        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if" beginRegion="PP" firstNonSpace="true" />+        <RegExpr attribute="Comment" context="#stay" String="&pphash;el(se|if)" beginRegion="PP" endRegion="PP" firstNonSpace="true" />+        <RegExpr attribute="Comment" context="PreprocessorEndOfLineSpace" String="&pphash;endif" endRegion="PP" firstNonSpace="true" />       </context>     </contexts>      <itemDatas>-      <itemData name="Normal Text"        defStyleNum="dsNormal"   spellChecking="false" />+      <itemData name="Normal Text"        defStyleNum="dsNormal"    spellChecking="false" />       <itemData name="Control Flow"       defStyleNum="dsControlFlow" spellChecking="false" />-      <itemData name="Keyword"            defStyleNum="dsKeyword"  spellChecking="false" />-      <itemData name="Data Type"          defStyleNum="dsDataType" spellChecking="false" />+      <itemData name="Keyword"            defStyleNum="dsKeyword"   spellChecking="false" />+      <itemData name="Data Type"          defStyleNum="dsDataType"  spellChecking="false" />       <itemData name="Type Modifiers"     defStyleNum="dsAttribute" spellChecking="false" />       <itemData name="Attribute"          defStyleNum="dsAttribute" spellChecking="false" bold="false" italic="true" />       <itemData name="Standard Attribute" defStyleNum="dsAttribute" spellChecking="false" bold="false" italic="true" />-      <itemData name="Decimal"            defStyleNum="dsDecVal"   spellChecking="false" />-      <itemData name="Octal"              defStyleNum="dsBaseN"    spellChecking="false" />-      <itemData name="Hex"                defStyleNum="dsBaseN"    spellChecking="false" />-      <itemData name="Binary"             defStyleNum="dsBaseN"    spellChecking="false" />-      <itemData name="Float"              defStyleNum="dsFloat"    spellChecking="false" />-      <itemData name="Char"               defStyleNum="dsChar"     spellChecking="false" />-      <itemData name="String"             defStyleNum="dsString"   spellChecking="true"  />+      <itemData name="Decimal"            defStyleNum="dsDecVal"    spellChecking="false" />+      <itemData name="Octal"              defStyleNum="dsBaseN"     spellChecking="false" />+      <itemData name="Hex"                defStyleNum="dsBaseN"     spellChecking="false" />+      <itemData name="Binary"             defStyleNum="dsBaseN"     spellChecking="false" />+      <itemData name="Float"              defStyleNum="dsFloat"     spellChecking="false" />+      <itemData name="Char"               defStyleNum="dsChar"      spellChecking="false" />+      <itemData name="String"             defStyleNum="dsString"    spellChecking="true"  />       <itemData name="String Char"        defStyleNum="dsSpecialChar" spellChecking="false" />-      <itemData name="Comment"            defStyleNum="dsComment"  spellChecking="true"  />-      <itemData name="Symbol"             defStyleNum="dsNormal"   spellChecking="false" />-      <itemData name="Separator Symbol"   defStyleNum="dsNormal"   spellChecking="false" />-      <itemData name="Data Members (m_*)" defStyleNum="dsVariable" spellChecking="false" />-      <itemData name="Globals (g_*)"      defStyleNum="dsVariable" spellChecking="false" />-      <itemData name="Statics (s_*)"      defStyleNum="dsVariable" spellChecking="false" />-      <itemData name="Types (*_t/*_type)" defStyleNum="dsDataType" spellChecking="false" />-      <itemData name="CONSTS/MACROS"      defStyleNum="dsNormal"   spellChecking="false" />+      <itemData name="Comment"            defStyleNum="dsComment"   spellChecking="true"  />+      <itemData name="Symbol"             defStyleNum="dsNormal"    spellChecking="false" />+      <itemData name="Separator Symbol"   defStyleNum="dsNormal"    spellChecking="false" />+      <itemData name="Data Members (m_*)" defStyleNum="dsVariable"  spellChecking="false" />+      <itemData name="Globals (g_*)"      defStyleNum="dsVariable"  spellChecking="false" />+      <itemData name="Statics (s_*)"      defStyleNum="dsVariable"  spellChecking="false" />+      <itemData name="Types (*_t/*_type)" defStyleNum="dsDataType"  spellChecking="false" />+      <itemData name="CONSTS/MACROS"      defStyleNum="dsNormal"    spellChecking="false" />       <itemData name="Preprocessor"       defStyleNum="dsPreprocessor" spellChecking="false" />-      <itemData name="Prep. Lib"          defStyleNum="dsImport"   spellChecking="false" />-      <itemData name="Standard Macros"    defStyleNum="dsOthers"   spellChecking="false" />-      <itemData name="Standard Classes"   defStyleNum="dsBuiltIn"  spellChecking="false" />+      <itemData name="Prep. Lib"          defStyleNum="dsImport"    spellChecking="false" />+      <itemData name="Standard Macros"    defStyleNum="dsOthers"    spellChecking="false" />+      <itemData name="Standard Classes"   defStyleNum="dsBuiltIn"   spellChecking="false" />       <itemData name="Boost Stuff"        defStyleNum="dsExtension" spellChecking="false" />-      <itemData name="Internals"          defStyleNum="dsNormal"   spellChecking="false" color="#808080" selColor="#808080" />+      <itemData name="Internals"          defStyleNum="dsNormal"    spellChecking="false" color="#808080" selColor="#808080" />       <itemData name="Region Marker"      defStyleNum="dsRegionMarker" spellChecking="false" />-      <itemData name="Error"              defStyleNum="dsError"    spellChecking="false" />+      <itemData name="UDL Numeric Suffix" defStyleNum="dsDecVal"    spellChecking="false" />+      <itemData name="UDL String Suffix"  defStyleNum="dsString"    spellChecking="false" />+      <itemData name="Standard Suffix"    defStyleNum="dsBuiltIn"   spellChecking="false" />+      <itemData name="Error"              defStyleNum="dsError"     spellChecking="false" />     </itemDatas>   </highlighting>   <general>@@ -509,7 +819,7 @@       <comment name="singleLine" start="//" />       <comment name="multiLine" start="/*" end="*/" region="Comment" />     </comments>-    <keywords casesensitive="1" />+    <keywords casesensitive="1" additionalDeliminator="#&quot;" />   </general> </language> <!-- kate: indent-width 2; tab-width 2; -->
xml/java.xml view
@@ -1,6 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?>-<!DOCTYPE language SYSTEM "language.dtd">-<language name="Java" version="3" kateversion="5.0" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">+<!DOCTYPE language SYSTEM "language.dtd"+[+	<!ENTITY int "[0-9]([0-9_]*[0-9])?">+	<!ENTITY hex "[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?">+]>+<language name="Java" version="5" kateversion="5.0" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)"> 	<highlighting> 		<list name="java15"> 			<item>ACTIVE</item>@@ -3760,14 +3764,13 @@ 				<keyword attribute="Keyword" context="#stay" String="keywords"/> 				<keyword attribute="Data Type" context="#stay" String="types"/> 				<keyword attribute="Java15" context="#stay" String="java15"/>-				<Float attribute="Float" context="#stay">-					<AnyChar String="fF" attribute="Float" context="#stay"/>-				</Float>-				<HlCOct attribute="Octal" context="#stay"/>-				<HlCHex attribute="Hex" context="#stay"/>-				<Int attribute="Decimal" context="#stay">-					<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-				</Int>+				<RegExpr attribute="Float" context="#stay" String="(\b&int;\.?|(\b&int;)?\.&int;)([eE][\-\+]?&int;[fFdD]?|[fFdD])\b"/>+				<RegExpr attribute="Float" context="#stay" String="(\b&int;\.|(\b&int;)?\.&int;\b)"/>+				<RegExpr attribute="Float" context="#stay" String="\b0[xX](&hex;\.?|(&hex;)?\.&hex;)[pP][\-\+]?&int;[fFdD]?\b"/>+				<RegExpr attribute="Hex" context="#stay" String="\b0[xX]&hex;[lL]?\b"/>+				<RegExpr attribute="Binary" context="#stay" String="\b0[bB][01]([01_]*[01])?[lL]?\b"/>+				<RegExpr attribute="Octal" context="#stay" String="\b0[0-7]([0-7_]*[0-7])?[lL]?\b"/>+				<RegExpr attribute="Decimal" context="#stay" String="\b(0|[1-9]([0-9_]*[0-9])?)[lL]?\b"/> 				<HlCChar attribute="Char" context="#stay"/> 				<RegExpr attribute="Char" context="#stay" String="'\\u[0-9a-fA-F]{4}'"/> 				<RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>@@ -3822,9 +3825,12 @@ 			<context attribute="Normal Text" lineEndContext="#pop" name="Imports"> 				<RegExpr attribute="Imports" context="#pop" String="\s*.*;" /> 			</context>-			<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>+			<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">+				<IncludeRules context="##Alerts"/>+			</context> 			<context attribute="Comment" lineEndContext="#stay" name="Commentar 2"> 				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>+				<IncludeRules context="##Alerts"/> 			</context> 		</contexts> 		<itemDatas>@@ -3838,6 +3844,7 @@ 			<itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/> 			<itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/> 			<itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Binary"       defStyleNum="dsBaseN" spellChecking="false"/> 			<itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/> 			<itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/> 			<itemData name="String"       defStyleNum="dsString"/>
xml/javadoc.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Javadoc" version="2" kateversion="2.4" section="Markup" extensions="" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">+<language name="Javadoc" version="3" kateversion="5.0" section="Markup" extensions="" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)"> 	<highlighting> 		<contexts> 			<context name="Start" attribute="Normal Text" lineEndContext="#stay">@@ -29,6 +29,7 @@ 				<StringDetect attribute="InlineTag" context="#stay" String="{@value}" /> 				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value " /> 				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value&#009;" />+				<IncludeRules context="##Alerts"/> 				<IncludeRules context="##HTML"/> 			</context> 			<context attribute="Javadoc" lineEndContext="#stay" name="Javadocar">@@ -71,12 +72,14 @@ 				<StringDetect attribute="InlineTag" context="#stay" String="{@value}" /> 				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value " /> 				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value&#009;" />+				<IncludeRules context="##Alerts"/> 				<IncludeRules context="##HTML"/> 			</context> 			<context attribute="Javadoc" lineEndContext="#pop" name="JavadocParam"> 				<DetectSpaces /> 				<RegExpr attribute="JavadocParam" context="#pop#pop" String="\S*(?=\*/)" /> 				<RegExpr attribute="JavadocParam" context="#pop" String="\S*(\s|$)" />+				<IncludeRules context="##Alerts"/> 			</context> 			<context attribute="InlineTag" name="InlineTagar" lineEndContext="#stay"> 				<DetectChar attribute="InlineTag" context="#pop" char="}" />@@ -94,12 +97,12 @@ 		</contexts> 		<itemDatas> 			<itemData name="Normal Text"  defStyleNum="dsNormal"/>-			<itemData name="BlockTag"     defStyleNum="dsKeyword" color="#808080" selColor="#FFFFFF" bold="1" italic="0"/>-			<itemData name="InlineTag"    defStyleNum="dsKeyword" color="#808080" selColor="#FFFFFF" bold="0" italic="0"/>-			<itemData name="JavadocParam" defStyleNum="dsKeyword" color="#008080" selColor="#FFFFFF" bold="0" italic="1"/>-			<itemData name="SeeTag"       defStyleNum="dsKeyword" color="#008080" selColor="#FFFFFF" bold="0" italic="1"/>-			<itemData name="JavadocFS"    defStyleNum="dsComment" color="#008000" selColor="#FFFFFF" bold="1" italic="0"/>-			<itemData name="Javadoc"      defStyleNum="dsComment" color="#008000" selColor="#FFFFFF"/>+			<itemData name="BlockTag"     defStyleNum="dsAnnotation" bold="1" italic="0" spellChecking="false"/>+			<itemData name="InlineTag"    defStyleNum="dsAnnotation" bold="0" italic="0" spellChecking="false"/>+			<itemData name="JavadocParam" defStyleNum="dsAnnotation" bold="0" italic="1" spellChecking="false"/>+			<itemData name="SeeTag"       defStyleNum="dsAnnotation" bold="0" italic="1" spellChecking="false"/>+			<itemData name="JavadocFS"    defStyleNum="dsComment" bold="1" italic="0" spellChecking="false"/>+			<itemData name="Javadoc"      defStyleNum="dsComment"/> 		</itemDatas> 	</highlighting> 	<general>
xml/javascript.xml view
@@ -1,9 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?>-<!DOCTYPE language SYSTEM "language.dtd">+<!DOCTYPE language SYSTEM "language.dtd"+[+  <!ENTITY identifier "([a-zA-Z_$]|[^[:ascii:]])([\w$]|[^[:ascii:]])*">+]> <!-- 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="7" kateversion="5.0" section="Scripts" extensions="*.js;*.kwinscript;*.julius"+<!-- NOTE: This highlighter does not offer full support for TypeScript. The .ts files+     are temporarily included, since a syntax highlighting file for TypeScript is required! -->+<language name="JavaScript" version="9" kateversion="5.0" section="Scripts" extensions="*.js;*.kwinscript;*.julius;*.ts"           mimetype="text/x-javascript;application/x-javascript;application/javascript;text/javascript" indenter="cstyle"           author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license="">   <highlighting>@@ -78,8 +83,10 @@         the very first line.       -->       <context name="Shebang" lineEndContext="Normal" attribute="Normal Text" fallthrough="true" fallthroughContext="Normal" >-        <Detect2Chars column="0" char="#" char1="!" context="Comment" attribute="Comment" />+        <Detect2Chars column="0" char="#" char1="!" context="Shebang Line" attribute="Comment" />       </context>+      <context name="Shebang Line" attribute="Comment" lineEndContext="#pop!Normal">+      </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Normal">         <DetectSpaces/>@@ -87,8 +94,11 @@         <StringDetect attribute="Region Marker" context="region_marker" String="//END" endRegion="Region1" />          <Float attribute="Float" context="NoRegExp" />-        <HlCOct attribute="Octal" context="NoRegExp" />+        <!-- Invalid Binary, Octal or Hex -->+        <RegExpr attribute="Error" context="NoRegExp" String="\b0(b[01]*[2-9a-z]|o[0-7]*[89a-z]|x[0-9a-f]*[g-z])\w*\b" insensitive="true" />         <HlCHex attribute="Hex" context="NoRegExp" />+        <RegExpr attribute="Octal" context="NoRegExp" String="\b0[oO][0-7]+" />+        <RegExpr attribute="Binary" context="NoRegExp" String="\b0[bB][01]+" />         <Int attribute="Decimal" context="NoRegExp" />         <AnyChar context="NoRegExp" String="])" /> @@ -102,11 +112,13 @@         <StringDetect attribute="Template" context="RawTemplate" String="String.raw`" />          <!--DetectIdentifier-->-        <RegExpr attribute="Objects" context="Object Member" String="[a-zA-Z_$][\w$]*(?=\s*\.)" />+        <RegExpr attribute="Objects" context="Object Member" String="&identifier;(?=\s*\.)" />         <!--DetectIdentifier-->-        <RegExpr attribute="Object Member" context="NoRegExp" String="[a-zA-Z_$][\w$]*(?=\s*\()" />+        <RegExpr attribute="Object Member" context="NoRegExp" String="&identifier;(?=\s*\()" />         <DetectChar context="Object Member" char="." />         <!--DetectIdentifier-->+        <!-- Do not start RegExp after non-ASCII characters (see bug #393633) -->+        <RegExpr context="NoRegExp" String="&identifier;" />         <RegExpr context="NoRegExp" String="[a-zA-Z_$][\w$]*" />          <DetectChar attribute="String" context="String" char="&quot;" />@@ -128,11 +140,11 @@       </context>        <context attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Object Member">-        <DetectChar char="." />+        <DetectChar context="#stay" char="." />         <!--DetectIdentifier-->-        <RegExpr attribute="Objects" context="Object Member" String="[a-zA-Z_$][\w$]*(?=\s*\.)" />+        <RegExpr attribute="Objects" context="#stay" String="&identifier;(?=\s*\.)" />         <!--DetectIdentifier-->-        <RegExpr attribute="Object Member" String="[a-zA-Z_$][\w$]*" />+        <RegExpr attribute="Object Member" context="#pop!NoRegExp" String="&identifier;" />         <IncludeRules context="NoRegExp" />       </context> @@ -152,27 +164,35 @@         <!-- Mostly required for define: in switch blocks -->         <keyword attribute="Keyword" String="keywords" />         <!--DetectIdentifier-->-        <RegExpr attribute="JSON" String="[a-zA-Z_$][\w$]*\s*(?=:)" />+        <RegExpr attribute="JSON" String="&identifier;\s*(?=:)" />         <DetectChar attribute="Symbol" char="}" endRegion="Brace" context="#pop" />         <IncludeRules context="Normal" />       </context>        <context attribute="String" lineEndContext="#pop" name="String">-        <HlCStringChar attribute="Escape" />-        <RegExpr attribute="Escape" String="\\u[0-9a-fA-F]{4}" />-        <LineContinue/>+        <IncludeRules context="Escape" />         <DetectChar attribute="String" context="#pop" char="&quot;" />       </context>       <context attribute="String" lineEndContext="#pop" name="String SQ">-        <HlCStringChar attribute="Escape" />-        <RegExpr attribute="Escape" String="\\u[0-9a-fA-F]{4}" />-        <LineContinue/>+        <IncludeRules context="Escape" />         <DetectChar attribute="String" context="#pop" char="'" />       </context> +      <context attribute="Normal Text" lineEndContext="#stay" name="Escape">+        <LineContinue attribute="Escape" context="#stay" />+        <!-- Hexadecimal, unicode & octal -->+        <RegExpr attribute="Escape" context="#stay" String="\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u\{[0-9a-fA-F]+\}|[0-3][0-7]{1,2}|[4-7][0-7]|[1-7])" />+        <Detect2Chars attribute="Error" context="#stay" char="\" char1="x" />+        <Detect2Chars attribute="Error" context="#stay" char="\" char1="u" />+        <DetectChar attribute="Escape" context="Character Escape" char="\" />+      </context>+      <context attribute="Escape" lineEndContext="#pop" name="Character Escape">+        <AnyChar attribute="Reserved Char. Escape" context="#pop" String="0bfnrtv" /> <!-- Reserved Char. Escape. Also: "'/ -->+        <RegExpr attribute="Escape" context="#pop" String="." /> <!-- Literal Char. Escape -->+      </context>+       <context attribute="Template" lineEndContext="#stay" name="Template">-        <HlCStringChar attribute="Escape" />-        <Detect2Chars attribute="Escape" char="\" char1="`" />+        <IncludeRules context="Escape" />         <Detect2Chars attribute="Substitution" context="Substitution" char="$" char1="{" />         <DetectChar attribute="Template" context="#pop" char="`" />       </context>@@ -233,8 +253,10 @@       <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false" />       <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false" />       <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false" />+      <itemData name="Binary"       defStyleNum="dsBaseN" spellChecking="false" />       <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false" />       <itemData name="Escape"       defStyleNum="dsSpecialChar" spellChecking="false" />+      <itemData name="Reserved Char. Escape" defStyleNum="dsSpecialChar" bold="1" spellChecking="false" />       <itemData name="String"       defStyleNum="dsString" />       <itemData name="Template"     defStyleNum="dsVerbatimString" />       <itemData name="Substitution" defStyleNum="dsSpecialChar" spellChecking="false" />@@ -246,6 +268,7 @@       <itemData name="Pattern Character Class" defStyleNum="dsSpecialChar" spellChecking="false" />       <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />       <itemData name="JSON"         defStyleNum="dsDataType" spellChecking="false" />+      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>     </itemDatas>   </highlighting>   <general>
xml/jsp.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language version="3" kateversion="2.4" name="JSP" section="Markup" extensions="*.jsp;*.JSP" mimetype="text/html" casesensitive="false" author="Rob Martin (rob@gamepimp.com)" license="LGPL">+<language version="4" kateversion="2.4" name="JSP" section="Markup" extensions="*.jsp;*.JSP" mimetype="text/html" casesensitive="false" author="Rob Martin (rob@gamepimp.com)" license="LGPL">   <highlighting>      <list name="java-1.4.2-classes">@@ -2912,21 +2912,10 @@         <keyword String="jsp-reserved-words" attribute="Keyword" context="#stay"/>         <keyword String="java-1.4.2-types" attribute="Types" context="#stay"/>         <keyword String="java-1.4.2-classes" attribute="Java 1.4.2 Classes" context="#stay"/>-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay">-          <StringDetect String="ULL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LUL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LLU" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="UL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LU" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="U" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="L" attribute="Decimal" context="#stay" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <RegExpr String="//\s*BEGIN.*$" attribute="Decimal" context="#stay" beginRegion="Region1" firstNonSpace="true"/>         <RegExpr String="//\s*END.*$" attribute="Decimal" context="#stay" endRegion="Region1" firstNonSpace="true"/>@@ -2938,6 +2927,21 @@         <Detect2Chars char="/" char1="*" attribute="Java Comment" context="Java Multi-Line Comment"/>       </context> +      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>++      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>+      </context>+       <context name="Jsp Expression" attribute="Normal Text" lineEndContext="#stay">         <StringDetect String="'${'" attribute="Normal Text" context="#stay"/>         <DetectChar char="}" attribute="Jsp Scriptlet" context="#pop"/>@@ -2945,21 +2949,10 @@         <keyword String="jsp-reserved-words" attribute="Keyword" context="#stay"/>         <keyword String="java-1.4.2-types" attribute="Types" context="#stay"/>         <keyword String="java-1.4.2-classes" attribute="Java 1.4.2 Classes" context="#stay"/>-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay">-          <StringDetect String="ULL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LUL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LLU" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="UL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LU" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="LL" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="U" attribute="Decimal" context="#stay" insensitive="true"/>-          <StringDetect String="L" attribute="Decimal" context="#stay" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <DetectChar char="&quot;" attribute="String" context="Java String"/>         <AnyChar String="!%&amp;()+,-&lt;=&gt;?[]^{|}~" attribute="Symbol" context="#stay"/>
xml/kotlin.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <!-- kotlin language syntax http://kotlinlang.org -->-<language name="Kotlin" version="4" kateversion="5.0" section="Sources" extensions="*.kt;*.kts" license="LGPLv2+" author="Sergey Mashkov (sergey.mashkov@jetbrains.com)" style="cstyle" indenter="cstyle">+<language name="Kotlin" version="5" kateversion="5.0" section="Sources" extensions="*.kt;*.kts" license="LGPLv2+" author="Sergey Mashkov (sergey.mashkov@jetbrains.com)" style="cstyle" indenter="cstyle">     <highlighting>         <list name="keywords">             <item>package</item>@@ -114,18 +114,22 @@                 <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>                 <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/> -                <Float attribute="Float" context="#stay">-                    <AnyChar String="fF" attribute="Float" context="#stay"/>-                </Float>-                <Int attribute="Decimal" context="#stay">-                    <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-                </Int>+                <Float attribute="Float" context="Float Suffixes"/>+                <Int attribute="Decimal" context="Int Suffixes"/>                  <RegExpr attribute="Annotation" context="#stay" String="@[_\w][_\w\d]*"/>                 <RegExpr attribute="TODO" context="#stay" String="TODO\s*\([^)]*\)" />                 <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />                 <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />                 <Detect2Chars attribute="Comment" context="CommentSingleLine" char="#" char1="!" />+            </context>++            <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+                <AnyChar String="fF" attribute="Float" context="#pop"/>+            </context>++            <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+                <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>             </context>              <context attribute="Normal Text" lineEndContext="#pop" name="Imports">
xml/latex.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="LaTeX" version="7" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >+<language name="LaTeX" version="8" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >   <highlighting>     <contexts>       <!-- Normal text -->@@ -578,7 +578,6 @@   </general>    <spellchecking>-    <configuration encodingReplacementPolicy="EncodeWhenPresent"/>     <encodings>       <encoding char="&#192;" string="\`{A}" />       <encoding char="&#192;" string="\`A" />
xml/lua.xml view
@@ -43,7 +43,7 @@     - NOTE, FIXME, TODO alerts added on comments     - improved highlighting -->-<language name="Lua" version="3" indenter="lua" kateversion="5.0" section="Scripts" extensions="*.lua" mimetype="text/x-lua">+<language name="Lua" version="4" indenter="lua" kateversion="5.0" section="Scripts" extensions="*.lua" mimetype="text/x-lua">   <highlighting>     <list name="keywords">       <item>and</item>@@ -490,8 +490,15 @@       </context>        <context name="Special_char"  attribute="Error"       lineEndContext="#pop">-        <RegExpr      attribute="Special Char"  context="#pop"  String="\\(?:[abfnrtvz'&quot;\\\[\]]|x&HEX;&HEX;|\d{1,3}|u\{&HEX;{1,6}\})" />-        <DetectChar   attribute="Error"    context="#pop"  char="\"/>+        <LineContinue attribute="Special Char" context="#pop" />+        <Detect2Chars attribute="Special Char" context="Special_char_\z" char="\" char1="z" lookAhead="true"/>+        <RegExpr      attribute="Special Char" context="#pop" String="\\(?:[abfnrtv'&quot;\\\[\]]|x&HEX;&HEX;|\d{1,3}|u\{&HEX;{1,6}\})"/>+        <DetectChar   attribute="Error"        context="#pop" char="\"/>+      </context>++      <context name="Special_char_\z" attribute="Special Char" lineEndContext="#stay">+        <LineContinue attribute="Special Char" context="#pop#pop" char="z"/>+        <DetectChar   attribute="Special Char" context="#pop#pop" char="z"/>       </context>        <context name="String_block"  attribute="RawStrings"  lineEndContext="#stay" dynamic="true">
xml/mediawiki.xml view
@@ -6,7 +6,7 @@   <!ENTITY wikiLinkWithDescription "\[\[[^]|]*\|[^]]*\]\]">   <!ENTITY wikiLinkWithoutDescription "\[\[[^]|]*\]\]"> ]>-<language name="MediaWiki" section="Markup" version="4" kateversion="3.4" extensions="*.mediawiki" mimetype="" license="FDL" >+<language name="MediaWiki" section="Markup" version="5" kateversion="3.4" extensions="*.mediawiki" mimetype="" license="FDL" >   <highlighting>     <contexts>       <context attribute="Normal" lineEndContext="#stay" name="normal" >@@ -618,6 +618,5 @@       <comment end="//-->" start="&lt;!--" name="multiLine" />     </comments>     <keywords casesensitive="0" />-    <indentation mode="normal" />   </general> </language>
xml/modelines.xml view
@@ -8,15 +8,15 @@   Copyright (c) 2012-2014 by Alex Turbov (i.zaufi@gmail.com)   --> <language name="Modelines"-          version="3"+          version="4"           kateversion="5.0"           section="Other"           extensions=""           mimetype=""           author="Alex Turbov (i.zaufi@gmail.com)"-          license="LGPL"+          license="MIT"           hidden="true"-          priority="5">+          priority="6"> <!--   The main purpose of this file is to be included into other syntax files. @@ -40,6 +40,7 @@     <item>bookmark-sorting</item>     <item>bom</item>     <item>byte-order-marker</item>+    <item>byte-order-mark</item>     <item>dynamic-word-wrap</item>     <item>folding-markers</item>     <item>folding-preview</item>                          <!-- Since KTextEditor 5.24 -->@@ -130,7 +131,6 @@       <DetectSpaces />       <keyword String="ModelineStartKeyword" context="Modeline" attribute="Keyword" />       <RegExpr String="kate-(mimetype|wildcard)\(.*\):" context="Modeline" attribute="Keyword" />-      <LineContinue context="#pop" />     </context>      <context name="Modeline" attribute="Comment" lineEndContext="#pop">@@ -166,10 +166,13 @@      <context name="RemoveSpaces" attribute="Comment" lineEndContext="#pop">       <DetectSpaces />-      <keyword String="RemoveSpacesOptions" attribute="Value" context="#pop" />+      <keyword String="RemoveSpacesOptions" attribute="Value" context="#pop!RemoveSpacesEnd" />       <DetectChar char="&end;" context="#pop" attribute="Variable" />       <LineContinue context="#pop" />     </context>+    <context name="RemoveSpacesEnd" attribute="Comment" lineEndContext="#pop">+      <DetectChar char="&end;" context="#pop" attribute="Variable" />+    </context>    </contexts> @@ -187,7 +190,7 @@ </highlighting>  <general>-  <keywords casesensitive="1" weakDeliminator=":-" />+  <keywords casesensitive="1" weakDeliminator=":-+*" /> </general>  </language>
xml/modula-2.xml view
@@ -1,187 +1,1191 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Modula-2" version="3" kateversion="2.2" section="Sources" extensions="*.mod;*.def;*.mi;*.md" mimetype="text/x-modula-2">-  <highlighting>-    <list name="directives">-      <item>ASSEMBLER</item>-      <item>ALLOCATE</item>-      <item>DEALLOCATE</item>-      <item>SIZE</item>-      <item>Write</item>-      <item>WriteString</item>-      <item>WriteCard</item>-      <item>WriteLn</item>-      <item>WriteBf</item>-      <item>WriteInt</item>-      <item>WriteReal</item>-      <item>WriteLongReal</item>-      <item>Read</item>-      <item>ReadString</item>-      <item>ReadCard</item>-      <item>ReadInt</item>-      <item>ReadReal</item>-      <item>ReadLongReal</item>-      <item>Open</item>-      <item>Close</item>-      <item>OpenInput</item>-      <item>OpenOutput</item>-      <item>Accessible</item>-      <item>Erase</item>-      <item>EOF</item>-      <item>Done</item>-      <item>EmptyString</item>-      <item>Assign</item>-      <item>Append</item>-      <item>Length</item>-      <item>StrEq</item>-      <item>Copy</item>-      <item>Concat</item>-      <item>pos</item>-      <item>Delete</item>-      <item>Insert</item>-      <item>compare</item>-      <item>CAPS</item>-      <item>PutBf</item>-      <item>GetArgs</item>-      <item>GetEnv</item>-      <item>ResetClock</item>-      <item>UserTime</item>-      <item>SystemTime</item>-      <item>GetChar</item>-      <item>GetInt</item>-      <item>GetCard</item>-      <item>GetString</item>-      <item>GetReal</item>-      <item>GetLongReal</item>-      <item>PutChar</item>-      <item>PutInt</item>-      <item>PutCard</item>-      <item>PutString</item>-      <item>PutReal</item>-      <item>PutLongReal</item>-      <item>PutLn</item>-    </list>-    <list name="keywords">-      <item>AND</item>-      <item>ARRAY</item>-      <item>ASM</item>-      <item>BEGIN</item>-      <item>CASE</item>-      <item>CONST</item>-      <item>DIV</item>-      <item>DO</item>-      <item>ELSE</item>-      <item>ELSIF</item>-      <item>END</item>-      <item>FOR</item>-      <item>IF</item>-      <item>IMPLEMENTATION</item>-      <item>IN</item>-      <item>SET</item>-      <item>INCL</item>-      <item>EXCL</item>-      <item>ABS</item>-      <item>BITSET</item>-      <item>CAP</item>-      <item>CHR</item>-      <item>DEC</item>-      <item>HALT</item>-      <item>HIGH</item>-      <item>INC</item>-      <item>MAX</item>-      <item>MIN</item>-      <item>ODD</item>-      <item>ORD</item>-      <item>PROC</item>-      <item>TRUNC</item>-      <item>VAL</item>-      <item>MOD</item>-      <item>NIL</item>-      <item>NOT</item>-      <item>OF</item>-      <item>OR</item>-      <item>PROCEDURE</item>-      <item>MODULE</item>-      <item>DEFINITION</item>-      <item>RECORD</item>-      <item>REPEAT</item>-      <item>THEN</item>-      <item>TO</item>-      <item>TYPE</item>-      <item>UNTIL</item>-      <item>LOOP</item>-      <item>VAR</item>-      <item>WHILE</item>-      <item>WITH</item>-      <item>EXIT</item>-      <item>FALSE</item>-      <item>TRUE</item>-      <item>BY</item>-      <item>FROM</item>-      <item>IMPORT</item>-      <item>EXPORT</item>-      <item>QUALIFIED</item>-      <item>RETURN</item>-      <item>NEWPROCESS</item>-      <item>TRANSFER</item>-      <item>IOTRANSFER</item>-      <item>FOREIGN</item>-    </list>-    <list name="types">-      <item>INTEGER</item>-      <item>CARDINAL</item>-      <item>SHORTINT</item>-      <item>SHORTCARD</item>-      <item>LONGINT</item>-      <item>LONGREAL</item>-      <item>CHAR</item>-      <item>BOOLEAN</item>-      <item>POINTER</item>-      <item>ADDRESS</item>-      <item>ADR</item>-      <item>REAL</item>-      <item>File</item>-    </list>-    <contexts>-      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">-        <keyword attribute="Keyword" context="#stay" String="keywords"/>-        <keyword attribute="Directive" context="#stay" String="directives"/>-        <keyword attribute="Type" context="#stay" String="types"/>-        <Float attribute="Number" context="#stay"/>-        <Int attribute="Number" context="#stay"/>-        <DetectChar attribute="String" context="String1" char="&quot;" />-        <DetectChar attribute="String" context="String2" char="'" />-        <StringDetect attribute="Directive" context="Prep1" String="(*$"/>-        <Detect2Chars attribute="Comment" context="Comment2" char="(" char1="*"/>-      </context>-      <context attribute="String" lineEndContext="#pop" name="String1">-        <DetectChar attribute="String" context="#pop" char="&quot;"/>-      </context>-      <context attribute="String" lineEndContext="#pop" name="String2">-        <DetectChar attribute="String" context="#pop" char="'" />-      </context>-      <context attribute="Comment" lineEndContext="#stay" name="Comment2">-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")"/>-      </context>-      <context attribute="Directive" lineEndContext="#stay" name="Prep1">-        <StringDetect attribute="Directive" context="Prep1" String="$*)"/>-      </context>--    </contexts>-    <itemDatas>-      <itemData name="Normal Text" defStyleNum="dsNormal" />-      <itemData name="Keyword"     defStyleNum="dsKeyword" />-      <itemData name="Type"        defStyleNum="dsDataType"/>-      <itemData name="Number"      defStyleNum="dsDecVal" />-      <itemData name="String"      defStyleNum="dsString" />-      <itemData name="Directive"   defStyleNum="dsOthers" />-      <itemData name="Comment"     defStyleNum="dsComment" />-    </itemDatas>-  </highlighting>-  <general>-    <keywords casesensitive="1" />-    <comments>-      <comment name="multiLine" start="(*" end="*)" />-    </comments>-  </general>-</language>+<language name="Modula-2" mimetype="text/x-modula2" version="5"+  kateversion="2.2" section="Sources" priority="5" extensions="*.mod;*.def"+  casesensitive="1"  author="B. Kowarsch (trijezdci@github)"  license="MIT">+<!--+  *****************************************************************************+  Multi-Dialect Modula-2 syntax highlighting profile for Kate++  Copyright (C) 2018 Modula-2 Software Foundation++  Licensed under the MIT license <https://opensource.org/licenses/MIT>++  This file should be placed in /usr/share.org.kde.syntax-highlighting/syntax/.++  1. Dialect Support++  This profile covers the following Modula-2 dialects:++  (1) PIM Modula-2 (Wirth, 1985)+  (2) ISO Modula-2 (ISO 10514-1)+  (3) Modula-2 R10 (Kowarsch & Sutcliffe, 2010)++  The default context  recognises reserved words and built-in identifiers that+  are common to all dialects and tags them accordingly for highlighting.++  1.2 Dialect Disambiguation++  In order to disambiguate dialects, the profile also recognises entities that+  are indicative of a specific dialect, tags them accordingly for highlighting+  and switches the context to the dialect of which the entity is indicative.++  However, this approach does NOT prevent  mis-identification  as it is always+  possible  that a  user or library defined identifier  matches an entity that+  is a reserved word or built-in identifier in another dialect.++  It is therefore  advisable  to place  dialect tags  into the top of Modula-2+  source files.++  1.3 Dialect Tags++  A dialect tag is a specially formatted comment that specifies the dialect in+  use.  The profile recognises the following dialect tags:++  (*!m2pim*) specifies the PIM dialect+  (*!m2iso*) specifies the ISO dialect+  (*!m2r10*) specifies the R10 dialect++  Dialect tags  may  also include a  compiler extension suffix  following  the+  dialect identifier  and preceded by '+'  to indicate  the  use  of  compiler+  specific language extensions.  Such suffixes are recognised but ignored.++  Using a dialect tag  guarantees  that the profile identifies the source file+  correctly.  Attention: No whitespace is permitted within a dialect tag.++  These dialect tags are also  recognised  by  Emacs, Vim/vi  and the Pygments+  source code rendering framework.  Support in other editors and frameworks is+  being added over time.++  2. Classification++  2.1 Reserved Words++  In Modula-2 terminology, keywords are called reserved words.  Reserved words+  are tagged "Keyword" regardless of their kind or purpose.++  2.2 Built-in Identifiers++  Modula-2 distinguishes two kinds of built-in identifiers: so called standard+  identifiers, also called  pervasive identifiers  or simply  pervasives;  and+  identifiers  provided by a  built-in module  for  unsafe facilities,  called+  SYSTEM in PIM and ISO Modula-2, and UNSAFE in Modula-2 R10.++  Pervasive Identifiers are tagged according to their kind as follows:++  (1) Constants are tagged "Const"+  (2) Types are tagged "Type"+  (3) Functions, procedures and macros are tagged "Builtin"+  (4) Identifiers provided by SYSTEM/UNSAFE are tagged "Unsafe"++  The tagging of the  latter group  regardless of kind or purpose  follows the+  Modula-2 philosophy of  making the  use of  unsafe facilities  explicit  and+  easily identifiable within the source code in order to sensitise programmers+  and thereby discourage and minimise their use.++  2.3 Numeric Literals++  There  are  three kinds of  numeric  literals: whole number  literals,  real+  number literals  and  character code literals.  Numeric literals  are tagged+  "Number" regardless of their kind.++  2.4 Quoted Literals++  There are  two ways to quote  a character or string: using single quotes, or+  using double quotes.  Quoted literals  are  tagged  "String"  regardless  of+  their type or kind.++  2.5 Comments and Pragmas++  Dialect tags, although comments, are tagged "DialectTag",  any other comments+  are tagged "Comment",  and pragmas are tagged "Pragma".++  2.6 Any Other Entities++  Any other entities are tagged "Plain Source".++  3. Rendering Styles++  By default, the above tags/attributes are assigned styles as follows:++  Keyword => dsKeyword, bold+  Const => dsBuiltin, bold+  Type => dsDataType, bold+  Builtin => dsBuiltin, bold+  Unsafe => dsWarning, bold+  Number => dsDecVal+  String => dsString+  DialectTag => dsComment, bold+  Comment => dsComment, italic+  Pragma => dsPreprocessor, bold+  Plain Source => dsNormal++  These styles can be customised in Kate via Settings->Configure Kate...+  *****************************************************************************+-->+  <highlighting>+    <list name="workaround">+      <!-- BUG: Kate ignores first entry in first context -->+      <!-- WORKAROUND: Use the name of this dummy list as first entry -->+      <item>???</item> <!-- use '???' in source to test/verify this bug -->+    </list>++<!--+  ============================================================================+  Common Entities - Lowest Common Denominator+  ============================================================================+-->+    <!-- Common Reserved Words -->+    <list name="common-keywords">+      <item>AND</item>+      <item>ARRAY</item>+      <item>BEGIN</item>+      <item>BY</item>+      <item>CASE</item>+      <item>CONST</item>+      <item>DEFINITION</item>+      <item>DIV</item>+      <item>DO</item>+      <item>ELSE</item>+      <item>ELSIF</item>+      <item>END</item>+      <item>EXIT</item>+      <item>FOR</item>+      <item>FROM</item>+      <item>IF</item>+      <item>IMPLEMENTATION</item>+      <item>IMPORT</item>+      <item>IN</item>+      <item>LOOP</item>+      <item>MOD</item>+      <item>MODULE</item>+      <item>NOT</item>+      <item>OF</item>+      <item>OR</item>+      <item>POINTER</item>+      <item>PROCEDURE</item>+      <item>RECORD</item>+      <item>REPEAT</item>+      <item>RETURN</item>+      <item>SET</item>+      <item>THEN</item>+      <item>TO</item>+      <item>TYPE</item>+      <item>UNTIL</item>+      <item>VAR</item>+      <item>WHILE</item>+    </list>++    <!-- Common Pervasive Constants -->+    <list name="common-constants">+      <item>FALSE</item>+      <item>NIL</item>+      <item>TRUE</item>+    </list>++    <!-- Common Pervasive Types -->+    <list name="common-types">+      <item>BOOLEAN</item>+      <item>CARDINAL</item>+      <item>CHAR</item>+      <item>INTEGER</item>+      <item>LONGREAL</item>+      <item>REAL</item>+    </list>++    <!-- Common Pervasive Procedures -->+    <list name="common-procedures">+      <item>ABS</item>+      <item>CHR</item>+      <item>MAX</item>+      <item>MIN</item>+      <item>ODD</item>+      <item>ORD</item>+    </list>++    <!-- Common Unsafe Facilities -->+    <list name="common-unsafe">+      <!-- Types -->+      <item>ADDRESS</item>+      <item>WORD</item>+      <!-- Procedures -->+      <item>ADR</item>+    </list>++<!--+  ============================================================================+  Dialect Indicative Entities+  ============================================================================+-->+<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  PIM Indicators - Entities indicative of PIM Modula-2+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+    <!-- There are no reswords, pervasives or builtins indicative of PIM -->++    <!-- PIM-only Libraries -->+    <list name="pim-only-libraries">+      <item>InOut</item>+      <item>MathLib0</item>+    </list>++<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  ISO Indicators - Entities indicative of ISO Modula-2+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+    <!-- ISO-only Reserved Words -->+    <list name="iso-only-keywords">+      <!--NB: FORWARD is not indicative of ISO,+          PIM single-pass compilers also use it.-->+      <item>EXCEPT</item>+      <item>FINALLY</item>+      <item>PACKEDSET</item>+      <item>REM</item>+      <item>RETRY</item>+    </list>++    <!-- ISO-only Pervasive Constants -->+    <list name="iso-only-constants">+      <item>INTERRUPTIBLE</item>+      <item>UNINTERRUPTIBLE</item>+    </list>++    <!-- ISO-only Pervasive Types -->+    <list name="iso-only-types">+      <!--NB: COMPLEX and LONGCOMPLEX are not indicative of ISO,+          they are also part of the R10 standard library.-->+      <item>PROTECTION</item>+    </list>++    <!-- ISO-only Pervasive Procedures -->+    <list name="iso-only-procedures">+      <item>CMPLX</item>+      <item>IM</item>+      <item>LFLOAT</item>+      <item>RE</item>+    </list>++    <!-- ISO-only Unsafe Facilities -->+    <list name="iso-only-unsafe">+      <!-- Constants -->+      <item>BITSPERLOC</item>+      <item>BITSPERWORD</item>+      <!-- Types -->+      <item>LOC</item>+      <!-- Procedures -->+      <item>ADDADR</item>+      <item>DIFADR</item>+      <item>MAKEADR</item>+      <item>ROTATE</item>+      <item>SHIFT</item>+      <item>SUBADR</item>+    </list>++    <!-- ISO-only Libraries -->+    <list name="iso-only-libraries">+      <item>IOConsts</item>+      <item>IOLink</item>+      <item>IOResult</item>+      <item>LongIO</item>+      <item>WholeIO</item>+      <item>RawIO</item>+      <item>SIOResult</item>+      <item>SLongIO</item>+      <item>SWholeIO</item>+      <item>SRealIO</item>+      <item>SRawIO</item>+      <item>ConvTypes</item>+      <item>RealStr</item>+      <item>WholeStr</item>+      <item>WholeConv</item>+    </list>++<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  R10 Indicators - Entities indicative of Modula-2 R10+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+    <!-- R10-only Reserved Words -->+    <list name="r10-only-keywords">+      <item>ALIAS</item>+      <item>ARGLIST</item>+      <item>BLUEPRINT</item>+      <item>COPY</item>+      <item>GENLIB</item>+      <item>OPAQUE</item>+      <item>READ</item>+      <item>REFERENTIAL</item>+      <item>RELEASE</item>+      <item>RETAIN</item>+      <item>WRITE</item>+      <item>YIELD</item>+    </list>++    <!-- R10-only Pervasive Types -->+    <list name="r10-only-types">+      <!--NB: LONGCARD is not indicative of R10,+          some PIM and ISO compilers also use it.-->+      <item>OCTET</item>+      <item>UNICHAR</item>+    </list>++    <!-- R10-only Pervasive Procedures -->+    <list name="r10-only-procedures">+      <item>APPEND</item>+      <item>CAPACITY</item>+      <item>COUNT</item>+      <item>INSERT</item>+      <item>LOG2</item>+      <item>POW2</item>+      <item>PRED</item>+      <item>PTR</item>+      <item>REMOVE</item>+      <item>SGN</item>+      <item>SUCC</item>+    </list>++    <!-- R10-only Pervasive Macros -->+    <list name="r10-only-macros">+      <item>TLIMIT</item>+      <item>TMAX</item>+      <item>TMIN</item>+    </list>++    <!-- R10-only Unsafe Facilities -->+    <list name="r10-only-unsafe">+      <!-- Module -->+      <item>UNSAFE</item>+      <!-- Types -->+      <item>LONGWORD</item>+      <item>OCTETSEQ</item>+      <!-- Procedures -->+      <item>BIT</item>+      <item>BWAND</item>+      <item>BWNOT</item>+      <item>BWOR</item>+      <item>SETBIT</item>+      <item>SHL</item>+      <item>SHR</item>+    </list>++    <!-- R10-only Libraries -->+    <list name="r10-only-libraries">+      <item>PervasiveIO</item>+      <item>UnsafeIO</item>+    </list>++<!--+  ============================================================================+  Entities for PIM Context+  ============================================================================+-->+    <!-- All PIM Reserved Words -->+    <list name="pim-keywords">+      <item>AND</item>+      <item>ARRAY</item>+      <item>BEGIN</item>+      <item>BY</item>+      <item>CASE</item>+      <item>CONST</item>+      <item>DEFINITION</item>+      <item>DIV</item>+      <item>DO</item>+      <item>ELSE</item>+      <item>ELSIF</item>+      <item>END</item>+      <item>EXIT</item>+      <item>EXPORT</item>+      <item>FOR</item>+      <item>FROM</item>+      <item>IF</item>+      <item>IMPLEMENTATION</item>+      <item>IMPORT</item>+      <item>IN</item>+      <item>LOOP</item>+      <item>MOD</item>+      <item>MODULE</item>+      <item>NOT</item>+      <item>OF</item>+      <item>OR</item>+      <item>POINTER</item>+      <item>PROCEDURE</item>+      <item>QUALIFIED</item>+      <item>RECORD</item>+      <item>REPEAT</item>+      <item>RETURN</item>+      <item>SET</item>+      <item>THEN</item>+      <item>TO</item>+      <item>TYPE</item>+      <item>UNTIL</item>+      <item>VAR</item>+      <item>WHILE</item>+      <item>WITH</item>+    </list>++    <!-- All PIM Pervasive Constants -->+    <list name="pim-constants">+      <item>FALSE</item>+      <item>NIL</item>+      <item>TRUE</item>+    </list>++    <!-- All PIM Pervasive Types -->+    <list name="pim-types">+      <item>BOOLEAN</item>+      <item>BITSET</item>+      <item>CARDINAL</item>+      <item>CHAR</item>+      <item>INTEGER</item>+      <item>LONGINT</item>+      <item>LONGREAL</item>+      <item>PROC</item>+      <item>REAL</item>+    </list>++    <!-- All PIM Pervasive Procedures -->+    <list name="pim-procedures">+      <item>ABS</item>+      <item>CAP</item>+      <item>CHR</item>+      <item>DEC</item>+      <item>EXCL</item>+      <item>FLOAT</item>+      <item>HALT</item>+      <item>HIGH</item>+      <item>INC</item>+      <item>INCL</item>+      <item>MAX</item>+      <item>MIN</item>+      <item>ODD</item>+      <item>ORD</item>+      <item>SIZE</item>+      <item>TRUNC</item>+      <item>VAL</item>+    </list>++    <!-- All PIM Pervasive Macros and their translations -->+    <list name="pim-macros">+      <item>NEW</item>+      <!--resolves to-->+      <item>ALLOCATE</item>+      <item>DISPOSE</item>+      <!--resolves to-->+      <item>DEALLOCATE</item>+    </list>++    <!-- All PIM Unsafe Facilities -->+    <list name="pim-unsafe">+      <!-- Module -->+      <item>SYSTEM</item>+      <!-- Types -->+      <item>ADDRESS</item>+      <item>PROCESS</item>+      <item>WORD</item>+      <!-- Procedures -->+      <item>ADR</item>+      <item>NEWPROCESS</item>+      <item>TRANSFER</item>+      <item>TSIZE</item>+    </list>++<!--+  ============================================================================+  Entities for ISO Context+  ============================================================================+-->+    <!-- All ISO Reserved Words -->+    <list name="iso-keywords">+      <item>AND</item>+      <item>ARRAY</item>+      <item>BEGIN</item>+      <item>BY</item>+      <item>CASE</item>+      <item>CONST</item>+      <item>DEFINITION</item>+      <item>DIV</item>+      <item>DO</item>+      <item>ELSE</item>+      <item>ELSIF</item>+      <item>END</item>+      <item>EXIT</item>+      <item>EXCEPT</item>+      <item>EXPORT</item>+      <item>FINALLY</item>+      <item>FOR</item>+      <item>FORWARD</item>+      <item>FROM</item>+      <item>IF</item>+      <item>IMPLEMENTATION</item>+      <item>IMPORT</item>+      <item>IN</item>+      <item>LOOP</item>+      <item>MOD</item>+      <item>MODULE</item>+      <item>NOT</item>+      <item>OF</item>+      <item>OR</item>+      <item>PACKEDSET</item>+      <item>POINTER</item>+      <item>PROCEDURE</item>+      <item>QUALIFIED</item>+      <item>RECORD</item>+      <item>REM</item>+      <item>REPEAT</item>+      <item>RETRY</item>+      <item>RETURN</item>+      <item>SET</item>+      <item>THEN</item>+      <item>TO</item>+      <item>TYPE</item>+      <item>UNTIL</item>+      <item>VAR</item>+      <item>WHILE</item>+      <item>WITH</item>+    </list>++    <!-- All ISO Pervasive Constants -->+    <list name="iso-constants">+      <item>FALSE</item>+      <item>INTERRUPTIBLE</item>+      <item>NIL</item>+      <item>TRUE</item>+      <item>UNINTERRUPTIBLE</item>+    </list>++    <!-- All ISO Pervasive Types -->+    <list name="iso-types">+      <item>BOOLEAN</item>+      <item>BITSET</item>+      <item>CARDINAL</item>+      <item>COMPLEX</item>+      <item>CHAR</item>+      <item>INTEGER</item>+      <item>LONGCOMPLEX</item>+      <item>LONGREAL</item>+      <item>PROC</item>+      <item>PROTECTION</item>+      <item>REAL</item>+    </list>++    <!-- All ISO Pervasive Procedures -->+    <list name="iso-procedures">+      <item>ABS</item>+      <item>CAP</item>+      <item>CHR</item>+      <item>CMPLX</item>+      <item>DEC</item>+      <item>EXCL</item>+      <item>FLOAT</item>+      <item>HALT</item>+      <item>HIGH</item>+      <item>IM</item>+      <item>INC</item>+      <item>INCL</item>+      <item>INT</item>+      <item>LENGTH</item>+      <item>LFLOAT</item>+      <item>MAX</item>+      <item>MIN</item>+      <item>ODD</item>+      <item>ORD</item>+      <item>RE</item>+      <item>SIZE</item>+      <item>TRUNC</item>+      <item>VAL</item>+    </list>++    <!-- All ISO Pervasive Macros and teir translations -->+    <list name="iso-macros">+      <item>NEW</item>+      <!--resolves to-->+      <item>ALLOCATE</item>+      <item>DISPOSE</item>+      <!--resolves to-->+      <item>DEALLOCATE</item>+    </list>++    <!-- All ISO Unsafe Facilities -->+    <list name="iso-unsafe">+      <!-- Module -->+      <item>SYSTEM</item>+      <!-- Constants -->+      <item>BITSPERLOC</item>+      <item>BITSPERWORD</item>+      <!-- Types -->+      <item>ADDRESS</item>+      <item>LOC</item>+      <item>WORD</item>+      <!-- Procedures -->+      <item>ADDADR</item>+      <item>ADR</item>+      <item>CAST</item>+      <item>DIFADR</item>+      <item>MAKEADR</item>+      <item>ROTATE</item>+      <item>SHIFT</item>+      <item>SUBADR</item>+      <item>TSIZE</item>+    </list>++<!--+  ============================================================================+  Entities for R10 Context+  ============================================================================+-->+    <!-- All R10 Reserved Words -->+    <list name="r10-keywords">+      <item>ALIAS</item>+      <item>AND</item>+      <item>ARGLIST</item>+      <item>ARRAY</item>+      <item>BEGIN</item>+      <item>BLUEPRINT</item>+      <item>BY</item>+      <item>CASE</item>+      <item>CONST</item>+      <item>COPY</item>+      <item>DEFINITION</item>+      <item>DIV</item>+      <item>DO</item>+      <item>ELSE</item>+      <item>ELSIF</item>+      <item>END</item>+      <item>EXIT</item>+      <item>FOR</item>+      <item>FROM</item>+      <item>GENLIB</item>+      <item>IF</item>+      <item>IMPLEMENTATION</item>+      <item>IMPORT</item>+      <item>IN</item>+      <item>LOOP</item>+      <item>MOD</item>+      <item>MODULE</item>+      <item>NEW</item>+      <item>NOT</item>+      <item>OF</item>+      <item>OPAQUE</item>+      <item>OR</item>+      <item>POINTER</item>+      <item>PROCEDURE</item>+      <item>READ</item>+      <item>RECORD</item>+      <item>REFERENTIAL</item>+      <item>RELEASE</item>+      <item>REPEAT</item>+      <item>RETAIN</item>+      <item>RETURN</item>+      <item>SET</item>+      <item>THEN</item>+      <item>TO</item>+      <item>TYPE</item>+      <item>UNTIL</item>+      <item>VAR</item>+      <item>WHILE</item>+      <item>WRITE</item>+      <item>YIELD</item>+    </list>++    <!-- All R10 Pervasive Constants -->+    <list name="r10-constants">+      <item>FALSE</item>+      <item>NIL</item>+      <item>TRUE</item>+    </list>++    <!-- All R10 Pervasive Types -->+    <list name="r10-types">+      <item>BOOLEAN</item>+      <item>CARDINAL</item>+      <item>CHAR</item>+      <item>INTEGER</item>+      <item>LONGCARD</item>+      <item>LONGINT</item>+      <item>LONGREAL</item>+      <item>OCTET</item>+      <item>REAL</item>+      <item>UNICHAR</item>+    </list>++    <!-- All R10 Pervasive Procedures -->+    <list name="r10-procedures">+      <item>ABS</item>+      <item>APPEND</item>+      <item>CAPACITY</item>+      <item>CHR</item>+      <item>COUNT</item>+      <item>ENTIER</item>+      <item>INSERT</item>+      <item>LENGTH</item>+      <item>LOG2</item>+      <item>MAX</item>+      <item>MIN</item>+      <item>ODD</item>+      <item>ORD</item>+      <item>POW2</item>+      <item>PRED</item>+      <item>PTR</item>+      <item>REMOVE</item>+      <item>SGN</item>+      <item>SUCC</item>+    </list>++    <!-- All R10 Pervasive Macros -->+    <list name="r10-macros">+      <item>TLIMIT</item>+      <item>TMAX</item>+      <item>TMIN</item>+      <item>TSIZE</item>+    </list>++    <!-- All R10 Unsafe Facilities -->+    <list name="r10-unsafe">+      <!-- Reserved Words -->+      <item>CAST</item>+      <!-- Module -->+      <item>UNSAFE</item>+      <!-- Constants -->+      <item>BitsPerAddress</item>+      <item>BitsPerByte</item>+      <item>BytesPerWord</item>+      <item>BytesPerLongWord</item>+      <!-- Types -->+      <item>ADDRESS</item>+      <item>BYTE</item>+      <item>LONGWORD</item>+      <item>OCTETSEQ</item>+      <item>WORD</item>+      <!-- Procedures -->+      <item>ADD</item>+      <item>ADR</item>+      <item>BIT</item>+      <item>BWAND</item>+      <item>BWNOT</item>+      <item>BWOR</item>+      <item>HALT</item>+      <item>SETBIT</item>+      <item>SHL</item>+      <item>SHR</item>+      <item>SUB</item>+      <!-- Macros -->+      <item>NOP</item>+    </list>++    <contexts>+<!--+  ============================================================================+  Common Context+  ============================================================================+  This context is selected by default, prior to any dialect disambiguation.+  ============================================================================+-->+      <context name="Common" attribute="Plain Source" lineEndContext="#stay">+        <!-- BUG: first entry is ignored, leave Dummy at first position -->+        <keyword attribute="Dummy" context="#stay" String="workaround"/>+<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  Dialect tags+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  Occurence selects specified dialect. Compiler extension suffix is ignored.++  EBNF:++  dialectTag :=+    '(*!' dialectIdent ( '+' compilerExtension )? '*)'+    ;++  dialectIdent :=+    'm2pim' | 'm2iso' | 'm2r10'+    ;++  compilerExtension :=+    LowerCaseLetter ( LowerCaseLetter | Digit )*+    ;++  LowerCaseLetter := 'a' .. 'z';++  Digit := '0' .. '9' ;+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+        <!-- PIM Dialect Tag (*!m2pim*) -->+        <RegExpr attribute="DialectTag" context="PIM"+          String="\(\*\!m2pim(\+[a-z][a-z0-9]*)?\*\)"/>++        <!-- ISO Dialect Tag (*!m2iso*) -->+        <RegExpr attribute="DialectTag" context="ISO"+          String="\(\*\!m2iso(\+[a-z][a-z0-9]*)?\*\)"/>++        <!-- R10 Dialect Tag (*!m2r10*) -->+        <RegExpr attribute="DialectTag" context="R10"+          String="\(\*\!m2r10(\+[a-z][a-z0-9]*)?\*\)"/>+<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  Entities common to all dialects, occurrence does not select any dialect+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+        <!-- Common Reserved Words -->+        <keyword attribute="Keyword"+          context="#stay" String="common-keywords"/>++        <!-- Common Pervasive Constants -->+        <keyword attribute="Const"+          context="#stay" String="common-constants"/>++        <!-- Common Pervasive Types -->+        <keyword attribute="Const"+          context="#stay" String="common-types"/>++        <!-- Common Pervasive Procedures -->+        <keyword attribute="Builtin"+          context="#stay" String="common-procedures"/>++        <!-- Common Unsafe Facilities -->+        <keyword attribute="Unsafe"+          context="#stay" String="common-unsafe"/>+<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  Entities indicative of a dialect, occurrence selects indicated dialect+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+        <!-- Dialect Indicative Reserved Words -->+        <keyword attribute="Keyword"+          context="ISO" String="iso-only-keywords"/>+        <keyword attribute="Keyword"+          context="R10" String="r10-only-keywords"/>++        <!-- Dialect Indicative Constants -->+        <keyword attribute="Const"+          context="ISO" String="iso-only-constants"/>++         <!-- Dialect Indicative Types -->+        <keyword attribute="Type"+          context="ISO" String="iso-only-types"/>+        <keyword attribute="Type"+          context="R10" String="r10-only-types"/>++        <!-- Dialect Indicative Procedures -->+        <keyword attribute="Builtin"+          context="ISO" String="iso-only-procedures"/>+        <keyword attribute="Builtin"+          context="R10" String="r10-only-procedures"/>++        <!-- Dialect Indicative Macros -->+        <keyword attribute="Builtin"+          context="R10" String="r10-only-macros"/>++        <!-- Dialect Indicative Unsafe Facilities -->+        <keyword attribute="Unsafe" context="ISO" String="iso-only-unsafe"/>+        <keyword attribute="Unsafe" context="R10" String="r10-only-unsafe"/>++        <!-- Dialect Indicative Libraries -->+        <keyword attribute="Plain Source"+          context="PIM" String="pim-only-libraries"/>+        <keyword attribute="Plain Source"+          context="ISO" String="iso-only-libraries"/>+        <keyword attribute="Plain Source"+          context="R10" String="r10-only-libraries"/>+<!--+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  Literals common to all dialects, occurrence does not select any dialect+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-->+        <!-- Real Number Literals -->+        <Float attribute="Number" context="#stay"/>++        <!-- Decimal Whole Number Literals -->+        <Int attribute="Number" context="#stay"/>++        <!-- Double-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="DoubleQuoted" char="&quot;"/>++        <!-- Single-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="SingleQuoted" char="'"/>++        <!-- Opening Block Comment Delimiter -->+        <Detect2Chars attribute="Comment" context="BlockComment"+          char="(" char1="*" beginRegion="FoldableComment"/>+      </context><!--Common-->++<!--+  ============================================================================+  PIM Context+  ============================================================================+  This context is selected when either the PIM dialect tag (*!m2pim*) or an+  entity indicative of the PIM dialect is found within the source file.+  ============================================================================+-->+      <context name="PIM" attribute="Plain Source" lineEndContext="#stay">+        <!-- Reserved Words -->+        <keyword attribute="Keyword" context="#stay" String="pim-keywords"/>++        <!-- Pervasive Constant Identifiers -->+        <keyword attribute="Const" context="#stay" String="pim-constants"/>++        <!-- Pervasive Type Identifiers -->+        <keyword attribute="Type" context="#stay" String="pim-types"/>++        <!-- Pervasive Procedure Identifiers -->+        <keyword attribute="Builtin" context="#stay" String="pim-procedures"/>++        <!-- Pervasive Macro Identifiers and Translations -->+        <keyword attribute="Builtin" context="#stay" String="pim-macros"/>++        <!-- Built-in Unsafe Facilities -->+        <keyword attribute="Unsafe" context="#stay" String="pim-unsafe"/>++        <!-- Base-16 Whole Number Literals -->+        <RegExpr attribute="Number" context="#stay" String="0[0-9A-F]*H"/>++        <!-- Base-8 Whole Number and Character Code Literals -->+        <RegExpr attribute="Number" context="#stay" String="[0-7]+[BC]"/>++        <!-- Real Number Literals -->+        <Float attribute="Number" context="#stay"/>++        <!-- Decimal Whole Number Literals -->+        <Int attribute="Number" context="#stay"/>++        <!-- Double-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="DoubleQuoted" char="&quot;"/>++        <!-- Single-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="SingleQuoted" char="'"/>++        <!-- Opening Pragma Delimiter -->+        <StringDetect attribute="Pragma" context="PIM-Pragma" String="(*$"/>++        <!-- Opening Block Comment Delimiter -->+        <Detect2Chars attribute="Comment" context="BlockComment"+          char="(" char1="*" beginRegion="FoldableComment"/>+      </context><!--PIM-->++<!--+  ============================================================================+  ISO Context+  ============================================================================+  This context is selected when either the ISO dialect tag (*!m2iso*) or an+  entity indicative of the ISO dialect is found within the source file.+  ============================================================================+-->+      <context name="ISO" attribute="Plain Source" lineEndContext="#stay">+        <!-- Reserved Words -->+        <keyword attribute="Keyword" context="#stay" String="iso-keywords"/>++        <!-- Pervasive Constant Identifiers -->+        <keyword attribute="Const" context="#stay" String="iso-constants"/>++        <!-- Pervasive Type Identifiers -->+        <keyword attribute="Type" context="#stay" String="iso-types"/>++        <!-- Pervasive Procedure Identifiers -->+        <keyword attribute="Builtin" context="#stay" String="iso-procedures"/>++        <!-- Pervasive Macro Identifiers and Translations -->+        <keyword attribute="Builtin" context="#stay" String="iso-macros"/>++        <!-- Built-in Unsafe Facilities -->+        <keyword attribute="Unsafe" context="#stay" String="iso-unsafe"/>++        <!-- Base-16 Whole Number Literals -->+        <RegExpr attribute="Number" context="#stay" String="0[0-9A-F]*H"/>++        <!-- Base-8 Whole Number and Character Code Literals -->+        <RegExpr attribute="Number" context="#stay" String="[0-7]+[BC]"/>++        <!-- Real Number Literals -->+        <Float attribute="Number" context="#stay"/>++        <!-- Decimal Whole Number Literals -->+        <Int attribute="Number" context="#stay"/>++        <!-- Double-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="DoubleQuoted" char="&quot;"/>++        <!-- Single-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="SingleQuoted" char="'"/>++        <!-- Opening Pragma Delimiter -->+        <Detect2Chars attribute="Pragma"+          context="ISO-Pragma" char="&lt;" char1="*"/>++        <!-- Opening Block Comment Delimiter -->+        <Detect2Chars attribute="Comment" context="BlockComment"+          char="(" char1="*" beginRegion="FoldableComment"/>+      </context><!--ISO-->++<!--+  ============================================================================+  R10 Context+  ============================================================================+  This context is selected when either the R10 dialect tag (*!m2r10*) or an+  entity indicative of the R10 dialect is found within the source file.+  ============================================================================+-->+      <context name="R10" attribute="Plain Source" lineEndContext="#stay">+        <!-- Reserved Words -->+        <keyword attribute="Keyword" context="#stay" String="r10-keywords"/>++        <!-- Built-in Constant Identifiers -->+        <keyword attribute="Const" context="#stay" String="r10-constants"/>++        <!-- Built-in Type Identifiers -->+        <keyword attribute="Type" context="#stay" String="r10-types"/>++        <!-- Built-in Procedure Identifiers -->+        <keyword attribute="Builtin" context="#stay" String="r10-procedures"/>++        <!-- Built-in Macro Identifiers and Translations -->+        <keyword attribute="Builtin" context="#stay" String="r10-macros"/>++        <!-- Facilities from Built-in Module UNSAFE -->+        <keyword attribute="Unsafe" context="#stay" String="r10-unsafe"/>++        <!-- Base-2 Whole Number Literals -->+        <RegExpr attribute="Number" context="#stay"+          String="0b([01]+('[01]+)?)+"/>++        <!-- Base-16 Whole Number and Character Code Literals -->+        <RegExpr attribute="Number" context="#stay"+          String="0[ux]([0-9A-F]+('[0-9A-F]+)?)+"/>++        <!-- Real Number Literals -->+        <Float attribute="Number" context="#stay"/>++        <!-- Decimal Whole Number Literals -->+        <RegExpr attribute="Number" context="#stay"+          String="([1-9][0-9]*('[0-9]+)*)|0"/>++        <!-- Double-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="DoubleQuoted" char="&quot;"/>++        <!-- Single-Quoted Character and String Literals -->+        <DetectChar attribute="String" context="SingleQuoted" char="'"/>++        <!-- Opening Pragma Delimiter -->+        <Detect2Chars attribute="Pragma"+          context="ISO-Pragma" char="&lt;" char1="*"/>++        <!-- Line Comment -->+        <DetectChar attribute ="Comment" context="LineComment" char="!"/>++        <!-- Opening Block Comment Delimiter -->+        <Detect2Chars attribute="Comment" context="BlockComment"+          char="(" char1="*" beginRegion="FoldableComment"/>+      </context><!--R10-->++<!--+  ============================================================================+  Sub-Contexts+  ============================================================================+  These contexts are used to process entities that are recognised by their+  opening delimiters, such as quoted literals, pragmas and comments.+  ============================================================================+-->+      <!-- Double-Quoted Literal -->+      <context name="DoubleQuoted" attribute="String" lineEndContext="#pop">+        <!-- Closing Delimiter -->+        <DetectChar attribute="String" context="#pop" char="&quot;"/>+      </context>++      <!-- Single-Quoted Literal -->+      <context name="SingleQuoted" attribute="String" lineEndContext="#pop">+        <!-- CLosing Delimiter -->+        <DetectChar attribute="String" context="#pop" char="'" />+      </context>++      <!-- PIM Pragma Body -->+      <context name="PIM-Pragma" attribute="Pragma" lineEndContext="#stay">+        <!-- Closing Delimiter -->+        <Detect2Chars attribute="Pragma" context="#pop" char="*" char1=")"/>+      </context>++      <!-- ISO Pragma Body -->+      <context name="ISO-Pragma" attribute="Pragma" lineEndContext="#stay">+        <!-- Closing Delimiter -->+        <Detect2Chars attribute="Pragma"+          context="#pop" char="*" char1="&gt;"/>+      </context>++      <!-- Line Comment Body -->+      <context name="LineComment" attribute="Comment" lineEndContext="#pop">+      </context>++      <!-- Block Comment Body -->+      <context name="BlockComment" attribute="Comment" lineEndContext="#stay">+        <!-- Opening Delimiter of Nested Comment -->+        <Detect2Chars attribute="Comment" context="BlockComment"+          char="(" char1="*" beginRegion="FoldableComment"/>+        <!-- Closing Delimiter -->+        <Detect2Chars attribute="Comment" context="#pop"+          char="*" char1=")" endRegion="FoldableComment"/>+      </context>+    </contexts>++<!--+  ============================================================================+  Rendering Styles+  ============================================================================+-->+    <itemDatas>+      <!-- Style for Plain Source Text -->+      <itemData name="Plain Source"+        defStyleNum="dsNormal" bold="0" italic="0"/>++      <!-- Style for Reserved Words -->+      <itemData name="Keyword"+        defStyleNum="dsKeyword" bold="1" italic="0"/>++      <!-- Style for Pervasive Constant Identifiers -->+      <itemData name="Const"+        defStyleNum="dsBuiltIn" bold="1" italic="0"/>++      <!-- Style for Pervasive Type Identifiers -->+      <itemData name="Type"+        defStyleNum="dsDataType" bold="1" italic="0"/>++      <!-- Style for Pervasive Procedure Identifiers -->+      <itemData name="Builtin"+        defStyleNum="dsBuiltIn" bold="1" italic="0"/>++      <!--  Style for Unsafe Facilities -->+      <itemData name="Unsafe"+        defStyleNum="dsWarning" bold="1" italic="0"/>++      <!-- Style for Number Literals -->+      <itemData name="Number"+        defStyleNum="dsDecVal" bold="0" italic="0"/>++      <!-- Style for Quoted Literals -->+      <itemData name="String"+        defStyleNum="dsString" bold="0" italic="0"/>++      <!-- Style for Dialect Tags -->+      <itemData name="DialectTag"+        defStyleNum="dsComment" bold="1" italic="0"/>++      <!-- Style for Pragmas -->+      <itemData name="Pragma"+        defStyleNum="dsPreprocessor" bold="1" italic="0"/>++      <!-- Style for Comments -->+      <itemData name="Comment"+        defStyleNum="dsComment" bold="0" italic="1"/>++      <!-- Dummy style for testing -->+      <itemData name="Dummy" defStyleNum="dsError"/>+    </itemDatas>+  </highlighting>++  <general>+    <keywords casesensitive="1" />+    <comments>+      <comment name="singleLine" start="!"/>+      <comment name="multiLine" start="(*" end="*)"/>+    </comments>+  </general>+</language>++<!--EOF-->
xml/objectivec.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Objective-C" version="2" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">+<language name="Objective-C" version="3" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">   <highlighting>     <list name="keywords">       <item>break</item>@@ -57,21 +57,10 @@         <keyword attribute="Data Type" context="#stay" String="types"/>         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay" >-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <DetectChar attribute="String" context="String" char="&quot;"/>         <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>@@ -79,6 +68,19 @@         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>         <RegExpr attribute="Preprocessor" context="Preprocessor" String="^#"/>         <Detect2Chars attribute="String" context="String" char="@" char1="&quot;" />+      </context>+      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>+      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>       <context attribute="String" lineEndContext="#pop" name="String">         <LineContinue attribute="String" context="#stay"/>
xml/objectivecpp.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Objective-C++" version="4" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objcpp-src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">+<language name="Objective-C++" version="5" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objcpp-src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">   <highlighting>     <list name="keywords">       <item>break</item>@@ -173,21 +173,10 @@         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />                  <DetectIdentifier />-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay" >-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <DetectChar attribute="String" context="String" char="&quot;"/>         <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>@@ -203,6 +192,19 @@         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]{|}~^&#59;"/>+      </context>+      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>+      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>       <context attribute="String" lineEndContext="#pop" name="String">         <LineContinue attribute="String" context="#stay"/>
xml/opencl.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <language name="OpenCL" section="Sources"-          version="3" kateversion="3.4"+          version="4" kateversion="3.4"           indenter="cstyle"           extensions="*.cl"           mimetype="text/x-clsrc"@@ -134,27 +134,31 @@         <DetectIdentifier />         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay" >-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <DetectChar attribute="String" context="String" char="&quot;"/>         <IncludeRules context="##Doxygen" />         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>         <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>+      </context>++      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>++      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>        <context attribute="String" lineEndContext="#pop" name="String">
xml/perl.xml view
@@ -39,7 +39,7 @@     Enhance tr/// and y/// support. -->-<language name="Perl" version="6" kateversion="2.4" section="Scripts" extensions="*.pl;*.PL;*.pm;*.pl6;*.PL6;*.p6;*.pm6;" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">+<language name="Perl" version="7" kateversion="2.4" section="Scripts" extensions="*.pl;*.PL;*.pm;*.pl6;*.PL6;*.p6;*.pm6;" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">   <highlighting>     <list name="keywords">       <item>if</item>@@ -358,13 +358,14 @@         <RegExpr attribute="Decimal" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="slash_safe_escape"/>         <Int attribute="Decimal" context="slash_safe_escape" /> -        <RegExpr attribute="Normal Text" context="#stay" String="\\([&quot;'])[^\1]" />+        <!-- Allow strings as scalar references (ex: \'string') (see bug #348765). -->+        <!-- <RegExpr attribute="Normal Text" context="#stay" String="\\([&quot;'])[^\1]" /> -->         <Detect2Chars attribute="Normal Text" context="#stay" char="&amp;" char1="'" /><!-- ??? -->         <DetectChar attribute="Operator" context="ip_string" char="&quot;" beginRegion="String" />         <DetectChar attribute="Operator" context="string" char="'"  beginRegion="String"/>         <DetectChar attribute="Operator" context="Backticked" char="`" /> -        <RegExpr attribute="Normal Text" context="find_variable" String="(?:[$@]\S|%[\w{]|\*[^\d\*{\$@%=(])" lookAhead="true" />+        <RegExpr attribute="Normal Text" context="find_variable" String="(?:[$@]\S|%([\w\{\+\-!]|\^H)|\*[^\d\*{\$@%=(])" lookAhead="true" />          <RegExpr attribute="Keyword" context="#stay" String="&lt;[A-Z0-9_]+&gt;" /> @@ -423,9 +424,17 @@       <!-- ====== Contexts for strings ===== -->       <context name="ipstring_internal" attribute="String (interpolated)" lineEndContext="#stay">         <DetectIdentifier />-        <RegExpr attribute="String Special Character" context="#stay" String="\\[UuLlEtnaefr]" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\c[^\s\\]" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\g(\{(\w+|\-\d+)\}|\d+)" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\k(\{\w+\}|&lt;\w+&gt;|'\w+')" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\N\{[^\{\}]*\}" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\o\{[0-7]+\}" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\[pP](\{\w+\}|P)" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\x([0-9a-fA-F]{2}|\{[0-9a-fA-F]+\})" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\[0-7]{3}" />+        <RegExpr attribute="String Special Character" context="#stay" String="\\[1aAbBdDeEfFGhHKlLnNQrRsStuUvVwWXzZ]" />         <RegExpr attribute="String (interpolated)" context="#stay" String="\\." />-        <RegExpr attribute="Normal Text" context="find_variable_unsafe" String="(?:[\$@]\S|%[\w{])" lookAhead="true" />+        <RegExpr attribute="Normal Text" context="find_variable_unsafe" String="(?:[\$@]\S|%([\w\{\-\+!]|\^H))" lookAhead="true" />       </context>       <context name="ip_string" attribute="String (interpolated)" lineEndContext="#stay">         <DetectChar attribute="Operator" context="#pop" char="&quot;" endRegion="String"/>@@ -517,6 +526,8 @@         <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />         <IncludeRules context="regex_pattern_internal_ip" />         <DetectChar attribute="Operator" context="subst_curlybrace_middle" char="}" endRegion="Pattern" />+        <!-- Recursive brackets. Avoid closing brackets incorrectly (bug #364866). -->+        <DetectChar attribute="Pattern" context="subst_curlybrace_pattern_recursive" char="{" />       </context>       <context name="subst_curlybrace_middle" attribute="Normal Text" lineEndContext="#stay" >         <RegExpr attribute="Comment" context="#stay" String="#.*$" />@@ -532,17 +543,27 @@         <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="Block" />         <IncludeRules context="ipstring_internal" />       </context>+      <context name="subst_curlybrace_pattern_recursive" attribute="Pattern" lineEndContext="#stay">+        <DetectChar attribute="Pattern" context="#pop" char="}" />+        <IncludeRules context="subst_curlybrace_pattern" />+      </context>        <context name="subst_paren_pattern" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />+        <DetectChar attribute="Operator" context="subst_paren_replace" char=")" endRegion="Pattern" />+        <!-- Round brackets of RegExp pattern inside -->+        <DetectChar attribute="Pattern Internal Operator" context="subst_paren_pattern_internal_recursive" char="(" />         <IncludeRules context="regex_pattern_internal_ip" />-        <DetectChar attribute="Operator" context="subst_paren_replace" char="}" endRegion="Pattern" />       </context>       <context name="subst_paren_replace" attribute="String (interpolated)" lineEndContext="#stay">         <IncludeRules context="ipstring_internal" />         <DetectChar attribute="Operator" context="#stay" char="(" beginRegion="Replacement" />         <RegExpr attribute="Operator" context="#pop#pop#pop" String="\)[cegimosx]*" endRegion="Replacement" />       </context>+      <context name="subst_paren_pattern_internal_recursive" attribute="Pattern" lineEndContext="#stay">+        <DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" />+        <IncludeRules context="subst_paren_pattern" />+      </context>        <context name="subst_bracket_pattern" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />@@ -605,15 +626,27 @@       <context name="pattern_brace" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Operator" context="#pop#pop" String="\}[cgimosx]*" endRegion="Pattern" />         <IncludeRules context="regex_pattern_internal_ip" />+        <!-- Recursive brackets. Avoid closing brackets incorrectly. -->+        <DetectChar attribute="Pattern" context="pattern_brace_recursive" char="{" />       </context>+      <context name="pattern_brace_recursive" attribute="Pattern" lineEndContext="#stay">+        <DetectChar attribute="Pattern" context="#pop" char="}" />+        <IncludeRules context="pattern_brace" />+      </context>       <context name="pattern_bracket" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Operator" context="#pop#pop" String="\][cgimosx]*" endRegion="Pattern" />         <IncludeRules context="regex_pattern_internal_ip" />       </context>       <context name="pattern_paren" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Operator" context="#pop#pop" String="\)[cgimosx]*" endRegion="Pattern" />+        <!-- Round brackets of RegExp pattern inside -->+        <DetectChar attribute="Pattern Internal Operator" context="pattern_paren_internal_recursive" char="(" />         <IncludeRules context="regex_pattern_internal_ip" />       </context>+      <context name="pattern_paren_internal_recursive" attribute="Pattern" lineEndContext="#stay">+        <DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" />+        <IncludeRules context="pattern_paren" />+      </context>       <context name="pattern_sq" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Operator" context="#pop#pop" String="'[cgimosx]*" endRegion="Pattern" />         <IncludeRules context="regex_pattern_internal" />@@ -622,8 +655,15 @@       <!-- rules internal stuff wrt regex patterns -->       <context name="regex_pattern_internal_rules_1" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Comment" context="#stay" String="#.*$" firstNonSpace="true" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\c[^\s\\]" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\g(\{(\w+|\-\d+)\}|\d+)" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\k(\{\w+\}|&lt;\w+&gt;|'\w+')" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\N\{[^\{\}]*\}" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\o\{[0-7]+\}" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\[pP](\{\w+\}|P)" />+        <RegExpr attribute="Special Variable" context="#stay" String="\\x([0-9a-fA-F]{2}|\{[0-9a-fA-F]+\})" />         <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[anDdSsWw]" />-        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[ABbEGLlNUuQdQZz]" />+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[ABbEGLlNUuQdQZz]" /> <!-- Also?: efFhHKrRtvVX -->         <RegExpr attribute="Special Variable" context="#stay" String="\\[\d]+" />         <RegExpr attribute="Pattern" context="#stay" String="\\." />       </context>@@ -664,31 +704,36 @@        <!-- ====== Variables ====== -->       <context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >+        <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" />         <RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+" />         <RegExpr attribute="Special Variable" context="var_detect" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" />         <RegExpr attribute="Special Variable" context="var_detect" String="[%\$](?:INC\b|ENV\b|SIG\b)" />+        <RegExpr attribute="Special Variable" context="var_detect" String="\$\^[A-Z_\]\[\^\?\\]" />+        <RegExpr attribute="Special Variable" context="var_detect" String="%([\-\+!]|\^H)" />         <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" />-        <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" />         <RegExpr attribute="Data Type" context="var_detect" String="\$+::" />         <RegExpr attribute="Special Variable" context="var_detect" String="\$[^a-zA-Z0-9\s{][A-Z]?" />-        <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]\{[\w_]+\}" />+        <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]\{\^?[\w_]+\}" />         <AnyChar attribute="Data Type" context="var_detect" String="$@%" />         <RegExpr attribute="Data Type" context="var_detect" String="\*[a-zA-Z_]+" />-        <RegExpr attribute="Special Variable" context="#stay" String="\*[^a-zA-Z0-9\s{][A-Z]?" />+        <!-- Do not highlight brackets after *, Ex: (... @*) (see bug #391577) -->+        <RegExpr attribute="Special Variable" context="#stay" String="\*[^a-zA-Z0-9\s\{\(\)\[\]\}][A-Z]?" />         <!-- this should be a rare case! -->         <AnyChar attribute="Operator" context="#pop" String="$@%*" />       </context>       <!-- This does not check fo a trailing slash, for usage in strings. -->       <context name="find_variable_unsafe" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$[#_][\w_]" />         <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="\$[0-9]+" />         <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" />         <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="[%\$](?:INC\b|ENV\b|SIG\b)" />+        <RegExpr attribute="Special Variable" context="var_detect" String="\$\^[A-Z_\]\[\^\?\\]" />+        <RegExpr attribute="Special Variable" context="var_detect" String="%([\-\+!]|\^H)" />         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$\$[\$\w_]" />-        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$[#_][\w_]" />         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$+::" />         <RegExpr attribute="Special Variable" context="#stay" String="\$[^a-zA-Z0-9\s{][A-Z]?" />-        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]\{[\w_]+\}" />-        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]" /><!-- AnyChar! -->+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]\{\^?[\w_]+\}" />+        <AnyChar attribute="Data Type" context="var_detect_unsafe" String="$@%" />         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\*\w+" />         <AnyChar attribute="Operator" context="#pop" String="$@%*" />       </context>
xml/powershell.xml view
@@ -1,13 +1,13 @@ <!DOCTYPE language SYSTEM "language.dtd"> <language   name="PowerShell"-  version="3"+  version="4"   kateversion="5.0"   extensions="*.ps1;*.ps1m;*.ps1d"   section="Scripts"   author="Motoki Kashihara (motoki8791@gmail.com); Michael Lombardi (Michael.T.Lombardi@outlook.com)"   casesensitive="0"-  license="LGPLv2+">+  license="MIT">   <highlighting>     <list name="keywords">       <item>Begin</item>
xml/prolog.xml view
@@ -105,7 +105,7 @@     <!ENTITY bs         "\"> ]> <language name="Prolog" section="Sources"-	  version="7" kateversion="3.4"+	  version="9" kateversion="3.4" 	  mimetype="text/x-prolog" 	  extensions="*.prolog;*.dcg;*.pro" 	  author="Torsten Eichstädt (torsten.eichstaedt@web.de)"@@ -223,7 +223,7 @@     - Incl. Sep2012 DRAFT Technical Corrigendum 2: Prolog - Part 1: General Core     - Incl. honourable Richard O'Keefe's remarks as warnings as "ISO Bogus".     - Detect 'shebang' shell scripts, see BUGs-    - Includes alert_indent.xml to highlight alert keywords in comments.+    - Includes alert.xml to highlight alert keywords in comments.     - Dot "." may be an _unquoted_ user-defined operator in nested terms (but is       highlighted as "Warning" 'cause it's more likely a typo than an user-def'd       op) and is only taken as fullstop and highlighted as "Logic & Control" in@@ -674,15 +674,15 @@ 		<IncludeRules context="quoted_last"/> 	    </context> 	    <context name="single-quoted" lineEndContext="#stay" attribute="'quo Ted'" >-		<RegExpr String="'$" context="sq" beginRegion="quoted" attribute="Syntax Error" />+		<LineContinue char="'" context="sq" beginRegion="quoted" attribute="Syntax Error" /> 		<DetectChar char="'" context="sq" beginRegion="quoted" attribute="'quo Ted'" /> 	    </context> 	    <context name="double-quoted" lineEndContext="#stay" attribute="&quot;double-quoted&quot;" >-		<RegExpr String="&quot;$" context="dq" beginRegion="quoted" attribute="Syntax Error" />+		<LineContinue char="&quot;" context="dq" beginRegion="quoted" attribute="Syntax Error" /> 		<DetectChar char="&quot;" context="dq" beginRegion="quoted" attribute="&quot;double-quoted&quot;" /> 	    </context> 	    <context name="back-quoted" lineEndContext="#stay" attribute="`back-quoted`" >-		<RegExpr String="`$" context="bq" beginRegion="quoted" attribute="Syntax Error" />+		<LineContinue char="`" context="bq" beginRegion="quoted" attribute="Syntax Error" /> 		<DetectChar char="`" context="bq" beginRegion="quoted" attribute="`back-quoted`" /> 	    </context> @@ -777,7 +777,7 @@ 		<Detect2Chars char="*" char1="/" context="#pop" endRegion="comment" 			    attribute="% italic predicates: w/ side effects" /> 		<DetectSpaces />-		<IncludeRules context="##Alerts_indent" />+		<IncludeRules context="##Alerts" /> 		<DetectIdentifier /> 	    </context> @@ -785,7 +785,7 @@ 	    <!-- Folding for consecutive 1-line comments: let indentation-based auto-folding work --> 	    <context name="1-comment" lineEndContext="#pop" attribute="% italic predicates: w/ side effects" > 		<DetectSpaces />-		<IncludeRules context="##Alerts_indent" />+		<IncludeRules context="##Alerts" /> 		<DetectIdentifier /> 	    </context> 	    <context name="region_marker" lineEndContext="#pop" attribute="%BEGIN folding region" noIndentationBasedFolding="true" >
xml/python.xml view
@@ -14,7 +14,7 @@ <!-- v2.07 add support for %prog and co, see bug 142832 --> <!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords --> <!-- v2.29 recognize escape sequenzes correctly -->-<language name="Python" version="5" style="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;SConstruct;SConscript" mimetype="application/x-python;text/x-python" casesensitive="1" author="Michael Bueker" license="">+<language name="Python" version="9" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;SConstruct;SConscript" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license=""> 	<highlighting> 		<list name="import"> 			<item>import</item>@@ -346,9 +346,7 @@ 				<Float attribute="Float" context="#stay" /> 				<HlCHex attribute="Hex" context="#stay"/> 				<HlCOct attribute="Octal" context="#stay"/>-				<Int attribute="Int" context="#stay">-					<StringDetect attribute="Int" String="L" insensitive="true" context="#stay"/>-				</Int>+				<Int attribute="Int" context="Int Suffixes"/>  				<RegExpr attribute="Int" String=" ([0-9]+_)+[0-9]+" context="#stay"/> 				<RegExpr attribute="Float" String=" ([0-9]+_)+[0-9]+\.[0-9]+" context="#stay"/>@@ -368,6 +366,10 @@ 				<AnyChar attribute="Operator" String="+*/%\|=;\!&lt;&gt;!^&amp;~-@" context="#stay"/> 			</context> +			<context name="Int Suffixes" attribute="Int" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+				<StringDetect attribute="Int" context="#pop" String="L" insensitive="true"/>+			</context>+ 			<context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 				<DetectSpaces/> 				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>@@ -446,26 +448,27 @@ 			</context>  			<context name="Triple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="stringescape"/> 				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Triple A-region"/>-				<IncludeRules context="##Alerts_indent" />+				<IncludeRules context="##Alerts" /> 			</context>  			<context name="Triple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">-				<HlCChar attribute="Comment" context="#stay"/>+				<IncludeRules context="stringescape"/> 				<StringDetect attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>-				<IncludeRules context="##Alerts_indent" />+				<IncludeRules context="##Alerts" /> 			</context>  			<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">-				<HlCStringChar attribute="Comment" context="#stay"/>+				<IncludeRules context="stringescape"/> 				<DetectChar attribute="Comment" char="'" context="#pop"/>-				<IncludeRules context="##Alerts_indent" />+				<IncludeRules context="##Alerts" /> 			</context>  			<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">-				<HlCStringChar attribute="Comment" context="#stay"/>+				<IncludeRules context="stringescape"/> 				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>-				<IncludeRules context="##Alerts_indent" />+				<IncludeRules context="##Alerts" /> 			</context>  			<!-- Strings -->@@ -678,7 +681,6 @@ 		<comments> 			<comment name="singleLine" start="#" position="afterwhitespace"/> 		</comments>-		<indentation mode="python" /> 		<keywords casesensitive="1" additionalDeliminator="#'"/> 	</general> </language>
xml/r.xml view
@@ -56,7 +56,7 @@ 			<LineContinue attribute="Operator" context="#stay"/> 			<DetectChar attribute="Symbol" context="#pop" char=")"/> -			<RegExpr attribute="Identifier" context="#stay" String="[a-zA-Z_\.][0-9a-zA-Z_\.]*[\s]*=(?=([^=]|$))"/>+			<RegExpr attribute="Identifier" context="#stay" String="[a-zA-Z_\.][0-9a-zA-Z_\.]*[\s]*[:]?=(?=([^=]|$))"/>  			<IncludeRules context="CommonRules"/> 			<DetectChar attribute="Error" context="#stay" char="}" />@@ -79,7 +79,7 @@  		<context attribute="Normal Text" lineEndContext="#stay" name="operator_rhs" fallthrough="true" fallthroughContext="#pop"> 			<!-- While there is nothing of interest, stay in the context -->-			<StringDetect attribute="Headline" context="Headline" String="##"/>+			<Detect2Chars attribute="Headline" context="Headline" char="#" char1="#"/> 			<DetectChar attribute="Comment" context="Comment" char="#"/> 			<DetectChar attribute="String" context="#stay" char=" "/> 			<!-- Operators other than +, -, and ! directly after another operator are an error. -->@@ -104,8 +104,8 @@ 			<Int attribute="Int" context="#stay"/> 			<RegExpr attribute="Keyword" context="#stay" String="[a-zA-Z_]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/> 			<RegExpr attribute="Keyword" context="#stay" String="\.[a-zA-Z_\.]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/>-			<RegExpr attribute="Symbol" context="parenthesis" String="\("/>-			<StringDetect attribute="Headline" context="Headline" String="##"/>+			<DetectChar attribute="Symbol" context="parenthesis" char="("/>+			<Detect2Chars attribute="Headline" context="Headline" char="#" char1="#"/> 			<DetectChar attribute="Comment" context="Comment" char="#"/>  			<!-- For (assignment) operators, enter a new context operator_rhs to check what follows (generally, that should not be another op) -->
xml/rest.xml view
@@ -11,7 +11,7 @@   Copyright 2010 Matt Williams (matt@milliams.com)   Copyright 2014 Matthew Woehlke (mw_triad@users.sourceforge.net)   -->-<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="3" kateversion="2.4" casesensitive="1">+<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="4" kateversion="2.4" casesensitive="1">    <highlighting> @@ -23,7 +23,7 @@         <RegExpr attribute="Footnote" context="#stay" String="^\s*\.\. \[(\d+|#|\*|#[&SimpleReferenceNameChars;]+)\]\s" minimal="true" column="0"/>         <RegExpr attribute="Citation" context="#stay" String="^\s*\.\. \[[&SimpleReferenceNameChars;]+\]\s" minimal="true" column="0"/>         <RegExpr attribute="HyperlinkTarget" context="#stay" String="^\s*(\.\. (__:|_[&SimpleReferenceNameChars; ]+:(\s|$))|__ )" minimal="true" column="0"/>-        <RegExpr attribute="Code" String="^\s*\.\. code-block::" context="CodeBlock" column="0"/>+        <StringDetect attribute="Code" String=".. code-block::" context="CodeBlock" firstNonSpace="true"/>         <RegExpr attribute="Directive" context="#stay" String="^\s*\.\. [\w\-_\.]+::(\s|$)" minimal="true" column="0"/>         <RegExpr attribute="Code" String="::$" context="CodeBlock" />         <RegExpr attribute="SubstitutionDefinition" context="#stay" String="^\s*\.\. \|[&SimpleReferenceNameChars; ]+\|\s+[&SimpleReferenceNameChars;]+::\s" minimal="true" column="0"/>@@ -36,8 +36,7 @@         <RegExpr attribute="SubstitutionReference" context="#stay" String="&inlinestart;\|[^\s].*\|&inlineend;" minimal="true"/>         <RegExpr attribute="InlineInternalTarget" context="#stay" String="&inlinestart;_`[^\s].*`&inlineend;" minimal="true"/>         <RegExpr attribute="FootnoteReference" context="#stay" String="&inlinestart;\[[&SimpleReferenceNameChars;]+\]_&inlineend;" minimal="true"/>-        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;`[^\s].*`_&inlineend;" minimal="true"/>-        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;\w+_&inlineend;" minimal="true"/>+        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;(`[^\s].*`|\w+)_&inlineend;" minimal="true"/>         <RegExpr attribute="InterpretedText" context="TrailingRole" String="&inlinestart;`[^\s].*`(?=:[\w\-_\.\+]+:)" minimal="true"/>         <RegExpr attribute="Role" String=":[\w\-_\.\+]+:(?=`)" context="Role"/>       </context>
xml/rhtml.xml view
@@ -44,7 +44,7 @@ --> 	 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->-<language name="Ruby/Rails/RHTML" version="8" kateversion="5.0" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">+<language name="Ruby/Rails/RHTML" version="9" kateversion="5.0" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+"> 	 	<highlighting> 	@@ -333,7 +333,7 @@ 				<DetectIdentifier/> 				 				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />-				<StringDetect attribute="Keyword" context="rubysourceline" String="%" />+				<DetectChar attribute="Keyword" context="rubysourceline" char="%" /> 				 				<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" /> 				<StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />@@ -550,16 +550,17 @@ 				<RegExpr attribute="Keyword" String="(\=|\(|\[|\{)\s*(if|unless|while|until)\b" context="#stay" beginRegion="def block"/> 				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block" firstNonSpace="true"/> 				<RegExpr attribute="Keyword" String="\;\s*(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>+				<WordDetect attribute="Keyword" String="if" context="#stay" beginRegion="def block" firstNonSpace="true"/>+				<WordDetect attribute="Keyword" String="unless" context="#stay" beginRegion="def block" firstNonSpace="true"/> 				<RegExpr attribute="Keyword" String="\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bclass\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bmodule\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bbegin\b" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="class" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/> 				<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bcase\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bdo\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bdef\b" context="#stay" beginRegion="def block"/>-				<RegExpr attribute="Keyword" String="\bend\b" context="#stay" endRegion="def block"/>+				<WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="def" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/> 				<!-- elsif/else close the current block and start a new one --> 				<RegExpr attribute="Keyword" String="(\b|^\s*)(else|elsif|rescue|ensure)(\s+|$)" context="#stay" endRegion="def block" beginRegion="def block"/> 				@@ -583,8 +584,7 @@ 				<!-- (global) vars starting with $ 					Match them before $_. 					-->-				<RegExpr attribute="Global Variable" String="\$[a-zA-Z_0-9]+" context="#stay"/>-				<RegExpr attribute="Global Variable" String="\$\-[a-zA-Z_]\b" context="#stay"/>+				<RegExpr attribute="Global Variable" String="\$(\w+|\-[a-zA-Z_]\b)" context="#stay"/> 				<!-- special-character globals --> 				<RegExpr attribute="Default globals" String="\$[\d_*`\!:?'/\\\-\&amp;]" context="#stay"/> 				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="#stay"/>@@ -620,7 +620,7 @@ 				<!-- regexp hack --> 				<RegExpr attribute="Operator" String="\s!" context="#stay"/> 				<RegExpr attribute="Operator" String="/=\s" context="#stay" insensitive="0"/>-				<StringDetect attribute="Operator" String="%=" context="#stay" insensitive="0"/>+				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/> 				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/> 				 				<RegExpr attribute="Symbol" String=":[a-zA-Z_][a-zA-Z0-9_]*" context="#stay"/>@@ -629,11 +629,11 @@ 				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/> 				<DetectChar attribute="Command" char="`" context="Command String"/> 				-				<StringDetect attribute="Normal Text" String="?#" context="#stay"/>+				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/> 				 				<RegExpr attribute="Comment" String="#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/> 				<RegExpr attribute="Comment" String="#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>-				<RegExpr attribute="Comment" String="#"  context="Comment Line" firstNonSpace="true"/>+				<DetectChar attribute="Comment" char="#"  context="Comment Line" firstNonSpace="true"/> 				<RegExpr attribute="Comment" String="\s#"  context="General Comment"/> 				 				<RegExpr attribute="Delimiter" String="[\[\]]+"  context="#stay"/>@@ -653,13 +653,14 @@ 			 			<context name="Line Continue" attribute="Ruby Normal Text" lineEndContext="#pop"> 				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" firstNonSpace="true"/>-				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" firstNonSpace="true"/>+				<WordDetect attribute="Keyword" String="if" context="#stay" firstNonSpace="true"/>+				<WordDetect attribute="Keyword" String="unless" context="#stay" firstNonSpace="true"/> 				<IncludeRules context="rubysource"/> 			</context> 			 			<context name="Quoted String" attribute="String" lineEndContext="#stay">-				<StringDetect attribute="String" String="\\" context="#stay"/>-				<RegExpr attribute="String" String="\\\&quot;" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="&quot;" context="#stay"/> 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 				<!--HlCChar attribute="Char" context="#pop"/-->@@ -668,14 +669,14 @@ 			 			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay"> 				<!-- <HlCChar attribute="Char" context="#pop"/> -->-				<StringDetect attribute="String" String="\\" context="#stay"/>-				<RegExpr attribute="String" String="\\\'" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="'" context="#stay"/> 				<DetectChar char="'" attribute="Raw String" context="#pop"/> 			</context> 			 			<context name="Command String" attribute="Command" lineEndContext="#stay">-				<StringDetect attribute="String" String="\\" context="#stay"/>-				<RegExpr attribute="String" String="\\\`" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/> 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 				<HlCChar attribute="Char" context="#pop"/>@@ -687,7 +688,7 @@ 			</context> 			 			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">-				<RegExpr attribute="Regular Expression" String="\\\/" context="#stay"/>+				<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/> 				<RegExpr attribute="Regular Expression" String="[^\\]$" context="#pop"/> 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>@@ -782,34 +783,34 @@ 			<context name="find_gdl_input" attribute="Ruby Normal Text" lineEndContext="#pop"> 				 				<!-- handle token arrays -->-				<RegExpr attribute="GDL input" context="gdl_token_array_1" String="w\(" />-				<RegExpr attribute="GDL input" context="gdl_token_array_2" String="w\{" />-				<RegExpr attribute="GDL input" context="gdl_token_array_3" String="w\[" />-				<RegExpr attribute="GDL input" context="gdl_token_array_4" String="w&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" /> 				 				<!-- handle apostrophed strings -->-				<RegExpr attribute="GDL input" context="gdl_apostrophed_1" String="q\(" />-				<RegExpr attribute="GDL input" context="gdl_apostrophed_2" String="q\{" />-				<RegExpr attribute="GDL input" context="gdl_apostrophed_3" String="q\[" />-				<RegExpr attribute="GDL input" context="gdl_apostrophed_4" String="q&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" /> 				 				<!-- handle shell commands -->-				<RegExpr attribute="GDL input" context="gdl_shell_command_1" String="x\(" />-				<RegExpr attribute="GDL input" context="gdl_shell_command_2" String="x\{" />-				<RegExpr attribute="GDL input" context="gdl_shell_command_3" String="x\[" />-				<RegExpr attribute="GDL input" context="gdl_shell_command_4" String="x&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" /> 				 				<!-- handle regular expressions -->-				<RegExpr attribute="GDL input" context="gdl_regexpr_1" String="r\(" />-				<RegExpr attribute="GDL input" context="gdl_regexpr_2" String="r\{" />-				<RegExpr attribute="GDL input" context="gdl_regexpr_3" String="r\[" />-				<RegExpr attribute="GDL input" context="gdl_regexpr_4" String="r&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" /> 				@@ -818,10 +819,14 @@ 					be careful to make this the last GDL ruleset, because the rule for 					the short form %?foo? will otherwise catch any of the other formats 					-->-				<RegExpr attribute="GDL input" context="gdl_dq_string_1" String="Q?\(" />-				<RegExpr attribute="GDL input" context="gdl_dq_string_2" String="Q?\{" />-				<RegExpr attribute="GDL input" context="gdl_dq_string_3" String="Q?\[" />-				<RegExpr attribute="GDL input" context="gdl_dq_string_4" String="Q?&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="&lt;" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_4" char="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" /> 				
xml/ruby.xml view
@@ -31,7 +31,7 @@  <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". --> <language name="Ruby" section="Scripts"-	  version="8" kateversion="3.3"+	  version="9" kateversion="3.3" 	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile" 	  mimetype="application/x-ruby" 	  style="ruby" indenter="ruby"@@ -274,7 +274,7 @@ 				<!-- regexp hack --> 				<RegExpr attribute="Operator" String="\s!" context="#stay"/> 				<RegExpr attribute="Operator" String="/=\s" context="#stay" insensitive="0"/>-				<StringDetect attribute="Operator" String="%=" context="#stay" insensitive="0"/>+				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/> 				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>  				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?" context="check_div_1"/>@@ -287,7 +287,7 @@ 				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/> 				<DetectChar attribute="Command" char="`" context="Command String"/> -				<StringDetect attribute="Normal Text" String="?#" context="#stay"/>+				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>  				<RegExpr attribute="Comment" String="#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/> 				<RegExpr attribute="Comment" String="#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>@@ -364,22 +364,22 @@ 			</context>  			<context name="Quoted String" attribute="String" lineEndContext="#stay">-				<StringDetect attribute="String" String="\\" context="#stay"/>-				<RegExpr attribute="String" String="\\\&quot;" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="&quot;" context="#stay"/> 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 				<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/> 			</context>  			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">-				<StringDetect attribute="String" String="\\" context="#stay"/>-				<RegExpr attribute="String" String="\\\'" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="'" context="#stay"/> 				<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/> 			</context>  			<context name="Command String" attribute="Command" lineEndContext="#stay">-				<StringDetect attribute="String" String="\\" context="#stay"/>-				<RegExpr attribute="String" String="\\\`" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/> 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 				<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>@@ -391,7 +391,7 @@ 			</context>  			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">-				<RegExpr attribute="Regular Expression" String="\\\/" context="#stay"/>+				<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/> 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>@@ -473,42 +473,42 @@ 			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">  				<!-- handle token arrays -->-				<RegExpr attribute="GDL input" context="gdl_token_array_1" String="w\(" />-				<RegExpr attribute="GDL input" context="gdl_token_array_2" String="w\{" />-				<RegExpr attribute="GDL input" context="gdl_token_array_3" String="w\[" />-				<RegExpr attribute="GDL input" context="gdl_token_array_4" String="w&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />  				<!-- handle token arrays -->-				<RegExpr attribute="GDL input" context="gdl_token_array_1" String="W\(" />-				<RegExpr attribute="GDL input" context="gdl_token_array_2" String="W\{" />-				<RegExpr attribute="GDL input" context="gdl_token_array_3" String="W\[" />-				<RegExpr attribute="GDL input" context="gdl_token_array_4" String="W&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="W" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="W" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="W" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="W" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="W([^\s\w])" />  				<!-- handle apostrophed strings -->-				<RegExpr attribute="GDL input" context="gdl_apostrophed_1" String="q\(" />-				<RegExpr attribute="GDL input" context="gdl_apostrophed_2" String="q\{" />-				<RegExpr attribute="GDL input" context="gdl_apostrophed_3" String="q\[" />-				<RegExpr attribute="GDL input" context="gdl_apostrophed_4" String="q&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />  				<!-- handle shell commands -->-				<RegExpr attribute="GDL input" context="gdl_shell_command_1" String="x\(" />-				<RegExpr attribute="GDL input" context="gdl_shell_command_2" String="x\{" />-				<RegExpr attribute="GDL input" context="gdl_shell_command_3" String="x\[" />-				<RegExpr attribute="GDL input" context="gdl_shell_command_4" String="x&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />  				<!-- handle regular expressions -->-				<RegExpr attribute="GDL input" context="gdl_regexpr_1" String="r\(" />-				<RegExpr attribute="GDL input" context="gdl_regexpr_2" String="r\{" />-				<RegExpr attribute="GDL input" context="gdl_regexpr_3" String="r\[" />-				<RegExpr attribute="GDL input" context="gdl_regexpr_4" String="r&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" /> @@ -517,10 +517,14 @@ 					  be careful to make this the last GDL ruleset, because the rule for 					  the short form %?foo? will otherwise catch any of the other formats 				-->-				<RegExpr attribute="GDL input" context="gdl_dq_string_1" String="Q?\(" />-				<RegExpr attribute="GDL input" context="gdl_dq_string_2" String="Q?\{" />-				<RegExpr attribute="GDL input" context="gdl_dq_string_3" String="Q?\[" />-				<RegExpr attribute="GDL input" context="gdl_dq_string_4" String="Q?&lt;" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="&lt;" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_4" char="&lt;" /> 				<!-- then we handle the 'any char' format --> 				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" /> @@ -650,7 +654,7 @@  			<!-- rules to be included in all token_array contexts --> 			<context name="token_array_rules" attribute="String" lineEndContext="#stay" >-				<StringDetect attribute="String" String="\\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/> 			</context>  			<!-- apostrophed string specific contexts -->
xml/rust.xml view
@@ -28,13 +28,12 @@ --> <!DOCTYPE language SYSTEM "language.dtd" [-	<!-- FIXME: Kate's regex engine has very limited support for-	predefined char classes, so making rustIdent consistent with actual-	Rust identifiers will be a bit difficult -->-	<!ENTITY rustIdent "[a-zA-Z_][a-zA-Z_0-9]*">-	<!ENTITY rustIntSuf "([iu](8|16|32|64)?)?">+	<!ENTITY rustIdent "([a-zA-Z_]|[^[:ascii:]])(\w|[^[:ascii:]])*">+	<!ENTITY rustIntSuf "([iu](8|16|32|64|128|size)?)?">+	<!ENTITY commonEscape "([trn0&apos;&quot;\\]|x[0-9a-fA-F]{2})">+	<!ENTITY unicodeEscape "u\{([0-9a-fA-F]_*){1,6}\}"> ]>-<language name="Rust" version="4" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" priority="15" license="MIT" author="The Rust Project Developers">+<language name="Rust" version="5" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" priority="15" license="MIT" author="The Rust Project Developers"> <highlighting> 	<list name="fn"> 		<item>fn</item>@@ -52,6 +51,7 @@ 		<item>const</item> 		<item>continue</item> 		<item>crate</item>+		<item>default</item> 		<item>do</item> 		<item>else</item> 		<item>enum</item>@@ -85,6 +85,7 @@ 		<item>trait</item> 		<item>type</item> 		<item>typeof</item>+		<item>union</item> 		<item>unsafe</item> 		<item>unsized</item> 		<item>use</item>@@ -94,6 +95,9 @@ 		<item>yield</item> 	</list> 	<list name="traits">+		<!-- FIXME: Some traits may be obsolete and must be removed -->+		<item>AsMut</item>+		<item>AsRef</item> 		<item>AsSlice</item> 		<item>CharExt</item> 		<item>Clone</item>@@ -106,13 +110,16 @@ 		<item>Drop</item> 		<item>Encodable</item> 		<item>Eq</item>-		<item>Default</item>+		<item>ExactSizeIterator</item> 		<item>Extend</item> 		<item>Fn</item> 		<item>FnMut</item> 		<item>FnOnce</item>+		<item>From</item> 		<item>FromPrimitive</item> 		<item>Hash</item>+		<item>Into</item>+		<item>IntoIterator</item> 		<item>Iterator</item> 		<item>IteratorExt</item> 		<item>MutPtrExt</item>@@ -121,6 +128,8 @@ 		<item>PartialOrd</item> 		<item>PtrExt</item> 		<item>Rand</item>+		<item>RustcDecodable</item>+		<item>RustcEncodable</item> 		<item>Send</item> 		<item>Sized</item> 		<item>SliceConcatExt</item>@@ -128,25 +137,25 @@ 		<item>Str</item> 		<item>StrExt</item> 		<item>Sync</item>+		<item>ToOwned</item> 		<item>ToString</item> 	</list> 	<list name="types"> 		<item>bool</item>-		<item>int</item> 		<item>isize</item>-		<item>uint</item> 		<item>usize</item> 		<item>i8</item> 		<item>i16</item> 		<item>i32</item> 		<item>i64</item>+		<item>i128</item> 		<item>u8</item> 		<item>u16</item> 		<item>u32</item> 		<item>u64</item>+		<item>u128</item> 		<item>f32</item> 		<item>f64</item>-		<item>float</item> 		<item>char</item> 		<item>str</item> 		<item>Option</item>@@ -155,6 +164,8 @@ 		<item>Box</item> 		<item>Vec</item> 		<item>String</item>+		<item>Path</item>+		<item>PathBuf</item> 	</list> 	<list name="ctypes"> 		<item>c_float</item>@@ -261,11 +272,9 @@ 			<keyword String="cconstants" attribute="CConstant" context="#stay"/> 			<Detect2Chars char="/" char1="/" attribute="Comment" context="Commentar 1"/> 			<Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>-			<RegExpr String="0x[0-9a-fA-F_]+&rustIntSuf;" attribute="Number" context="#stay"/>-			<RegExpr String="0o[0-7_]+&rustIntSuf;" attribute="Number" context="#stay"/>-			<RegExpr String="0b[0-1_]+&rustIntSuf;" attribute="Number" context="#stay"/>-			<RegExpr String="[0-9][0-9_]*\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?" attribute="Number" context="#stay"/>-			<RegExpr String="[0-9][0-9_]*&rustIntSuf;" attribute="Number" context="#stay"/>+			<RegExpr String="\b0(x[0-9a-fA-F_]+|o[0-7_]+|b[01_]+)&rustIntSuf;\b" attribute="Number" context="#stay"/> <!-- Hexadecimal, Octal & Binary -->+			<RegExpr String="\b[0-9][0-9_]*((\.[0-9][0-9_]*)?([eE][\+\-]?[0-9_]+)?(f32|f64)?|&rustIntSuf;)\b" attribute="Number" context="#stay"/> <!-- Float & Decimal -->+			<RegExpr String="\b0(b[01_]*[^01_]|o[0-7_]*[^0-7_]|x[0-9a-fA-F_]*[^0-9a-fA-F_])\w*&rustIntSuf;\b" attribute="Error" context="#stay"/> <!-- Invalid number --> 			<Detect2Chars char="#" char1="[" attribute="Attribute" context="Attribute" beginRegion="Attribute"/> 			<StringDetect String="#![" attribute="Attribute" context="Attribute" beginRegion="Attribute"/> 			<RegExpr String="&rustIdent;::" attribute="Scope"/>@@ -273,10 +282,10 @@ 			<RegExpr String="&apos;&rustIdent;(?!&apos;)" attribute="Lifetime"/> 			<DetectChar char="{" attribute="Symbol" context="#stay" beginRegion="Brace" /> 			<DetectChar char="}" attribute="Symbol" context="#stay" endRegion="Brace" />-                        <Detect2Chars char="r" char1="&quot;" attribute="String" context="RawString"/>-                        <StringDetect String="r##&quot;" attribute="String" context="RawHashed2"/>-                        <StringDetect String="r#&quot;" attribute="String" context="RawHashed1"/>+			<RegExpr String="b?r(#*)&quot;" attribute="String" context="RawString" dynamic="true"/>+			<Detect2Chars char="b" char1="&quot;" attribute="String" context="ByteString"/> 			<DetectChar char="&quot;" attribute="String" context="String"/>+			<RegExpr String="b&apos;(?=([^&apos;\\]|\\&commonEscape;)&apos;)" attribute="Character" context="Character"/> <!-- Byte --> 			<DetectChar char="&apos;" attribute="Character" context="Character"/> 			<DetectChar char="[" attribute="Symbol" context="#stay" beginRegion="Bracket" /> 			<DetectChar char="]" attribute="Symbol" context="#stay" endRegion="Bracket" />@@ -300,31 +309,30 @@                 <!-- Rustc allows strings to extend over multiple lines, and the                 only thing a backshash at end-of-line does is remove the whitespace. -->                 <context attribute="String" lineEndContext="#stay" name="String">-                        <DetectChar char="\" attribute="CharEscape" context="CharEscape"/>+                        <DetectChar char="\" attribute="CharEscape" context="CharEscapeWithUnicode"/>                         <DetectChar attribute="String" context="#pop" char="&quot;"/>                 </context>-		<context attribute="String" lineEndContext="#stay" name="RawString">+		<context attribute="String" lineEndContext="#stay" name="ByteString">+			<DetectChar char="\" attribute="CharEscape" context="CharEscape"/> 			<DetectChar attribute="String" context="#pop" char="&quot;"/> 		</context>-                <!-- These rules are't complete: they won't match r###"abc"### -->-                <context attribute="String" lineEndContext="#stay" name="RawHashed1">-                        <Detect2Chars attribute="String" context="#pop" char="&quot;" char1="#"/>-                </context>-                <context attribute="String" lineEndContext="#stay" name="RawHashed2">-                        <StringDetect attribute="String" context="#pop" String="&quot;##"/>-                </context>-		<context attribute="Character" lineEndContext="#pop" name="Character">-			<DetectChar char="\" attribute="CharEscape" context="CharEscape"/>+		<context attribute="String" lineEndContext="#stay" name="RawString" dynamic="true">+			<RegExpr String="&quot;%1" attribute="String" context="#pop" dynamic="true"/>+		</context>		+		<context attribute="Character" lineEndContext="#pop" name="Character" fallthrough="true" fallthroughContext="#pop">+			<RegExpr String="[^&apos;\\](?=&apos;)" attribute="Character" context="#stay"/>+			<RegExpr String="\\(&unicodeEscape;|&commonEscape;)(?=&apos;)" attribute="CharEscape" context="#stay"/> 			<DetectChar attribute="Character" context="#pop" char="&apos;"/>+			<RegExpr String="(\\.|[^&apos;\\])[^&apos;]*(?=&apos;([\d\s!&quot;#&#036;&#037;&amp;&#039;\(\)\*\+,\-\./:;&lt;\=&gt;\?@\[\\\]\^&#096;\{\|\}~[:cntrl:]]|$))" attribute="Error" context="#stay"/> 		</context> 		<context attribute="CharEscape" lineEndContext="#pop" name="CharEscape">-			<AnyChar String="nrt\&apos;&quot;" attribute="CharEscape" context="#pop"/>-			<RegExpr String="x[0-9a-fA-F]{2}" attribute="CharEscape" context="#pop"/>-			<RegExpr String="u\{[0-9a-fA-F]{1,6}\}" attribute="CharEscape" context="#pop"/>-			<RegExpr String="u[0-9a-fA-F]{4}" attribute="CharEscape" context="#pop"/>-			<RegExpr String="U[0-9a-fA-F]{8}" attribute="CharEscape" context="#pop"/>+			<RegExpr String="&commonEscape;" attribute="CharEscape" context="#pop"/> 			<RegExpr String="." attribute="Error" context="#pop"/> 		</context>+		<context attribute="CharEscape" lineEndContext="#pop" name="CharEscapeWithUnicode">+			<RegExpr String="&unicodeEscape;" attribute="CharEscape" context="#pop"/>+			<IncludeRules context="CharEscape"/>+		</context> 		<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/> 		<context attribute="Comment" lineEndContext="#stay" name="Commentar 2"> 			<DetectSpaces/>@@ -343,7 +351,7 @@ 		<itemData name="CConstant"    defStyleNum="dsConstant" spellChecking="0"/> 		<itemData name="Definition"   defStyleNum="dsNormal"/> 		<itemData name="Comment"      defStyleNum="dsComment"/>-		<itemData name="Scope"        defStyleNum="dsNormal"/>+		<itemData name="Scope"        defStyleNum="dsPreprocessor"/> 		<itemData name="Number"       defStyleNum="dsDecVal"/> 		<itemData name="String"       defStyleNum="dsString"/> 		<itemData name="CharEscape"   defStyleNum="dsSpecialChar"/>
xml/scala.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Scala" version="5" kateversion="2.3" section="Sources"+<language name="Scala" version="6" kateversion="2.3" section="Sources"           extensions="*.scala;*.sbt" mimetype="text/x-scala" license="LGPL"           author="Stephane Micheloud (stephane.micheloud@epfl.ch)"> <!--@@ -3406,21 +3406,10 @@         <keyword attribute="Data Type" context="#stay" String="types"/>         <keyword attribute="Java15" context="#stay" String="java15"/>         <keyword attribute="Scala2" context="#stay" String="scala2"/>-        <Float attribute="Float" context="#stay">-          <AnyChar String="fF" attribute="Float" context="#stay"/>-        </Float>+        <Float attribute="Float" context="Float Suffixes"/>         <HlCOct attribute="Octal" context="#stay"/>         <HlCHex attribute="Hex" context="#stay"/>-        <Int attribute="Decimal" context="#stay">-          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>-          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>-        </Int>+        <Int attribute="Decimal" context="Int Suffixes"/>         <HlCChar attribute="Char" context="#stay"/>         <RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>         <RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>@@ -3438,6 +3427,19 @@         <RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />         <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>+      </context>+      <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <AnyChar String="fF" attribute="Float" context="#pop"/>+      </context>+      <context name="Int Suffixes" attribute="Decimal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+          <StringDetect attribute="Decimal" context="#pop" String="ULL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LUL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LLU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="UL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LU" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="LL" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="U" insensitive="true"/>+          <StringDetect attribute="Decimal" context="#pop" String="L" insensitive="true"/>       </context>       <context attribute="String" lineEndContext="#pop" name="String">         <LineContinue attribute="String" context="#stay"/>
xml/sql-mysql.xml view
@@ -6,25 +6,46 @@   modifications by Milian Wolff (mail@milianw.de)   v3 fix comments by Gene Thomas <gene@genethomas.com> -->-<language name="SQL (MySQL)" version="3" kateversion="3.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">+<language name="SQL (MySQL)" version="5" kateversion="5.0" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">   <highlighting>+    <list name="controlFlow">+      <item>BEGIN</item>+      <item>CASE</item>+      <item>DO</item>+      <item>ELSE</item>+      <item>ELSEIF</item>+      <item>END</item>+      <item>FOR</item>+      <item>IF</item>+      <item>LOOP</item>+      <item>RETURN</item>+      <item>THEN</item>+      <item>WHEN</item>+      <item>WHILE</item>+    </list>+    <list name="operators">+      <item>AND</item>+      <item>BETWEEN</item>+      <item>IN</item>+      <item>IS</item>+      <item>LIKE</item>+      <item>NOT</item>+      <item>OR</item>+    </list>     <list name="keywords">       <item>ACCESS</item>       <item>ADD</item>       <item>ALL</item>       <item>ALTER</item>       <item>ANALYZE</item>-      <item>AND</item>       <item>AS</item>       <item>ASC</item>       <item>AUTO_INCREMENT</item>       <item>BDB</item>       <item>BERKELEYDB</item>-      <item>BETWEEN</item>       <item>BOTH</item>       <item>BY</item>       <item>CASCADE</item>-      <item>CASE</item>       <item>CHANGE</item>       <!-- <item> CHARACTER SET </item>         needs special regexp (see below) -->@@ -43,6 +64,7 @@       <item>DAY_MINUTE</item>       <item>DAY_SECOND</item>       <item>DEC</item>+      <item>DECLARE</item>       <item>DEFAULT</item>       <item>DELAYED</item>       <item>DELETE</item>@@ -51,13 +73,11 @@       <item>DISTINCT</item>       <item>DISTINCTROW</item>       <item>DROP</item>-      <item>ELSE</item>       <item>ENCLOSED</item>       <item>ESCAPED</item>       <item>EXISTS</item>       <item>EXPLAIN</item>       <item>FIELDS</item>-      <item>FOR</item>       <item>FOREIGN</item>       <item>FROM</item>       <item>FULLTEXT</item>@@ -66,9 +86,7 @@       <item>GROUP</item>       <item>HAVING</item>       <item>HIGH_PRIORITY</item>-      <item>IF</item>       <item>IGNORE</item>-      <item>IN</item>       <item>INDEX</item>       <item>INFILE</item>       <item>INNER</item>@@ -76,14 +94,12 @@       <item>INSERT</item>       <item>INTERVAL</item>       <item>INTO</item>-      <item>IS</item>       <item>JOIN</item>       <item>KEY</item>       <item>KEYS</item>       <item>KILL</item>       <item>LEADING</item>       <item>LEFT</item>-      <item>LIKE</item>       <item>LIMIT</item>       <item>LINES</item>       <item>LOAD</item>@@ -94,14 +110,12 @@       <item>MRG_MYISAM</item>       <item>NATIONAL</item>       <item>NATURAL</item>-      <item>NOT</item>       <item>NULL</item>       <item>NUMERIC</item>       <item>ON</item>       <item>OPTIMIZE</item>       <item>OPTION</item>       <item>OPTIONALLY</item>-      <item>OR</item>       <item>ORDER</item>       <item>OUTER</item>       <item>OUTFILE</item>@@ -136,7 +150,6 @@       <item>TABLE</item>       <item>TABLES</item>       <item>TERMINATED</item>-      <item>THEN</item>       <item>TO</item>       <item>TRAILING</item>       <item>TRUNCATE</item>@@ -152,35 +165,13 @@       <item>USING</item>       <item>VALUES</item>       <item>VARYING</item>-      <item>WHEN</item>-      <item>WHERE</item>-      <item>WHILE</item>       <item>WITH</item>+      <item>WHERE</item>       <item>WRITE</item>       <item>XOR</item>       <item>YEAR_MONTH</item>       <item>ZEROFILL</item>     </list>-    <list name="operators">-      <item>+</item>-      <item>-</item>-      <item>*</item>-      <item>/</item>-      <item>||</item>-      <item>=</item>-      <item>!=</item>-      <item>&lt;&gt;</item>-      <item>&lt;</item>-      <item>&lt;=</item>-      <item>&gt;</item>-      <item>&gt;=</item>-      <item>~=</item>-      <item>^=</item>-      <item>:=</item>-      <item>=&gt;</item>-      <item>**</item>-      <item>..</item>-    </list>     <list name="functions">       <!-- string functions -->       <item>ASCII</item>@@ -189,6 +180,7 @@       <item>CHAR</item>       <item>CHARACTER_LENGTH</item>       <item>CHAR_LENGTH</item>+      <item>COALESCE</item>       <item>CONCAT</item>       <item>CONCAT_WS</item>       <item>CONV</item>@@ -391,14 +383,26 @@         <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>         <RegExpr attribute="Comment" context="SingleLineComment" String="rem\b" insensitive="true" column="0"/> +        <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/> <!-- conflict with "operators" keywords -->+         <!-- problematic special cases -->         <!-- SET type -->         <RegExpr attribute="Data Type" context="#stay" insensitive="true" String="SET(?=\s*\()"/>         <!-- keyword character set -->-        <RegExpr attribute="Keyword" context="#stay" insensitive="true" String="\bCHARACTER SET\b"/>+        <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="CHARACTER SET"/>         <!-- using the lists -->         <keyword attribute="Keyword" context="#stay" String="keywords"/>-        <keyword attribute="Operator" context="#stay" String="operators"/>+        <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/>+        <keyword attribute="Operator Keyword" context="#stay" String="operators"/>+        <keyword attribute="ControlFlow" context="#stay" String="controlFlow"/>+        <AnyChar attribute="Operator" context="#stay" String="+-*/=&lt;&gt;"/>+        <Detect2Chars attribute="Operator" context="#stay" char="!" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="~" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="^" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char=":" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="." char1="."/>+        <Detect2Chars attribute="Operator" context="#stay" char="|" char1="|"/>+        <AnyChar attribute="Symbol" context="#stay" String=":&#38;"/>         <keyword attribute="Function" context="#stay" String="functions"/>         <keyword attribute="Data Type" context="#stay" String="types"/> @@ -414,8 +418,6 @@         <DetectChar attribute="String" context="String2" char="&quot;"/>         <DetectChar attribute="Name" context="Name" char="`"/> -        <AnyChar attribute="Symbol" context="#stay" String=":&#38;"/>-        <RegExpr attribute="Symbol" context="#stay" String="/$" column="0"/>         <RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>         <!-- for something like : SELECT DB.TABLE.ROW ... -->         <DetectChar attribute="String Char" context="#stay" char="."/>@@ -452,7 +454,9 @@     <itemDatas>       <itemData name="Normal Text"       defStyleNum="dsNormal" spellChecking="false"/>       <itemData name="Keyword"           defStyleNum="dsKeyword" spellChecking="false"/>-      <itemData name="Operator"          defStyleNum="dsNormal" spellChecking="false"/>+      <itemData name="ControlFlow"       defStyleNum="dsControlFlow" spellChecking="false"/>+      <itemData name="Operator"          defStyleNum="dsOperator" spellChecking="false"/>+      <itemData name="Operator Keyword"  defStyleNum="dsKeyword" spellChecking="false"/>       <itemData name="Function"          defStyleNum="dsFunction" spellChecking="false"/>       <itemData name="Data Type"         defStyleNum="dsDataType" spellChecking="false"/>       <itemData name="Decimal"           defStyleNum="dsDecVal" spellChecking="false"/>@@ -471,7 +475,7 @@       <comment name="singleLine" start="--"/>       <comment name="multiLine" start="/*" end="*/"/>     </comments>-    <keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:."/>+    <keywords casesensitive="0"/>     <folding indentationsensitive="true"/>   </general> </language>
xml/sql-postgresql.xml view
@@ -3,24 +3,55 @@ <!-- PostgreSQL SQL, syntax definition based on sql.xml by Yury Lebedev      v5 fix comments by Gene Thomas <gene@genethomas.com>   -->-<language name="SQL (PostgreSQL)" version="6" kateversion="2.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">+<language name="SQL (PostgreSQL)" version="7" kateversion="5.0" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">   <highlighting>+    <list name="controlFlow">+      <item>BEGIN</item>+      <item>CASE</item>+      <item>ELSE</item>+      <item>ELSIF</item>+      <item>END</item>+      <item>EXCEPTION</item>+      <item>FOR</item>+      <item>IF</item>+      <item>LOOP</item>+      <item>RETURN</item>+      <item>THEN</item>+      <item>WHEN</item>+  </list>+    <list name="operators">+      <item>AND</item>+      <item>BETWEEN</item>+      <item>IN</item>+      <item>IS</item>+      <item>LIKE</item>+      <item>NOT</item>+      <item>OR</item>+    </list>     <list name="keywords">+      <item>A</item>       <item>ABORT</item>+      <item>ABSENT</item>+      <item>ABSOLUTE</item>       <item>ACCESS</item>+      <item>ACCORDING</item>       <item>ACTION</item>+      <item>ADA</item>       <item>ADD</item>       <item>ADMIN</item>       <item>AFTER</item>       <item>AGGREGATE</item>-      <item>ALIAS</item>       <item>ALL</item>       <item>ALLOCATE</item>+      <item>ALSO</item>       <item>ALTER</item>-      <item>ANALYSE</item>+      <item>ALWAYS</item>       <item>ANALYZE</item>       <item>ANY</item>       <item>ARE</item>+      <item>ARRAY</item>+      <item>ARRAY_AGG</item>+      <item>ARRAY_MAX_CARDINALITY</item>       <item>AS</item>       <item>ASC</item>       <item>ASENSITIVE</item>@@ -30,12 +61,19 @@       <item>AT</item>       <item>ATOMIC</item>       <item>ATTACH</item>+      <item>ATTRIBUTE</item>+      <item>ATTRIBUTES</item>       <item>AUTHORIZATION</item>       <item>BACKWARD</item>+      <item>BASE64</item>       <item>BEFORE</item>-      <item>BEGIN</item>-      <item>BETWEEN</item>+      <item>BEGIN_FRAME</item>+      <item>BEGIN_PARTITION</item>+      <item>BERNOULLI</item>       <item>BINARY</item>+      <item>BLOB</item>+      <item>BLOCKED</item>+      <item>BOM</item>       <item>BOTH</item>       <item>BREADTH</item>       <item>BY</item>@@ -46,90 +84,106 @@       <item>CARDINALITY</item>       <item>CASCADE</item>       <item>CASCADED</item>-      <item>CASE</item>       <item>CAST</item>       <item>CATALOG</item>       <item>CATALOG_NAME</item>       <item>CHAIN</item>       <item>CHARACTERISTICS</item>-      <item>CHARACTER_LENGTH</item>+      <item>CHARACTERS</item>       <item>CHARACTER_SET_CATALOG</item>       <item>CHARACTER_SET_NAME</item>       <item>CHARACTER_SET_SCHEMA</item>-      <item>CHAR_LENGTH</item>       <item>CHECK</item>-      <item>CHECKED</item>       <item>CHECKPOINT</item>       <item>CLASS</item>       <item>CLASS_ORIGIN</item>       <item>CLOB</item>       <item>CLOSE</item>       <item>CLUSTER</item>-      <item>COALESCE</item>       <item>COBOL</item>       <item>COLLATE</item>       <item>COLLATION</item>       <item>COLLATION_CATALOG</item>       <item>COLLATION_NAME</item>       <item>COLLATION_SCHEMA</item>+      <item>COLLECT</item>       <item>COLUMN</item>+      <item>COLUMNS</item>       <item>COLUMN_NAME</item>       <item>COMMAND_FUNCTION</item>       <item>COMMAND_FUNCTION_CODE</item>       <item>COMMENT</item>+      <item>COMMENTS</item>       <item>COMMIT</item>       <item>COMMITTED</item>-      <item>COMPLETION</item>+      <item>CONCURRENTLY</item>+      <item>CONDITION</item>       <item>CONDITION_NUMBER</item>+      <item>CONFIGURATION</item>+      <item>CONFLICT</item>       <item>CONNECT</item>       <item>CONNECTION</item>       <item>CONNECTION_NAME</item>-      <item>CONSTRAINTS</item>       <item>CONSTRAINT</item>+      <item>CONSTRAINTS</item>       <item>CONSTRAINT_CATALOG</item>       <item>CONSTRAINT_NAME</item>       <item>CONSTRAINT_SCHEMA</item>       <item>CONSTRUCTOR</item>       <item>CONTAINS</item>+      <item>CONTENT</item>       <item>CONTINUE</item>-      <item>CONVERT</item>+      <item>CONTROL</item>+      <item>CONVERSION</item>       <item>COPY</item>+      <item>CORR</item>       <item>CORRESPONDING</item>-      <item>COUNT</item>+      <item>COST</item>+      <item>COVAR_POP</item>+      <item>COVAR_SAMP</item>       <item>CREATE</item>-      <item>CREATEDB</item>-      <item>CREATEUSER</item>       <item>CROSS</item>+      <item>CSV</item>       <item>CUBE</item>+      <item>CUME_DIST</item>       <item>CURRENT</item>+      <item>CURRENT_CATALOG</item>       <item>CURRENT_DATE</item>+      <item>CURRENT_DEFAULT_TRANSFORM_GROUP</item>       <item>CURRENT_PATH</item>       <item>CURRENT_ROLE</item>+      <item>CURRENT_ROW</item>       <item>CURRENT_TIME</item>       <item>CURRENT_TIMESTAMP</item>-      <item>CURRENT_USER</item>+      <item>CURRENT_TRANSFORM_GROUP_FOR_TYPE</item>       <item>CURSOR</item>       <item>CURSOR_NAME</item>       <item>CYCLE</item>       <item>DATA</item>       <item>DATABASE</item>-      <item>DATE</item>+      <item>DATALINK</item>       <item>DATETIME_INTERVAL_CODE</item>       <item>DATETIME_INTERVAL_PRECISION</item>       <item>DAY</item>+      <item>DB</item>       <item>DEALLOCATE</item>       <item>DEC</item>-      <item>DECIMAL</item>       <item>DECLARE</item>       <item>DEFAULT</item>+      <item>DEFAULTS</item>       <item>DEFERRABLE</item>       <item>DEFERRED</item>       <item>DEFINED</item>       <item>DEFINER</item>+      <item>DEGREE</item>       <item>DELETE</item>+      <item>DELIMITER</item>       <item>DELIMITERS</item>+      <item>DENSE_RANK</item>+      <item>DEPENDS</item>       <item>DEPTH</item>       <item>DEREF</item>+      <item>DERIVED</item>       <item>DESC</item>       <item>DESCRIBE</item>       <item>DESCRIPTOR</item>@@ -139,49 +193,78 @@       <item>DETERMINISTIC</item>       <item>DIAGNOSTICS</item>       <item>DICTIONARY</item>+      <item>DISABLE</item>+      <item>DISCARD</item>       <item>DISCONNECT</item>       <item>DISPATCH</item>       <item>DISTINCT</item>+      <item>DLNEWCOPY</item>+      <item>DLPREVIOUSCOPY</item>+      <item>DLURLCOMPLETE</item>+      <item>DLURLCOMPLETEONLY</item>+      <item>DLURLCOMPLETEWRITE</item>+      <item>DLURLPATH</item>+      <item>DLURLPATHONLY</item>+      <item>DLURLPATHWRITE</item>+      <item>DLURLSCHEME</item>+      <item>DLURLSERVER</item>+      <item>DLVALUE</item>       <item>DO</item>+      <item>DOCUMENT</item>       <item>DOMAIN</item>-      <item>DOUBLE</item>       <item>DROP</item>       <item>DYNAMIC</item>       <item>DYNAMIC_FUNCTION</item>       <item>DYNAMIC_FUNCTION_CODE</item>       <item>EACH</item>-      <item>ELSE</item>+      <item>ELEMENT</item>+      <item>EMPTY</item>+      <item>ENABLE</item>       <item>ENCODING</item>       <item>ENCRYPTED</item>-      <item>END</item>       <item>END-EXEC</item>+      <item>END_FRAME</item>+      <item>END_PARTITION</item>+      <item>ENFORCED</item>+      <item>ENUM</item>       <item>EQUALS</item>       <item>ESCAPE</item>-      <item>EVERY</item>+      <item>EVENT</item>       <item>EXCEPT</item>-      <item>EXCEPTION</item>+      <item>EXCLUDE</item>+      <item>EXCLUDING</item>       <item>EXCLUSIVE</item>       <item>EXEC</item>       <item>EXECUTE</item>-      <item>EXISTING</item>       <item>EXISTS</item>       <item>EXPLAIN</item>+      <item>EXPRESSION</item>+      <item>EXTENSION</item>       <item>EXTERNAL</item>       <item>FALSE</item>       <item>FETCH</item>+      <item>FILE</item>+      <item>FILTER</item>       <item>FINAL</item>       <item>FIRST</item>-      <item>FOR</item>+      <item>FIRST_VALUE</item>+      <item>FLAG</item>+      <item>FLOAT</item>+      <item>FOLLOWING</item>       <item>FORCE</item>       <item>FOREIGN</item>       <item>FORTRAN</item>       <item>FORWARD</item>       <item>FOUND</item>+      <item>FRAME_ROW</item>       <item>FREE</item>       <item>FREEZE</item>       <item>FROM</item>+      <item>FS</item>       <item>FULL</item>       <item>FUNCTION</item>+      <item>FUNCTIONS</item>+      <item>FUSION</item>       <item>G</item>       <item>GENERAL</item>       <item>GENERATED</item>@@ -191,28 +274,37 @@       <item>GOTO</item>       <item>GRANT</item>       <item>GRANTED</item>+      <item>GREATEST</item>       <item>GROUP</item>       <item>GROUPING</item>+      <item>GROUPS</item>       <item>HANDLER</item>       <item>HAVING</item>+      <item>HEADER</item>+      <item>HEX</item>       <item>HIERARCHY</item>       <item>HOLD</item>-      <item>HOST</item>       <item>HOUR</item>+      <item>ID</item>       <item>IDENTITY</item>       <item>IGNORE</item>       <item>ILIKE</item>       <item>IMMEDIATE</item>+      <item>IMMEDIATELY</item>       <item>IMMUTABLE</item>       <item>IMPLEMENTATION</item>-      <item>IN</item>+      <item>IMPLICIT</item>+      <item>IMPORT</item>+      <item>INCLUDING</item>       <item>INCREMENT</item>+      <item>INDENT</item>       <item>INDEX</item>+      <item>INDEXES</item>       <item>INDICATOR</item>-      <item>INFIX</item>+      <item>INHERIT</item>       <item>INHERITS</item>-      <item>INITIALIZE</item>       <item>INITIALLY</item>+      <item>INLINE</item>       <item>INNER</item>       <item>INOUT</item>       <item>INPUT</item>@@ -221,31 +313,35 @@       <item>INSTANCE</item>       <item>INSTANTIABLE</item>       <item>INSTEAD</item>+      <item>INTEGRITY</item>       <item>INTERSECT</item>-      <item>INTERVAL</item>+      <item>INTERSECTION</item>       <item>INTO</item>       <item>INVOKER</item>-      <item>IS</item>       <item>ISNULL</item>       <item>ISOLATION</item>-      <item>ITERATE</item>       <item>JOIN</item>       <item>K</item>       <item>KEY</item>       <item>KEY_MEMBER</item>       <item>KEY_TYPE</item>-      <item>LANCOMPILER</item>+      <item>LABEL</item>+      <item>LAG</item>       <item>LANGUAGE</item>       <item>LARGE</item>       <item>LAST</item>+      <item>LAST_VALUE</item>       <item>LATERAL</item>+      <item>LEAD</item>       <item>LEADING</item>+      <item>LEAKPROOF</item>+      <item>LEAST</item>       <item>LEFT</item>-      <item>LENGTH</item>-      <item>LESS</item>       <item>LEVEL</item>-      <item>LIKE</item>+      <item>LIBRARY</item>+      <item>LIKE_REGEX</item>       <item>LIMIT</item>+      <item>LINK</item>       <item>LISTEN</item>       <item>LOAD</item>       <item>LOCAL</item>@@ -254,49 +350,64 @@       <item>LOCATION</item>       <item>LOCATOR</item>       <item>LOCK</item>-      <item>LOWER</item>+      <item>LOCKED</item>+      <item>LOGGED</item>       <item>M</item>       <item>MAP</item>+      <item>MAPPING</item>       <item>MATCH</item>-      <item>MAX</item>+      <item>MATCHED</item>+      <item>MATERIALIZED</item>       <item>MAXVALUE</item>+      <item>MAX_CARDINALITY</item>+      <item>MEMBER</item>+      <item>MERGE</item>       <item>MESSAGE_LENGTH</item>       <item>MESSAGE_OCTET_LENGTH</item>       <item>MESSAGE_TEXT</item>       <item>METHOD</item>-      <item>MIN</item>       <item>MINUTE</item>       <item>MINVALUE</item>-      <item>MOD</item>       <item>MODE</item>       <item>MODIFIES</item>-      <item>MODIFY</item>       <item>MODULE</item>       <item>MONTH</item>       <item>MORE</item>       <item>MOVE</item>+      <item>MULTISET</item>       <item>MUMPS</item>       <item>NAME</item>       <item>NAMES</item>+      <item>NAMESPACE</item>       <item>NATIONAL</item>       <item>NATURAL</item>+      <item>NCHAR</item>+      <item>NCLOB</item>+      <item>NESTING</item>       <item>NEW</item>       <item>NEXT</item>+      <item>NFC</item>+      <item>NFD</item>+      <item>NFKC</item>+      <item>NFKD</item>+      <item>NIL</item>       <item>NO</item>-      <item>NOCREATEDB</item>-      <item>NOCREATEUSER</item>       <item>NONE</item>-      <item>NOT</item>+      <item>NORMALIZE</item>+      <item>NORMALIZED</item>       <item>NOTHING</item>       <item>NOTIFY</item>       <item>NOTNULL</item>+      <item>NOWAIT</item>+      <item>NTH_VALUE</item>+      <item>NTILE</item>       <item>NULL</item>       <item>NULLABLE</item>-      <item>NULLIF</item>+      <item>NULLS</item>       <item>NUMBER</item>-      <item>NUMERIC</item>       <item>OBJECT</item>-      <item>OCTET_LENGTH</item>+      <item>OCCURRENCES_REGEX</item>+      <item>OCTETS</item>       <item>OF</item>       <item>OFF</item>       <item>OFFSET</item>@@ -305,69 +416,105 @@       <item>ON</item>       <item>ONLY</item>       <item>OPEN</item>-      <item>OPERATION</item>       <item>OPERATOR</item>       <item>OPTION</item>       <item>OPTIONS</item>       <item>ORDER</item>+      <item>ORDERING</item>       <item>ORDINALITY</item>+      <item>OTHERS</item>       <item>OUT</item>       <item>OUTER</item>       <item>OUTPUT</item>       <item>OVER</item>       <item>OVERLAPS</item>-      <item>OVERLAY</item>       <item>OVERRIDING</item>+      <item>OWNED</item>       <item>OWNER</item>+      <item>P</item>       <item>PAD</item>+      <item>PARALLEL</item>       <item>PARAMETER</item>-      <item>PARAMETERS</item>       <item>PARAMETER_MODE</item>       <item>PARAMETER_NAME</item>       <item>PARAMETER_ORDINAL_POSITION</item>       <item>PARAMETER_SPECIFIC_CATALOG</item>       <item>PARAMETER_SPECIFIC_NAME</item>       <item>PARAMETER_SPECIFIC_SCHEMA</item>+      <item>PARSER</item>       <item>PARTIAL</item>       <item>PARTITION</item>       <item>PASCAL</item>+      <item>PASSING</item>+      <item>PASSTHROUGH</item>       <item>PASSWORD</item>-      <item>PATH</item>-      <item>PENDANT</item>+      <item>PERCENT</item>+      <item>PERCENTILE_CONT</item>+      <item>PERCENTILE_DISC</item>+      <item>PERCENT_RANK</item>+      <item>PERIOD</item>+      <item>PERMISSION</item>+      <item>PLACING</item>+      <item>PLANS</item>       <item>PLI</item>-      <item>POSITION</item>-      <item>POSTFIX</item>+      <item>POLICY</item>+      <item>PORTION</item>+      <item>POSITION_REGEX</item>+      <item>PRECEDES</item>+      <item>PRECEDING</item>       <item>PRECISION</item>-      <item>PREFIX</item>-      <item>PREORDER</item>       <item>PREPARE</item>+      <item>PREPARED</item>       <item>PRESERVE</item>       <item>PRIMARY</item>       <item>PRIOR</item>       <item>PRIVILEGES</item>       <item>PROCEDURAL</item>       <item>PROCEDURE</item>+      <item>PROGRAM</item>       <item>PUBLIC</item>       <item>RANGE</item>+      <item>PUBLICATION</item>+      <item>QUOTE</item>+      <item>RANGE</item>+      <item>RANK</item>       <item>READ</item>       <item>READS</item>-      <item>REAL</item>+      <item>REASSIGN</item>+      <item>RECHECK</item>+      <item>RECOVERY</item>       <item>RECURSIVE</item>       <item>REF</item>       <item>REFERENCES</item>       <item>REFERENCING</item>+      <item>REFRESH</item>+      <item>REGR_AVGX</item>+      <item>REGR_AVGY</item>+      <item>REGR_COUNT</item>+      <item>REGR_INTERCEPT</item>+      <item>REGR_R2</item>+      <item>REGR_SLOPE</item>+      <item>REGR_SXX</item>+      <item>REGR_SXY</item>+      <item>REGR_SYY</item>       <item>REINDEX</item>       <item>RELATIVE</item>+      <item>RELEASE</item>       <item>RENAME</item>       <item>REPEATABLE</item>-      <item>REPLACE</item>+      <item>REPLICA</item>+      <item>REQUIRING</item>       <item>RESET</item>+      <item>RESPECT</item>+      <item>RESTART</item>+      <item>RESTORE</item>       <item>RESTRICT</item>       <item>RESULT</item>-      <item>RETURN</item>+      <item>RETURNED_CARDINALITY</item>       <item>RETURNED_LENGTH</item>       <item>RETURNED_OCTET_LENGTH</item>       <item>RETURNED_SQLSTATE</item>+      <item>RETURNING</item>       <item>RETURNS</item>       <item>REVOKE</item>       <item>RIGHT</item>@@ -381,25 +528,32 @@       <item>ROW</item>       <item>ROWS</item>       <item>ROW_COUNT</item>+      <item>ROW_NUMBER</item>       <item>RULE</item>       <item>SAVEPOINT</item>       <item>SCALE</item>       <item>SCHEMA</item>+      <item>SCHEMAS</item>       <item>SCHEMA_NAME</item>       <item>SCOPE</item>+      <item>SCOPE_CATALOG</item>+      <item>SCOPE_NAME</item>+      <item>SCOPE_SCHEMA</item>       <item>SCROLL</item>       <item>SEARCH</item>       <item>SECOND</item>       <item>SECTION</item>       <item>SECURITY</item>       <item>SELECT</item>+      <item>SELECTIVE</item>       <item>SELF</item>       <item>SENSITIVE</item>       <item>SEQUENCE</item>+      <item>SEQUENCES</item>       <item>SERIALIZABLE</item>+      <item>SERVER</item>       <item>SERVER_NAME</item>       <item>SESSION</item>-      <item>SESSION_USER</item>       <item>SET</item>       <item>SETOF</item>       <item>SETS</item>@@ -408,6 +562,8 @@       <item>SIMILAR</item>       <item>SIMPLE</item>       <item>SIZE</item>+      <item>SKIP</item>+      <item>SNAPSHOT</item>       <item>SOME</item>       <item>SOURCE</item>       <item>SPACE</item>@@ -421,35 +577,46 @@       <item>SQLSTATE</item>       <item>SQLWARNING</item>       <item>STABLE</item>+      <item>STANDALONE</item>       <item>START</item>       <item>STATE</item>       <item>STATEMENT</item>       <item>STATIC</item>       <item>STATISTICS</item>+      <item>STDDEV_POP</item>+      <item>STDDEV_SAMP</item>       <item>STDIN</item>       <item>STDOUT</item>+      <item>STORAGE</item>+      <item>STRICT</item>+      <item>STRIP</item>       <item>STRUCTURE</item>       <item>STYLE</item>       <item>SUBCLASS_ORIGIN</item>-      <item>SUBLIST</item>-      <item>SUBSTRING</item>-      <item>SUM</item>+      <item>SUBMULTISET</item>+      <item>SUBSCRIPTION</item>+      <item>SUBSTRING_REGEX</item>+      <item>SUCCEEDS</item>       <item>SYMMETRIC</item>       <item>SYSID</item>       <item>SYSTEM</item>+      <item>SYSTEM_TIME</item>       <item>SYSTEM_USER</item>+      <item>T</item>       <item>TABLE</item>+      <item>TABLES</item>+      <item>TABLESAMPLE</item>+      <item>TABLESPACE</item>       <item>TABLE_NAME</item>       <item>TEMP</item>       <item>TEMPLATE</item>       <item>TEMPORARY</item>-      <item>TERMINATE</item>-      <item>THAN</item>-      <item>THEN</item>+      <item>TIES</item>       <item>TIMEZONE_HOUR</item>       <item>TIMEZONE_MINUTE</item>       <item>TO</item>-      <item>TOAST</item>+      <item>TOKEN</item>+      <item>TOP_LEVEL_COUNT</item>       <item>TRAILING</item>       <item>TRANSACTION</item>       <item>TRANSACTIONS_COMMITTED</item>@@ -457,119 +624,102 @@       <item>TRANSACTION_ACTIVE</item>       <item>TRANSFORM</item>       <item>TRANSFORMS</item>-      <item>TRANSLATE</item>+      <item>TRANSLATE_REGEX</item>       <item>TRANSLATION</item>       <item>TREAT</item>       <item>TRIGGER</item>       <item>TRIGGER_CATALOG</item>       <item>TRIGGER_NAME</item>       <item>TRIGGER_SCHEMA</item>-      <item>TRIM</item>+      <item>TRIM_ARRAY</item>       <item>TRUE</item>       <item>TRUNCATE</item>       <item>TRUSTED</item>       <item>TYPE</item>+      <item>TYPES</item>+      <item>UESCAPE</item>+      <item>UNBOUNDED</item>       <item>UNCOMMITTED</item>       <item>UNDER</item>       <item>UNENCRYPTED</item>       <item>UNION</item>       <item>UNIQUE</item>       <item>UNKNOWN</item>+      <item>UNLINK</item>       <item>UNLISTEN</item>+      <item>UNLOGGED</item>       <item>UNNAMED</item>       <item>UNNEST</item>       <item>UNTIL</item>+      <item>UNTYPED</item>       <item>UPDATE</item>-      <item>UPPER</item>+      <item>URI</item>       <item>USAGE</item>       <item>USER</item>       <item>USER_DEFINED_TYPE_CATALOG</item>+      <item>USER_DEFINED_TYPE_CODE</item>       <item>USER_DEFINED_TYPE_NAME</item>       <item>USER_DEFINED_TYPE_SCHEMA</item>       <item>USING</item>       <item>VACUUM</item>       <item>VALID</item>+      <item>VALIDATE</item>+      <item>VALIDATOR</item>       <item>VALUE</item>       <item>VALUES</item>-      <item>VARIABLE</item>+      <item>VALUE_OF</item>+      <item>VARBINARY</item>+      <item>VARIADIC</item>       <item>VARYING</item>+      <item>VAR_POP</item>+      <item>VAR_SAMP</item>       <item>VERBOSE</item>-      <item>VERSION</item>+      <item>VERSIONING</item>       <item>VIEW</item>+      <item>VIEWS</item>       <item>VOLATILE</item>-      <item>WHEN</item>       <item>WHENEVER</item>       <item>WHERE</item>-      <item>WHILE</item>+      <item>WHITESPACE</item>+      <item>WINDOW</item>       <item>WITH</item>+      <item>WITHIN</item>       <item>WITHOUT</item>       <item>WORK</item>+      <item>WRAPPER</item>       <item>WRITE</item>+      <item>XMLAGG</item>+      <item>XMLATTRIBUTES</item>+      <item>XMLBINARY</item>+      <item>XMLCAST</item>+      <item>XMLCOMMENT</item>+      <item>XMLCONCAT</item>+      <item>XMLDECLARATION</item>+      <item>XMLDOCUMENT</item>+      <item>XMLELEMENT</item>+      <item>XMLEXISTS</item>+      <item>XMLFOREST</item>+      <item>XMLITERATE</item>+      <item>XMLNAMESPACES</item>+      <item>XMLPARSE</item>+      <item>XMLPI</item>+      <item>XMLQUERY</item>+      <item>XMLROOT</item>+      <item>XMLSCHEMA</item>+      <item>XMLSERIALIZE</item>+      <item>XMLTABLE</item>+      <item>XMLTEXT</item>+      <item>XMLVALIDATE</item>       <item>YEAR</item>+      <item>YES</item>       <item>ZONE</item>     </list>-    <list name="operators">-      <item>+</item>-      <item>-</item>-      <item>*</item>-      <item>/</item>-      <item>||</item>-      <item>|/</item>-      <item>||/</item>-      <item>!</item>-      <item>!!</item>-      <item>@</item>-      <item>&amp;</item>-      <item>|</item>-      <item>#</item>-      <item>&lt;&lt;</item>-      <item>&gt;&gt;</item>-      <item>%</item>-      <item>^</item>-      <item>=</item>-      <item>!=</item>-      <item>&lt;&gt;</item>-      <item>&lt;</item>-      <item>&lt;=</item>-      <item>&gt;</item>-      <item>&gt;=</item>-      <item>~</item>-      <item>~*</item>-      <item>!~</item>-      <item>!~*</item>-      <item>^=</item>-      <item>:=</item>-      <item>=&gt;</item>-      <item>**</item>-      <item>..</item>-      <item>AND</item>-      <item>OR</item>-      <item>NOT</item>-      <!-- geometric -->-      <item>##</item>-      <item>&amp;&amp;</item>-      <item>&amp;&lt;</item>-      <item>&amp;&gt;</item>-      <item>&lt;-&gt;</item>-      <item>&lt;^</item>-      <item>&gt;^</item>-      <item>?#</item>-      <item>?-</item>-      <item>?-|</item>-      <item>@-@</item>-      <item>?|</item>-      <item>?||</item>-      <item>@@</item>-      <item>~=</item>-      <!-- network address type -->-      <item>&lt;&lt;=</item>-      <item>&gt;&gt;=</item>-    </list>     <list name="functions">       <!-- math -->       <item>ABS</item>       <item>CBRT</item>       <item>CEIL</item>+      <item>CEILING</item>       <item>DEGREES</item>       <item>EXP</item>       <item>FLOOR</item>@@ -578,12 +728,15 @@       <item>MOD</item>       <item>PI</item>       <item>POW</item>+      <item>POWER</item>       <item>RADIANS</item>       <item>RANDOM</item>       <item>ROUND</item>+      <item>SETSEED</item>       <item>SIGN</item>       <item>SQRT</item>       <item>TRUNC</item>+      <item>WIDTH_BUCKET</item>       <!-- trig -->       <item>ACOS</item>       <item>ASIN</item>@@ -597,9 +750,14 @@       <item>BIT_LENGTH</item>       <item>CHAR_LENGTH</item>       <item>CHARACTER_LENGTH</item>+      <item>CONVERT</item>+      <item>GET_BYTE</item>+      <item>GET_BIT</item>       <item>LOWER</item>       <item>OCTET_LENGTH</item>+      <item>OVERLAY</item>       <item>POSITION</item>+      <item>SET_BIT</item>       <item>SUBSTRING</item>       <item>TRIM</item>       <item>UPPER</item>@@ -607,21 +765,27 @@       <item>ASCII</item>       <item>BTRIM</item>       <item>CHR</item>-      <item>CONVERT</item>+      <item>DECODE</item>+      <item>ENCODE</item>       <item>INITCAP</item>       <item>LENGTH</item>       <item>LPAD</item>       <item>LTRIM</item>+      <item>MD5</item>       <item>PG_CLIENT_ENCODING</item>+      <item>QUOTE_IDENT</item>+      <item>QUOTE_LITERAL</item>+      <item>REGEXP_REPLACE</item>       <item>REPEAT</item>+      <item>REPLACE</item>       <item>RPAD</item>       <item>RTRIM</item>+      <item>SPLIT_PART</item>       <item>STRPOS</item>       <item>SUBSTR</item>       <item>TO_ASCII</item>+      <item>TO_HEX</item>       <item>TRANSLATE</item>-      <item>ENCODE</item>-      <item>DECODE</item>       <!-- data type formatting -->       <item>TO_CHAR</item>       <item>TO_DATE</item>@@ -633,20 +797,20 @@       <item>DATE_TRUNC</item>       <item>EXTRACT</item>       <item>ISFINITE</item>+      <item>JUSTIFY_HOURS</item>+      <item>JUSTIFY_DAYS</item>       <item>NOW</item>       <item>TIMEOFDAY</item>       <item>TIMESTAMP</item>-      <item>EXTRACT</item>       <!-- geometric -->       <item>AREA</item>-      <item>BOX</item>       <item>CENTER</item>       <item>DIAMETER</item>       <item>HEIGHT</item>       <item>ISCLOSED</item>       <item>ISOPEN</item>+      <item>NPOINTS</item>       <item>PCLOSE</item>-      <item>NPOINT</item>       <item>POPEN</item>       <item>RADIUS</item>       <item>WIDTH</item>@@ -657,37 +821,111 @@       <item>PATH</item>       <item>POINT</item>       <item>POLYGON</item>+      <!-- array -->+      <item>ARRAY_CAT</item>+      <item>ARRAY_APPEND</item>+      <item>ARRAY_PREPEND</item>+      <item>ARRAY_DIMS</item>+      <item>ARRAY_LOWER</item>+      <item>ARRAY_UPPER</item>+      <item>ARRAY_TO_STRING</item>+      <item>STRING_TO_ARRAY</item>       <!-- network address type, TEXT is omitted as it is more commonly a data type -->       <item>BROADCAST</item>       <item>HOST</item>       <item>MASKLEN</item>       <item>SET_MASKLEN</item>       <item>NETMASK</item>+      <item>HOSTMASK</item>       <item>NETWORK</item>+      <item>TEXT</item>       <item>ABBREV</item>+      <item>FAMILY</item>       <!-- sequence manipulation -->       <item>NEXTVAL</item>       <item>CURRVAL</item>+      <item>LASTVAL</item>       <item>SETVAL</item>       <!-- conditional expressions -->       <item>COALESCE</item>       <item>NULLIF</item>-      <!-- misc -->-      <item>HAS_TABLE_PRIVILEGE</item>-      <item>PG_GET_VIEWDEF</item>-      <item>PG_GET_RULEDEF</item>-      <item>PG_GET_INDEXDEF</item>-      <item>PG_GET_USERBYID</item>-      <item>OBJ_DESCRIPTION</item>-      <item>COL_DESCRIPTION</item>       <!-- aggregate -->       <item>AVG</item>+      <item>BIT_AND</item>+      <item>BIT_OR</item>+      <item>BOOL_AND</item>+      <item>BOOL_OR</item>       <item>COUNT</item>+      <item>EVERY</item>       <item>MAX</item>       <item>MIN</item>       <item>STDDEV</item>       <item>SUM</item>       <item>VARIANCE</item>+      <!-- series generating -->+      <item>GENERATE_SERIES</item>+      <!-- system information -->+      <item>CURRENT_DATABASE</item>+      <item>CURRENT_SCHEMA</item>+      <item>CURRENT_SCHEMAS</item>+      <item>CURRENT_USER</item>+      <item>INET_CLIENT_ADDR</item>+      <item>INET_CLIENT_PORT</item>+      <item>INET_SERVER_ADDR</item>+      <item>INET_SERVER_PORT</item>+      <item>SESSION_USER</item>+      <item>PG_POSTMASTER_START_TIME</item>+      <item>VERSION</item>+      <!-- access privilege inquiry  -->+      <item>HAS_TABLE_PRIVILEGE</item>+      <item>HAS_DATABASE_PRIVILEGE</item>+      <item>HAS_FUNCTION_PRIVILEGE</item>+      <item>HAS_LANGUAGE_PRIVILEGE</item>+      <item>PG_HAS_ROLE</item>+      <item>HAS_SCHEMA_PRIVILEGE</item>+      <item>HAS_TABLESPACE_PRIVILEGE</item>+      <!--  schema visibility inquiry -->+      <item>PG_TABLE_IS_VISIBLE</item>+      <item>PG_TYPE_IS_VISIBLE</item>+      <item>PG_FUNCTION_IS_VISIBLE</item>+      <item>PG_OPERATOR_IS_VISIBLE</item>+      <item>PG_OPCLASS_IS_VISIBLE</item>+      <item>PG_CONVERSION_IS_VISIBLE</item>+      <!-- system catalog information -->+      <item>FORMAT_TYPE</item>+      <item>PG_GET_CONSTRAINTDEF</item>+      <item>PG_GET_EXPR</item>+      <item>PG_GET_INDEXDEF</item>+      <item>PG_GET_RULEDEF</item>+      <item>PG_GET_SERIAL_SEQUENCE</item>+      <item>PG_TABLESPACE_DATABASES</item>+      <item>PG_GET_TRIGGERDEF</item>+      <item>PG_GET_USERBYID</item>+      <item>PG_GET_VIEWDEF</item>+      <!-- comment information -->+      <item>OBJ_DESCRIPTION</item>+      <item>COL_DESCRIPTION</item>+      <!-- configuration settings -->+      <item>CURRENT_SETTING</item>+      <item>SET_CONFIG</item>+      <!-- server signalling -->+      <item>PG_CANCEL_BACKEND</item>+      <item>PG_RELOAD_CONF</item>+      <item>PG_ROTATE_LOGFILE</item>+      <!-- backup control -->+      <item>PG_START_BACKUP</item>+      <item>PG_STOP_BACKUP</item>+      <!-- database object Sizes-->+      <item>PG_COLUMN_SIZE</item>+      <item>PG_TABLESPACE_SIZE</item>+      <item>PG_DATABASE_SIZE</item>+      <item>PG_RELATION_SIZE</item>+      <item>PG_TOTAL_RELATION_SIZE</item>+      <item>PG_SIZE_PRETTY</item>+      <!-- generic file access -->+      <item>PG_LS_DIR</item>+      <item>PG_READ_FILE</item>+      <item>PG_STAT_FILE</item>     </list>     <list name="types">       <!-- https://www.postgresql.org/docs/current/static/datatype.html#DATATYPE-TABLE -->@@ -704,6 +942,7 @@       <item>CIRCLE</item>       <item>DATE</item>       <item>DECIMAL</item>+      <item>DOUBLE</item>       <item>FLOAT4</item>       <item>FLOAT8</item>       <item>INET</item>@@ -717,13 +956,12 @@       <item>JSONB</item>       <item>LINE</item>       <item>LSEG</item>-      <item>LZTEXT</item>       <item>MACADDR</item>       <item>MACADDR8</item>       <item>MONEY</item>       <item>NUMERIC</item>-      <item>OID</item>       <item>PATH</item>+      <item>PG_LSN</item>       <item>POINT</item>       <item>POLYGON</item>       <item>REAL</item>@@ -740,6 +978,7 @@       <item>TIMETZ</item>       <item>TSQUERY</item>       <item>TSVECTOR</item>+      <item>TXID_SNAPSHOT</item>       <item>UUID</item>       <item>VARBIT</item>       <item>VARCHAR</item>@@ -758,37 +997,38 @@         <RegExpr String="create\s+(or\s+replace\s+)?function" insensitive="true" context="CreateFunction" attribute="Keyword"/>          <RegExpr String="do\s+\$([^\$\n\r]*)\$" insensitive="true" context="FunctionBody" attribute="Keyword"/>+        <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/>         <keyword attribute="Keyword" context="#stay" String="keywords"/>-        <keyword attribute="Operator" context="#stay" String="operators"/>+        <keyword attribute="Operator Keyword" context="#stay" String="operators"/>+        <keyword attribute="ControlFlow" context="#stay" String="controlFlow"/>         <keyword attribute="Function" context="#stay" String="functions"/>         <keyword attribute="Data Type" context="#stay" String="types"/>-        <RegExpr attribute="Data Type" context="#stay" String="%bulk_exceptions\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%bulk_rowcount\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%found\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%isopen\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%notfound\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%rowcount\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%rowtype\b" insensitive="true"/>-        <RegExpr attribute="Data Type" context="#stay" String="%type\b" insensitive="true"/>+        <RegExpr attribute="Data Type" context="#stay" String="%(bulk_(exceptions|rowcount)|(not)?found|isopen|rowcount|(row)?type)\b" insensitive="true"/>         <Float attribute="Float" context="#stay"/>         <Int attribute="Decimal" context="#stay"/>         <DetectChar attribute="String" context="String" char="'"/>         <DetectChar attribute="Comment" context="Identifier" char="&quot;"/>         <AnyChar attribute="Symbol" context="#stay" String=":&#38;"/>-        <RegExpr attribute="Symbol" context="#stay" String="/$" column="0"/>         <RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>         <RegExpr attribute="Operator" context="MultiLineString" String="\$([^\$\n\r]*)\$" dynamic="true"/>+        <AnyChar attribute="Operator" context="#stay" String="+-*/=%^!&lt;&gt;&amp;|@~#"/>+        <Detect2Chars attribute="Operator" context="#stay" char=":" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="." char1="."/>+        <!-- geometric operators -->+        <Detect2Chars attribute="Operator" context="#stay" char="?" char1="#"/>+        <Detect2Chars attribute="Operator" context="#stay" char="?" char1="-"/>+        <Detect2Chars attribute="Operator" context="#stay" char="?" char1="|"/>       </context>       <context name="CreateFunction" attribute="Normal Text" lineEndContext="#stay">         <RegExpr attribute="Function" context="FunctionBody" String="\$([^\$\n\r]*)\$" dynamic="true"/>         <IncludeRules context="Normal"/>       </context>       <context name="FunctionBody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">-        <RegExpr attribute="Function" context="#pop#pop" String="\$%1\$" dynamic="true"/>+        <StringDetect attribute="Function" context="#pop#pop" String="$%1$" dynamic="true"/>         <IncludeRules context="Normal"/>       </context>       <context name="MultiLineString" attribute="String" lineEndContext="#stay" dynamic="true">-        <RegExpr attribute="Operator" context="#pop" String="\$%1\$" dynamic="true"/>+        <StringDetect attribute="Operator" context="#pop" String="$%1$" dynamic="true"/>       </context>       <context name="String" attribute="String" lineEndContext="#stay">         <LineContinue attribute="String" context="#pop"/>@@ -807,19 +1047,21 @@       <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>     </contexts>     <itemDatas>-      <itemData name="Normal Text"       defStyleNum="dsNormal"/>-      <itemData name="Keyword"           defStyleNum="dsKeyword"/>-      <itemData name="Operator"          defStyleNum="dsNormal"/>-      <itemData name="Function"          defStyleNum="dsFunction"/>-      <itemData name="Data Type"         defStyleNum="dsDataType"/>-      <itemData name="Decimal"           defStyleNum="dsDecVal"/>-      <itemData name="Float"             defStyleNum="dsFloat"/>+      <itemData name="Normal Text"       defStyleNum="dsNormal" spellChecking="false"/>+      <itemData name="Keyword"           defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="ControlFlow"       defStyleNum="dsControlFlow" spellChecking="false"/>+      <itemData name="Operator"          defStyleNum="dsOperator" spellChecking="false"/>+      <itemData name="Operator Keyword"  defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="Function"          defStyleNum="dsFunction" spellChecking="false"/>+      <itemData name="Data Type"         defStyleNum="dsDataType" spellChecking="false"/>+      <itemData name="Decimal"           defStyleNum="dsDecVal" spellChecking="false"/>+      <itemData name="Float"             defStyleNum="dsFloat" spellChecking="false"/>       <itemData name="String"            defStyleNum="dsString"/>-      <itemData name="String Char"       defStyleNum="dsChar"/>+      <itemData name="String Char"       defStyleNum="dsChar" spellChecking="false"/>       <itemData name="Comment"           defStyleNum="dsComment"/>-      <itemData name="Identifier"        defStyleNum="dsOthers"/>-      <itemData name="Symbol"            defStyleNum="dsChar"/>-      <itemData name="Preprocessor"      defStyleNum="dsOthers"/>+      <itemData name="Identifier"        defStyleNum="dsOthers" spellChecking="false"/>+      <itemData name="Symbol"            defStyleNum="dsChar" spellChecking="false"/>+      <itemData name="Preprocessor"      defStyleNum="dsOthers" spellChecking="false"/>     </itemDatas>   </highlighting>   <general>@@ -827,6 +1069,6 @@       <comment name="singleLine" start="--"/>       <comment name="multiLine" start="/*" end="*/"/>     </comments>-    <keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:.@&amp;#%?"/>+    <keywords casesensitive="0"/>   </general> </language>
xml/sql.xml view
@@ -5,8 +5,31 @@      v3 fix comments by Gene Thomas <gene@genethomas.com>   --> <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->-<language name="SQL" version="3" kateversion="2.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">+<language name="SQL" version="5" kateversion="5.0" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">   <highlighting>+    <list name="controlFlow">+      <item>BEGIN</item>+      <item>CASE</item>+      <item>ELSE</item>+      <item>ELSIF</item>+      <item>END</item>+      <item>FOR</item>+      <item>IF</item>+      <item>LOOP</item>+      <item>RETURN</item>+      <item>THEN</item>+      <item>WHEN</item>+      <item>WHILE</item>+    </list>+    <list name="operators">+      <item>AND</item>+      <item>BETWEEN</item>+      <item>IN</item>+      <item>IS</item>+      <item>LIKE</item>+      <item>NOT</item>+      <item>OR</item>+    </list>     <list name="keywords">       <item>ACCESS</item>       <item>ACCOUNT</item>@@ -22,7 +45,6 @@       <item>ALTER</item>       <item>ANALYZE</item>       <item>ANCILLARY</item>-      <item>AND</item>       <item>ANY</item>       <item>ARCHIVE</item>       <item>ARCHIVELOG</item>@@ -43,9 +65,7 @@       <item>BACKUP</item>       <item>BECOME</item>       <item>BEFORE</item>-      <item>BEGIN</item>       <item>BEHALF</item>-      <item>BETWEEN</item>       <item>BINDING</item>       <item>BITMAP</item>       <item>BLOCK</item>@@ -65,7 +85,6 @@       <item>CALL</item>       <item>CANCEL</item>       <item>CASCADE</item>-      <item>CASE</item>       <item>CATEGORY</item>       <item>CHAINED</item>       <item>CHANGE</item>@@ -80,7 +99,6 @@       <item>CLOSE</item>       <item>CLOSE_CACHED_OPEN_CURSORS</item>       <item>CLUSTER</item>-      <item>COALESCE</item>       <item>COLUMN</item>       <item>COLUMNS</item>       <item>COLUMN_VALUE</item>@@ -101,6 +119,7 @@       <item>CONSTRAINT</item>       <item>CONSTRAINTS</item>       <item>CONTAINER</item>+      <item>CONTAINS</item>       <item>CONTENTS</item>       <item>CONTEXT</item>       <item>CONTINUE</item>@@ -149,11 +168,8 @@       <item>DROP</item>       <item>DYNAMIC</item>       <item>EACH</item>-      <item>ELSE</item>-      <item>ELSIF</item>       <item>EMPTY</item>       <item>ENABLE</item>-      <item>END</item>       <item>ENFORCE</item>       <item>ENTRY</item>       <item>ESCAPE</item>@@ -185,7 +201,6 @@       <item>FLASHBACK</item>       <item>FLUSH</item>       <item>FOLLOWING</item>-      <item>FOR</item>       <item>FORCE</item>       <item>FOREIGN</item>       <item>FREELIST</item>@@ -214,9 +229,7 @@       <item>IDENTIFIER</item>       <item>IDGENERATORS</item>       <item>IDLE_TIME</item>-      <item>IF</item>       <item>IMMEDIATE</item>-      <item>IN</item>       <item>INCLUDING</item>       <item>INCREMENT</item>       <item>INCREMENTAL</item>@@ -239,7 +252,6 @@       <item>INTERSECT</item>       <item>INTO</item>       <item>INVALIDATE</item>-      <item>IS</item>       <item>ISOLATION</item>       <item>ISOLATION_LEVEL</item>       <item>JAVA</item>@@ -254,7 +266,6 @@       <item>LESS</item>       <item>LEVEL</item>       <item>LIBRARY</item>-      <item>LIKE</item>       <item>LIMIT</item>       <item>LINK</item>       <item>LIST</item>@@ -268,7 +279,6 @@       <item>LOGICAL_READS_PER_SESSION</item>       <item>LOGOFF</item>       <item>LOGON</item>-      <item>LOOP</item>       <item>MANAGE</item>       <item>MANAGED</item>       <item>MANAGEMENT</item>@@ -345,7 +355,6 @@       <item>NORMAL</item>       <item>NOSEGMENT</item>       <item>NOSORT</item>-      <item>NOT</item>       <item>NOTHING</item>       <item>NOVALIDATE</item>       <item>NOWAIT</item>@@ -368,7 +377,6 @@       <item>OPTIMAL</item>       <item>OPTIMIZER_GOAL</item>       <item>OPTION</item>-      <item>OR</item>       <item>ORDER</item>       <item>ORGANIZATION</item>       <item>OUT</item>@@ -538,7 +546,6 @@       <item>TEMPORARY</item>       <item>THAN</item>       <item>THE</item>-      <item>THEN</item>       <item>THREAD</item>       <item>THROUGH</item>       <item>TIMEOUT</item>@@ -584,35 +591,13 @@       <item>VALIDATION</item>       <item>VALUES</item>       <item>VIEW</item>-      <item>WHEN</item>       <item>WHENEVER</item>       <item>WHERE</item>-      <item>WHILE</item>       <item>WITH</item>       <item>WITHOUT</item>       <item>WORK</item>       <item>WRITE</item>     </list>-    <list name="operators">-      <item>+</item>-      <item>-</item>-      <item>*</item>-      <item>/</item>-      <item>||</item>-      <item>=</item>-      <item>!=</item>-      <item>&lt;&gt;</item>-      <item>&lt;</item>-      <item>&lt;=</item>-      <item>&gt;</item>-      <item>&gt;=</item>-      <item>~=</item>-      <item>^=</item>-      <item>:=</item>-      <item>=&gt;</item>-      <item>**</item>-      <item>..</item>-    </list>     <list name="functions">       <item>ABS</item>       <item>ACOS</item>@@ -894,8 +879,18 @@         <Detect2Chars attribute="Comment" context="Multiline C-style comment" char="/" char1="*" beginRegion="Comment"/>         <RegExpr attribute="Comment" context="SQL*Plus remark directive" String="^rem\b" insensitive="true" column="0"/> +        <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/> <!-- conflict with "operators" keywords -->         <keyword attribute="Keyword" String="keywords" context="#stay"/>-        <keyword attribute="Operator" String="operators" context="#stay"/>+        <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/>+        <keyword attribute="Operator Keyword" context="#stay" String="operators"/>+        <keyword attribute="ControlFlow" context="#stay" String="controlFlow"/>+        <AnyChar attribute="Operator" context="#stay" String="+-*/=&lt;&gt;"/>+        <Detect2Chars attribute="Operator" context="#stay" char="!" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="~" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="^" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char=":" char1="="/>+        <Detect2Chars attribute="Operator" context="#stay" char="." char1="."/>+        <Detect2Chars attribute="Operator" context="#stay" char="|" char1="|"/>         <keyword attribute="Function" String="functions" context="#stay"/>         <keyword attribute="Data Type" String="types" context="#stay"/> @@ -911,7 +906,6 @@          <DetectChar attribute="Identifier" context="User-defined identifier" char="&quot;"/>         <RegExpr attribute="External Variable" context="#stay" String="(:|&amp;&amp;?)\w+"/>-        <RegExpr attribute="Symbol" context="#stay" String="^/$" column="0"/>         <RegExpr attribute="Preprocessor" context="SQL*Plus directive to include file" String="^@@?[^@ \t\r\n]" column="0"/>       </context>       <context name="String literal" attribute="String" lineEndContext="#stay">@@ -932,21 +926,23 @@       <context name="SQL*Plus directive to include file" attribute="Preprocessor" lineEndContext="#pop"/>     </contexts>     <itemDatas>-      <itemData name="Normal Text"       defStyleNum="dsNormal"/>-      <itemData name="Keyword"           defStyleNum="dsKeyword"/>-      <itemData name="Operator"          defStyleNum="dsNormal"/>-      <itemData name="Function"          defStyleNum="dsFunction"/>-      <itemData name="Data Type"         defStyleNum="dsDataType"/>-      <itemData name="Decimal"           defStyleNum="dsDecVal"/>-      <itemData name="Hex"               defStyleNum="dsBaseN"/>-      <itemData name="Float"             defStyleNum="dsFloat"/>+      <itemData name="Normal Text"       defStyleNum="dsNormal" spellChecking="false"/>+      <itemData name="Keyword"           defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="ControlFlow"       defStyleNum="dsControlFlow" spellChecking="false"/>+      <itemData name="Operator"          defStyleNum="dsOperator" spellChecking="false"/>+      <itemData name="Operator Keyword"  defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="Function"          defStyleNum="dsFunction" spellChecking="false"/>+      <itemData name="Data Type"         defStyleNum="dsDataType" spellChecking="false"/>+      <itemData name="Decimal"           defStyleNum="dsDecVal" spellChecking="false"/>+      <itemData name="Hex"               defStyleNum="dsBaseN" spellChecking="false"/>+      <itemData name="Float"             defStyleNum="dsFloat" spellChecking="false"/>       <itemData name="String"            defStyleNum="dsString"/>-      <itemData name="String Char"       defStyleNum="dsChar"/>+      <itemData name="String Char"       defStyleNum="dsChar" spellChecking="false"/>       <itemData name="Comment"           defStyleNum="dsComment"/>-      <itemData name="Identifier"        defStyleNum="dsOthers"/>-      <itemData name="External Variable" defStyleNum="dsChar"/>-      <itemData name="Symbol"            defStyleNum="dsChar"/>-      <itemData name="Preprocessor"      defStyleNum="dsOthers"/>+      <itemData name="Identifier"        defStyleNum="dsOthers" spellChecking="false"/>+      <itemData name="External Variable" defStyleNum="dsChar" spellChecking="false"/>+      <itemData name="Symbol"            defStyleNum="dsChar" spellChecking="false"/>+      <itemData name="Preprocessor"      defStyleNum="dsOthers" spellChecking="false"/>     </itemDatas>   </highlighting>   <general>@@ -954,6 +950,6 @@       <comment name="singleLine" start="--"/>       <comment name="multiLine" start="/*" end="*/"/>     </comments>-    <keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:."/>+    <keywords casesensitive="0"/>   </general> </language>
xml/tcl.xml view
@@ -28,7 +28,7 @@ 	    - Fixed detection of varaibles with names containing serval namespace delimiters (::) --> -<language name="Tcl/Tk" version="3" kateversion="2.4" section="Scripts" extensions="*.tcl;*.tk" mimetype="text/x-tcl" license="BSD">+<language name="Tcl/Tk" version="4" kateversion="2.4" section="Scripts" extensions="*.tcl;*.tk" mimetype="text/x-tcl" license="BSD">   <highlighting>     <list name="keywords">       <item>after</item>@@ -511,8 +511,8 @@         <RegExpr String = "\$(::|\w)+" attribute = "Variable" context="#stay"/>                  <!-- Strings -->-        <RegExpr String = "&quot;{2}" attribute = "String" context="#stay"/>-        <RegExpr String = "&quot;" attribute = "String" context="String"/>+        <Detect2Chars char = "&quot;" char1 = "&quot;" attribute = "String" context="#stay"/>+        <DetectChar char = "&quot;" attribute = "String" context="String"/>                  <!-- Comments -->         <DetectChar char = ";" attribute = "Normal Text" context="New command line" />
xml/vhdl.xml view
@@ -8,7 +8,7 @@   <!ENTITY label     "((&varname;)\s*:\s*)?">  ]>-<language name="VHDL" version="5" kateversion="3.0" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)">+<language name="VHDL" version="6" kateversion="3.0" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)">   <highlighting>     <list name="keywordsToplevel">       <item>file</item>@@ -508,10 +508,8 @@        <context name="caseWhen2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">         <IncludeRules context="preDetection"/>-        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"-                 String="^\s*when&eos;"/>-        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"-                 String="^\s*end\s+case&eos;"/>+        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1" firstNonSpace="true"+                 String="(when|end\s+case)&eos;"/>         <IncludeRules context="proc_rules"/>       </context>       <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding -->@@ -536,8 +534,8 @@                  String="&bos;end(\s+(entity|component))?(\s+%1)?\s*;"/>         <RegExpr attribute="Error" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"                  String="&bos;end(\s+(entity|component))?(\s+&varname;)?\s*;"/>-        <RegExpr attribute="Control" context="#stay" insensitive="true" String="generic"/>-        <RegExpr attribute="Control" context="#stay" insensitive="true" String="port"/>+        <StringDetect attribute="Control" context="#stay" insensitive="true" String="generic"/>+        <StringDetect attribute="Control" context="#stay" insensitive="true" String="port"/>         <IncludeRules context="generalDetection"/>       </context> 
xml/xml.xml view
@@ -6,7 +6,7 @@ 	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*"> 	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);"> ]>-<language name="XML" version="7" kateversion="3.4" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">+<language name="XML" version="9" kateversion="3.4" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">  <highlighting> <contexts>@@ -145,6 +145,5 @@   <comments>     <comment name="multiLine" start="&lt;!--" end="--&gt;" />   </comments>-  <indentation mode="xml" /> </general> </language>
xml/xul.xml view
@@ -4,7 +4,7 @@ 	<!ENTITY name    "[A-Za-z_:][\w.:_-]*"> 	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);"> ]>-        <language name="XUL" version="4" kateversion="2.4" section="Markup" extensions="*.xul;*.xbl" mimetype="text/xul" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl), Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net), Marc Dassonneville (marc.dassonneville@gmail.com)" license="LGPL">+<language name="XUL" version="5" kateversion="5.0" section="Markup" extensions="*.xul;*.xbl" mimetype="text/xul" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl), Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net), Marc Dassonneville (marc.dassonneville@gmail.com)" license="LGPL">  <highlighting>    <list name="keywords">@@ -619,7 +619,6 @@     <comment name="singleLine" start="//" />     <comment name="multiLine" start="/*" end="*/" />   </comments>-  <indentation mode="xml" />   <keywords casesensitive="1" /> </general> </language>
xml/yaml.xml view
@@ -1,21 +1,55 @@ <?xml version="1.0" encoding="UTF-8"?>-<!DOCTYPE language SYSTEM "language.dtd">+<!DOCTYPE language SYSTEM "language.dtd"+[+  <!ENTITY null "(null|Null|NULL|~)">+  <!ENTITY bool "(y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)">++  <!ENTITY int         "(0|[\-\+]?[1-9][0-9_]*)">+  <!ENTITY intOther    "[\-\+]?0(x_*[0-9a-fA-F][0-9a-fA-F_]*|o?_*[0-7][0-7_]*|b_*[01][01_]*)"> <!-- Hex, Octal, Binary -->+  <!ENTITY intBase60   "[\-\+]?[1-9][0-9_]*(:[0-5]?[0-9])+">+  <!ENTITY allInt      "(&intBase60;|&intOther;|&int;)">++  <!ENTITY float       "[\-\+]?([0-9][0-9_]*\.[0-9\._]*|\._*[0-9][0-9\._]*)([eE][\-\+]?[0-9]+)?">+  <!ENTITY floatExp    "[\-\+]?[0-9][0-9_]*[eE][\-\+]?[0-9]+">+  <!ENTITY floatBase60 "[\-\+]?[0-9][0-9_]*(:[0-5]?[0-9])+\.[0-9_]*">+  <!ENTITY inf         "[\-\+]?\.(inf|Inf|INF)\b">+  <!ENTITY nan         "\.(nan|NaN|NAN)\b">+  <!ENTITY allFloat    "(&float;|&floatExp;|&floatBase60;|&inf;|&nan;)">++  <!ENTITY endValue       "(?:\s*$|\s+#)">+  <!ENTITY endValueInline "\s*[:,\[\]\{\}]">+  <!ENTITY space          "[ ]">++  <!-- Key quoted -->+  <!ENTITY keyDQ          "&quot;(?:\\.|[^&quot;])+&quot;\s*">+  <!ENTITY keySQ          "'(?:[^']|'')+'\s*">+  <!-- Literal/folded operator -->+  <!ENTITY literalOp      "[\|&gt;][\-\+]?">+  <!-- Key after "?" or "-", used to detect literal/folded operator -->+  <!ENTITY keyAfterOp     "(?:[^&quot;'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)">+]>+ <!-- Author: Dr Orlovsky MA <maxim@orlovsky.info> //-->-<language name="YAML" version="3" kateversion="5.0" section="Markup"+<!-- Modifications, values & support for literal/folded style:+       Nibaldo González S. <nibgonz@gmail.com> //-->+<language name="YAML" version="5" kateversion="5.0" section="Markup"           extensions="*.yaml;*.yml" mimetype="text/yaml"           author="Dr Orlovsky MA (dr.orlovsky@gmail.com)" license="LGPL">   <highlighting>     <contexts>       <context attribute="Normal Text" lineEndContext="#stay" name="normal" >-        <RegExpr attribute="Document Header" context="header" String="^---"/>+        <StringDetect attribute="Document Header" context="header" String="---" column="0"/>         <RegExpr attribute="End of Document" context="EOD" String="^\.\.\.$"/>-        <RegExpr attribute="Directive" context="directive" String="^%"/>+        <DetectChar attribute="Directive" context="directive" char="%" column="0"/> -        <DetectSpaces/>         <DetectChar attribute="Comment" context="comment" char="#" /> -        <DetectChar attribute="Operator" firstNonSpace="true"  context="dash" char="-" />+        <!-- Literal/Folded Style -->+        <IncludeRules context="find-literal-block" /> +        <RegExpr attribute="Operator" firstNonSpace="true" context="dash" String="\-(?=\s|$)" />+        <DetectChar attribute="Operator" firstNonSpace="true" context="mapping-key" char="?" />+         <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />         <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> @@ -23,26 +57,40 @@         <RegExpr attribute="Alias" firstNonSpace="true" context="#stay" String="&amp;\S+" />         <RegExpr attribute="Reference" firstNonSpace="true" context="#stay" String="\*\S+" /> -        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*[^&quot;'#-][^:#]*:"/>-        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*&quot;[^&quot;#]+&quot;\s*:"/>-        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*'[^'#]+'\s*:"/>+        <RegExpr attribute="Key" context="attribute-pre" String="[^&quot;'#\-\s][^:#]*:(?=\s|$)"/>+        <RegExpr attribute="Key" context="attribute-pre" String="\-([^\s:#][^:#]*)?\:(?=\s|$)"/>+        <RegExpr attribute="Key" context="attribute-pre" String="&keyDQ;:(?=\s|$)"/>+        <RegExpr attribute="Key" context="attribute-pre" String="&keySQ;:(?=\s|$)"/>+        <RegExpr attribute="Key" context="attribute-pre" String=":(?=\s|$)"/>          <DetectChar attribute="String" context="string" char="'" beginRegion="String" />         <DetectChar attribute="String" context="stringx" char="&quot;" beginRegion="String" />+        <IncludeRules context="values-firstnonspace" />+        <DetectSpaces/>       </context> -      <context attribute="List" lineEndContext="#pop" name="dash">+      <context attribute="Normal Text" lineEndContext="#pop" name="mapping-key" fallthrough="true" fallthroughContext="#pop">+        <DetectSpaces />+        <RegExpr attribute="Operator" context="#pop!dash" String="\-(?=\s|$)" />+        <RegExpr attribute="Data Types" context="#pop" String="!!\S+" />+        <RegExpr attribute="Alias" context="#pop" String="&amp;\S+" />+        <RegExpr attribute="Reference" context="#pop" String="\*\S+" />+      </context>++      <context attribute="List" lineEndContext="#pop" name="dash" fallthrough="true" fallthroughContext="#pop">         <DetectSpaces/>         <DetectChar attribute="Comment" context="comment" char="#" />-        <RegExpr attribute="Data Types" context="#stay" String="null$" />         <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />         <RegExpr attribute="Alias" context="#stay" String="&amp;\S+" />         <RegExpr attribute="Reference" context="#stay" String="\*\S+" />-        <RegExpr attribute="Normal Text" lookAhead="true" context="#pop" String="." />+        <IncludeRules context="values" />+        <DetectChar attribute="Operator" context="#pop!mapping-key" char="?" />+        <RegExpr attribute="Operator" context="#stay" String="\-(?=\s|$)" />       </context>        <context attribute="Document Header" lineEndContext="#pop" name="header">         <DetectChar attribute="Comment" context="comment" char="#" />+        <RegExpr attribute="Literal/Folded Operator" context="#pop!literal-block-simple" String="&literalOp;(?=&endValue;)" beginRegion="Literal" />       </context>        <context attribute="End of Document" lineEndContext="#stay" name="EOD">@@ -55,120 +103,437 @@         <DetectChar attribute="Comment" context="comment" char="#" />       </context> -      <context attribute="Attribute" lineEndContext="#stay" name="attribute-inline">-        <DetectChar attribute="Operator" context="#pop#pop" char="," />-        <DetectChar attribute="Operator" context="#pop#pop" lookAhead="true" char="}" />+      <context attribute="Attribute" lineEndContext="#stay" name="list-attribute-inline">+        <AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",]" />         <DetectChar attribute="Comment" context="comment" char="#" />       </context>+      <context attribute="Attribute" lineEndContext="#stay" name="hash-attribute-inline">+        <AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",}" />+        <DetectChar attribute="Comment" context="comment" char="#" />+      </context> -      <context attribute="Attribute" lineEndContext="#pop" name="attribute-pre">+      <context attribute="Attribute" lineEndContext="#pop" name="attribute-pre" fallthrough="true" fallthroughContext="attribute">         <DetectSpaces/>         <DetectChar attribute="Comment" context="comment" char="#" />-        <RegExpr attribute="Data Types" context="#stay" String="null$" />+        <DetectChar attribute="Operator" context="#stay" char="?" />         <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />         <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />         <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />         <DetectChar attribute="String" context="attribute-string" char="'" beginRegion="String" />         <DetectChar attribute="String" context="attribute-stringx" char="&quot;" beginRegion="String" />+        <RegExpr attribute="Alias" context="#stay" String="&amp;\S+(?=\s+[\[\{])" />+        <RegExpr attribute="Reference" context="#stay" String="\*\S+(?=\s+[\[\{])" />         <RegExpr attribute="Alias" context="attribute" String="&amp;\S+" />         <RegExpr attribute="Reference" context="attribute" String="\*\S+" />-        <RegExpr attribute="Attribute" context="attribute" String="." />+        <IncludeRules context="values" />       </context> -      <context attribute="Attribute" lineEndContext="#pop" name="attribute-pre-inline">+      <context attribute="Attribute" lineEndContext="#pop" name="default-attribute-pre-inline">         <DetectSpaces/>         <DetectChar attribute="Comment" context="comment" char="#" /> -        <StringDetect attribute="Data Types" context="#stay" String="null" />+        <DetectChar attribute="Operator" context="#stay" char="?" />         <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />         <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />         <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />         <DetectChar attribute="String" context="attribute-string-inline" char="'" beginRegion="String" />         <DetectChar attribute="String" context="attribute-stringx-inline" char="&quot;" beginRegion="String" />-        <RegExpr attribute="Alias" context="attribute-inline" String="&amp;\S+" />-        <RegExpr attribute="Reference" context="attribute-inline" String="\*\S+" />+        <RegExpr attribute="Alias" context="#stay" String="&amp;\S+(?=\s+[\[\{])" />+        <RegExpr attribute="Reference" context="#stay" String="\*\S+(?=\s+[\[\{])" />+      </context> -        <DetectChar attribute="Operator" context="#pop" char="," />-        <DetectChar attribute="Operator" context="#pop" lookAhead="true" char="}" />-        <RegExpr attribute="Attribute" context="attribute-inline" String="." />+      <context attribute="Attribute" lineEndContext="#pop" name="list-attribute-pre-inline" fallthrough="true" fallthroughContext="list-attribute-inline">+        <IncludeRules context="default-attribute-pre-inline" />+        <RegExpr attribute="Alias" context="list-attribute-inline" String="&amp;\S+" />+        <RegExpr attribute="Reference" context="list-attribute-inline" String="\*\S+" />++        <AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",]" />+        <IncludeRules context="values-inline" />       </context>+      <context attribute="Attribute" lineEndContext="#pop" name="hash-attribute-pre-inline" fallthrough="true" fallthroughContext="hash-attribute-inline">+        <IncludeRules context="default-attribute-pre-inline" />+        <RegExpr attribute="Alias" context="hash-attribute-inline" String="&amp;\S+" />+        <RegExpr attribute="Reference" context="hash-attribute-inline" String="\*\S+" /> -      <context attribute="List" lineEndContext="#stay" name="list">-        <DetectSpaces/>+        <AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",}" />+        <IncludeRules context="values-inline" />+      </context>++      <!-- Context "find-values-list" highlights values and then sends to "list-element" -->+      <context attribute="List" lineEndContext="#stay" name="list" fallthrough="true" fallthroughContext="#pop!find-values-list">+        <DetectSpaces />+        <DetectChar attribute="Operator" context="#pop!find-values-list" char="?" />         <DetectChar attribute="Comment" context="comment" char="#" />+      </context>+      <context attribute="List" lineEndContext="#stay" name="list-element">+        <DetectChar attribute="Comment" context="comment" char="#" />          <DetectChar attribute="Operator" context="#pop" char="]" endRegion="List" />+        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />+        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> -        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*[^&quot;'#-][^:#]*:"/>-        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*&quot;[^&quot;#]+&quot;\s*:"/>-        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*'[^'#]+'\s*:"/>+        <RegExpr attribute="Key" context="list-attribute-pre-inline" String="[^&quot;'#\-,\]\s][^:#,\]]*:(?=\s|$)"/>+        <RegExpr attribute="Key" context="list-attribute-pre-inline" String="\-([^\s:#,\]][^:#,\]]*)?\:(?=\s|$)"/>+        <RegExpr attribute="Key" context="list-attribute-pre-inline" String="&keyDQ;:(?=\s|$)"/>+        <RegExpr attribute="Key" context="list-attribute-pre-inline" String="&keySQ;:(?=\s|$)"/>+        <RegExpr attribute="Key" context="list-attribute-pre-inline" String=":(?=\s|$)" firstNonSpace="true" /> -        <StringDetect attribute="Data Types" context="#stay" String="null" />         <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />-        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />-        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />         <RegExpr attribute="Alias" context="#stay" String="&amp;\S+" />         <RegExpr attribute="Reference" context="#stay" String="\*\S+" />         <DetectChar attribute="String" context="string" char="'" beginRegion="String" />         <DetectChar attribute="String" context="stringx" char="&quot;" beginRegion="String" /> -        <DetectChar attribute="Operator" context="#stay" char="," />+        <DetectChar attribute="Operator" context="#pop!list" char="," />+        <IncludeRules context="values-list" />       </context> -      <context attribute="Hash" lineEndContext="#stay" name="hash">+      <context attribute="Hash" lineEndContext="#stay" name="hash" fallthrough="true" fallthroughContext="#pop!hash-element">+        <DetectSpaces />+        <DetectChar attribute="Operator" context="#pop!hash-element" char="?" />+        <DetectChar attribute="Comment" context="comment" char="#" />+      </context>+      <context attribute="Hash" lineEndContext="#stay" name="hash-element">         <DetectSpaces/>         <DetectChar attribute="Comment" context="comment" char="#" /> -        <RegExpr attribute="Key" context="attribute-pre-inline" String="\??\s*[^&quot;'#-][^:#]*:"/>-        <RegExpr attribute="Key" context="attribute-pre-inline" String="\??\s*&quot;[^&quot;#]+&quot;\s*:"/>-        <RegExpr attribute="Key" context="attribute-pre-inline" String="\??\s*'[^'#]+'\s*:"/>+        <RegExpr attribute="Key" context="hash-attribute-pre-inline" String="[^\s&quot;'#\-,\}\s][^:#,\}]*:(?=\s|$)"/>+        <RegExpr attribute="Key" context="hash-attribute-pre-inline" String="\-([^\s:#,\}][^:#,\}]*)?\:(?=\s|$)"/>+        <RegExpr attribute="Key" context="hash-attribute-pre-inline" String="&keyDQ;:(?=\s|$)"/>+        <RegExpr attribute="Key" context="hash-attribute-pre-inline" String="&keySQ;:(?=\s|$)"/>+        <RegExpr attribute="Key" context="hash-attribute-pre-inline" String=":(?=\s|$)"/>          <DetectChar attribute="Operator" context="#pop" char="}" endRegion="Hash" />+        <DetectChar attribute="Operator" context="#pop!hash" char="," />++        <!-- This improves highlighting in keys with multiple lines -->+        <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />+        <RegExpr attribute="Alias" context="#stay" String="&amp;\S+" />+        <RegExpr attribute="Reference" context="#stay" String="\*\S+" />+        <DetectChar attribute="String" context="string" char="'" beginRegion="String" />+        <DetectChar attribute="String" context="stringx" char="&quot;" beginRegion="String" />       </context>        <context attribute="String" lineEndContext="#stay" name="attribute-string">         <DetectIdentifier />+        <IncludeRules context="escaped-char-singleq" />         <DetectChar attribute="String" context="attribute-end" char="'" endRegion="String" />       </context>        <context attribute="String" lineEndContext="#stay" name="attribute-stringx">         <DetectIdentifier />+        <IncludeRules context="escaped-char-doubleq" />         <DetectChar attribute="String" context="attribute-end" char="&quot;" endRegion="String" />       </context>        <context attribute="String" lineEndContext="#stay" name="attribute-string-inline">           <DetectIdentifier />+          <IncludeRules context="escaped-char-singleq" />           <DetectChar attribute="String" context="attribute-end-inline" char="'" endRegion="String" />       </context>        <context attribute="String" lineEndContext="#stay" name="attribute-stringx-inline">           <DetectIdentifier />+          <IncludeRules context="escaped-char-doubleq" />           <DetectChar attribute="String" context="attribute-end-inline" char="&quot;" endRegion="String" />       </context>        <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end">+          <DetectSpaces attribute="Normal Text" context="#stay"/>+          <DetectChar attribute="Comment" context="comment" char="#" />       </context>        <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end-inline">-          <RegExpr attribute="Normal Text" context="#stay" String="\s*"/>-          <DetectChar attribute="String" context="#pop#pop#pop"  lookAhead="true" char="}"/>-          <RegExpr attribute="Operator" context="#pop#pop#pop"  String=",\s"/>+          <DetectSpaces attribute="Normal Text" context="#stay"/>+          <AnyChar attribute="String" context="#pop#pop#pop"  lookAhead="true" String="}]"/>+          <DetectChar attribute="Operator" context="#pop#pop#pop" lookAhead="true" char="," />+          <DetectChar attribute="Comment" context="comment" char="#" />       </context>        <context attribute="String" lineEndContext="#stay" name="string">         <DetectIdentifier />+        <IncludeRules context="escaped-char-singleq" />         <DetectChar attribute="String" context="#pop" char="'" endRegion="String" />       </context>        <context attribute="String" lineEndContext="#stay" name="stringx">         <DetectIdentifier />+        <IncludeRules context="escaped-char-doubleq" />         <DetectChar attribute="String" context="#pop" char="&quot;" endRegion="String" />       </context> +      <context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-doubleq">+        <RegExpr attribute="Escaped Character" context="#stay" String="\\([\s0abtnvfre&quot;/\\N_Lp]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-singleq">+        <Detect2Chars attribute="Escaped Character" context="#stay" char="'" char1="'" />+      </context>+       <context attribute="Comment" lineEndContext="#pop" name="comment">         <IncludeRules context="##Alerts" />         <IncludeRules context="##Modelines" />       </context>++      <!-- Values -->+      <context attribute="Normal Text" lineEndContext="#stay" name="values">+        <RegExpr attribute="Null" context="#stay" String="&null;(?=&endValue;)"/>+        <RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValue;)"/>+        <RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValue;)"/>+        <RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValue;)"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="values-firstnonspace">+        <RegExpr attribute="Null" firstNonSpace="true" context="#stay" String="&null;(?=&endValue;)"/>+        <RegExpr attribute="Boolean" firstNonSpace="true" context="#stay" String="&bool;(?=&endValue;)"/>+        <RegExpr attribute="Float" firstNonSpace="true" context="#stay" String="&allFloat;(?=&endValue;)"/>+        <RegExpr attribute="Integer" firstNonSpace="true" context="#stay" String="&allInt;(?=&endValue;)"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="values-inline">+        <RegExpr attribute="Null" context="#stay" String="&null;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValueInline;|&endValue;)"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="values-list">+        <RegExpr attribute="Null" context="#stay" String="(\s|^)&null;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Boolean" context="#stay" String="(\s|^)&bool;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Float" context="#stay" String="(\s|^)&allFloat;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Integer" context="#stay" String="(\s|^)&allInt;(?=&endValueInline;|&endValue;)"/>+      </context>+      <!-- If the value is found immediately at the beginning of the list item -->+      <context attribute="Normal Text" lineEndContext="#pop!list-element" name="find-values-list" fallthrough="true" fallthroughContext="#pop!list-element">+        <RegExpr attribute="Null" context="#pop!list-element" String="&null;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Boolean" context="#pop!list-element" String="&bool;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Float" context="#pop!list-element" String="&allFloat;(?=&endValueInline;|&endValue;)"/>+        <RegExpr attribute="Integer" context="#pop!list-element" String="&allInt;(?=&endValueInline;|&endValue;)"/>+      </context>++      <!-- Literal/Folded Style: http://yaml.org/spec/1.2/spec.html#id2795688 -->++      <context attribute="Normal Text" lineEndContext="#stay" name="find-literal-block">+        <!-- Do not allow indentation with tabs: -->+        <RegExpr attribute="Alert" context="#stay" column="0"+                 String="^&space;*\t+\s*(?=((&keyDQ;|&keySQ;|[^#])*[^#\w\|&lt;&gt;&quot;'])?&literalOp;&endValue;)" />++        <!-- CASE 1: The literal/folded operator is the first character of a line.+             The text after a space is considered literal.+             Ex:+             > |+             >  ^Start the literal text+        -->+        <RegExpr attribute="Literal/Folded Operator" context="literal-block-simple" column="0"+                 String="^&literalOp;(?=&endValue;)" beginRegion="Literal" />++        <!-- CASE 2: Only the literal/folded operator is present in a line, after a space (the indentation+             is captured). The text with the same indentation of the operator will be highlighted as literal.+             Ex:+             >  key:+             >    |+             >    ^Start the literal text++             However, in this case, the correct way is to use the indentation of the block, not the+             indentation of the the operator. The problem is that it is difficult to capture.+             >  key1:+             >   key2:+             >    key3:+             >          |+             >     ^Block indentation (correct literal text)+        -->+        <RegExpr attribute="Literal/Folded Operator" context="literal-block-only-operator" column="0"+                 String="^(&space;+)&literalOp;(?=&endValue;)" beginRegion="Literal" />++        <!-- CASE 3: There is a Key before the literal/folded operator (Key indentation is captured).+             The text with the Key's indentation plus a space is considered literal.+             Ex:+             >    key: |+             >     ^Start the literal text+             >  key: !!type >-+             >   ^Start the folded text+        -->+        <RegExpr attribute="Key" context="literal-block-key" column="0"+                 String="^(&space;*)(?:[^&quot;'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)?\:(?=\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|&lt;&gt;&quot;'])?&literalOp;&endValue;)" />++        <!-- CASE 4: Is there an operator "?" or "-" at the beginning of the line.+             NOTE: Nested characters "-" and "?" are considered as part of the indentation.+             Therefore, the indentation of the Key or the last operator "?" or "-" is captured.+             Ex:+             >  ? |+             >   ^Start the literal Text+             >  ? - - |+             >       ^Start the literal text+             >  - Key: |+             >     ^Start the literal text+             >  ? - - - - Key: |+             >             ^Start the literal text+        -->+        <RegExpr context="start-literal-block-withdash" lookAhead="true" column="0"+                 String="^&space;*(\?&space;*|\-&space;+){1,6}((&keyDQ;|&keySQ;|[^#\-\?\s]|\-[^\s#])((&keyDQ;|&keySQ;|[^#])*[^#\w\|&lt;&gt;&quot;'])?)?&literalOp;&endValue;" />++        <!-- CASE 5: Literal/folded operator after a data type or other content.+             Ex:+             >  !!type |+             >   ^Start the literal text+             >  key1:+             >   key2:+             >    !!type |+             >    ^Start the literal text+        -->+        <RegExpr context="start-literal-block-other" lookAhead="true" column="0"+                 String="^&space;*(([&amp;\*]|!!)\S+\s+)+&literalOp;&endValue;" />+      </context>++      <!-- If the line with the literal operator starts with the "-" or "?" operator.+           NOTE: The indentation capture is limited to 6 nested operators. -->+      <context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-withdash">+        <!-- With Key: Capture the Key indentation -->+        <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s2" String="^(&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s7" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>+        <!-- Without Key: Capture the indentation of the last operator "?" or "-" -->+        <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s1" String="^(&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s2" String="^(&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>+        <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>+      </context>+      <!-- Capture the indentation of data type, reference or alias  -->+      <context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-other">+        <!-- The text with the same indentation will be considered literal -->+        <RegExpr attribute="Data Types" context="#pop!literal-block-after-data" String="^(&space;+)!!\S+" column="0" />+        <RegExpr attribute="Alias" context="#pop!literal-block-after-data" String="^(&space;+)&amp;\S+" column="0" />+        <RegExpr attribute="Reference" context="#pop!literal-block-after-data" String="^(&space;+)\*\S+" column="0" />+        <!-- The text after a space will be considered literal (empty text is captured) -->+        <RegExpr attribute="Data Types" context="#pop!literal-block-withdash-s1" String="^()!!\S+" column="0" />+        <RegExpr attribute="Alias" context="#pop!literal-block-withdash-s1" String="^()&amp;\S+" column="0" />+        <RegExpr attribute="Reference" context="#pop!literal-block-withdash-s1" String="^()\*\S+" column="0" />+      </context>++      <!-- Highlight data/attribute before the literal operator (Note that if there is a line+           break within a string or bracket, the literal line will not be highlighted). -->+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="before-literal-operator">+        <RegExpr attribute="Literal/Folded Operator" context="#pop!end-literal-operator" String="&literalOp;(?=&endValue;)" beginRegion="Literal" />++        <RegExpr attribute="Error" context="#pop#pop" String="([&amp;\*]|!!)\S*&literalOp;(?=&endValue;)" />+        <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />+        <RegExpr attribute="Alias" context="#stay" String="&amp;\S+" />+        <RegExpr attribute="Reference" context="#stay" String="\*\S+" />++        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />+        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />+        <DetectChar attribute="String" context="string" char="'" beginRegion="String" />+        <DetectChar attribute="String" context="stringx" char="&quot;" beginRegion="String" />+      </context>+      <context attribute="Attribute" lineEndContext="#pop#pop" name="key-before-literal-operator">+        <IncludeRules context="before-literal-operator" />+        <DetectChar attribute="Operator" context="#stay" char="?" />+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="end-literal-operator">+        <DetectChar attribute="Comment" context="#pop!comment" char="#" />+      </context>++      <!-- Common rules for the content of the literal blocks -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-default">+        <!-- End literal/folded block -->+        <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />+        <!-- Find literal/folded operator -->+        <RegExpr context="before-literal-operator" String="\S" lookAhead="true" />+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="literal-block-key-default">+        <!-- End literal/folded block -->+        <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />+        <!-- Detect Key before the literal/folded operator -->+        <RegExpr attribute="Key" context="key-before-literal-operator" String="&keyAfterOp;:(?=\s)" />+        <RegExpr attribute="Normal Text" context="#pop" String="\S" lookAhead="true" endRegion="Literal" />+      </context>++      <!-- Content of the literal block: -->++      <!-- If the literal operator is starting the line (after a space, use block indentation) -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-only-operator" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1.*$" dynamic="true" column="0" />++        <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />+        <DetectChar attribute="Comment" context="comment" char="#" />+        <RegExpr context="#pop" String="\S" lookAhead="true" endRegion="Literal" />+      </context>+      <!-- If the literal operator is the first character of a line (or after header) -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-simple">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^\s.*$" column="0" />++        <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />+        <DetectChar attribute="Comment" context="comment" char="#" />+      </context>+      <!-- If there is a data type or other content before the liretal operator (use block indentation) -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-after-data" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1.*$" dynamic="true" column="0" />++        <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />+        <RegExpr context="before-literal-operator" String="\S" lookAhead="true" />+      </context>+      <!-- If there is a key before the literal operator -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1\s.*$" dynamic="true" column="0" />++        <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />+        <!-- Attribute of the Key (the Key was previously highlighted) -->+        <RegExpr context="key-before-literal-operator" String="\S" lookAhead="true" />+      </context>++      <!-- If there are dashes/"?" before the literal operator -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s1" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s2" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2&space;\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s3" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3&space;{2}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s4" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4&space;{3}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s5" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4%5&space;{4}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s6" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4%5%6&space;{5}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-default" />+      </context>+      <!-- If there are dashes/"?" and a Key before the literal operator -->+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s2" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2&space;\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-key-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s3" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3&space;{2}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-key-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s4" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4&space;{3}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-key-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s5" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4%5&space;{4}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-key-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s6" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4%5%6&space;{5}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-key-default" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s7" dynamic="true">+        <RegExpr attribute="Literal/Folded Block" context="#stay" String="^%1%2%3%4%5%6%7&space;{6}\s.*$" dynamic="true" column="0" />+        <IncludeRules context="literal-block-key-default" />+      </context>     </contexts>      <itemDatas>@@ -186,7 +551,15 @@       <itemData name="Directive" defStyleNum="dsOthers" />       <itemData name="Operator" defStyleNum="dsKeyword" />       <itemData name="String" defStyleNum="dsString" />+      <itemData name="Escaped Character" defStyleNum="dsSpecialChar" />+      <itemData name="Literal/Folded Operator" defStyleNum="dsString" bold="1" />+      <itemData name="Literal/Folded Block" defStyleNum="dsNormal" />+      <itemData name="Null" defStyleNum="dsChar" />+      <itemData name="Boolean" defStyleNum="dsChar" />+      <itemData name="Integer" defStyleNum="dsDecVal" />+      <itemData name="Float" defStyleNum="dsFloat" />       <itemData name="Error" defStyleNum="dsError" />+      <itemData name="Alert" defStyleNum="dsAlert" backgroundColor="#EF9A9A" />     </itemDatas>   </highlighting> 
xml/zsh.xml view
@@ -8,7 +8,7 @@         <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->         <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name --> ]>-<language name="Zsh" version="2" kateversion="2.4" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Kolberg (bulldog98@kubuntu-de.org)" license="LGPL">+<language name="Zsh" version="3" kateversion="2.4" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Kolberg (bulldog98@kubuntu-de.org)" license="LGPL">  <!-- (c) 2011 by Jonathan Kolberg (bulldog98@kubuntu-de.org)   modified for zsh -->@@ -598,7 +598,7 @@         <!-- handle here-string -->         <RegExpr attribute="Redirection" context="#stay" String="\d*&lt;&lt;&lt;" />         <!-- handle here document -->-        <StringDetect attribute="Redirection" context="HereDoc" String="&lt;&lt;" lookAhead="true" />+        <Detect2Chars attribute="Redirection" context="HereDoc" char="&lt;" char1="&lt;" lookAhead="true" />         <!-- handle process subst -->         <RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />         <!-- handle redirection -->@@ -642,7 +642,7 @@         <RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/=?+-])" />         <StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />         <StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />-        <StringDetect attribute="Variable" context="SubstCommand" String="$(" />+        <Detect2Chars attribute="Variable" context="SubstCommand" char="$" char1="(" />         <DetectChar attribute="Backquote" context="SubstBackq" char="`" />         <RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />       </context>