packages feed

skylighting-core 0.15 → 0.15.0.1

raw patch · 11 files changed

+776/−228 lines, 11 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

changelog.md view
@@ -1,5 +1,10 @@ # Revision history for skylighting and skylighting-core +## 0.15.0.1++ * Update syntax definitions for csv, isocpp, json, perl, raku,+   systemverilog, verilog.+ ## 0.15    * New syntaxes: sparql (#212), sas (#213), mermaid, desktop,
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.15+version:             0.15.0.1 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax
test/expected/abc.perl.native view
@@ -1,9 +1,8 @@-[ [ ( FunctionTok , "use" )-  , ( NormalTok , " " )-  , ( FunctionTok , "Test::More" )+[ [ ( ImportTok , "use" )+  , ( CommentTok , " " )+  , ( NormalTok , "Test::More tests " )+  , ( OperatorTok , "=>" )   , ( NormalTok , " " )-  , ( FunctionTok , "tests" )-  , ( NormalTok , " => " )   , ( DecValTok , "8" )   , ( NormalTok , ";" )   ]@@ -11,7 +10,9 @@ , [ ( KeywordTok , "my" )   , ( NormalTok , " " )   , ( DataTypeTok , "@blocks1" )-  , ( NormalTok , " = " )+  , ( NormalTok , " " )+  , ( OperatorTok , "=" )+  , ( NormalTok , " " )   , ( OtherTok , "qw(" )   , ( NormalTok     , "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM"@@ -93,7 +94,9 @@ , [ ( KeywordTok , "my" )   , ( NormalTok , " " )   , ( DataTypeTok , "@blocks2" )-  , ( NormalTok , " = " )+  , ( NormalTok , " " )+  , ( OperatorTok , "=" )+  , ( NormalTok , " " )   , ( OtherTok , "qw(" )   , ( NormalTok , "US TZ AO QA" )   , ( OtherTok , ")" )
test/test-skylighting.hs view
@@ -149,23 +149,28 @@           [[(OtherTok,"m\\a\\")]]             @=? tokenize defConfig perl                      "m\\a\\"-      , testCase "perl quoting case" $ Right-          [[(KeywordTok,"my")-           ,(NormalTok," ")-           ,(DataTypeTok,"$foo")-           ,(NormalTok," = ")-           ,(OtherTok,"q/")-           ,(SpecialStringTok,"bar")-           ,(OtherTok,"/")-           ,(NormalTok,";")]-          ,[(KeywordTok,"my")-           ,(NormalTok," ")-           ,(DataTypeTok,"$baz")-           ,(NormalTok," = ")-           ,(OtherTok,"'")-           ,(SpecialStringTok,"quux")-           ,(OtherTok,"'")-           ,(NormalTok,";")]]+      , testCase "perl quoting case" $+        Right+          [[(KeywordTok,"my"),+            (NormalTok," "),+            (DataTypeTok,"$foo"),+            (NormalTok," "),+            (OperatorTok,"="),+            (NormalTok," "),+            (OtherTok,"q/"),+            (SpecialStringTok,"bar"),+            (OtherTok,"/"),+            (NormalTok,";")]+           ,[(KeywordTok,"my"),+             (NormalTok," "),+             (DataTypeTok,"$baz"),+             (NormalTok," "),+             (OperatorTok,"="),+             (NormalTok," "),+             (OtherTok,"'"),+             (SpecialStringTok,"quux"),+             (OtherTok,"'"),+             (NormalTok,";")]]              @=? tokenize defConfig perl                      "my $foo = q/bar/;\nmy $baz = 'quux';\n"       , testCase "cpp floats" $ Right
xml/csv.xml view
@@ -1,16 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language [-  <!ENTITY sep ",">+  <!ENTITY Tab "&#9;">+  <!ENTITY Pipe "|">+  <!ENTITY Comma ",">+  <!ENTITY Semicolon ";">+  <!ENTITY quoted '"([^"]*+("")?+)*"'> ]> <!-- Inspired by Rainbow CSV  Language name     | Separator     | Extension | Properties- CSV              | , (comma)     |   .csv    | Ignored inside double-quoted fields  TSV              | \t (TAB)      | .tsv .tab |- CSV (semicolon)  | ; (semicolon) |           | Ignored inside double-quoted fields- CSV (whitespace) | whitespace    |           | Consecutive whitespaces are merged- CSV (pipe)       | | (pipe)      |+ CSV (comma)      | , (comma)     |   .csv    | Ignored inside double-quoted fields+ CSV (semicolon)  | ; (semicolon) |   .csv    | Ignored inside double-quoted fields+ CSV (whitespace) | whitespace    |   .csv    | Consecutive whitespaces are merged+ CSV (pipe)       | | (pipe)      |   .csv    |  https://www.rfc-editor.org/rfc/rfc4180 @@ -20,168 +24,613 @@   aaa, "bbb,ccc", ddd        ~ RFC: invalid character in non-escaped rule -->-<language name="CSV" section="Other" version="2" kateversion="5.62" extensions="*.csv" mimetype="text/csv" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">+<language name="CSV" section="Other" version="3" kateversion="6.22" extensions="*.csv" mimetype="text/csv" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">   <highlighting>      <contexts>-      <context name="Column0" lineEndContext="#stay" attribute="Column 0">-        <DetectChar char="&sep;" context="#pop!Column1" attribute="Column 0 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column0Quote"/>-        <DetectChar char="&quot;" context="Column0MultiLine"/>-        <IncludeRules context="FindField"/>++      <!-- CSV separator selector+      searches for a separator in the following order: ';', '|', ',', ' '+      @{+      -->+      <context name="Dispatch" lineEndContext="#stay" attribute="Column 0" fallthroughContext="Column0_Alone">+        <RegExpr lookAhead="1" column="0" String='^(&quoted;;|;|[^|"][^|;]*;)' context="Semicolon_Column0_Start"/>+        <RegExpr lookAhead="1" column="0" String='^\||[^"][^|]*\|' context="Pipe_Column0"/>+        <RegExpr lookAhead="1" column="0" String='^(&quoted;,|,|[^"][^,]*,)' context="Comma_Column0_Start"/>+        <RegExpr column="0" String="^[^ ]*(?= )" context="Ws_Column0" attribute="Column 0"/>       </context>-      <context name="Column0Quote" lineEndContext="#pop" attribute="Column 0" fallthroughContext="#pop">-        <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column0MultiLine"/>-        <IncludeRules context="Error"/>+      <context name="Column0_Alone" lineEndContext="#pop" attribute="Column 0">       </context>-      <context name="Column0MultiLine" lineEndContext="#stay" attribute="Column 0">-        <DetectChar char="&quot;" context="#pop!Column0Quote"/>+      <!--+      @}+      -->++      <!-- Comma (,) separator with double-quoted fields+      @{+      -->++      <context name="Comma_Column0_Start" lineEndContext="#stay" attribute="Column 0" fallthroughContext="Comma_Column0">+        <DetectChar char="&Comma;" context="Comma_Column1_Start" attribute="Column 0 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column0_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column0_QuoteContinuation!Column0_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>+      <context name="Comma_Column0" lineEndContext="#pop" attribute="Column 0">+        <DetectChar char="&Comma;" context="#pop!Comma_Column1_Start" attribute="Column 0 Separator"/>+      </context>+      <context name="Comma_Column0_QuoteContinuation" lineEndContext="#pop" attribute="Column 0" fallthroughContext="Comma_Error">+        <IncludeRules context="Column0_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column1_Start" attribute="Column 0 Separator"/>+      </context> -      <context name="Column1" lineEndContext="#pop!Column0" attribute="Column 1">-        <DetectChar char="&sep;" context="#pop!Column2" attribute="Column 1 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column1Quote"/>-        <DetectChar char="&quot;" context="Column1MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Comma_Column1_Start" lineEndContext="#pop" attribute="Column 1" fallthroughContext="Comma_Column1">+        <DetectChar char="&Comma;" context="Comma_Column2_Start" attribute="Column 1 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column1_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column1_QuoteContinuation!Column1_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>-      <context name="Column1Quote" lineEndContext="#pop#pop!Column0" attribute="Column 1" fallthroughContext="#pop">-        <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column1MultiLine"/>-        <IncludeRules context="Error"/>+      <context name="Comma_Column1" lineEndContext="#pop#pop" attribute="Column 1">+        <DetectChar char="&Comma;" context="#pop!Comma_Column2_Start" attribute="Column 1 Separator"/>       </context>-      <context name="Column1MultiLine" lineEndContext="#stay" attribute="Column 1">-        <DetectChar char="&quot;" context="#pop!Column1Quote"/>+      <context name="Comma_Column1_QuoteContinuation" lineEndContext="#pop#pop" attribute="Column 1" fallthroughContext="Comma_Error">+        <IncludeRules context="Column1_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column2_Start" attribute="Column 1 Separator"/>       </context> -      <context name="Column2" lineEndContext="#pop!Column0" attribute="Column 2">-        <DetectChar char="&sep;" context="#pop!Column3" attribute="Column 2 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column2Quote"/>-        <DetectChar char="&quot;" context="Column2MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Comma_Column2_Start" lineEndContext="#pop#pop" attribute="Column 2" fallthroughContext="Comma_Column2">+        <DetectChar char="&Comma;" context="Comma_Column3_Start" attribute="Column 2 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column2_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column2_QuoteContinuation!Column2_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>-      <context name="Column2Quote" lineEndContext="#pop#pop!Column0" attribute="Column 2" fallthroughContext="#pop">-        <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column2MultiLine"/>-        <IncludeRules context="Error"/>+      <context name="Comma_Column2" lineEndContext="#pop#pop#pop" attribute="Column 2">+        <DetectChar char="&Comma;" context="#pop!Comma_Column3_Start" attribute="Column 2 Separator"/>       </context>-      <context name="Column2MultiLine" lineEndContext="#stay" attribute="Column 2">-        <DetectChar char="&quot;" context="#pop!Column2Quote"/>+      <context name="Comma_Column2_QuoteContinuation" lineEndContext="#pop#pop#pop" attribute="Column 2" fallthroughContext="Comma_Error">+        <IncludeRules context="Column2_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column3_Start" attribute="Column 2 Separator"/>       </context> -      <context name="Column3" lineEndContext="#pop!Column0" attribute="Column 3">-        <DetectChar char="&sep;" context="#pop!Column4" attribute="Column 3 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column3Quote"/>-        <DetectChar char="&quot;" context="Column3MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Comma_Column3_Start" lineEndContext="#pop#pop#pop" attribute="Column 3" fallthroughContext="Comma_Column3">+        <DetectChar char="&Comma;" context="Comma_Column4_Start" attribute="Column 3 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column3_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column3_QuoteContinuation!Column3_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>-      <context name="Column3Quote" lineEndContext="#pop#pop!Column0" attribute="Column 3" fallthroughContext="#pop">-        <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column3MultiLine"/>-        <IncludeRules context="Error"/>+      <context name="Comma_Column3" lineEndContext="#pop#pop#pop#pop" attribute="Column 3">+        <DetectChar char="&Comma;" context="#pop!Comma_Column4_Start" attribute="Column 3 Separator"/>       </context>-      <context name="Column3MultiLine" lineEndContext="#stay" attribute="Column 3">-        <DetectChar char="&quot;" context="#pop!Column3Quote"/>+      <context name="Comma_Column3_QuoteContinuation" lineEndContext="#pop#pop#pop#pop" attribute="Column 3" fallthroughContext="Comma_Error">+        <IncludeRules context="Column3_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column4_Start" attribute="Column 3 Separator"/>       </context> -      <context name="Column4" lineEndContext="#pop!Column0" attribute="Column 4">-        <DetectChar char="&sep;" context="#pop!Column5" attribute="Column 4 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column4Quote"/>-        <DetectChar char="&quot;" context="Column4MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Comma_Column4_Start" lineEndContext="#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Comma_Column4">+        <DetectChar char="&Comma;" context="Comma_Column5_Start" attribute="Column 4 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column4_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column4_QuoteContinuation!Column4_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>-      <context name="Column4Quote" lineEndContext="#pop#pop!Column0" attribute="Column 4" fallthroughContext="#pop">-        <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column4MultiLine"/>-        <IncludeRules context="Error"/>+      <context name="Comma_Column4" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4">+        <DetectChar char="&Comma;" context="#pop!Comma_Column5_Start" attribute="Column 4 Separator"/>       </context>-      <context name="Column4MultiLine" lineEndContext="#stay" attribute="Column 4">-        <DetectChar char="&quot;" context="#pop!Column4Quote"/>+      <context name="Comma_Column4_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Comma_Error">+        <IncludeRules context="Column4_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column5_Start" attribute="Column 4 Separator"/>       </context> -      <context name="Column5" lineEndContext="#pop!Column0" attribute="Column 5">-        <DetectChar char="&sep;" context="#pop!Column6" attribute="Column 5 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column5Quote"/>-        <DetectChar char="&quot;" context="Column5MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Comma_Column5_Start" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Comma_Column5">+        <DetectChar char="&Comma;" context="Comma_Column6_Start" attribute="Column 5 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column5_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column5_QuoteContinuation!Column5_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>-      <context name="Column5Quote" lineEndContext="#pop#pop!Column0" attribute="Column 5" fallthroughContext="#pop">-        <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column5MultiLine"/>-        <IncludeRules context="Error"/>+      <context name="Comma_Column5" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5">+        <DetectChar char="&Comma;" context="#pop!Comma_Column6_Start" attribute="Column 5 Separator"/>       </context>-      <context name="Column5MultiLine" lineEndContext="#stay" attribute="Column 5">-        <DetectChar char="&quot;" context="#pop!Column5Quote"/>+      <context name="Comma_Column5_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Comma_Error">+        <IncludeRules context="Column5_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column6_Start" attribute="Column 5 Separator"/>       </context> -      <context name="Column6" lineEndContext="#pop!Column0" attribute="Column 6">-        <DetectChar char="&sep;" context="#pop!Column7" attribute="Column 6 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column6Quote"/>-        <DetectChar char="&quot;" context="Column6MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Comma_Column6_Start" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Comma_Column6">+        <DetectChar char="&Comma;" context="Comma_Column7_Start" attribute="Column 6 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column6_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column6_QuoteContinuation!Column6_Quote"/>+        <AnyChar String=" &Tab;"/>       </context>-      <context name="Column6Quote" lineEndContext="#pop#pop!Column0" attribute="Column 6" fallthroughContext="#pop">+      <context name="Comma_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6">+        <DetectChar char="&Comma;" context="#pop!Comma_Column7_Start" attribute="Column 6 Separator"/>+      </context>+      <context name="Comma_Column6_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Comma_Error">+        <IncludeRules context="Column6_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column7_Start" attribute="Column 6 Separator"/>+      </context>++      <context name="Comma_Column7_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Comma_Column7">+        <DetectChar char="&Comma;" context="Comma_Column8_Start" attribute="Column 7 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column7_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column7_QuoteContinuation!Column7_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Comma_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">+        <DetectChar char="&Comma;" context="#pop!Comma_Column8_Start" attribute="Column 7 Separator"/>+      </context>+      <context name="Comma_Column7_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Comma_Error">+        <IncludeRules context="Column7_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column8_Start" attribute="Column 7 Separator"/>+      </context>++      <context name="Comma_Column8_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Comma_Column8">+        <DetectChar char="&Comma;" context="Comma_Column9_Start" attribute="Column 8 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column8_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column8_QuoteContinuation!Column8_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Comma_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">+        <DetectChar char="&Comma;" context="#pop!Comma_Column9_Start" attribute="Column 8 Separator"/>+      </context>+      <context name="Comma_Column8_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Comma_Error">+        <IncludeRules context="Column8_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop!Comma_Column9_Start" attribute="Column 8 Separator"/>+      </context>++      <context name="Comma_Column9_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Comma_Column9">+        <DetectChar char="&Comma;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column9_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Comma_Column9_QuoteContinuation!Column9_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Comma_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">+        <DetectChar char="&Comma;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+      </context>+      <context name="Comma_Column9_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Comma_Error">+        <IncludeRules context="Column9_FindQuote"/>+        <DetectChar char="&Comma;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+      </context>++      <context name="Comma_Error" lineEndContext="#pop#pop" attribute="Error">+        <DetectChar char="&Comma;" context="#pop" lookAhead="1"/>+      </context>++      <!--+      @}+      -->++      <!-- Semicolon (,) separator with double-quoted fields+      @{+      -->++      <context name="Semicolon_Column0_Start" lineEndContext="#stay" attribute="Column 0" fallthroughContext="Semicolon_Column0">+        <DetectChar char="&Semicolon;" context="Semicolon_Column1_Start" attribute="Column 0 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column0_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column0_QuoteContinuation!Column0_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column0" lineEndContext="#pop" attribute="Column 0">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column1_Start" attribute="Column 0 Separator"/>+      </context>+      <context name="Semicolon_Column0_QuoteContinuation" lineEndContext="#pop" attribute="Column 0" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column0_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column1_Start" attribute="Column 0 Separator"/>+      </context>++      <context name="Semicolon_Column1_Start" lineEndContext="#pop" attribute="Column 1" fallthroughContext="Semicolon_Column1">+        <DetectChar char="&Semicolon;" context="Semicolon_Column2_Start" attribute="Column 1 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column1_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column1_QuoteContinuation!Column1_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column1" lineEndContext="#pop#pop" attribute="Column 1">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column2_Start" attribute="Column 1 Separator"/>+      </context>+      <context name="Semicolon_Column1_QuoteContinuation" lineEndContext="#pop#pop" attribute="Column 1" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column1_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column2_Start" attribute="Column 1 Separator"/>+      </context>++      <context name="Semicolon_Column2_Start" lineEndContext="#pop#pop" attribute="Column 2" fallthroughContext="Semicolon_Column2">+        <DetectChar char="&Semicolon;" context="Semicolon_Column3_Start" attribute="Column 2 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column2_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column2_QuoteContinuation!Column2_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column2" lineEndContext="#pop#pop#pop" attribute="Column 2">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column3_Start" attribute="Column 2 Separator"/>+      </context>+      <context name="Semicolon_Column2_QuoteContinuation" lineEndContext="#pop#pop#pop" attribute="Column 2" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column2_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column3_Start" attribute="Column 2 Separator"/>+      </context>++      <context name="Semicolon_Column3_Start" lineEndContext="#pop#pop#pop" attribute="Column 3" fallthroughContext="Semicolon_Column3">+        <DetectChar char="&Semicolon;" context="Semicolon_Column4_Start" attribute="Column 3 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column3_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column3_QuoteContinuation!Column3_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column3" lineEndContext="#pop#pop#pop#pop" attribute="Column 3">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column4_Start" attribute="Column 3 Separator"/>+      </context>+      <context name="Semicolon_Column3_QuoteContinuation" lineEndContext="#pop#pop#pop#pop" attribute="Column 3" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column3_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column4_Start" attribute="Column 3 Separator"/>+      </context>++      <context name="Semicolon_Column4_Start" lineEndContext="#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Semicolon_Column4">+        <DetectChar char="&Semicolon;" context="Semicolon_Column5_Start" attribute="Column 4 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column4_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column4_QuoteContinuation!Column4_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column4" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column5_Start" attribute="Column 4 Separator"/>+      </context>+      <context name="Semicolon_Column4_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column4_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column5_Start" attribute="Column 4 Separator"/>+      </context>++      <context name="Semicolon_Column5_Start" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Semicolon_Column5">+        <DetectChar char="&Semicolon;" context="Semicolon_Column6_Start" attribute="Column 5 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column5_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column5_QuoteContinuation!Column5_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column5" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column6_Start" attribute="Column 5 Separator"/>+      </context>+      <context name="Semicolon_Column5_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column5_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column6_Start" attribute="Column 5 Separator"/>+      </context>++      <context name="Semicolon_Column6_Start" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Semicolon_Column6">+        <DetectChar char="&Semicolon;" context="Semicolon_Column7_Start" attribute="Column 6 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column6_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column6_QuoteContinuation!Column6_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column7_Start" attribute="Column 6 Separator"/>+      </context>+      <context name="Semicolon_Column6_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column6_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column7_Start" attribute="Column 6 Separator"/>+      </context>++      <context name="Semicolon_Column7_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Semicolon_Column7">+        <DetectChar char="&Semicolon;" context="Semicolon_Column8_Start" attribute="Column 7 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column7_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column7_QuoteContinuation!Column7_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column8_Start" attribute="Column 7 Separator"/>+      </context>+      <context name="Semicolon_Column7_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column7_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column8_Start" attribute="Column 7 Separator"/>+      </context>++      <context name="Semicolon_Column8_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Semicolon_Column8">+        <DetectChar char="&Semicolon;" context="Semicolon_Column9_Start" attribute="Column 8 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column8_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column8_QuoteContinuation!Column8_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column9_Start" attribute="Column 8 Separator"/>+      </context>+      <context name="Semicolon_Column8_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column8_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column9_Start" attribute="Column 8 Separator"/>+      </context>++      <context name="Semicolon_Column9_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Semicolon_Column9">+        <DetectChar char="&Semicolon;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column9_QuoteContinuation"/>+        <DetectChar char="&quot;" context="Semicolon_Column9_QuoteContinuation!Column9_Quote"/>+        <AnyChar String=" &Tab;"/>+      </context>+      <context name="Semicolon_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">+        <DetectChar char="&Semicolon;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+      </context>+      <context name="Semicolon_Column9_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Semicolon_Error">+        <IncludeRules context="Column9_FindQuote"/>+        <DetectChar char="&Semicolon;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+      </context>++      <context name="Semicolon_Error" lineEndContext="#pop#pop" attribute="Error">+        <DetectChar char="&Semicolon;" context="#pop" lookAhead="1"/>+      </context>++      <!--+      @}+      -->++      <!-- TAB (\t) separator+      @{+      -->++      <context name="Tab_Column0" lineEndContext="#stay" attribute="Column 0">+        <DetectChar char="&Tab;" context="Tab_Column1" attribute="Column 0 Separator"/>+      </context>++      <context name="Tab_Column1" lineEndContext="#pop" attribute="Column 1">+        <DetectChar char="&Tab;" context="Tab_Column2" attribute="Column 1 Separator"/>+      </context>++      <context name="Tab_Column2" lineEndContext="#pop#pop" attribute="Column 2">+        <DetectChar char="&Tab;" context="Tab_Column3" attribute="Column 2 Separator"/>+      </context>++      <context name="Tab_Column3" lineEndContext="#pop#pop#pop" attribute="Column 3">+        <DetectChar char="&Tab;" context="Tab_Column4" attribute="Column 3 Separator"/>+      </context>++      <context name="Tab_Column4" lineEndContext="#pop#pop#pop#pop" attribute="Column 4">+        <DetectChar char="&Tab;" context="Tab_Column5" attribute="Column 4 Separator"/>+      </context>++      <context name="Tab_Column5" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5">+        <DetectChar char="&Tab;" context="Tab_Column6" attribute="Column 5 Separator"/>+      </context>++      <context name="Tab_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6">+        <DetectChar char="&Tab;" context="Tab_Column7" attribute="Column 6 Separator"/>+      </context>++      <context name="Tab_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">+        <DetectChar char="&Tab;" context="Tab_Column8" attribute="Column 7 Separator"/>+      </context>++      <context name="Tab_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">+        <DetectChar char="&Tab;" context="Tab_Column9" attribute="Column 8 Separator"/>+      </context>++      <context name="Tab_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">+        <DetectChar char="&Tab;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+      </context>++      <!--+      @}+      -->++      <!-- Pipe (|) separator+      @{+      -->++      <context name="Pipe_Column0" lineEndContext="#stay" attribute="Column 0">+        <DetectChar char="&Pipe;" context="Pipe_Column1" attribute="Column 0 Separator"/>+      </context>++      <context name="Pipe_Column1" lineEndContext="#pop" attribute="Column 1">+        <DetectChar char="&Pipe;" context="Pipe_Column2" attribute="Column 1 Separator"/>+      </context>++      <context name="Pipe_Column2" lineEndContext="#pop#pop" attribute="Column 2">+        <DetectChar char="&Pipe;" context="Pipe_Column3" attribute="Column 2 Separator"/>+      </context>++      <context name="Pipe_Column3" lineEndContext="#pop#pop#pop" attribute="Column 3">+        <DetectChar char="&Pipe;" context="Pipe_Column4" attribute="Column 3 Separator"/>+      </context>++      <context name="Pipe_Column4" lineEndContext="#pop#pop#pop#pop" attribute="Column 4">+        <DetectChar char="&Pipe;" context="Pipe_Column5" attribute="Column 4 Separator"/>+      </context>++      <context name="Pipe_Column5" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5">+        <DetectChar char="&Pipe;" context="Pipe_Column6" attribute="Column 5 Separator"/>+      </context>++      <context name="Pipe_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6">+        <DetectChar char="&Pipe;" context="Pipe_Column7" attribute="Column 6 Separator"/>+      </context>++      <context name="Pipe_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">+        <DetectChar char="&Pipe;" context="Pipe_Column8" attribute="Column 7 Separator"/>+      </context>++      <context name="Pipe_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">+        <DetectChar char="&Pipe;" context="Pipe_Column9" attribute="Column 8 Separator"/>+      </context>++      <context name="Pipe_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">+        <DetectChar char="&Pipe;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>+      </context>++      <!--+      @}+      -->++      <!-- Whitespace ( ) separator+      @{+      -->++      <context name="Ws_Column0" lineEndContext="#stay" attribute="Column 0">+        <DetectChar char=" " context="Ws_Column0Spaces" attribute="Column 0 Separator"/>+      </context>+      <context name="Ws_Column0Spaces" lineEndContext="#pop" attribute="Column 0 Separator" fallthroughContext="Ws_Column1">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column1" lineEndContext="#pop#pop" attribute="Column 1">+        <DetectChar char=" " context="Ws_Column1Spaces" attribute="Column 1 Separator"/>+      </context>+      <context name="Ws_Column1Spaces" lineEndContext="#pop#pop#pop" attribute="Column 1 Separator" fallthroughContext="Ws_Column2">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column2" lineEndContext="#pop#pop#pop#pop" attribute="Column 2">+        <DetectChar char=" " context="Ws_Column2Spaces" attribute="Column 2 Separator"/>+      </context>+      <context name="Ws_Column2Spaces" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 2 Separator" fallthroughContext="Ws_Column3">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column3" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 3">+        <DetectChar char=" " context="Ws_Column3Spaces" attribute="Column 3 Separator"/>+      </context>+      <context name="Ws_Column3Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 3 Separator" fallthroughContext="Ws_Column4">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column4" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 4">+        <DetectChar char=" " context="Ws_Column4Spaces" attribute="Column 4 Separator"/>+      </context>+      <context name="Ws_Column4Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 4 Separator" fallthroughContext="Ws_Column5">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column5" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 5">+        <DetectChar char=" " context="Ws_Column5Spaces" attribute="Column 5 Separator"/>+      </context>+      <context name="Ws_Column5Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 5 Separator" fallthroughContext="Ws_Column6">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6">+        <DetectChar char=" " context="Ws_Column6Spaces" attribute="Column 6 Separator"/>+      </context>+      <context name="Ws_Column6Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6 Separator" fallthroughContext="Ws_Column7">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">+        <DetectChar char=" " context="Ws_Column7Spaces" attribute="Column 7 Separator"/>+      </context>+      <context name="Ws_Column7Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7 Separator" fallthroughContext="Ws_Column8">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">+        <DetectChar char=" " context="Ws_Column8Spaces" attribute="Column 8 Separator"/>+      </context>+      <context name="Ws_Column8Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8 Separator" fallthroughContext="Ws_Column9">+        <DetectChar char=" "/>+      </context>++      <context name="Ws_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">+        <DetectChar char=" " context="Ws_Column9Spaces" attribute="Column 9 Separator"/>+      </context>+      <context name="Ws_Column9Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator" fallthroughContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop">+        <DetectChar char=" "/>+      </context>++      <!--+      @}+      -->++      <!-- Quote+      @{+      -->++      <context name="Column0_Quote" lineEndContext="#pop!Column0_QuoteNextLine" attribute="Column 0">+      </context>+      <context name="Column0_QuoteNextLine" lineEndContext="#stay" attribute="Column 0">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column0_FindQuote" lineEndContext="#stay" attribute="Column 0">         <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column6MultiLine"/>-        <IncludeRules context="Error"/>+        <DetectChar char="&quot;" context="Column0_Quote"/>       </context>-      <context name="Column6MultiLine" lineEndContext="#stay" attribute="Column 6">-        <DetectChar char="&quot;" context="#pop!Column6Quote"/>++      <context name="Column1_Quote" lineEndContext="#pop!Column1_QuoteNextLine" attribute="Column 1">       </context>+      <context name="Column1_QuoteNextLine" lineEndContext="#stay" attribute="Column 1">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column1_FindQuote" lineEndContext="#stay" attribute="Column 1">+        <RangeDetect char="&quot;" char1="&quot;"/>+        <DetectChar char="&quot;" context="Column1_Quote"/>+      </context> -      <context name="Column7" lineEndContext="#pop!Column0" attribute="Column 7">-        <DetectChar char="&sep;" context="#pop!Column8" attribute="Column 7 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column7Quote"/>-        <DetectChar char="&quot;" context="Column7MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Column2_Quote" lineEndContext="#pop!Column2_QuoteNextLine" attribute="Column 2">       </context>-      <context name="Column7Quote" lineEndContext="#pop#pop!Column0" attribute="Column 7" fallthroughContext="#pop">+      <context name="Column2_QuoteNextLine" lineEndContext="#stay" attribute="Column 2">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column2_FindQuote" lineEndContext="#stay" attribute="Column 2">         <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column7MultiLine"/>-        <IncludeRules context="Error"/>+        <DetectChar char="&quot;" context="Column2_Quote"/>       </context>-      <context name="Column7MultiLine" lineEndContext="#stay" attribute="Column 7">-        <DetectChar char="&quot;" context="#pop!Column7Quote"/>++      <context name="Column3_Quote" lineEndContext="#pop!Column3_QuoteNextLine" attribute="Column 3">       </context>+      <context name="Column3_QuoteNextLine" lineEndContext="#stay" attribute="Column 3">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column3_FindQuote" lineEndContext="#stay" attribute="Column 3">+        <RangeDetect char="&quot;" char1="&quot;"/>+        <DetectChar char="&quot;" context="Column3_Quote"/>+      </context> -      <context name="Column8" lineEndContext="#pop!Column0" attribute="Column 8">-        <DetectChar char="&sep;" context="#pop!Column9" attribute="Column 8 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column8Quote"/>-        <DetectChar char="&quot;" context="Column8MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Column4_Quote" lineEndContext="#pop!Column4_QuoteNextLine" attribute="Column 4">       </context>-      <context name="Column8Quote" lineEndContext="#pop#pop!Column0" attribute="Column 8" fallthroughContext="#pop">+      <context name="Column4_QuoteNextLine" lineEndContext="#stay" attribute="Column 4">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column4_FindQuote" lineEndContext="#stay" attribute="Column 4">         <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column8MultiLine"/>-        <IncludeRules context="Error"/>+        <DetectChar char="&quot;" context="Column4_Quote"/>       </context>-      <context name="Column8MultiLine" lineEndContext="#stay" attribute="Column 8">-        <DetectChar char="&quot;" context="#pop!Column8Quote"/>++      <context name="Column5_Quote" lineEndContext="#pop!Column5_QuoteNextLine" attribute="Column 5">       </context>+      <context name="Column5_QuoteNextLine" lineEndContext="#stay" attribute="Column 5">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column5_FindQuote" lineEndContext="#stay" attribute="Column 5">+        <RangeDetect char="&quot;" char1="&quot;"/>+        <DetectChar char="&quot;" context="Column5_Quote"/>+      </context> -      <context name="Column9" lineEndContext="#pop!Column0" attribute="Column 9">-        <DetectChar char="&sep;" context="#pop!Column0" attribute="Column 9 Separator"/>-        <RangeDetect char="&quot;" char1="&quot;" context="Column9Quote"/>-        <DetectChar char="&quot;" context="Column9MultiLine"/>-        <IncludeRules context="FindField"/>+      <context name="Column6_Quote" lineEndContext="#pop!Column6_QuoteNextLine" attribute="Column 6">       </context>-      <context name="Column9Quote" lineEndContext="#pop!Column0" attribute="Column 9" fallthroughContext="#pop">+      <context name="Column6_QuoteNextLine" lineEndContext="#stay" attribute="Column 6">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column6_FindQuote" lineEndContext="#stay" attribute="Column 6">         <RangeDetect char="&quot;" char1="&quot;"/>-        <DetectChar char="&quot;" context="#pop!Column9MultiLine"/>-        <IncludeRules context="Error"/>+        <DetectChar char="&quot;" context="Column6_Quote"/>       </context>-      <context name="Column9MultiLine" lineEndContext="#stay" attribute="Column 9">-        <DetectChar char="&quot;" context="#pop!Column9Quote"/>++      <context name="Column7_Quote" lineEndContext="#pop!Column7_QuoteNextLine" attribute="Column 7">       </context>+      <context name="Column7_QuoteNextLine" lineEndContext="#stay" attribute="Column 7">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column7_FindQuote" lineEndContext="#stay" attribute="Column 7">+        <RangeDetect char="&quot;" char1="&quot;"/>+        <DetectChar char="&quot;" context="Column7_Quote"/>+      </context> -      <context name="FindField" lineEndContext="#stay" attribute="Column 0">-        <DetectSpaces/>-        <RegExpr String="[^&sep;]+"/>+      <context name="Column8_Quote" lineEndContext="#pop!Column8_QuoteNextLine" attribute="Column 8">       </context>+      <context name="Column8_QuoteNextLine" lineEndContext="#stay" attribute="Column 8">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column8_FindQuote" lineEndContext="#stay" attribute="Column 8">+        <RangeDetect char="&quot;" char1="&quot;"/>+        <DetectChar char="&quot;" context="Column8_Quote"/>+      </context> -      <context name="Error" lineEndContext="#stay" attribute="Error">-        <RegExpr String="[^&sep;]+" context="#pop" attribute="Error"/>+      <context name="Column9_Quote" lineEndContext="#pop!Column9_QuoteNextLine" attribute="Column 9">       </context>+      <context name="Column9_QuoteNextLine" lineEndContext="#stay" attribute="Column 9">+        <DetectChar char="&quot;" context="#pop"/>+      </context>+      <context name="Column9_FindQuote" lineEndContext="#stay" attribute="Column 9">+        <RangeDetect char="&quot;" char1="&quot;"/>+        <DetectChar char="&quot;" context="Column9_Quote"/>+      </context>++      <!--+      @}+      -->+     </contexts>      <itemDatas>
xml/isocpp.xml view
@@ -35,7 +35,7 @@ <language     name="ISO C++"     section="Sources"-    version="32"+    version="33"     kateversion="5.79"     indenter="cstyle"     style="C++"@@ -132,6 +132,8 @@       <!-- Concept -->       <item>concept</item>       <item>requires</item>+      <!-- C++26 -->+      <item>contract_assert</item>       <!-- TM TS -->       <!-- <item>atomic_cancel</item>       <item>atomic_commit</item>@@ -165,6 +167,8 @@       <item>no_unique_address</item>       <!-- C++23 -->       <item>assume</item>+      <!-- C++26 -->+      <item>indeterminate</item>       <!-- TM TS -->       <!-- <item>optimize_for_synchronized</item> -->     </list>@@ -255,11 +259,14 @@       <item>__has_include</item>       <!-- C++20 -->       <item>__has_cpp_attribute</item>+      <!-- C++26 -->+      <item>__has_embed</item>     </list>     <list name="InMacro">       <item>__VA_ARGS__</item>       <item>__VA_OPT__</item>     </list>+    <!-- not used, for list-completion only (see PreprocessorCmd context) -->     <list name="preprocessor">       <item>if</item>       <item>ifdef</item>@@ -269,15 +276,11 @@       <item>elifndef</item> <!--C++23-->       <item>else</item>       <item>endif</item>-      <item>cmakedefine01</item>-      <item>cmakedefine</item>       <item>define</item>       <item>include</item>-      <item>error</item>-      <item>line</item>-      <item>pragma</item>       <item>undef</item>-      <item>warning</item>+      <!-- C++26 -->+      <item>embed</item>     </list>     <list name="preprocessorDefine">       <item>cmakedefine01</item>@@ -731,6 +734,7 @@         <WordDetect attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="endif" endRegion="PP" />         <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="elifdef" endRegion="PP" beginRegion="PP" lookAhead="true" />         <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="elifndef" endRegion="PP" beginRegion="PP" lookAhead="true" />+        <WordDetect attribute="Preprocessor" context="#pop!Embed" String="embed"/>         <keyword attribute="Preprocessor" context="#pop!Define" String="preprocessorDefine" />         <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessorOther" />         <!-- GCC extension -->@@ -744,6 +748,12 @@         <RangeDetect attribute="Prep. Lib" context="PreprocessorEndOfLineSpace" char="&lt;" char1="&gt;" />         <IncludeRules context="Preprocessor" />         <DetectIdentifier/>+      </context>++      <context name="Embed" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!Preprocessor">+        <DetectSpaces/>+        <RangeDetect attribute="Prep. Lib" context="#pop!Preprocessor" char="&quot;" char1="&quot;" />+        <RangeDetect attribute="Prep. Lib" context="#pop!Preprocessor" char="&lt;" char1="&gt;" />       </context>        <context name="PreprocessorIfDef" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!LineError">
xml/json.xml view
@@ -13,7 +13,7 @@  ** https://www.json.org/json-en.html  *************************************************************************** -->-<language name="JSON" section="Markup" version="10" kateversion="2.4" extensions="*.json;*.jsonl;*.ndjson;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json;application/x-ndjson;application/geo+json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">+<language name="JSON" section="Markup" version="11" kateversion="2.4" extensions="*.json;*.jsonl;*.ndjson;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json;application/x-ndjson;application/geo+json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">   <highlighting>     <list name="Constants">       <item>null</item>@@ -57,8 +57,8 @@       </context>        <context name="String_Key_Char" lineEndContext="#stay" attribute="Style_Normal">-        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#pop" attribute="Style_String_Key_Char" />-        <RegExpr String="\\(u[0-9a-fA-f]+|.)?" context="#pop" attribute="Style_Error" />+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-F]{4})" context="#pop" attribute="Style_String_Key_Char" />+        <RegExpr String="\\(u[0-9a-fA-F]+|.)?" context="#pop" attribute="Style_Error" />       </context>        <context name="Value" lineEndContext="#stay" attribute="Style_Error" >@@ -73,8 +73,8 @@       </context>        <context name="String_Key_Value" lineEndContext="#stay" attribute="Style_Normal">-        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#pop"  attribute="Style_String_Value_Char" />-        <RegExpr String="\\(u[0-9a-fA-f]+|.)?" context="#pop" attribute="Style_Error" />+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-F]{4})" context="#pop"  attribute="Style_String_Value_Char" />+        <RegExpr String="\\(u[0-9a-fA-F]+|.)?" context="#pop" attribute="Style_Error" />       </context>        <context name="Array" lineEndContext="#stay" attribute="Style_Error">
xml/perl.xml view
@@ -42,7 +42,7 @@     Enhance tr/// and y/// support. -->-<language name="Perl" alternativeNames="PL" version="23" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">+<language name="Perl" alternativeNames="PL" version="24" kateversion="6.22" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">   <highlighting>     <list name="control_flow">       <item>if</item>@@ -84,6 +84,7 @@     <list name="operators">       <item>and</item>       <item>or</item>+      <item>xor</item>       <item>not</item>       <item>eq</item>       <item>ne</item>@@ -92,6 +93,7 @@       <item>le</item>       <item>ge</item>       <item>cmp</item>+      <item>isa</item>     </list>     <list name="functions">       <item>abs</item>@@ -306,13 +308,18 @@       <item>constant</item>       <item>bytes</item>       <item>diagnostics</item>+      <item>feature</item>     </list>     <contexts>       <context name="normal" attribute="Normal Text" lineEndContext="#stay">         <DetectSpaces /> +        <StringDetect attribute="Keyword" context="EndSection" String="__END__" firstNonSpace="true"/>         <StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />-        <StringDetect attribute="Keyword" context="#stay" String="__END__" firstNonSpace="true"/>++        <WordDetect attribute="Import" context="module" String="use" firstNonSpace="true"/>+        <WordDetect attribute="Import" context="module" String="no" firstNonSpace="true"/>+         <RegExpr attribute="Keyword" context="sub_name_def" String="\bsub\s+" />         <keyword attribute="Keyword" context="#stay" String="keywords" />         <keyword attribute="Control Flow" context="#stay" String="control_flow" />@@ -357,6 +364,7 @@         <RegExpr attribute="Operator" context="find_pattern" String="\b(?:m|qr)(?=\s*[^\w\s\]})])" />          <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*//?\=?|[&lt;&gt;&quot;':]//?\=?" />+         <DetectIdentifier/>          <!-- Avoid conflicts between operators / and // -->@@ -367,9 +375,13 @@          <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Block" />         <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Block" />++        <StringDetect String="=>" attribute="FatComma" context="#stay"/>+        <AnyChar attribute="Operator2" context="#stay" String="=&lt;>&amp;|!+-*/%^~" />       </context>        <!-- ====== quoted construct central ===== -->+       <context name="find_quoted" attribute="Normal Text" lineEndContext="#stay" >         <!-- NOTE - qx'not interpolated regex' does not cover newline between "qr" and "'" -->         <RegExpr attribute="Operator" context="string_6" String="x\s*(')" beginRegion="String" />@@ -433,7 +445,7 @@         <DetectChar attribute="Operator" context="#pop#pop#pop" char="&gt;" endRegion="String" />         <IncludeRules context="ipstring_internal" />       </context>-      <context name="ip_string_6" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">+      <context name="ip_string_6" attribute="String (interpolated)" lineEndContext="#stay">         <StringDetect attribute="String (interpolated)" context="#stay" String="\%1" dynamic="true" />         <DetectChar attribute="Operator" context="#pop#pop#pop" char="1" dynamic="true"  endRegion="String"/>         <IncludeRules context="ipstring_internal" />@@ -474,7 +486,7 @@         <RangeDetect attribute="String" context="#stay" char="&lt;" char1="&gt;" />         <DetectChar attribute="Operator" context="#pop#pop" char="&gt;" endRegion="String" />       </context>-      <context name="string_6" attribute="String" lineEndContext="#stay" dynamic="true">+      <context name="string_6" attribute="String" lineEndContext="#stay">         <DetectIdentifier />         <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />         <StringDetect attribute="String Special Character" context="#stay" String="\%1" dynamic="true"/>@@ -507,7 +519,7 @@         <IncludeRules context="subst_curlybrace_pattern" />       </context> -      <context name="subst_maybe_comment" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+      <context name="subst_maybe_comment" attribute="Pattern" lineEndContext="#pop" fallthroughContext="#pop">         <DetectChar attribute="Comment" context="#pop!comment" char="#" />       </context> @@ -542,7 +554,7 @@         <!-- partially buggy if the character is in a set, a variable, etc. -->         <RegExpr attribute="Operator" context="#pop!subst_any_replace" String="(.)" beginRegion="Replacement" />       </context>-      <context name="subst_any_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">+      <context name="subst_any_replace" attribute="String (interpolated)" lineEndContext="#stay">         <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1&subst_flags;" dynamic="true" endRegion="Replacement" />         <IncludeRules context="ipstring_internal_without_identifier" />       </context>@@ -584,12 +596,12 @@       </context>        <!-- Fully parse s / / /. -->-      <context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">+      <context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />         <RegExpr attribute="Operator" context="subst_slash_replace" String="(%1)" dynamic="true" endRegion="Pattern" beginRegion="Replacement" />         <IncludeRules context="regex_pattern_internal_ip" />       </context>-      <context name="subst_slash_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">+      <context name="subst_slash_replace" attribute="String (interpolated)" lineEndContext="#stay">         <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1&subst_flags;" dynamic="true" endRegion="Replacement" />         <IncludeRules context="ipstring_internal" />       </context>@@ -604,7 +616,7 @@         <RegExpr attribute="Operator" context="#pop#pop#pop" String="'&subst_flags;" endRegion="Replacement" />       </context> -      <context name="tr" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >+      <context name="tr" attribute="Pattern" lineEndContext="#pop" fallthroughContext="#pop" >         <RegExpr attribute="Pattern" context="#pop" String="\([^)]*\)\s*\(?:[^)]*\)|\{[^}]*\}\s*\{[^}]*\}|\[[^]]*\]\s*\[[^\]]*\]|([^a-zA-Z0-9_\s[\]{}()]).*?\1.*?\1"/>       </context> @@ -622,7 +634,7 @@         <IncludeRules context="regex_pattern_internal_ip" />         <RegExpr attribute="Operator" context="#pop" String="/[cgimosx]*" endRegion="Pattern" />       </context>-      <context name="pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">+      <context name="pattern" attribute="Pattern" lineEndContext="#stay">         <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />         <RegExpr attribute="Operator" context="#pop#pop" String="%1[cgimosx]*" dynamic="true" endRegion="Pattern" />         <IncludeRules context="regex_pattern_internal_ip" />@@ -701,7 +713,7 @@       </context>        <!-- ====== Variables ====== -->-      <context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >+      <context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthroughContext="#pop">         <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" />         <RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+|[@\$](?:[\+\-_]\B|ARGV\b|INC\b)|[%\$](?:INC\b|ENV\b|SIG\b)|\$\^[A-Z_\]\[\^\?\\]|%([\-\+!]|\^H)" />         <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]|\$+::" />@@ -713,7 +725,7 @@         <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" >+      <context name="find_variable_unsafe" attribute="Data Type" lineEndContext="#pop" fallthroughContext="#pop">         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$[#_][\w_]" />         <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="\$[0-9]+|[@\$](?:[\+\-_]\B|ARGV\b|INC\b)|[%\$](?:INC\b|ENV\b|SIG\b)" />         <RegExpr attribute="Special Variable" context="var_detect" String="\$\^[A-Z_\]\[\^\?\\]|%([\-\+!]|\^H)" />@@ -722,11 +734,11 @@         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]\{\^?[\w_]+\}|[$@%]|\*\w+" />         <AnyChar attribute="Operator" context="#pop" String="$@%*" />       </context>-      <context name="var_detect"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">+      <context name="var_detect"  attribute="Data Type" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">         <IncludeRules context="var_detect_unsafe" />         <IncludeRules context="slash_safe_escape" />       </context>-      <context name="var_detect_unsafe"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">+      <context name="var_detect_unsafe"  attribute="Data Type" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">         <RegExpr attribute="Data Type" context="#stay" String="(?&lt;![0-9])[\w_]+" />         <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />         <DetectChar attribute="Operator" context="#stay" char="'" />@@ -738,7 +750,7 @@         <!-- ====== Word lists ====== -->-      <context name="quote_word" attribute="Normal Text" lineEndContext="#stay" dynamic="true">+      <context name="quote_word" attribute="Normal Text" lineEndContext="#stay">         <DetectSpaces />         <DetectIdentifier />         <StringDetect attribute="Normal Text" context="#stay" String="\%1" dynamic="true" />@@ -770,26 +782,66 @@       </context>        <!-- ====== Here Documents ====== -->+       <context name="find_here_document" attribute="Normal Text" lineEndContext="#pop" >-        <RegExpr attribute="Keyword" context="here_document" String="(?|(\w+)\s*;?|\s*&quot;([^&quot;]+)&quot;\s*;?|\s*`([^`]+)`\s*;?)" />-        <RegExpr attribute="Keyword" context="here_document_dumb" String="\s*'([^']+)'\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc_html" String="(HTML)\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc_mysql" String="(MYSQL)\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc_markdown" String="(MARKDOWN)\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc" String="(?|(\w+)\s*;?|&quot;([^&quot;]+)&quot;\s*;?|`([^`]+)`\s*;?)" />+        <RegExpr attribute="Keyword" context="heredoc_ni_html" String="'(HTML)'\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc_ni_mysql" String="'(MYSQL)'\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc_ni_markdown" String="'(MARKDOWN)'\s*;?" />+        <RegExpr attribute="Keyword" context="heredoc_ni" String="'([^']+)'\s*;?" />       </context>-      <context name="here_document" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">++      <context name="heredoc" attribute="String (interpolated)" lineEndContext="#stay">         <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>-        <RegExpr attribute="Keyword" context="here_document" String="\=\s*&lt;&lt;\s*[&quot;']?([A-Z0-9_\-]+)[&quot;']?" beginRegion="HEREDoc" />+        <RegExpr attribute="Keyword" context="heredoc" String="=\s*&lt;&lt;\s*[&quot;']?([A-Z0-9_\-]+)[&quot;']?" beginRegion="HereDocument" />         <IncludeRules context="ipstring_internal" />-        <DetectSpaces />       </context>-      <context name="here_document_dumb" attribute="Normal Text" lineEndContext="#stay" dynamic="true">-        <StringDetect attribute="Keyword" context="#pop#pop" String="%1" column="0" dynamic="true" endRegion="HereDocument"/>-        <DetectSpaces />-        <DetectIdentifier />++      <context name="heredoc_html" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+        <IncludeRules context="ipstring_internal_without_identifier" />+        <IncludeRules context="##HTML" />       </context> +      <context name="heredoc_mysql" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+        <IncludeRules context="ipstring_internal_without_identifier" />+        <IncludeRules context="##SQL (MySQL)" />+      </context>++      <context name="heredoc_markdown" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+        <IncludeRules context="ipstring_internal_without_identifier" />+        <IncludeRules context="Normal Text##Markdown" />+      </context>++      <context name="heredoc_ni" attribute="String" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+      </context>++      <context name="heredoc_ni_html" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+        <IncludeRules context="##HTML" />+      </context>++      <context name="heredoc_ni_mysql" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+        <IncludeRules context="##SQL (MySQL)" />+      </context>++      <context name="heredoc_ni_markdown" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>+        <IncludeRules context="Normal Text##Markdown" />+      </context>+       <!-- ====== Misc ====== -->+       <context name="data_handle" attribute="Data" lineEndContext="#stay">-        <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s+.*" column="0" beginRegion="POD"/>-        <StringDetect attribute="Keyword" context="normal" String="__END__" firstNonSpace="true" />+        <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|encoding|pod).*" column="0" beginRegion="POD"/>+        <StringDetect attribute="Keyword" context="#pop" String="__END__" firstNonSpace="true" />       </context>        <context name="Backticked" attribute="String (interpolated)" lineEndContext="#stay">@@ -797,13 +849,13 @@         <DetectChar attribute="Operator" context="#pop" char="`"/>       </context> -      <context name="slash_safe_escape" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+      <context name="slash_safe_escape" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">         <RegExpr attribute="Normal Text" context="#pop" String="\s*\}\s*/{1,2}" endRegion="Block"/>         <RegExpr attribute="Normal Text" context="#pop" String="\s*[)\]]?\s*/{1,2}" />         <keyword attribute="Keyword" context="#pop" String="keywords" /><!-- wonder why??? -->       </context> -      <context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+      <context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">         <DetectSpaces/>         <DetectChar attribute="Normal Text" context="sub_arg_definition" char="(" />         <RegExpr attribute="Function" context="#stay" String="\w+" />@@ -811,7 +863,7 @@         <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />       </context> -      <context name="sub_arg_definition" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">+      <context name="sub_arg_definition" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop">         <AnyChar attribute="Data Type" context="#stay" String="*$@%" />         <AnyChar attribute="Normal Text" context="#stay" String="&amp;\[];" />         <DetectChar attribute="Normal Text" context="slash_safe_escape" char=")" />@@ -820,7 +872,7 @@       <context name="pod" attribute="Pod" lineEndContext="#stay">         <DetectSpaces />         <DetectIdentifier />-        <RegExpr attribute="Pod" context="#stay" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" column="0" beginRegion="POD" endRegion="POD"/>+        <RegExpr attribute="PodKeyword" context="#stay" String="^\=(?:head[1-6]|over|back|item|for|begin|end|encoding|pod).*" column="0"/>         <StringDetect attribute="Pod" context="Pod" String="=cut" column="0" endRegion="POD"/>       </context> @@ -830,8 +882,17 @@         <DetectIdentifier />       </context> +      <context name="module" attribute="Comment" lineEndContext="#pop">+        <DetectSpaces />+        <keyword attribute="Pragma" context="#pop" String="pragmas" />+        <RegExpr attribute="Pragma" String="v\d+([.][\d.]*|\b)" context="#pop"/>+        <RegExpr attribute="Normal Text" String="[a-zA-Z0-9:\\.]+" context="#pop"/>+      </context>+       <context name="Pod" attribute="Pod" lineEndContext="#pop#pop"/> +      <context name="EndSection" attribute="Comment" lineEndContext="#stay"/>+     </contexts>     <itemDatas>       <itemData name="Normal Text"               defStyleNum="dsNormal" />@@ -856,6 +917,10 @@       <itemData name="Data"                      defStyleNum="dsNormal" />       <itemData name="Comment"                   defStyleNum="dsComment" />       <itemData name="Pod"                       defStyleNum="dsComment" />+      <itemData name="FatComma"                  defStyleNum="dsOperator" bold="1" />+      <itemData name="Import"                    defStyleNum="dsImport" />+      <itemData name="Operator2"                 defStyleNum="dsOperator" />+      <itemData name="PodKeyword"                defStyleNum="dsCommentVar" />     </itemDatas>   </highlighting>   <general>
xml/raku.xml view
@@ -73,7 +73,7 @@   <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> -->   <!ENTITY regadverb "(?!\()\s*(?=[^\p{L}\p{N}\s])"> ]>-<language name="Raku" version="10" kateversion="5.62" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">+<language name="Raku" version="12" kateversion="6.22" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">   <highlighting>      <!-- https://docs.raku.org/routines -->
xml/systemverilog.xml view
@@ -39,7 +39,7 @@ <!--                                                                       --> <!--***********************************************************************--> <!DOCTYPE language>-<language name="SystemVerilog" version="11" kateversion="5.0" section="Hardware" extensions="*.sv;*.svh" mimetype="text/x-systemverilog-src" author="Sean O'Boyle (seanoboyle@intelligentdv.com)" license="GPLv3+">+<language name="SystemVerilog" version="12" kateversion="5.0" section="Hardware" extensions="*.sv;*.svh" mimetype="text/x-systemverilog-src" author="Sean O'Boyle (seanoboyle@intelligentdv.com)" license="GPLv3+">   <highlighting>     <list name="key_deprecated">        <item>defparam</item>@@ -854,6 +854,8 @@         <keyword attribute="Gate Instantiation Keyword" context="#stay" String="key_gates"/>         <keyword attribute="Standard Library" context="#stay" String="key_stdlib"/> +        <RegExpr attribute="Function" context="#stay" String="\b[a-zA-Z_][\w$]*(?=\s*\()"/>+         <RegExpr attribute="Decimal" context="#stay" String="[\d_]*'d[\d_]+"/>         <RegExpr attribute="Octal" context="#stay" String="[\d_]*'o[0-7xXzZ_]+"/>         <RegExpr attribute="Hex" context="#stay" String="[\d_]*'h[\da-fA-FxXzZ_]+"/>@@ -864,11 +866,11 @@         <RegExpr attribute="Port Connection" context="#stay" String="[^\w$]\.[a-zA-Z]+[\w$]*"/>          <DetectChar attribute="String" context="String" char="&quot;"/>-        <IncludeRules context="FindComments" />+        <IncludeRules context="FindComments"/>         <AnyChar attribute="Symbol" context="#stay" String="!%&amp;()+,-&lt;=+/:;&gt;?[]^{|}~@"/>          <DetectChar attribute="Preprocessor" context="Preprocessor" char="`" column="0"/>-        <RegExpr attribute="Preprocessor" context="#stay" String="\`[a-zA-Z_]+\w*" />+        <RegExpr attribute="Preprocessor" context="#stay" String="\`[a-zA-Z_]+\w*"/>         <RegExpr attribute="PLI Task" context="#stay" String="\$[a-zA-Z_]+\w*"/>         <RegExpr attribute="Delay" context="#stay" String="#[\d_]+"/>       </context>@@ -893,35 +895,35 @@       </context>        <context name="FindComments" attribute="Normal Text" lineEndContext="#pop">-        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true" />-        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />+        <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" />+        <IncludeRules context="##Doxygen"/>         <Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/"/>         <Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment"/>       </context>        <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">         <LineContinue attribute="Comment" context="#stay"/>-        <DetectSpaces />-        <IncludeRules context="##Comments" />-        <DetectIdentifier />+        <DetectSpaces/>+        <IncludeRules context="##Comments"/>+        <DetectIdentifier/>       </context>        <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">-        <DetectSpaces />+        <DetectSpaces/>         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>-        <IncludeRules context="##Comments" />-        <DetectIdentifier />+        <IncludeRules context="##Comments"/>+        <DetectIdentifier/>       </context>             <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">         <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;"/>-        <IncludeRules context="FindComments" />+        <IncludeRules context="FindComments"/>       </context>        <context attribute="Block Name" lineEndContext="#pop" name="Block Name">@@ -931,16 +933,16 @@      <itemDatas>       <itemData name="Normal Text" defStyleNum="dsNormal"/>-      <itemData name="Block Keyword" defStyleNum="dsKeyword"/>+      <itemData name="Block Keyword" defStyleNum="dsControlFlow"/>       <itemData name="DPI Keyword" defStyleNum="dsKeyword"/>       <itemData name="Assert Keyword" defStyleNum="dsKeyword"/>       <itemData name="Coverage Keyword" defStyleNum="dsKeyword"/>       <itemData name="Generator Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Confitional Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Case Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Loop Keyword" defStyleNum="dsKeyword"/>+      <itemData name="Confitional Keyword" defStyleNum="dsControlFlow"/>+      <itemData name="Case Keyword" defStyleNum="dsControlFlow"/>+      <itemData name="Loop Keyword" defStyleNum="dsControlFlow"/>       <itemData name="Specify Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Process Block Keyword" defStyleNum="dsKeyword"/>+      <itemData name="Process Block Keyword" defStyleNum="dsControlFlow"/>       <itemData name="Continuous Assign Keyword" defStyleNum="dsKeyword"/>       <itemData name="Event Keyword" defStyleNum="dsKeyword"/>       <itemData name="Time Keyword" defStyleNum="dsKeyword"/>@@ -951,11 +953,11 @@       <itemData name="Library Keyword" defStyleNum="dsKeyword"/>       <itemData name="Interface Keyword" defStyleNum="dsKeyword"/>       <itemData name="Checker Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Type Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Preprocessor Keyword" defStyleNum="dsOthers"/>-      <itemData name="Preprocessor" defStyleNum="dsOthers"/>-      <itemData name="System Task Keyword" defStyleNum="dsKeyword"/>-      <itemData name="Data Type Keyword" defStyleNum="dsKeyword"/>+      <itemData name="Type Keyword" defStyleNum="dsDataType"/>+      <itemData name="Preprocessor Keyword" defStyleNum="dsPreprocessor"/>+      <itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>+      <itemData name="System Task Keyword" defStyleNum="dsBuiltIn"/>+      <itemData name="Data Type Keyword" defStyleNum="dsDataType"/>       <itemData name="Drive/Charge Strength Keyword" defStyleNum="dsKeyword"/>       <itemData name="Gate Instantiation Keyword" defStyleNum="dsKeyword"/>       <itemData name="Decimal" defStyleNum="dsBaseN"/>@@ -967,19 +969,20 @@       <itemData name="String Char" defStyleNum="dsChar"/>       <itemData name="Comment" defStyleNum="dsComment"/>       <itemData name="Deprecated Keyword" defStyleNum="dsError"/>-      <itemData name="Symbol" defStyleNum="dsNormal"/>+      <itemData name="Symbol" defStyleNum="dsOperator"/>       <itemData name="Prep. Lib" defStyleNum="dsFloat"/>-      <itemData name="PLI Task" defStyleNum="dsDataType"/>+      <itemData name="PLI Task" defStyleNum="dsBuiltIn"/>       <itemData name="Integer" defStyleNum="dsDecVal"/>       <itemData name="Delay" defStyleNum="dsBaseN"/>       <itemData name="Block Name" defStyleNum="dsDataType"/>-      <itemData name="Port Connection" defStyleNum="dsDataType"/>+      <itemData name="Port Connection" defStyleNum="dsAttribute"/>       <itemData name="Standard Library" defStyleNum="dsOthers"/>+      <itemData name="Function" defStyleNum="dsFunction"/>       </itemDatas>   </highlighting>   <general>     <comments>-      <comment name="singleLine" start="//" position="afterwhitespace" />+      <comment name="singleLine" start="//" position="afterwhitespace"/>       <comment name="multiLine" start="/*" end="*/" region="Comment"/>     </comments>     <keywords casesensitive="1"/>
xml/verilog.xml view
@@ -1,25 +1,31 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language>-<language name="Verilog" version="8" kateversion="5.0" section="Hardware" extensions="*.v;*.V;*.vl" mimetype="text/x-verilog-src" author="Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)" license="">+<language name="Verilog" version="9" kateversion="5.0" section="Hardware" extensions="*.v;*.V;*.vl" mimetype="text/x-verilog-src" author="Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)" license="">   <highlighting>-    <list name="keywords">+    <list name="controlflow">       <item>macromodule</item>       <item>table</item>       <item>endtable</item>       <item>specify</item>-      <item>specparam</item>       <item>endspecify</item>--      <item>defparam</item>       <item>default</item>       <item>if</item>-      <item>ifnone</item>       <item>else</item>       <item>forever</item>       <item>while</item>       <item>for</item>-      <item>wait</item>       <item>repeat</item>+      <item>always</item>+      <item>initial</item>+      <item>config</item>+      <item>endconfig</item>+    </list>++    <list name="keywords">+      <item>specparam</item>+      <item>defparam</item>+      <item>ifnone</item>+      <item>wait</item>       <item>disable</item>        <item>assign</item>@@ -27,15 +33,11 @@       <item>force</item>       <item>release</item> -      <item>always</item>-      <item>initial</item>       <item>edge</item>       <item>posedge</item>       <item>negedge</item>        <!-- verilog-2001 keywords -->-      <item>config</item>-      <item>endconfig</item>       <item>library</item>       <item>design</item>       <item>liblist</item>@@ -150,10 +152,11 @@     <contexts>       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">         <DetectSpaces />-        <RegExpr attribute="Keyword" context="Block name" String="(begin|fork)\ *:" beginRegion="Block"/>-        <keyword attribute="Keyword" String="beginwords" context="#stay" beginRegion="Block"/>-        <keyword attribute="Keyword" String="endwords" context="#stay" endRegion="Block"/>+        <RegExpr attribute="Control Flow" context="Block name" String="(begin|fork)\ *:" beginRegion="Block"/>+        <keyword attribute="Control Flow" String="beginwords" context="#stay" beginRegion="Block"/>+        <keyword attribute="Control Flow" String="endwords" context="#stay" endRegion="Block"/> +        <keyword attribute="Control Flow" context="#stay" String="controlflow" />         <keyword attribute="Keyword" context="#stay" String="keywords" />         <keyword attribute="Data Type" context="#stay" String="types" />         <keyword attribute="Drive/charge strength" context="#stay" String="strength" />@@ -167,6 +170,8 @@         <Int attribute="Integer" context="#stay" />          <RegExpr attribute="Case label" context="#stay" String="[a-zA-Z0-9_, \t]+\s*:" firstNonSpace="true"/>+        <RegExpr attribute="Port Connection" context="#stay" String="(?&lt;![\w$])\.[a-zA-Z_][\w$]*"/>+        <RegExpr attribute="Function" context="#stay" String="\b[a-zA-Z_][\w$]*(?=\s*\()"/>         <!--<RegExpr attribute="Port map" context="Port" String="\.[a-zA-Z0-9_]+"/>-->          <DetectChar attribute="String" context="String" char="&quot;"/>@@ -219,6 +224,7 @@      <itemDatas>       <itemData name="Normal Text" defStyleNum="dsNormal"/>+      <itemData name="Control Flow"  defStyleNum="dsControlFlow"/>       <itemData name="Keyword"  defStyleNum="dsKeyword"/>       <itemData name="Data Type"  defStyleNum="dsDataType"/> @@ -232,9 +238,9 @@       <itemData name="String Char"  defStyleNum="dsChar"/>       <itemData name="Comment"  defStyleNum="dsComment"/>       <itemData name="Symbol"  defStyleNum="dsOperator"/>-      <itemData name="Preprocessor"  defStyleNum="dsOthers"/>+      <itemData name="Preprocessor"  defStyleNum="dsPreprocessor"/>       <itemData name="Prep. Lib"  defStyleNum="dsFloat"/>-      <itemData name="System Task" defStyleNum="dsDataType"/>+      <itemData name="System Task" defStyleNum="dsBuiltIn"/>        <itemData name="Integer" defStyleNum="dsDecVal"/>       <itemData name="Delay" defStyleNum="dsBaseN"/>@@ -243,6 +249,8 @@       <itemData name="Gate instantiation" defStyleNum="dsDataType"/> <!--       <itemData name="Port map" defStyleNum="dsDataType"/> -->       <itemData name="Case label" defStyleNum="dsDecVal"/>+      <itemData name="Function" defStyleNum="dsFunction"/>+      <itemData name="Port Connection" defStyleNum="dsAttribute"/>     </itemDatas>   </highlighting>   <general>