diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,12 @@
 # Revision history for skylighting-core
 
+## 0.7.2 -- 2018-06-08
+
+  * Update syntax definitions from upstream.
+  * Added support for POV-Ray syntax (#46).
+  * Display line numbers without absolute positioning (David
+    Baynard, #32).
+
 ## 0.7.1 -- 2018-03-15
 
   * Fix benchmarks, which previously depended on a module
diff --git a/skylighting-core.cabal b/skylighting-core.cabal
--- a/skylighting-core.cabal
+++ b/skylighting-core.cabal
@@ -1,5 +1,5 @@
 name:                skylighting-core
-version:             0.7.1
+version:             0.7.2
 synopsis:            syntax highlighting library
 description:         Skylighting is a syntax highlighting library.
                      It derives its tokenizers from XML syntax
diff --git a/src/Skylighting/Format/HTML.hs b/src/Skylighting/Format/HTML.hs
--- a/src/Skylighting/Format/HTML.hs
+++ b/src/Skylighting/Format/HTML.hs
@@ -153,13 +153,11 @@
            ++ " }"]
          numberspec = [
             "pre.numberSource a.sourceLine"
-          , "  { position: relative; }"
-          , "pre.numberSource a.sourceLine:empty"
-          , "  { position: absolute; }"
+          , "  { position: relative; left: -4em; }"
           , "pre.numberSource a.sourceLine::before"
           , "  { content: attr(data-line-number);"
-          , "    position: absolute; left: -5em; text-align: right; vertical-align: baseline;"
-          , "    border: none; pointer-events: all;"
+          , "    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;"
           , "    -khtml-user-select: none; -moz-user-select: none;"
           , "    -ms-user-select: none; user-select: none;"
@@ -176,9 +174,9 @@
          divspec = [
             "a.sourceLine { display: inline-block; line-height: 1.25; }"
           , "a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }"
-          , "a.sourceLine:empty { height: 1.2em; position: absolute; }" -- correct empty line height
+          , "a.sourceLine:empty { height: 1.2em; }" -- correct empty line height
           , ".sourceCode { overflow: visible; }" -- needed for line numbers
-          , "code.sourceCode { white-space: pre; position: relative; }" -- position relative needed for absolute contents
+          , "code.sourceCode { white-space: pre; position: relative; }" -- position relative needed for relative contents
           , "div.sourceCode { margin: 1em 0; }" -- Collapse neighbours correctly
           , "pre.sourceCode { margin: 0; }" -- Collapse neighbours correctly
           , "@media screen {"
diff --git a/test/expected/abc.cs.native b/test/expected/abc.cs.native
--- a/test/expected/abc.cs.native
+++ b/test/expected/abc.cs.native
@@ -105,7 +105,9 @@
 , [ ( NormalTok , "        " ) ]
 , [ ( NormalTok , "        " )
   , ( KeywordTok , "foreach" )
-  , ( NormalTok , "( var word " )
+  , ( NormalTok , "( " )
+  , ( DataTypeTok , "var" )
+  , ( NormalTok , " word " )
   , ( KeywordTok , "in" )
   , ( NormalTok , " words)" )
   ]
@@ -222,7 +224,9 @@
 , [ ( NormalTok , "                _blocks = blocks;" ) ]
 , [ ( NormalTok , "                " )
   , ( KeywordTok , "foreach" )
-  , ( NormalTok , " (var block " )
+  , ( NormalTok , " (" )
+  , ( DataTypeTok , "var" )
+  , ( NormalTok , " block " )
   , ( KeywordTok , "in" )
   , ( NormalTok , " blocks)" )
   ]
@@ -318,7 +322,9 @@
   ]
 , [ ( NormalTok , "                " )
   , ( KeywordTok , "foreach" )
-  , ( NormalTok , " (var block " )
+  , ( NormalTok , " (" )
+  , ( DataTypeTok , "var" )
+  , ( NormalTok , " block " )
   , ( KeywordTok , "in" )
   , ( NormalTok , " blocks)" )
   ]
diff --git a/test/expected/abc.scheme.native b/test/expected/abc.scheme.native
--- a/test/expected/abc.scheme.native
+++ b/test/expected/abc.scheme.native
@@ -1,6 +1,6 @@
 [ [ ( NormalTok , "#lang racket" ) ]
 , [ ( NormalTok , "(" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " block-strings" )
   ]
 , [ ( NormalTok , "  (" )
@@ -51,7 +51,7 @@
   , ( NormalTok , "))" )
   ]
 , [ ( NormalTok , "(" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " BLOCKS " )
   , ( NormalTok , "(map " )
   , ( KeywordTok , "string->list" )
@@ -59,12 +59,12 @@
   ]
 , []
 , [ ( NormalTok , "(" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
   , ( NormalTok , "(can-make-word? w)" )
   ]
 , [ ( NormalTok , "  (" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
   , ( NormalTok , "(usable-block blocks word-char)" )
   ]
@@ -76,7 +76,7 @@
   ]
 , [ ( NormalTok , "  " ) ]
 , [ ( NormalTok , "  (" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
   , ( NormalTok , "(inner word-chars blocks tried-blocks)" )
   ]
@@ -91,7 +91,7 @@
   , ( KeywordTok , "car" )
   , ( NormalTok , " word-chars))" )
   ]
-, [ ( NormalTok , "       " ) , ( KeywordTok , "=>" ) ]
+, [ ( NormalTok , "       " ) , ( OperatorTok , "=>" ) ]
 , [ ( NormalTok , "       (" )
   , ( KeywordTok , "lambda" )
   , ( NormalTok , " (b)" )
@@ -121,7 +121,7 @@
   ]
 , []
 , [ ( NormalTok , "(" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " WORD-LIST " )
   , ( NormalTok , "'(" )
   , ( StringTok , "\"\"" )
@@ -142,7 +142,7 @@
   , ( NormalTok , "))" )
   ]
 , [ ( NormalTok , "(" )
-  , ( KeywordTok , "define" )
+  , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
   , ( NormalTok , "(report-word w)" )
   ]
diff --git a/test/expected/archive.rhtml.native b/test/expected/archive.rhtml.native
--- a/test/expected/archive.rhtml.native
+++ b/test/expected/archive.rhtml.native
@@ -5,29 +5,29 @@
 , []
 , []
 , [ ( KeywordTok , "<%" )
-  , ( NormalTok , " form_for " )
+  , ( ExtensionTok , " form_for " )
   , ( StringTok , ":to_date" )
-  , ( NormalTok , ", " )
+  , ( ExtensionTok , ", " )
   , ( OtherTok , "@to_date" )
-  , ( NormalTok , ", " )
+  , ( ExtensionTok , ", " )
   , ( StringTok , ":url" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "=>" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "{" )
   , ( StringTok , ":action" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "=>" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( StringTok , "'archive'" )
   , ( CharTok , "}" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "do" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "|" )
-  , ( NormalTok , "f" )
+  , ( ExtensionTok , "f" )
   , ( CharTok , "|" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "%>" )
   ]
 , [ ( NormalTok , "  " )
@@ -40,15 +40,17 @@
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "<%=" )
-  , ( NormalTok , " select_date " )
+  , ( ExtensionTok , " " )
+  , ( NormalTok , "select_date" )
+  , ( ExtensionTok , " " )
   , ( OtherTok , "@from_date" )
-  , ( NormalTok , ", " )
+  , ( ExtensionTok , ", " )
   , ( StringTok , ":prefix" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "=>" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( StringTok , "'from'" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "%>" )
   ]
 , [ ( NormalTok , "  " )
@@ -61,21 +63,23 @@
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "<%=" )
-  , ( NormalTok , " select_date " )
+  , ( ExtensionTok , " " )
+  , ( NormalTok , "select_date" )
+  , ( ExtensionTok , " " )
   , ( OtherTok , "@to_date" )
-  , ( NormalTok , ", " )
+  , ( ExtensionTok , ", " )
   , ( StringTok , ":prefix" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "=>" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( StringTok , "'to'" )
-  , ( NormalTok , ", " )
+  , ( ExtensionTok , ", " )
   , ( StringTok , ":start_year" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "=>" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( DecValTok , "2000" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "%></p>" )
   ]
 , [ ( NormalTok , "  " )
@@ -88,46 +92,54 @@
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "<%=" )
-  , ( NormalTok , " select_tag " )
+  , ( ExtensionTok , " " )
+  , ( NormalTok , "select_tag" )
+  , ( ExtensionTok , " " )
   , ( StringTok , "\"series\"" )
-  , ( NormalTok , ", options_for_select(series_list(" )
+  , ( ExtensionTok , ", " )
+  , ( NormalTok , "options_for_select" )
+  , ( ExtensionTok , "(series_list(" )
   , ( StringTok , "'All'" )
-  , ( NormalTok , "), " )
+  , ( ExtensionTok , "), " )
   , ( OtherTok , "@series" )
-  , ( NormalTok , ") " )
+  , ( ExtensionTok , ") " )
   , ( KeywordTok , "%>" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "<%=" )
-  , ( NormalTok , " f.submit " )
+  , ( ExtensionTok , " f" )
+  , ( NormalTok , ".submit" )
+  , ( ExtensionTok , " " )
   , ( StringTok , "'Show events'" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "%>" )
   ]
 , [ ( NormalTok , "  " ) , ( KeywordTok , "</p>" ) ]
 , [ ( KeywordTok , "<%" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "end" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "%>" )
   ]
 , []
 , [ ( KeywordTok , "<ul>" ) ]
 , [ ( KeywordTok , "<%" ) ]
 , [ ( KeywordTok , "if" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( OtherTok , "@events" )
   ]
 , [ ( KeywordTok , "%>" ) ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "<%=" )
-  , ( NormalTok , " render " )
+  , ( ExtensionTok , " " )
+  , ( NormalTok , "render" )
+  , ( ExtensionTok , " " )
   , ( StringTok , ":partial" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( CharTok , "=>" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( StringTok , "'events'" )
-  , ( NormalTok , " " )
+  , ( ExtensionTok , " " )
   , ( KeywordTok , "%>" )
   ]
 , [ ( KeywordTok , "<%" ) ]
diff --git a/test/expected/life.lua.native b/test/expected/life.lua.native
--- a/test/expected/life.lua.native
+++ b/test/expected/life.lua.native
@@ -1,959 +1,988 @@
-[ [ ( DocumentationTok , "-- life.lua" ) ]
-, [ ( DocumentationTok , "-- original by Dave Bollinger " )
-  , ( KeywordTok , "<DBollinger" )
-  , ( OtherTok , "@compuserve.com" )
-  , ( KeywordTok , ">" )
-  , ( DocumentationTok , " posted to lua-l" )
+[ [ ( CommentTok , "-- life.lua" ) ]
+, [ ( CommentTok , "-- original by Dave Bollinger " )
+  , ( KeywordTok , "<DBollinger@compuserve.com>" )
+  , ( CommentTok , " posted to lua-l" )
   ]
-, [ ( DocumentationTok
+, [ ( CommentTok
     , "-- modified to use ANSI terminal escape sequences"
     )
   ]
-, [ ( DocumentationTok
-    , "-- modified to use for instead of while"
-    )
-  ]
+, [ ( CommentTok , "-- modified to use for instead of while" ) ]
 , []
 , [ ( KeywordTok , "local" )
   , ( NormalTok , " " )
   , ( FunctionTok , "write" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( FunctionTok , "io.write" )
   ]
 , []
-, [ ( NormalTok , "ALIVE" )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "ALIVE" )
+  , ( OperatorTok , "=" )
   , ( StringTok , "\"\165\"" )
-  , ( NormalTok , "\tDEAD" )
-  , ( OtherTok , "=" )
+  , ( NormalTok , "\t" )
+  , ( ConstantTok , "DEAD" )
+  , ( OperatorTok , "=" )
   , ( StringTok , "\"\254\"" )
   ]
-, [ ( NormalTok , "ALIVE" )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "ALIVE" )
+  , ( OperatorTok , "=" )
   , ( StringTok , "\"O\"" )
-  , ( NormalTok , "\tDEAD" )
-  , ( OtherTok , "=" )
+  , ( NormalTok , "\t" )
+  , ( ConstantTok , "DEAD" )
+  , ( OperatorTok , "=" )
   , ( StringTok , "\"-\"" )
   ]
 , []
 , [ ( KeywordTok , "function" )
   , ( NormalTok , " delay" )
-  , ( OtherTok , "()" )
+  , ( OperatorTok , "()" )
   , ( NormalTok , " " )
-  , ( DocumentationTok , "-- " )
+  , ( CommentTok , "-- " )
   , ( AlertTok , "NOTE" )
-  , ( DocumentationTok , ": SYSTEM-DEPENDENT, adjust as necessary" )
+  , ( CommentTok , ": SYSTEM-DEPENDENT, adjust as necessary" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " i" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "10000" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "end" )
+  , ( ControlFlowTok , "end" )
   ]
 , [ ( NormalTok , "  " )
-  , ( DocumentationTok , "-- local i=os.clock()+1 while(os.clock()" )
+  , ( CommentTok , "-- local i=os.clock()+1 while(os.clock()" )
   , ( KeywordTok , "<i" )
   , ( OtherTok , ") do end" )
   ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
 , [ ( KeywordTok , "function" )
   , ( NormalTok , " ARRAY2D" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " t " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{" )
+  , ( OperatorTok , "{" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "h" )
-  , ( OtherTok , "}" )
+  , ( OperatorTok , "}" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " y" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "    t" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{}" )
+  , ( OperatorTok , "{}" )
   ]
 , [ ( NormalTok , "    " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " x" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "w " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "      t" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "]=" )
+  , ( OperatorTok , "]=" )
   , ( DecValTok , "0" )
   ]
-, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
-, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "    " ) , ( ControlFlowTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( ControlFlowTok , "end" ) ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "return" )
+  , ( ControlFlowTok , "return" )
   , ( NormalTok , " t" )
   ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
-, [ ( NormalTok , "_CELLS " )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "_CELLS" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{}" )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "{}" )
   ]
 , []
-, [ ( DocumentationTok
+, [ ( CommentTok
     , "-- give birth to a \"shape\" within the cell array"
     )
   ]
 , [ ( KeywordTok , "function" )
-  , ( NormalTok , " _CELLS:spawn" )
-  , ( OtherTok , "(" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "_CELLS" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "spawn" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "shape" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "left" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "top" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " y" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "shape" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "h" )
-  , ( OtherTok , "-" )
+  , ( OperatorTok , "-" )
   , ( DecValTok , "1" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "    " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " x" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "shape" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "w" )
-  , ( OtherTok , "-" )
+  , ( OperatorTok , "-" )
   , ( DecValTok , "1" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "      self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "top" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "left" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " shape" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "*" )
+  , ( OperatorTok , "*" )
   , ( NormalTok , "shape" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "w" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   ]
-, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
-, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "    " ) , ( ControlFlowTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( ControlFlowTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
-, [ ( DocumentationTok
+, [ ( CommentTok
     , "-- run the CA and produce the next generation"
     )
   ]
 , [ ( KeywordTok , "function" )
-  , ( NormalTok , " _CELLS:evolve" )
-  , ( OtherTok , "(" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "_CELLS" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "evolve" )
+  , ( OperatorTok , "(" )
   , ( FunctionTok , "next" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " ym1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "y" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yi" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "h" )
-  , ( OtherTok , "-" )
+  , ( OperatorTok , "-" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "h" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "h" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "while" )
+  , ( ControlFlowTok , "while" )
   , ( NormalTok , " yi " )
-  , ( OtherTok , ">" )
+  , ( OperatorTok , ">" )
   , ( NormalTok , " " )
   , ( DecValTok , "0" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "    " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " xm1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "x" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xi" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "w" )
-  , ( OtherTok , "-" )
+  , ( OperatorTok , "-" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "w" )
   ]
 , [ ( NormalTok , "    " )
-  , ( KeywordTok , "while" )
+  , ( ControlFlowTok , "while" )
   , ( NormalTok , " xi " )
-  , ( OtherTok , ">" )
+  , ( OperatorTok , ">" )
   , ( NormalTok , " " )
   , ( DecValTok , "0" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "      " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " sum " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "ym1" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "xm1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "ym1" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "ym1" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   ]
 , [ ( NormalTok , "                  self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "xm1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   ]
 , [ ( NormalTok , "                  self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "xm1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   ]
 , [ ( NormalTok , "      " )
   , ( FunctionTok , "next" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "]" )
+  , ( OperatorTok , "]" )
   , ( NormalTok , " " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
-  , ( OtherTok , "((" )
+  , ( OperatorTok , "((" )
   , ( NormalTok , "sum" )
-  , ( OtherTok , "==" )
+  , ( OperatorTok , "==" )
   , ( DecValTok , "2" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   , ( NormalTok , " " )
   , ( KeywordTok , "and" )
   , ( NormalTok , " self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "])" )
+  , ( OperatorTok , "])" )
   , ( NormalTok , " " )
   , ( KeywordTok , "or" )
   , ( NormalTok , " " )
-  , ( OtherTok , "((" )
+  , ( OperatorTok , "((" )
   , ( NormalTok , "sum" )
-  , ( OtherTok , "==" )
+  , ( OperatorTok , "==" )
   , ( DecValTok , "3" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   , ( NormalTok , " " )
   , ( KeywordTok , "and" )
   , ( NormalTok , " " )
   , ( DecValTok , "1" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   , ( NormalTok , " " )
   , ( KeywordTok , "or" )
   , ( NormalTok , " " )
   , ( DecValTok , "0" )
   ]
 , [ ( NormalTok , "      xm1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "x" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xi " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " x" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xp1" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "xi" )
-  , ( OtherTok , "-" )
+  , ( OperatorTok , "-" )
   , ( DecValTok , "1" )
   ]
-, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "    " ) , ( ControlFlowTok , "end" ) ]
 , [ ( NormalTok , "    ym1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "y" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yi " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " y" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yp1" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "yi" )
-  , ( OtherTok , "-" )
+  , ( OperatorTok , "-" )
   , ( DecValTok , "1" )
   ]
-, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( ControlFlowTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
-, [ ( DocumentationTok , "-- output the array to screen" ) ]
+, [ ( CommentTok , "-- output the array to screen" ) ]
 , [ ( KeywordTok , "function" )
-  , ( NormalTok , " _CELLS:draw" )
-  , ( OtherTok , "()" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "_CELLS" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "draw" )
+  , ( OperatorTok , "()" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " out" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( StringTok , "\"\"" )
   , ( NormalTok , " " )
-  , ( DocumentationTok , "-- accumulate to reduce flicker" )
+  , ( CommentTok , "-- accumulate to reduce flicker" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " y" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "h " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "   " )
-  , ( KeywordTok , "for" )
+  , ( ControlFlowTok , "for" )
   , ( NormalTok , " x" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "self" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "w " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
 , [ ( NormalTok , "      out" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "out" )
-  , ( OtherTok , "..(((" )
+  , ( OperatorTok , "..(((" )
   , ( NormalTok , "self" )
-  , ( OtherTok , "[" )
+  , ( OperatorTok , "[" )
   , ( NormalTok , "y" )
-  , ( OtherTok , "][" )
+  , ( OperatorTok , "][" )
   , ( NormalTok , "x" )
-  , ( OtherTok , "]>" )
+  , ( OperatorTok , "]>" )
   , ( DecValTok , "0" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   , ( NormalTok , " " )
   , ( KeywordTok , "and" )
-  , ( NormalTok , " ALIVE" )
-  , ( OtherTok , ")" )
   , ( NormalTok , " " )
+  , ( ConstantTok , "ALIVE" )
+  , ( OperatorTok , ")" )
+  , ( NormalTok , " " )
   , ( KeywordTok , "or" )
-  , ( NormalTok , " DEAD" )
-  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "DEAD" )
+  , ( OperatorTok , ")" )
   ]
-, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "    " ) , ( ControlFlowTok , "end" ) ]
 , [ ( NormalTok , "    out" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "out" )
-  , ( OtherTok , ".." )
+  , ( OperatorTok , ".." )
   , ( StringTok , "\"" )
-  , ( OtherTok , "\\n" )
+  , ( SpecialCharTok , "\\n" )
   , ( StringTok , "\"" )
   ]
-, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( ControlFlowTok , "end" ) ]
 , [ ( NormalTok , "  " )
   , ( FunctionTok , "write" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "out" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
-, [ ( DocumentationTok , "-- constructor" ) ]
+, [ ( CommentTok , "-- constructor" ) ]
 , [ ( KeywordTok , "function" )
   , ( NormalTok , " CELLS" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " c " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " ARRAY2D" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  c" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "spawn " )
-  , ( OtherTok , "=" )
-  , ( NormalTok , " _CELLS" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "_CELLS" )
+  , ( OperatorTok , "." )
   , ( NormalTok , "spawn" )
   ]
 , [ ( NormalTok , "  c" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "evolve " )
-  , ( OtherTok , "=" )
-  , ( NormalTok , " _CELLS" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "_CELLS" )
+  , ( OperatorTok , "." )
   , ( NormalTok , "evolve" )
   ]
 , [ ( NormalTok , "  c" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "." )
   , ( NormalTok , "draw " )
-  , ( OtherTok , "=" )
-  , ( NormalTok , " _CELLS" )
-  , ( OtherTok , "." )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , "_CELLS" )
+  , ( OperatorTok , "." )
   , ( NormalTok , "draw" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "return" )
+  , ( ControlFlowTok , "return" )
   , ( NormalTok , " c" )
   ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
-, [ ( DocumentationTok , "--" ) ]
-, [ ( DocumentationTok
+, [ ( CommentTok , "--" ) ]
+, [ ( CommentTok
     , "-- shapes suitable for use with spawn() above"
     )
   ]
-, [ ( DocumentationTok , "--" ) ]
-, [ ( NormalTok , "HEART " )
-  , ( OtherTok , "=" )
+, [ ( CommentTok , "--" ) ]
+, [ ( ConstantTok , "HEART" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
+  , ( OperatorTok , "{" )
+  , ( NormalTok , " " )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , ";" )
+  , ( OperatorTok , ";" )
   , ( NormalTok , " w" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "3" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "3" )
   , ( NormalTok , " " )
-  , ( OtherTok , "}" )
+  , ( OperatorTok , "}" )
   ]
-, [ ( NormalTok , "GLIDER " )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "GLIDER" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
+  , ( OperatorTok , "{" )
+  , ( NormalTok , " " )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , ";" )
+  , ( OperatorTok , ";" )
   , ( NormalTok , " w" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "3" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "3" )
   , ( NormalTok , " " )
-  , ( OtherTok , "}" )
+  , ( OperatorTok , "}" )
   ]
-, [ ( NormalTok , "EXPLODE " )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "EXPLODE" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
+  , ( OperatorTok , "{" )
+  , ( NormalTok , " " )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , ";" )
+  , ( OperatorTok , ";" )
   , ( NormalTok , " w" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "3" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "4" )
   , ( NormalTok , " " )
-  , ( OtherTok , "}" )
+  , ( OperatorTok , "}" )
   ]
-, [ ( NormalTok , "FISH " )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "FISH" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
+  , ( OperatorTok , "{" )
+  , ( NormalTok , " " )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , ";" )
+  , ( OperatorTok , ";" )
   , ( NormalTok , " w" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "5" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "4" )
   , ( NormalTok , " " )
-  , ( OtherTok , "}" )
+  , ( OperatorTok , "}" )
   ]
-, [ ( NormalTok , "BUTTERFLY " )
-  , ( OtherTok , "=" )
+, [ ( ConstantTok , "BUTTERFLY" )
   , ( NormalTok , " " )
-  , ( OtherTok , "{" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " " )
+  , ( OperatorTok , "{" )
+  , ( NormalTok , " " )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "0" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "1" )
-  , ( OtherTok , ";" )
+  , ( OperatorTok , ";" )
   , ( NormalTok , " w" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "5" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "5" )
   , ( NormalTok , " " )
-  , ( OtherTok , "}" )
+  , ( OperatorTok , "}" )
   ]
 , []
-, [ ( DocumentationTok , "-- the main routine" ) ]
+, [ ( CommentTok , "-- the main routine" ) ]
 , [ ( KeywordTok , "function" )
   , ( NormalTok , " LIFE" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  " )
-  , ( DocumentationTok , "-- create two arrays" )
+  , ( CommentTok , "-- create two arrays" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " thisgen " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " CELLS" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " nextgen " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " CELLS" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "w" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "h" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , []
-, [ ( NormalTok , "  " )
-  , ( DocumentationTok , "-- create some life" )
-  ]
+, [ ( NormalTok , "  " ) , ( CommentTok , "-- create some life" ) ]
 , [ ( NormalTok , "  " )
-  , ( DocumentationTok
+  , ( CommentTok
     , "-- about 1000 generations of fun, then a glider steady-state"
     )
   ]
-, [ ( NormalTok , "  thisgen:spawn" )
-  , ( OtherTok , "(" )
-  , ( NormalTok , "GLIDER" )
-  , ( OtherTok , "," )
+, [ ( NormalTok , "  thisgen" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "spawn" )
+  , ( OperatorTok , "(" )
+  , ( ConstantTok , "GLIDER" )
+  , ( OperatorTok , "," )
   , ( DecValTok , "5" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "4" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
-, [ ( NormalTok , "  thisgen:spawn" )
-  , ( OtherTok , "(" )
-  , ( NormalTok , "EXPLODE" )
-  , ( OtherTok , "," )
+, [ ( NormalTok , "  thisgen" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "spawn" )
+  , ( OperatorTok , "(" )
+  , ( ConstantTok , "EXPLODE" )
+  , ( OperatorTok , "," )
   , ( DecValTok , "25" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "10" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
-, [ ( NormalTok , "  thisgen:spawn" )
-  , ( OtherTok , "(" )
-  , ( NormalTok , "FISH" )
-  , ( OtherTok , "," )
+, [ ( NormalTok , "  thisgen" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "spawn" )
+  , ( OperatorTok , "(" )
+  , ( ConstantTok , "FISH" )
+  , ( OperatorTok , "," )
   , ( DecValTok , "4" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "12" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , []
-, [ ( NormalTok , "  " )
-  , ( DocumentationTok , "-- run until break" )
-  ]
+, [ ( NormalTok , "  " ) , ( CommentTok , "-- run until break" ) ]
 , [ ( NormalTok , "  " )
   , ( KeywordTok , "local" )
   , ( NormalTok , " gen" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( DecValTok , "1" )
   ]
 , [ ( NormalTok , "  " )
   , ( FunctionTok , "write" )
-  , ( OtherTok , "(" )
-  , ( StringTok , "\"\\027[2J\"" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , "(" )
+  , ( StringTok , "\"" )
+  , ( SpecialCharTok , "\\027" )
+  , ( StringTok , "[2J\"" )
+  , ( OperatorTok , ")" )
   , ( NormalTok , "\t" )
-  , ( DocumentationTok , "-- ANSI clear screen" )
+  , ( CommentTok , "-- ANSI clear screen" )
   ]
 , [ ( NormalTok , "  " )
-  , ( KeywordTok , "while" )
+  , ( ControlFlowTok , "while" )
   , ( NormalTok , " " )
   , ( DecValTok , "1" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "do" )
+  , ( ControlFlowTok , "do" )
   ]
-, [ ( NormalTok , "    thisgen:evolve" )
-  , ( OtherTok , "(" )
+, [ ( NormalTok , "    thisgen" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "evolve" )
+  , ( OperatorTok , "(" )
   , ( NormalTok , "nextgen" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "    thisgen" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "nextgen " )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , " nextgen" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "thisgen" )
   ]
 , [ ( NormalTok , "    " )
   , ( FunctionTok , "write" )
-  , ( OtherTok , "(" )
-  , ( StringTok , "\"\\027[H\"" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , "(" )
+  , ( StringTok , "\"" )
+  , ( SpecialCharTok , "\\027" )
+  , ( StringTok , "[H\"" )
+  , ( OperatorTok , ")" )
   , ( NormalTok , "\t" )
-  , ( DocumentationTok , "-- ANSI home cursor" )
+  , ( CommentTok , "-- ANSI home cursor" )
   ]
-, [ ( NormalTok , "    thisgen:draw" ) , ( OtherTok , "()" ) ]
+, [ ( NormalTok , "    thisgen" )
+  , ( OperatorTok , ":" )
+  , ( NormalTok , "draw" )
+  , ( OperatorTok , "()" )
+  ]
 , [ ( NormalTok , "    " )
   , ( FunctionTok , "write" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( StringTok , "\"Life - generation \"" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( NormalTok , "gen" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( StringTok , "\"" )
-  , ( OtherTok , "\\n" )
+  , ( SpecialCharTok , "\\n" )
   , ( StringTok , "\"" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 , [ ( NormalTok , "    gen" )
-  , ( OtherTok , "=" )
+  , ( OperatorTok , "=" )
   , ( NormalTok , "gen" )
-  , ( OtherTok , "+" )
+  , ( OperatorTok , "+" )
   , ( DecValTok , "1" )
   ]
 , [ ( NormalTok , "    " )
-  , ( KeywordTok , "if" )
+  , ( ControlFlowTok , "if" )
   , ( NormalTok , " gen" )
-  , ( OtherTok , ">" )
+  , ( OperatorTok , ">" )
   , ( DecValTok , "2000" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "then" )
+  , ( ControlFlowTok , "then" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "break" )
+  , ( ControlFlowTok , "break" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "end" )
+  , ( ControlFlowTok , "end" )
   ]
 , [ ( NormalTok , "    " )
-  , ( DocumentationTok , "--delay()\t\t-- no delay" )
+  , ( CommentTok , "--delay()\t\t-- no delay" )
   ]
-, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
-, [ ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( ControlFlowTok , "end" ) ]
+, [ ( ControlFlowTok , "end" ) ]
 , []
 , [ ( NormalTok , "LIFE" )
-  , ( OtherTok , "(" )
+  , ( OperatorTok , "(" )
   , ( DecValTok , "40" )
-  , ( OtherTok , "," )
+  , ( OperatorTok , "," )
   , ( DecValTok , "20" )
-  , ( OtherTok , ")" )
+  , ( OperatorTok , ")" )
   ]
 ]
diff --git a/test/test-skylighting.hs b/test/test-skylighting.hs
--- a/test/test-skylighting.hs
+++ b/test/test-skylighting.hs
@@ -24,7 +24,6 @@
 import Text.Show.Pretty
 
 import Skylighting.Core
-import Skylighting.Loader
 
 tokToText :: Token -> Text
 tokToText (_, s) = s
diff --git a/xml/abc.xml b/xml/abc.xml
--- a/xml/abc.xml
+++ b/xml/abc.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE language SYSTEM "language.dtd">
 <!-- Andrea Primiani - primiani at dag dot it
  	version1.10 - 12 december 2005 -->
-<language name="ABC" version="3" kateversion="2.4" section="Other" extensions="*.abc;*.ABC" mimetype="text/vnd.abc" casesensitive="1" author="Andrea Primiani (primiani@dag.it)" license="LGPL">
+<language name="ABC" version="5" kateversion="2.4" section="Other" extensions="*.abc;*.ABC" mimetype="text/vnd.abc" casesensitive="1" author="Andrea Primiani (primiani@dag.it)" license="LGPL">
     <highlighting>
         <contexts>
            <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
@@ -38,7 +38,6 @@
 <!-- returns to Normal context at the end of line -->	   
 	   <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop" />
 	   <context name="Lyrics" attribute="Lyrics" lineEndContext="#pop" />
-	   <context name="Part" attribute="Header" lineEndContext="#pop" />
 	   <context name="Comment" attribute="Comment" lineEndContext="#pop" />
 <!-- returns to Normal context after the end of bar symbols or at EOL -->
 	   <context name="Bar" attribute="Bar" lineEndContext="#pop" >
@@ -66,7 +65,6 @@
        </contexts>
         <itemDatas>
           <itemData name="Normal Text" defStyleNum="dsNormal"/>
-          <itemData name="Notes" defStyleNum="dsKeyword" bold="true"/>
 	  <itemData name="Comment" defStyleNum="dsComment"/>
 	  <itemData name="Decoration" defStyleNum="dsFloat" color="#00bbaa" />
 	  <itemData name="String" defStyleNum="dsString" bold="true"/>
diff --git a/xml/ada.xml b/xml/ada.xml
--- a/xml/ada.xml
+++ b/xml/ada.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
 <language name="Ada"
-          version="2"
+          version="3"
           kateversion="5.0"
           section="Sources"
           extensions="*.adb;*.ads;*.ada;*.a"
@@ -183,7 +183,6 @@
       <itemData name="Pragmas"     defStyleNum="dsExtension" bold="1" />
       <itemData name="Data Type"   defStyleNum="dsDataType"/>
       <itemData name="Decimal"     defStyleNum="dsDecVal" />
-      <itemData name="Base-N"      defStyleNum="dsBaseN" />
       <itemData name="Float"       defStyleNum="dsFloat" />
       <itemData name="Char"        defStyleNum="dsChar" />
       <itemData name="String"      defStyleNum="dsString" />
diff --git a/xml/agda.xml b/xml/agda.xml
--- a/xml/agda.xml
+++ b/xml/agda.xml
@@ -3,7 +3,7 @@
   <!ENTITY charsdelim "_;.&#34;(){}@">
   <!ENTITY wordsep "(?=([&charsdelim;]|\s|$))">
 ]>
-<language name="Agda" version="2" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">
+<language name="Agda" version="5" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">
   <highlighting>
     <list name="reserved keywords">
       <item>abstract</item>
@@ -72,11 +72,11 @@
         <Detect2Chars attribute="Hole" context="#pop" char="!" char1="}" />
       </context>
       <context attribute="Char" lineEndContext="#pop" name="char">
-        <Detect2Chars attribute="Char" context="#stay" char="\\" char1="'" />
+        <Detect2Chars attribute="Char" context="#stay" char="\" char1="'" />
         <DetectChar   attribute="Char" context="#pop"  char="'" />
       </context>
       <context attribute="String" lineEndContext="#stay" name="string">
-        <Detect2Chars attribute="String" context="#stay" char="\\" char1="&quot;" />
+        <Detect2Chars attribute="String" context="#stay" char="\" char1="&quot;" />
         <DetectChar   attribute="String" context="#pop"  char="&quot;" />
       </context>
     </contexts>
diff --git a/xml/asp.xml b/xml/asp.xml
--- a/xml/asp.xml
+++ b/xml/asp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE  language SYSTEM "language.dtd">
-<language name="ASP" version="2" kateversion="5.0" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL">
+<language name="ASP" version="4" kateversion="5.0" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL">
     <highlighting>
         <list name="control structures">
             <item>select</item>
@@ -245,14 +245,12 @@
                 <DetectChar attribute="String" context="doublequotestring" char="&quot;" />
                 <DetectChar attribute="String" context="singlequotestring" char="&#39;" />
                 <DetectChar attribute="Keyword" context="#stay" char="&amp;" />
-                <RegExpr attribute="String" context="" String="" />
                 <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" />
                 <HlCOct attribute="Octal" context="#stay" />
                 <HlCHex attribute="Hex" context="#stay" />
                 <Float attribute="Float" context="#stay" />
                 <Int attribute="Decimal" context="#stay" />
                 <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
-                <keyword attribute="Other" context="#stay" String="Others" />
 
                 <RegExpr attribute="Control Structures" context="#stay" String="\belseif\b" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
                 <RegExpr attribute="Control Structures" context="#stay" String="\belse\b" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
@@ -351,7 +349,6 @@
                 <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />
                 <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />
                 <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
-                <keyword attribute="Other" context="#stay" String="Others" />
             </context>
             <context name="scripts_onelinecomment" attribute="Comment" lineEndContext="#pop">
                 <RegExpr attribute="HTML Tag" context="#pop#pop" String="&lt;\s*\/\s*script\s*&gt;" insensitive="true" />
@@ -372,7 +369,6 @@
             <itemData name="Float" defStyleNum="dsFloat" />
             <itemData name="String" defStyleNum="dsString" />
             <itemData name="Comment" defStyleNum="dsComment" />
-            <itemData name="Variable" defStyleNum="dsVariable" />
             <itemData name="Control Structures" defStyleNum="dsControlFlow" bold="0" />
             <itemData name="Escape Code" defStyleNum="dsKeyword" color="#0F0F8F" selColor="#ffffff" bold="1" italic="0" />
             <itemData name="Other" defStyleNum="dsOthers" />
diff --git a/xml/awk.xml b/xml/awk.xml
--- a/xml/awk.xml
+++ b/xml/awk.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="AWK" version="1" kateversion="5.0" section="Scripts"
+<language name="AWK" version="2" kateversion="5.0" section="Scripts"
   extensions="*.awk" mimetype="text/x-awk" indenter="cstyle"
   license="LGPL">
 <!-- patched by igli#kate@irc:chat.freenode.net -->
@@ -20,38 +20,63 @@
       <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>ARGV</item>
       <item>CONVFMT</item>
       <item>ENVIRON</item>
+      <item>ERRNO</item>
       <item>FILENAME</item>
       <item>FNR</item>
+      <item>FPAT</item>
       <item>FS</item>
+      <item>FUNCTAB</item>
+      <item>IGNORECASE</item>
       <item>NF</item>
       <item>NR</item>
       <item>OFMT</item>
       <item>OFS</item>
       <item>ORS</item>
+      <item>PROCINFO</item>
       <item>RS</item>
       <item>RSTART</item>
       <item>RLENGTH</item>
       <item>SUBSEP</item>
+      <item>SYMTAB</item>
     </list>
     <list name="functions">
+      <item>asort</item>
+      <item>asorti</item>
       <item>gsub</item>
       <item>gensub</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>
+      <item>xor</item>
       <item>atan2</item>
       <item>cos</item>
       <item>exp</item>
@@ -67,7 +92,9 @@
     </list>
     <list name="special">
       <item>BEGIN</item>
+      <item>BEGINFILE</item>
       <item>END</item>
+      <item>ENDFILE</item>
     </list>
 
 <contexts>
diff --git a/xml/bash.xml b/xml/bash.xml
--- a/xml/bash.xml
+++ b/xml/bash.xml
@@ -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="5" kateversion="5.0" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+<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">
 
 <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
     Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
@@ -540,7 +540,7 @@
         <RegExpr attribute="Variable" context="AssignSubscr" String="\b&varname;(?=\[.+\]\+?=)" />
         <!-- handle functions with function keyword before keywords -->
         <StringDetect attribute="Function" context="#stay" String=":()" />
-        <RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
+        <WordDetect attribute="Keyword" context="FunctionDef" String="function" />
         <!-- mark function definitions without function keyword -->
         <RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
         <!-- handle keywords -->
@@ -551,7 +551,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 -->
@@ -580,7 +580,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 -->
@@ -626,8 +626,8 @@
 
       <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
       <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
-        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="'" />
-        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;" />
+        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="'" />
+        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="&quot;" />
         <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
         <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
         <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
@@ -647,7 +647,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>
@@ -902,7 +902,7 @@
         <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />
         <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />
         <RegExpr attribute="Redirection" context="HereDocNQ"  String="(&lt;&lt;\s*(&word;))" lookAhead="true" />
-        <StringDetect attribute="Redirection" context="#pop"  String="&lt;&lt;" /><!-- always met -->
+        <Detect2Chars attribute="Redirection" context="#pop"  char="&lt;" char1="&lt;" /><!-- always met -->
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">
diff --git a/xml/boo.xml b/xml/boo.xml
--- a/xml/boo.xml
+++ b/xml/boo.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE language>
 <!-- Based on Python syntax highlighting v1.99 by Primoz Anzur, Paul Giannaros, Michael Bueker, Per Wigren -->
 <!-- Also based on boo.lang from gtksourceview -->
-<language name="Boo" version="2" kateversion="5.0" section="Sources" extensions="*.boo" mimetype="text/x-boo" casesensitive="1" author="Marc Dassonneville" license="LGPL">
+<language name="Boo" version="3" kateversion="5.0" section="Sources" extensions="*.boo" mimetype="text/x-boo" casesensitive="1" author="Marc Dassonneville" license="LGPL">
 	<highlighting>
 		<list name="namespace">
 			<item>import</item>
@@ -236,16 +236,6 @@
 
 			<context name="Comment SlashSlash" attribute="Comment" lineEndContext="#pop" >
 				<LineContinue attribute="Comment" context="#stay"/>
-			</context>
-
-			<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">
-				<HlCStringChar attribute="Comment" context="#stay"/>
-				<DetectChar attribute="Comment" char="'" context="#pop"/>
-			</context>
-
-			<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">
-				<HlCStringChar attribute="Comment" context="#stay"/>
-				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>
 			</context>
 
 			<context name="Single A-string" attribute="String" lineEndContext="#stay">
diff --git a/xml/c.xml b/xml/c.xml
--- a/xml/c.xml
+++ b/xml/c.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
 <language name="C" section="Sources"
-          version="3" kateversion="5.0"
+          version="4" kateversion="5.0"
           indenter="cstyle"
           extensions="*.c;*.C;*.h"
           mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
@@ -242,7 +242,6 @@
       <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
       <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/>
       <itemData name="Prep. Lib"    defStyleNum="dsImport" spellChecking="false"/>
-      <itemData name="Alert"        defStyleNum="dsAlert" spellChecking="false"/>
       <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
       <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
     </itemDatas>
diff --git a/xml/clojure.xml b/xml/clojure.xml
--- a/xml/clojure.xml
+++ b/xml/clojure.xml
@@ -22,7 +22,7 @@
  * Boston, MA  02110-1301, USA.                                       *
  **********************************************************************
  -->
-<language version="8" 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="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+">
   <highlighting>
     <list name="definitions">
       <item>def</item>
@@ -843,12 +843,10 @@
     <itemDatas>
       <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
       <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
       <itemData name="Modifier" defStyleNum="dsAttribute" spellChecking="false"/>
       <itemData name="Modifier2" defStyleNum="dsAttribute" spellChecking="false"/>
       <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
       <itemData name="Definition" defStyleNum="dsBuiltIn" spellChecking="false"/>
-      <itemData name="Data" defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
       <itemData name="BaseN" defStyleNum="dsBaseN" spellChecking="false"/>
       <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
diff --git a/xml/cmake.xml b/xml/cmake.xml
--- a/xml/cmake.xml
+++ b/xml/cmake.xml
@@ -1,1312 +1,3600 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<!--
-  This file is part of KDE's kate project.
-
-  Copyright 2004 Alexander Neundorf (neundorf@kde.org)
-  Copyright 2005 Dominik Haumann (dhdev@gmx.de)
-  Copyright 2007,2008,2013,2014 Matthew Woehlke (mw_triad@users.sourceforge.net)
-  Copyright 2013,2014,2015 Alex Turbov (i.zaufi@gmail.com)
-
- **********************************************************************
- * This library is free software; you can redistribute it and/or      *
- * modify it under the terms of the GNU Lesser General Public         *
- * License as published by the Free Software Foundation; either       *
- * version 2 of the License, or (at your option) any later version.   *
- *                                                                    *
- * This library is distributed in the hope that it will be useful,    *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
- * Lesser General Public License for more details.                    *
- *                                                                    *
- * You should have received a copy of the GNU Lesser General Public   *
- * License along with this library; if not, write to the              *
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
- * Boston, MA  02110-1301, USA.                                       *
- **********************************************************************
- -->
-<!-- generated for "cmake version 2.8.12.1, 3.0.2, 3.1.2 and 3.3.0" -->
-<language
-    name="CMake"
-    version="4"
-    kateversion="5.0"
-    section="Other"
-    extensions="CMakeLists.txt;*.cmake;*.cmake.in"
-    style="CMake"
-    mimetype="text/x-cmake"
-    author="Alexander Neundorf (neundorf@kde.org)"
-    license="LGPLv2+"
-  >
-  <highlighting>
-
-    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
-    <list name = "commands">
-      <!-- generated list -->
-      <item>add_compile_options</item>
-      <item>add_custom_command</item>
-      <item>add_custom_target</item>
-      <item>add_definitions</item>
-      <item>add_dependencies</item>
-      <item>add_executable</item>
-      <item>add_library</item>
-      <item>add_subdirectory</item>
-      <item>add_test</item>
-      <item>aux_source_directory</item>
-      <item>break</item>
-      <item>build_command</item>
-      <item>build_name</item>
-      <item>cmake_host_system_information</item>
-      <item>cmake_minimum_required</item>
-      <item>cmake_policy</item>
-      <item>configure_file</item>
-      <item>continue</item>
-      <item>create_test_sourcelist</item>
-      <item>ctest_build</item>
-      <item>ctest_configure</item>
-      <item>ctest_coverage</item>
-      <item>ctest_empty_binary_directory</item>
-      <item>ctest_memcheck</item>
-      <item>ctest_read_custom_files</item>
-      <item>ctest_run_script</item>
-      <item>ctest_sleep</item>
-      <item>ctest_start</item>
-      <item>ctest_submit</item>
-      <item>ctest_test</item>
-      <item>ctest_update</item>
-      <item>ctest_upload</item>
-      <item>define_property</item>
-      <item>else</item>
-      <item>elseif</item>
-      <item>enable_language</item>
-      <item>enable_testing</item>
-      <item>endforeach</item>
-      <item>endfunction</item>
-      <item>endif</item>
-      <item>endmacro</item>
-      <item>endwhile</item>
-      <item>exec_program</item>
-      <item>execute_process</item>
-      <item>export</item>
-      <item>export_library_dependencies</item>
-      <item>file</item>
-      <item>find_file</item>
-      <item>find_library</item>
-      <item>find_package</item>
-      <item>find_path</item>
-      <item>find_program</item>
-      <item>fltk_wrap_ui</item>
-      <item>foreach</item>
-      <item>function</item>
-      <item>get_cmake_property</item>
-      <item>get_directory_property</item>
-      <item>get_filename_component</item>
-      <item>get_property</item>
-      <item>get_source_file_property</item>
-      <item>get_target_property</item>
-      <item>get_test_property</item>
-      <item>if</item>
-      <item>include</item>
-      <item>include_directories</item>
-      <item>include_external_msproject</item>
-      <item>include_regular_expression</item>
-      <item>install</item>
-      <item>install_files</item>
-      <item>install_programs</item>
-      <item>install_targets</item>
-      <item>link_directories</item>
-      <item>link_libraries</item>
-      <item>list</item>
-      <item>load_cache</item>
-      <item>load_command</item>
-      <item>macro</item>
-      <item>make_directory</item>
-      <item>mark_as_advanced</item>
-      <item>math</item>
-      <item>message</item>
-      <item>option</item>
-      <item>output_required_files</item>
-      <item>project</item>
-      <item>qt_wrap_cpp</item>
-      <item>qt_wrap_ui</item>
-      <item>remove</item>
-      <item>remove_definitions</item>
-      <item>return</item>
-      <item>separate_arguments</item>
-      <item>set</item>
-      <item>set_directory_properties</item>
-      <item>set_property</item>
-      <item>set_source_files_properties</item>
-      <item>set_target_properties</item>
-      <item>set_tests_properties</item>
-      <item>site_name</item>
-      <item>source_group</item>
-      <item>string</item>
-      <item>subdir_depends</item>
-      <item>subdirs</item>
-      <item>target_compile_definitions</item>
-      <item>target_compile_features</item>
-      <item>target_compile_options</item>
-      <item>target_include_directories</item>
-      <item>target_link_libraries</item>
-      <item>target_sources</item>
-      <item>try_compile</item>
-      <item>try_run</item>
-      <item>unset</item>
-      <item>use_mangled_mesa</item>
-      <item>utility_source</item>
-      <item>variable_requires</item>
-      <item>variable_watch</item>
-      <item>while</item>
-      <item>write_file</item>
-    </list>
-
-    <list name="itkvtk_commands">
-      <item>itk_wrap_tcl</item>
-      <item>vtk_make_instantiator</item>
-      <item>vtk_wrap_java</item>
-      <item>vtk_wrap_python</item>
-      <item>vtk_wrap_tcl</item>
-    </list>
-
-    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
-    <list name="special_args">
-      <!-- generated list -->
-      <item>AFTER</item>
-      <item>ALIAS</item>
-      <item>ALL</item>
-      <item>ALPHABET</item>
-      <item>AND</item>
-      <item>APPEND</item>
-      <item>APPENDNUMBER_ERRORS</item>
-      <item>APPEND_STRING</item>
-      <item>ARCHIVE</item>
-      <item>ARGS</item>
-      <item>ASCII</item>
-      <item>AUTHOR_WARNING</item>
-      <item>BEFORE</item>
-      <item>BRIEF_DOCS</item>
-      <item>BUILD</item>
-      <item>BUNDLE</item>
-      <item>BYPRODUCTS</item>
-      <item>CACHE</item>
-      <item>CACHED_VARIABLE</item>
-      <item>CDASH_UPLOAD</item>
-      <item>CDASH_UPLOAD_TYPE</item>
-      <item>CLEAR</item>
-      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
-      <item>CMAKE_FLAGS</item>
-      <item>CODE</item>
-      <item>COMMAND</item>
-      <item>COMMAND_NAME</item>
-      <item>COMMENT</item>
-      <item>COMPARE</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COMPILE_OUTPUT_VARIABLE</item>
-      <item>COMPILE_RESULT_VAR</item>
-      <item>COMPONENT</item>
-      <item>COMPONENTS</item>
-      <item>CONCAT</item>
-      <item>CONDITION</item>
-      <item>CONFIG</item>
-      <item>CONFIGS</item>
-      <item>CONFIGURATION</item>
-      <item>CONFIGURATIONS</item>
-      <item>CONFIGURE</item>
-      <item>CONTENT</item>
-      <item>COPY</item>
-      <item>COPYONLY</item>
-      <item>COPY_FILE</item>
-      <item>COPY_FILE_ERROR</item>
-      <item>CRLF</item>
-      <item>DEFINED</item>
-      <item>DEFINITION</item>
-      <item>DEPENDS</item>
-      <item>DESTINATION</item>
-      <item>DIRECTORY</item>
-      <item>DIRECTORY_PERMISSIONS</item>
-      <item>DOC</item>
-      <item>DOS</item>
-      <item>DOWNLOAD</item>
-      <item>ENV</item>
-      <item>END</item>
-      <item>EQUAL</item>
-      <item>ERROR_FILE</item>
-      <item>ERROR_QUIET</item>
-      <item>ERROR_STRIP_TRAILING_WHITESPACE</item>
-      <item>ERROR_VARIABLE</item>
-      <item>ESCAPE_QUOTES</item>
-      <item>EXACT</item>
-      <item>EXCLUDE</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>EXCLUDE_LABEL</item>
-      <item>EXISTS</item>
-      <item>EXPECTED_HASH</item>
-      <item>EXPECTED_MD5</item>
-      <item>EXPORT</item>
-      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
-      <item>EXPR</item>
-      <item>EXTRA_INCLUDE</item>
-      <item>FATAL_ERROR</item>
-      <item>FILE</item>
-      <item>FILES</item>
-      <item>FILES_MATCHING</item>
-      <item>FILE_PERMISSIONS</item>
-      <item>FIND</item>
-      <item>FLAGS</item>
-      <item>FOLLOW_SYMLINKS</item>
-      <item>FORCE</item>
-      <item>FRAMEWORK</item>
-      <item>FULL_DOCS</item>
-      <item>FUNCTION</item>
-      <item>GENERATE</item>
-      <item>GENEX_STRIP</item>
-      <item>GET</item>
-      <item>GLOB</item>
-      <item>GLOBAL</item>
-      <item>GLOB_RECURSE</item>
-      <item>GREATER</item>
-      <item>GROUP_EXECUTE</item>
-      <item>GROUP_READ</item>
-      <item>GUARD</item>
-      <item>GUID</item>
-      <item>HEX</item>
-      <item>HINTS</item>
-      <item>IMPLICIT_DEPENDS</item>
-      <item>IMPORTED</item>
-      <item>IN</item>
-      <item>INACTIVITY_TIMEOUT</item>
-      <item>INCLUDE</item>
-      <item>INCLUDES</item>
-      <item>INCLUDE_INTERNALS</item>
-      <item>INCLUDE_LABEL</item>
-      <item>INHERITED</item>
-      <item>INPUT</item>
-      <item>INPUT_FILE</item>
-      <item>INSERT</item>
-      <item>INSTALL</item>
-      <item>INTERFACE</item>
-      <item>IS_ABSOLUTE</item>
-      <item>IS_DIRECTORY</item>
-      <item>IS_NEWER_THAN</item>
-      <item>IS_SYMLINK</item>
-      <item>ITEMS</item>
-      <item>LABELS</item>
-      <item>LANGUAGES</item>
-      <item>LENGTH</item>
-      <item>LENGTH_MAXIMUM</item>
-      <item>LENGTH_MINIMUM</item>
-      <item>LESS</item>
-      <item>LF</item>
-      <item>LIBRARY</item>
-      <item>LIMIT</item>
-      <item>LIMIT_COUNT</item>
-      <item>LIMIT_INPUT</item>
-      <item>LIMIT_OUTPUT</item>
-      <item>LINK_INTERFACE_LIBRARIES</item>
-      <item>LINK_LIBRARIES</item>
-      <item>LINK_PRIVATE</item>
-      <item>LINK_PUBLIC</item>
-      <item>LISTS</item>
-      <item>LIST_DIRECTORIES</item>
-      <item>LOCK</item>
-      <item>LOG</item>
-      <item>MACOSX_BUNDLE</item>
-      <item>MAIN_DEPENDENCY</item>
-      <item>MAKE_C_IDENTIFIER</item>
-      <item>MAKE_DIRECTORY</item>
-      <item>MATCH</item>
-      <item>MATCHALL</item>
-      <item>MATCHES</item>
-      <item>MD5</item>
-      <item>MESSAGE_NEVER</item>
-      <item>MODULE</item>
-      <item>NAME</item>
-      <item>NAMELINK_ONLY</item>
-      <item>NAMELINK_SKIP</item>
-      <item>NAMES</item>
-      <item>NAMESPACE</item>
-      <item>NAMES_PER_DIR</item>
-      <item>NEW</item>
-      <item>NEWLINE_CONSUME</item>
-      <item>NEWLINE_STYLE</item>
-      <item>NEW_PROCESS</item>
-      <item>NOT</item>
-      <item>NOTEQUAL</item>
-      <item>NO_CMAKE_BUILDS_PATH</item>
-      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
-      <item>NO_CMAKE_FIND_ROOT_PATH</item>
-      <item>NO_CMAKE_PACKAGE_REGISTRY</item>
-      <item>NO_CMAKE_PATH</item>
-      <item>NO_CMAKE_SYSTEM_PACKAGE_REGISTRY</item>
-      <item>NO_CMAKE_SYSTEM_PATH</item>
-      <item>NO_DEFAULT_PATH</item>
-      <item>NO_HEX_CONVERSION</item>
-      <item>NO_MODULE</item>
-      <item>NO_POLICY_SCOPE</item>
-      <item>NO_SOURCE_PERMISSIONS</item>
-      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>NUMBER_ERRORS</item>
-      <item>NUMBER_WARNINGS</item>
-      <item>OBJECT</item>
-      <item>OFF</item>
-      <item>OFFSET</item>
-      <item>OLD</item>
-      <item>ON</item>
-      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
-      <item>OPTIONAL</item>
-      <item>OPTIONAL_COMPONENTS</item>
-      <item>OPTIONS</item>
-      <item>OR</item>
-      <item>OUTPUT</item>
-      <item>OUTPUT_DIRECTORY</item>
-      <item>OUTPUT_FILE</item>
-      <item>OUTPUT_QUIET</item>
-      <item>OUTPUT_STRIP_TRAILING_WHITESPACE</item>
-      <item>OUTPUT_VARIABLE</item>
-      <item>OWNER_EXECUTE</item>
-      <item>OWNER_READ</item>
-      <item>OWNER_WRITE</item>
-      <item>PACKAGE</item>
-      <item>PARALLEL_LEVEL</item>
-      <item>PARENT_SCOPE</item>
-      <item>PARTS</item>
-      <item>PATHS</item>
-      <item>PATH_SUFFIXES</item>
-      <item>PATH_TO_MESA</item>
-      <item>PATTERN</item>
-      <item>PERMISSIONS</item>
-      <item>PLATFORM</item>
-      <item>POLICY</item>
-      <item>POP</item>
-      <item>POST_BUILD</item>
-      <item>PREORDER</item>
-      <item>PRE_BUILD</item>
-      <item>PRE_LINK</item>
-      <item>PRIVATE</item>
-      <item>PRIVATE_HEADER</item>
-      <item>PROCESS</item>
-      <item>PROGRAM</item>
-      <item>PROGRAMS</item>
-      <item>PROGRAM_ARGS</item>
-      <item>PROJECT_NAME</item>
-      <item>PROPERTIES</item>
-      <item>PROPERTY</item>
-      <item>PUBLIC</item>
-      <item>PUBLIC_HEADER</item>
-      <item>PUSH</item>
-      <item>QUERY</item>
-      <item>QUIET</item>
-      <item>RANDOM</item>
-      <item>RANDOM_SEED</item>
-      <item>RANGE</item>
-      <item>READ</item>
-      <item>READ_WITH_PREFIX</item>
-      <item>REGEX</item>
-      <item>REGULAR_EXPRESSION</item>
-      <item>RELATIVE</item>
-      <item>RELATIVE_PATH</item>
-      <item>RELEASE</item>
-      <item>REMOVE</item>
-      <item>REMOVE_AT</item>
-      <item>REMOVE_DUPLICATES</item>
-      <item>REMOVE_ITEM</item>
-      <item>REMOVE_RECURSE</item>
-      <item>RENAME</item>
-      <item>REPLACE</item>
-      <item>REQUIRED</item>
-      <item>REQUIRED_VARIABLE1</item>
-      <item>REQUIRED_VARIABLE2</item>
-      <item>RESOURCE</item>
-      <item>RESULT</item>
-      <item>RESULT_VAR</item>
-      <item>RESULT_VARIABLE</item>
-      <item>RETRY_COUNT</item>
-      <item>RETRY_DELAY</item>
-      <item>RETURN_VALUE</item>
-      <item>REVERSE</item>
-      <item>RUNTIME</item>
-      <item>RUNTIME_DIRECTORY</item>
-      <item>RUN_OUTPUT_VARIABLE</item>
-      <item>RUN_RESULT_VAR</item>
-      <item>SCHEDULE_RANDOM</item>
-      <item>SCRIPT</item>
-      <item>SEND_ERROR</item>
-      <item>SET</item>
-      <item>SHA1</item>
-      <item>SHA224</item>
-      <item>SHA256</item>
-      <item>SHA384</item>
-      <item>SHA512</item>
-      <item>SHARED</item>
-      <item>SHOW_PROGRESS</item>
-      <item>SORT</item>
-      <item>SOURCE</item>
-      <item>SOURCES</item>
-      <item>START</item>
-      <item>STATIC</item>
-      <item>STATUS</item>
-      <item>STREQUAL</item>
-      <item>STRGREATER</item>
-      <item>STOP_TIME</item>
-      <item>STRIDE</item>
-      <item>STRINGS</item>
-      <item>STRIP</item>
-      <item>STRLESS</item>
-      <item>SUBSTRING</item>
-      <item>SYSTEM</item>
-      <item>TARGET</item>
-      <item>TARGETS</item>
-      <item>TEST</item>
-      <item>TEST_VARIABLE</item>
-      <item>TIMEOUT</item>
-      <item>TIMESTAMP</item>
-      <item>TLS_CAINFO</item>
-      <item>TLS_VERIFY</item>
-      <item>TOLOWER</item>
-      <item>TOUPPER</item>
-      <item>TO_CMAKE_PATH</item>
-      <item>TO_NATIVE_PATH</item>
-      <item>TRACK</item>
-      <item>TYPE</item>
-      <item>UNIX</item>
-      <item>UNIX_COMMAND</item>
-      <item>UNKNOWN</item>
-      <item>UPLOAD</item>
-      <item>UPPER</item>
-      <item>USES_TERMINAL</item>
-      <item>USE_SOURCE_PERMISSIONS</item>
-      <item>UTC</item>
-      <item>UUID</item>
-      <item>VALUE</item>
-      <item>VARIABLE</item>
-      <item>VERBATIM</item>
-      <item>VERSION</item>
-      <item>VERSION_EQUAL</item>
-      <item>VERSION_GREATER</item>
-      <item>VERSION_LESS</item>
-      <item>WARNING</item>
-      <item>WIN32</item>
-      <item>WINDOWS_COMMAND</item>
-      <item>WORKING_DIRECTORY</item>
-      <item>WRITE</item>
-    </list>
-
-    <!-- these are "special" and don't show up in the generated lists -->
-    <list name="extra_special_args">
-      <!-- get_filename_component() has <COMP> placeholder for the following special args -->
-      <item>PATH</item>
-      <item>NAME</item>
-      <item>EXT</item>
-      <item>NAME_WE</item>
-      <item>ABSOLUTE</item>
-      <item>REALPATH</item>
-      <!-- set() has <type> placeholder for the following special args -->
-      <item>FILEPATH</item>
-      <!-- PATH already present above -->
-      <item>STRING</item>
-      <item>BOOL</item>
-      <item>INTERNAL</item>
-      <!-- key values to the QUERY parameter of cmake_host_system_information() -->
-      <item>NUMBER_OF_LOGICAL_CORES</item>
-      <item>NUMBER_OF_PHYSICAL_CORES</item>
-      <item>HOSTNAME</item>
-      <item>FQDN</item>
-      <item>TOTAL_VIRTUAL_MEMORY</item>
-      <item>AVAILABLE_VIRTUAL_MEMORY</item>
-      <item>TOTAL_PHYSICAL_MEMORY</item>
-      <item>AVAILABLE_PHYSICAL_MEMORY</item>
-      <!-- Since CMake 3.3 -->
-      <item>IN_LIST</item>
-    </list>
-
-    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
-    <list name="properties">
-      <!-- generated list -->
-      <item>ABSTRACT</item>
-      <item>ADDITIONAL_MAKE_CLEAN_FILES</item>
-      <item>ADVANCED</item>
-      <item>ALIASED_TARGET</item>
-      <item>ALLOW_DUPLICATE_CUSTOM_TARGETS</item>
-      <item>ANDROID_API</item>
-      <item>ANDROID_API_MIN</item>
-      <item>ANDROID_GUI</item>
-      <item>ARCHIVE_OUTPUT_DIRECTORY</item>
-      <item>ARCHIVE_OUTPUT_NAME</item>
-      <item>ATTACHED_FILES</item>
-      <item>ATTACHED_FILES_ON_FAIL</item>
-      <item>AUTOGEN_TARGETS_FOLDER</item>
-      <item>AUTOGEN_TARGET_DEPENDS</item>
-      <item>AUTOMOC</item>
-      <item>AUTOMOC_MOC_OPTIONS</item>
-      <item>AUTOMOC_TARGETS_FOLDER</item>
-      <item>AUTORCC</item>
-      <item>AUTORCC_OPTIONS</item>
-      <item>AUTOUIC</item>
-      <item>AUTOUIC_OPTIONS</item>
-      <item>BUILD_WITH_INSTALL_RPATH</item>
-      <item>BUNDLE</item>
-      <item>BUNDLE_EXTENSION</item>
-      <item>CACHE_VARIABLES</item>
-      <item>CLEAN_NO_CUSTOM</item>
-      <item>CMAKE_CONFIGURE_DEPENDS</item>
-      <item>CMAKE_CXX_KNOWN_FEATURES</item>
-      <item>CMAKE_C_KNOWN_FEATURES</item>
-      <item>COMPATIBLE_INTERFACE_BOOL</item>
-      <item>COMPATIBLE_INTERFACE_NUMBER_MAX</item>
-      <item>COMPATIBLE_INTERFACE_NUMBER_MIN</item>
-      <item>COMPATIBLE_INTERFACE_STRING</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COMPILE_FEATURES</item>
-      <item>COMPILE_FLAGS</item>
-      <item>COMPILE_OPTIONS</item>
-      <item>COMPILE_PDB_NAME</item>
-      <item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
-      <item>COST</item>
-      <item>CPACK_DESKTOP_SHORTCUTS</item>
-      <item>CPACK_NEVER_OVERWRITE</item>
-      <item>CPACK_PERMANENT</item>
-      <item>CPACK_STARTUP_SHORTCUTS</item>
-      <item>CPACK_START_MENU_SHORTCUTS</item>
-      <item>CPACK_WIX_ACL</item>
-      <item>CROSSCOMPILING_EMULATOR</item>
-      <item>CXX_EXTENSIONS</item>
-      <item>CXX_STANDARD</item>
-      <item>CXX_STANDARD_REQUIRED</item>
-      <item>C_EXTENSIONS</item>
-      <item>C_STANDARD</item>
-      <item>C_STANDARD_REQUIRED</item>
-      <item>DEBUG_CONFIGURATIONS</item>
-      <item>DEBUG_POSTFIX</item>
-      <item>DEFINE_SYMBOL</item>
-      <item>DEFINITIONS</item>
-      <item>DEPENDS</item>
-      <item>DISABLED_FEATURES</item>
-      <item>ECLIPSE_EXTRA_NATURES</item>
-      <item>ENABLED_FEATURES</item>
-      <item>ENABLED_LANGUAGES</item>
-      <item>ENABLE_EXPORTS</item>
-      <item>ENVIRONMENT</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>EXCLUDE_FROM_DEFAULT_BUILD</item>
-      <item>EXPORT_NAME</item>
-      <item>EXTERNAL_OBJECT</item>
-      <item>EchoString</item>
-      <item>FAIL_REGULAR_EXPRESSION</item>
-      <item>FIND_LIBRARY_USE_LIB64_PATHS</item>
-      <item>FIND_LIBRARY_USE_OPENBSD_VERSIONING</item>
-      <item>FOLDER</item>
-      <item>FRAMEWORK</item>
-      <item>Fortran_FORMAT</item>
-      <item>Fortran_MODULE_DIRECTORY</item>
-      <item>GENERATED</item>
-      <item>GENERATOR_FILE_NAME</item>
-      <item>GLOBAL_DEPENDS_DEBUG_MODE</item>
-      <item>GLOBAL_DEPENDS_NO_CYCLES</item>
-      <item>GNUtoMS</item>
-      <item>HAS_CXX</item>
-      <item>HEADER_FILE_ONLY</item>
-      <item>HELPSTRING</item>
-      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
-      <item>IMPORTED</item>
-      <item>IMPORTED_CONFIGURATIONS</item>
-      <item>IMPORTED_IMPLIB</item>
-      <item>IMPORTED_LINK_DEPENDENT_LIBRARIES</item>
-      <item>IMPORTED_LINK_INTERFACE_LANGUAGES</item>
-      <item>IMPORTED_LINK_INTERFACE_LIBRARIES</item>
-      <item>IMPORTED_LINK_INTERFACE_MULTIPLICITY</item>
-      <item>IMPORTED_LOCATION</item>
-      <item>IMPORTED_NO_SONAME</item>
-      <item>IMPORTED_SONAME</item>
-      <item>IMPORT_PREFIX</item>
-      <item>IMPORT_SUFFIX</item>
-      <item>INCLUDE_DIRECTORIES</item>
-      <item>INCLUDE_REGULAR_EXPRESSION</item>
-      <item>INSTALL_NAME_DIR</item>
-      <item>INSTALL_RPATH</item>
-      <item>INSTALL_RPATH_USE_LINK_PATH</item>
-      <item>INTERFACE_AUTOUIC_OPTIONS</item>
-      <item>INTERFACE_COMPILE_DEFINITIONS</item>
-      <item>INTERFACE_COMPILE_FEATURES</item>
-      <item>INTERFACE_COMPILE_OPTIONS</item>
-      <item>INTERFACE_INCLUDE_DIRECTORIES</item>
-      <item>INTERFACE_LINK_LIBRARIES</item>
-      <item>INTERFACE_POSITION_INDEPENDENT_CODE</item>
-      <item>INTERFACE_SOURCES</item>
-      <item>INTERFACE_SYSTEM_INCLUDE_DIRECTORIES</item>
-      <item>INTERPROCEDURAL_OPTIMIZATION</item>
-      <item>IN_TRY_COMPILE</item>
-      <item>JOB_POOLS</item>
-      <item>JOB_POOL_COMPILE</item>
-      <item>JOB_POOL_LINK</item>
-      <item>KEEP_EXTENSION</item>
-      <item>LABELS</item>
-      <item>LANGUAGE</item>
-      <item>LIBRARY_OUTPUT_DIRECTORY</item>
-      <item>LIBRARY_OUTPUT_NAME</item>
-      <item>LINKER_LANGUAGE</item>
-      <item>LINK_DEPENDS</item>
-      <item>LINK_DEPENDS_NO_SHARED</item>
-      <item>LINK_DIRECTORIES</item>
-      <item>LINK_FLAGS</item>
-      <item>LINK_INTERFACE_LIBRARIES</item>
-      <item>LINK_INTERFACE_MULTIPLICITY</item>
-      <item>LINK_LIBRARIES</item>
-      <item>LINK_SEARCH_END_STATIC</item>
-      <item>LINK_SEARCH_START_STATIC</item>
-      <item>LISTFILE_STACK</item>
-      <item>LOCATION</item>
-      <item>MACOSX_BUNDLE</item>
-      <item>MACOSX_BUNDLE_INFO_PLIST</item>
-      <item>MACOSX_FRAMEWORK_INFO_PLIST</item>
-      <item>MACOSX_PACKAGE_LOCATION</item>
-      <item>MACOSX_RPATH</item>
-      <item>MACROS</item>
-      <item>MEASUREMENT</item>
-      <item>MODIFIED</item>
-      <item>NAME</item>
-      <item>NO_SONAME</item>
-      <item>NO_SYSTEM_FROM_IMPORTED</item>
-      <item>OBJECT_DEPENDS</item>
-      <item>OBJECT_OUTPUTS</item>
-      <item>OSX_ARCHITECTURES</item>
-      <item>OUTPUT_NAME</item>
-      <item>PACKAGES_FOUND</item>
-      <item>PACKAGES_NOT_FOUND</item>
-      <item>PARENT_DIRECTORY</item>
-      <item>PASS_REGULAR_EXPRESSION</item>
-      <item>PDB_NAME</item>
-      <item>PDB_OUTPUT_DIRECTORY</item>
-      <item>POSITION_INDEPENDENT_CODE</item>
-      <item>POST_INSTALL_SCRIPT</item>
-      <item>PREDEFINED_TARGETS_FOLDER</item>
-      <item>PREFIX</item>
-      <item>PRE_INSTALL_SCRIPT</item>
-      <item>PRIVATE_HEADER</item>
-      <item>PROCESSORS</item>
-      <item>PROJECT_LABEL</item>
-      <item>PUBLIC_HEADER</item>
-      <item>REPORT_UNDEFINED_PROPERTIES</item>
-      <item>REQUIRED_FILES</item>
-      <item>RESOURCE</item>
-      <item>RESOURCE_LOCK</item>
-      <item>RULE_LAUNCH_COMPILE</item>
-      <item>RULE_LAUNCH_CUSTOM</item>
-      <item>RULE_LAUNCH_LINK</item>
-      <item>RULE_MESSAGES</item>
-      <item>RUNTIME_OUTPUT_DIRECTORY</item>
-      <item>RUNTIME_OUTPUT_NAME</item>
-      <item>RUN_SERIAL</item>
-      <item>SKIP_BUILD_RPATH</item>
-      <item>SKIP_RETURN_CODE</item>
-      <item>SOURCES</item>
-      <item>SOVERSION</item>
-      <item>STATIC_LIBRARY_FLAGS</item>
-      <item>STRINGS</item>
-      <item>SUFFIX</item>
-      <item>SYMBOLIC</item>
-      <item>TARGET_ARCHIVES_MAY_BE_SHARED_LIBS</item>
-      <item>TARGET_SUPPORTS_SHARED_LIBS</item>
-      <item>TEST_INCLUDE_FILE</item>
-      <item>TIMEOUT</item>
-      <item>TYPE</item>
-      <item>USE_FOLDERS</item>
-      <item>VALUE</item>
-      <item>VARIABLES</item>
-      <item>VERSION</item>
-      <item>VISIBILITY_INLINES_HIDDEN</item>
-      <item>VS_DEPLOYMENT_CONTENT</item>
-      <item>VS_DEPLOYMENT_LOCATION</item>
-      <item>VS_DOTNET_REFERENCES</item>
-      <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>
-      <item>VS_GLOBAL_KEYWORD</item>
-      <item>VS_GLOBAL_PROJECT_TYPES</item>
-      <item>VS_GLOBAL_ROOTNAMESPACE</item>
-      <item>VS_KEYWORD</item>
-      <item>VS_SCC_AUXPATH</item>
-      <item>VS_SCC_LOCALPATH</item>
-      <item>VS_SCC_PROJECTNAME</item>
-      <item>VS_SCC_PROVIDER</item>
-      <item>VS_SHADER_ENTRYPOINT</item>
-      <item>VS_SHADER_FLAGS</item>
-      <item>VS_SHADER_MODEL</item>
-      <item>VS_SHADER_TYPE</item>
-      <item>VS_WINRT_COMPONENT</item>
-      <item>VS_WINRT_EXTENSIONS</item>
-      <item>VS_WINRT_REFERENCES</item>
-      <item>VS_XAML_TYPE</item>
-      <item>WILL_FAIL</item>
-      <item>WIN32_EXECUTABLE</item>
-      <item>WORKING_DIRECTORY</item>
-      <item>WRAP_EXCLUDE</item>
-      <item>XCODE_EXPLICIT_FILE_TYPE</item>
-      <item>XCODE_LAST_KNOWN_FILE_TYPE</item>
-      <item>XCTEST</item>
-    </list>
-
-    <!-- these are "special" and don't show up in the generated lists -->
-    <list name="extra_properties">
-      <item>COMMANDS</item> <!-- WARNING: this one looks like a cmake bug, watch for it to migrate to the generated list! -->
-      <item>DEFINITION</item>
-    </list>
-
-    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
-    <list name="cmake_vars">
-      <!-- generated list -->
-      <item>APPLE</item>
-      <item>BORLAND</item>
-      <item>BUILD_SHARED_LIBS</item>
-      <item>CMAKE_ABSOLUTE_DESTINATION_FILES</item>
-      <item>CMAKE_ANDROID_API</item>
-      <item>CMAKE_ANDROID_API_MIN</item>
-      <item>CMAKE_ANDROID_GUI</item>
-      <item>CMAKE_APPBUNDLE_PATH</item>
-      <item>CMAKE_AR</item>
-      <item>CMAKE_ARCHIVE_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_ARGC</item>
-      <item>CMAKE_ARGV0</item>
-      <item>CMAKE_AUTOMOC</item>
-      <item>CMAKE_AUTOMOC_MOC_OPTIONS</item>
-      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>
-      <item>CMAKE_AUTORCC</item>
-      <item>CMAKE_AUTORCC_OPTIONS</item>
-      <item>CMAKE_AUTOUIC</item>
-      <item>CMAKE_AUTOUIC_OPTIONS</item>
-      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>
-      <item>CMAKE_BINARY_DIR</item>
-      <item>CMAKE_BUILD_TOOL</item>
-      <item>CMAKE_BUILD_TYPE</item>
-      <item>CMAKE_BUILD_WITH_INSTALL_RPATH</item>
-      <item>CMAKE_CACHEFILE_DIR</item>
-      <item>CMAKE_CACHE_MAJOR_VERSION</item>
-      <item>CMAKE_CACHE_MINOR_VERSION</item>
-      <item>CMAKE_CACHE_PATCH_VERSION</item>
-      <item>CMAKE_CFG_INTDIR</item>
-      <item>CMAKE_CL_64</item>
-      <item>CMAKE_COLOR_MAKEFILE</item>
-      <item>CMAKE_COMMAND</item>
-      <item>CMAKE_COMPILER_2005</item>
-      <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_CONFIGURATION_TYPES</item>
-      <item>CMAKE_CROSSCOMPILING</item>
-      <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
-      <item>CMAKE_CTEST_COMMAND</item>
-      <item>CMAKE_CURRENT_BINARY_DIR</item>
-      <item>CMAKE_CURRENT_LIST_DIR</item>
-      <item>CMAKE_CURRENT_LIST_FILE</item>
-      <item>CMAKE_CURRENT_LIST_LINE</item>
-      <item>CMAKE_CURRENT_SOURCE_DIR</item>
-      <item>CMAKE_CXX_COMPILE_FEATURES</item>
-      <item>CMAKE_CXX_EXTENSIONS</item>
-      <item>CMAKE_CXX_STANDARD</item>
-      <item>CMAKE_CXX_STANDARD_REQUIRED</item>
-      <item>CMAKE_C_COMPILE_FEATURES</item>
-      <item>CMAKE_C_EXTENSIONS</item>
-      <item>CMAKE_C_STANDARD</item>
-      <item>CMAKE_C_STANDARD_REQUIRED</item>
-      <item>CMAKE_DEBUG_POSTFIX</item>
-      <item>CMAKE_DEBUG_TARGET_PROPERTIES</item>
-      <item>CMAKE_DL_LIBS</item>
-      <item>CMAKE_EDIT_COMMAND</item>
-      <item>CMAKE_ERROR_DEPRECATED</item>
-      <item>CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CMAKE_EXECUTABLE_SUFFIX</item>
-      <item>CMAKE_EXE_LINKER_FLAGS</item>
-      <item>CMAKE_EXPORT_NO_PACKAGE_REGISTRY</item>
-      <item>CMAKE_EXTRA_GENERATOR</item>
-      <item>CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES</item>
-      <item>CMAKE_FIND_LIBRARY_PREFIXES</item>
-      <item>CMAKE_FIND_LIBRARY_SUFFIXES</item>
-      <item>CMAKE_FIND_NO_INSTALL_PREFIX</item>
-      <item>CMAKE_FIND_PACKAGE_NAME</item>
-      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>
-      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>
-      <item>CMAKE_FIND_PACKAGE_WARN_NO_MODULE</item>
-      <item>CMAKE_FIND_ROOT_PATH</item>
-      <item>CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</item>
-      <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_FRAMEWORK_PATH</item>
-      <item>CMAKE_Fortran_FORMAT</item>
-      <item>CMAKE_Fortran_MODDIR_DEFAULT</item>
-      <item>CMAKE_Fortran_MODDIR_FLAG</item>
-      <item>CMAKE_Fortran_MODOUT_FLAG</item>
-      <item>CMAKE_Fortran_MODULE_DIRECTORY</item>
-      <item>CMAKE_GENERATOR</item>
-      <item>CMAKE_GENERATOR_PLATFORM</item>
-      <item>CMAKE_GENERATOR_TOOLSET</item>
-      <item>CMAKE_GNUtoMS</item>
-      <item>CMAKE_HOME_DIRECTORY</item>
-      <item>CMAKE_HOST_APPLE</item>
-      <item>CMAKE_HOST_SYSTEM</item>
-      <item>CMAKE_HOST_SYSTEM_NAME</item>
-      <item>CMAKE_HOST_SYSTEM_PROCESSOR</item>
-      <item>CMAKE_HOST_SYSTEM_VERSION</item>
-      <item>CMAKE_HOST_UNIX</item>
-      <item>CMAKE_HOST_WIN32</item>
-      <item>CMAKE_IGNORE_PATH</item>
-      <item>CMAKE_IMPORT_LIBRARY_PREFIX</item>
-      <item>CMAKE_IMPORT_LIBRARY_SUFFIX</item>
-      <item>CMAKE_INCLUDE_CURRENT_DIR</item>
-      <item>CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE</item>
-      <item>CMAKE_INCLUDE_DIRECTORIES_BEFORE</item>
-      <item>CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE</item>
-      <item>CMAKE_INCLUDE_PATH</item>
-      <item>CMAKE_INSTALL_DEFAULT_COMPONENT_NAME</item>
-      <item>CMAKE_INSTALL_MESSAGE</item>
-      <item>CMAKE_INSTALL_NAME_DIR</item>
-      <item>CMAKE_INSTALL_PREFIX</item>
-      <item>CMAKE_INSTALL_RPATH</item>
-      <item>CMAKE_INSTALL_RPATH_USE_LINK_PATH</item>
-      <item>CMAKE_INTERNAL_PLATFORM_ABI</item>
-      <item>CMAKE_JOB_POOL_COMPILE</item>
-      <item>CMAKE_JOB_POOL_LINK</item>
-      <item>CMAKE_LIBRARY_ARCHITECTURE</item>
-      <item>CMAKE_LIBRARY_ARCHITECTURE_REGEX</item>
-      <item>CMAKE_LIBRARY_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_LIBRARY_PATH</item>
-      <item>CMAKE_LIBRARY_PATH_FLAG</item>
-      <item>CMAKE_LINK_DEF_FILE_FLAG</item>
-      <item>CMAKE_LINK_DEPENDS_NO_SHARED</item>
-      <item>CMAKE_LINK_INTERFACE_LIBRARIES</item>
-      <item>CMAKE_LINK_LIBRARY_FILE_FLAG</item>
-      <item>CMAKE_LINK_LIBRARY_FLAG</item>
-      <item>CMAKE_LINK_LIBRARY_SUFFIX</item>
-      <item>CMAKE_MACOSX_BUNDLE</item>
-      <item>CMAKE_MACOSX_RPATH</item>
-      <item>CMAKE_MAJOR_VERSION</item>
-      <item>CMAKE_MAKE_PROGRAM</item>
-      <item>CMAKE_MATCH_COUNT</item>
-      <item>CMAKE_MFC_FLAG</item>
-      <item>CMAKE_MINIMUM_REQUIRED_VERSION</item>
-      <item>CMAKE_MINOR_VERSION</item>
-      <item>CMAKE_MODULE_LINKER_FLAGS</item>
-      <item>CMAKE_MODULE_PATH</item>
-      <item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
-      <item>CMAKE_NO_BUILTIN_CHRPATH</item>
-      <item>CMAKE_NO_SYSTEM_FROM_IMPORTED</item>
-      <item>CMAKE_OBJECT_PATH_MAX</item>
-      <item>CMAKE_OSX_ARCHITECTURES</item>
-      <item>CMAKE_OSX_DEPLOYMENT_TARGET</item>
-      <item>CMAKE_OSX_SYSROOT</item>
-      <item>CMAKE_PARENT_LIST_FILE</item>
-      <item>CMAKE_PATCH_VERSION</item>
-      <item>CMAKE_PDB_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_POSITION_INDEPENDENT_CODE</item>
-      <item>CMAKE_PREFIX_PATH</item>
-      <item>CMAKE_PROGRAM_PATH</item>
-      <item>CMAKE_PROJECT_NAME</item>
-      <item>CMAKE_RANLIB</item>
-      <item>CMAKE_ROOT</item>
-      <item>CMAKE_RUNTIME_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_SCRIPT_MODE_FILE</item>
-      <item>CMAKE_SHARED_LIBRARY_PREFIX</item>
-      <item>CMAKE_SHARED_LIBRARY_SUFFIX</item>
-      <item>CMAKE_SHARED_LINKER_FLAGS</item>
-      <item>CMAKE_SHARED_MODULE_PREFIX</item>
-      <item>CMAKE_SHARED_MODULE_SUFFIX</item>
-      <item>CMAKE_SIZEOF_VOID_P</item>
-      <item>CMAKE_SKIP_BUILD_RPATH</item>
-      <item>CMAKE_SKIP_INSTALL_ALL_DEPENDENCY</item>
-      <item>CMAKE_SKIP_INSTALL_RPATH</item>
-      <item>CMAKE_SKIP_INSTALL_RULES</item>
-      <item>CMAKE_SKIP_RPATH</item>
-      <item>CMAKE_SOURCE_DIR</item>
-      <item>CMAKE_STAGING_PREFIX</item>
-      <item>CMAKE_STANDARD_LIBRARIES</item>
-      <item>CMAKE_STATIC_LIBRARY_PREFIX</item>
-      <item>CMAKE_STATIC_LIBRARY_SUFFIX</item>
-      <item>CMAKE_STATIC_LINKER_FLAGS</item>
-      <item>CMAKE_SYSROOT</item>
-      <item>CMAKE_SYSTEM</item>
-      <item>CMAKE_SYSTEM_IGNORE_PATH</item>
-      <item>CMAKE_SYSTEM_INCLUDE_PATH</item>
-      <item>CMAKE_SYSTEM_LIBRARY_PATH</item>
-      <item>CMAKE_SYSTEM_NAME</item>
-      <item>CMAKE_SYSTEM_PREFIX_PATH</item>
-      <item>CMAKE_SYSTEM_PROCESSOR</item>
-      <item>CMAKE_SYSTEM_PROGRAM_PATH</item>
-      <item>CMAKE_SYSTEM_VERSION</item>
-      <item>CMAKE_TOOLCHAIN_FILE</item>
-      <item>CMAKE_TRY_COMPILE_CONFIGURATION</item>
-      <item>CMAKE_TWEAK_VERSION</item>
-      <item>CMAKE_USER_MAKE_RULES_OVERRIDE</item>
-      <item>CMAKE_USE_RELATIVE_PATHS</item>
-      <item>CMAKE_VERBOSE_MAKEFILE</item>
-      <item>CMAKE_VERSION</item>
-      <item>CMAKE_VISIBILITY_INLINES_HIDDEN</item>
-      <item>CMAKE_VS_DEVENV_COMMAND</item>
-      <item>CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</item>
-      <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
-      <item>CMAKE_VS_MSBUILD_COMMAND</item>
-      <item>CMAKE_VS_MSDEV_COMMAND</item>
-      <item>CMAKE_VS_NsightTegra_VERSION</item>
-      <item>CMAKE_VS_PLATFORM_NAME</item>
-      <item>CMAKE_VS_PLATFORM_TOOLSET</item>
-      <item>CMAKE_WARN_DEPRECATED</item>
-      <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CMAKE_WIN32_EXECUTABLE</item>
-      <item>CMAKE_XCODE_PLATFORM_TOOLSET</item>
-      <item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
-      <item>CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY</item>
-      <item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CPACK_INCLUDE_TOPLEVEL_DIRECTORY</item>
-      <item>CPACK_INSTALL_SCRIPT</item>
-      <item>CPACK_PACKAGING_INSTALL_PREFIX</item>
-      <item>CPACK_SET_DESTDIR</item>
-      <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CTEST_BINARY_DIRECTORY</item>
-      <item>CTEST_BUILD_COMMAND</item>
-      <item>CTEST_BUILD_NAME</item>
-      <item>CTEST_BZR_COMMAND</item>
-      <item>CTEST_BZR_UPDATE_OPTIONS</item>
-      <item>CTEST_CHECKOUT_COMMAND</item>
-      <item>CTEST_CONFIGURATION_TYPE</item>
-      <item>CTEST_CONFIGURE_COMMAND</item>
-      <item>CTEST_COVERAGE_COMMAND</item>
-      <item>CTEST_COVERAGE_EXTRA_FLAGS</item>
-      <item>CTEST_CURL_OPTIONS</item>
-      <item>CTEST_CVS_CHECKOUT</item>
-      <item>CTEST_CVS_COMMAND</item>
-      <item>CTEST_CVS_UPDATE_OPTIONS</item>
-      <item>CTEST_DROP_LOCATION</item>
-      <item>CTEST_DROP_METHOD</item>
-      <item>CTEST_DROP_SITE</item>
-      <item>CTEST_DROP_SITE_CDASH</item>
-      <item>CTEST_DROP_SITE_PASSWORD</item>
-      <item>CTEST_DROP_SITE_USER</item>
-      <item>CTEST_GIT_COMMAND</item>
-      <item>CTEST_GIT_UPDATE_CUSTOM</item>
-      <item>CTEST_GIT_UPDATE_OPTIONS</item>
-      <item>CTEST_HG_COMMAND</item>
-      <item>CTEST_HG_UPDATE_OPTIONS</item>
-      <item>CTEST_MEMORYCHECK_COMMAND</item>
-      <item>CTEST_MEMORYCHECK_COMMAND_OPTIONS</item>
-      <item>CTEST_MEMORYCHECK_SANITIZER_OPTIONS</item>
-      <item>CTEST_MEMORYCHECK_SUPPRESSIONS_FILE</item>
-      <item>CTEST_MEMORYCHECK_TYPE</item>
-      <item>CTEST_NIGHTLY_START_TIME</item>
-      <item>CTEST_P4_CLIENT</item>
-      <item>CTEST_P4_COMMAND</item>
-      <item>CTEST_P4_OPTIONS</item>
-      <item>CTEST_P4_UPDATE_OPTIONS</item>
-      <item>CTEST_SCP_COMMAND</item>
-      <item>CTEST_SITE</item>
-      <item>CTEST_SOURCE_DIRECTORY</item>
-      <item>CTEST_SVN_COMMAND</item>
-      <item>CTEST_SVN_OPTIONS</item>
-      <item>CTEST_SVN_UPDATE_OPTIONS</item>
-      <item>CTEST_TEST_TIMEOUT</item>
-      <item>CTEST_TRIGGER_SITE</item>
-      <item>CTEST_UPDATE_COMMAND</item>
-      <item>CTEST_UPDATE_OPTIONS</item>
-      <item>CTEST_UPDATE_VERSION_ONLY</item>
-      <item>CTEST_USE_LAUNCHERS</item>
-      <item>CYGWIN</item>
-      <item>ENV</item>
-      <item>EXECUTABLE_OUTPUT_PATH</item>
-      <item>GHS-MULTI</item>
-      <item>LIBRARY_OUTPUT_PATH</item>
-      <item>MINGW</item>
-      <item>MSVC</item>
-      <item>MSVC10</item>
-      <item>MSVC11</item>
-      <item>MSVC12</item>
-      <item>MSVC14</item>
-      <item>MSVC60</item>
-      <item>MSVC70</item>
-      <item>MSVC71</item>
-      <item>MSVC80</item>
-      <item>MSVC90</item>
-      <item>MSVC_IDE</item>
-      <item>MSVC_VERSION</item>
-      <item>PROJECT_BINARY_DIR</item>
-      <item>PROJECT_NAME</item>
-      <item>PROJECT_SOURCE_DIR</item>
-      <item>PROJECT_VERSION</item>
-      <item>PROJECT_VERSION_MAJOR</item>
-      <item>PROJECT_VERSION_MINOR</item>
-      <item>PROJECT_VERSION_PATCH</item>
-      <item>PROJECT_VERSION_TWEAK</item>
-      <item>UNIX</item>
-      <item>WIN32</item>
-      <item>WINCE</item>
-      <item>WINDOWS_PHONE</item>
-      <item>WINDOWS_STORE</item>
-      <item>XCODE_VERSION</item>
-    </list>
-
-    <list name="simple_generator_expr">
-      <item>CONFIGURATION</item>
-      <item>ANGLE-R</item>
-      <item>COMMA</item>
-      <item>SEMICOLON</item>
-      <item>INSTALL_PREFIX</item>
-    </list>
-
-    <list name="generator_expr">
-      <!-- Logical Expressions -->
-      <item>0</item>
-      <item>1</item>
-      <item>BOOL</item>
-      <item>AND</item>
-      <item>OR</item>
-      <item>NOT</item>
-      <item>STREQUAL</item>
-      <item>EQUAL</item>
-      <item>CONFIG</item>
-      <item>PLATFORM_ID</item>
-      <item>C_COMPILER_ID</item>
-      <item>CXX_COMPILER_ID</item>
-      <item>VERSION_GREATER</item>
-      <item>VERSION_LESS</item>
-      <item>VERSION_EQUAL</item>
-      <item>C_COMPILER_VERSION</item>
-      <item>CXX_COMPILER_VERSION</item>
-      <item>TARGET_POLICY</item>
-      <item>COMPILER_FEATURES</item>
-      <!-- Informational Expressions -->
-      <item>CONFIGURATION</item>
-      <item>TARGET_FILE</item>
-      <item>TARGET_FILE_NAME</item>
-      <item>TARGET_FILE_DIR</item>
-      <item>TARGET_LINKER_FILE</item>
-      <item>TARGET_LINKER_FILE_NAME</item>
-      <item>TARGET_LINKER_FILE_DIR</item>
-      <item>TARGET_SONAME_FILE</item>
-      <item>TARGET_SONAME_FILE_NAME</item>
-      <item>TARGET_SONAME_FILE_DIR</item>
-      <item>TARGET_PDB_FILE</item>
-      <item>TARGET_PDB_FILE_NAME</item>
-      <item>TARGET_PDB_FILE_DIR</item>
-      <item>TARGET_PROPERTY</item>
-      <item>INSTALL_PREFIX</item>
-      <!-- Output Expressions -->
-      <item>JOIN</item>
-      <item>ANGLE-R</item>
-      <item>COMMA</item>
-      <item>SEMICOLON</item>
-      <item>TARGET_NAME</item>
-      <item>LINK_ONLY</item>
-      <item>INSTALL_INTERFACE</item>
-      <item>BUILD_INTERFACE</item>
-      <item>LOWER_CASE</item>
-      <item>UPPER_CASE</item>
-      <item>MAKE_C_IDENTIFIER</item>
-      <item>TARGET_OBJECTS</item>
-      <!-- TODO Is this from CMake 2.x? -->
-      <item>TARGET_DIR</item>
-    </list>
-
-    <contexts>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
-        <DetectSpaces/>
-
-        <!-- handle folding for if else elseif endif blocks -->
-        <WordDetect String="if" attribute="Commands" context="Command" beginRegion="ifthenelse" insensitive="true" />
-        <WordDetect String="else" attribute="Commands" context="Command" endRegion="ifthenelse" beginRegion="ifthenelse" insensitive="true" />
-        <WordDetect String="elseif" attribute="Commands" context="Command" endRegion="ifthenelse" beginRegion="ifthenelse" insensitive="true" />
-        <WordDetect String="endif" attribute="Commands" context="Command" endRegion="ifthenelse" insensitive="true" />
-
-        <!-- handle folding for macro endmacro blocks -->
-        <WordDetect String="macro" attribute="Commands" context="Command" beginRegion="macro" insensitive="true" />
-        <WordDetect String="endmacro" attribute="Commands" context="Command" endRegion="macro" insensitive="true" />
-
-        <!-- handle folding for foreach endforeach blocks -->
-        <WordDetect String="foreach" attribute="Commands" context="Command" beginRegion="foreach" insensitive="true" />
-        <WordDetect String="endforeach" attribute="Commands" context="Command" endRegion="foreach" insensitive="true" />
-
-        <!-- handle folding for while endwhile blocks -->
-        <WordDetect String="while" attribute="Commands" context="Command" beginRegion="while" insensitive="true" />
-        <WordDetect String="endwhile" attribute="Commands" context="Command" endRegion="while" insensitive="true" />
-
-        <keyword attribute="Commands" context="Command" String="commands" insensitive="true" />
-        <keyword attribute="Third-Party Commands" context="#stay" String="itkvtk_commands" insensitive="true" />
-        <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="block" firstNonSpace="true" />
-        <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="block" firstNonSpace="true" />
-        <RegExpr attribute="Region Marker" context="RST Documentation" String="^#\[(=*)\[\.rst:" column="0" />
-        <RegExpr attribute="Comment" context="Bracketed Comment" String="^#\[(=*)\[" column="0" />
-        <DetectChar attribute="Comment" context="Comment" char="#" />
-        <IncludeRules context="Detect Variables" />
-        <RegExpr attribute="Macros" context="Macro" String="\w+" />
-      </context>
-      <!-- ATTENTION Do not change the context name! Or change a generation script accordingly -->
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
-        <!-- generated rules -->
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_MODULE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_POLICY_DEFAULT_CMP[0-9]+\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_POLICY_WARNING_CMP[0-9]+\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_PROJECT_[A-Za-z_][A-Za-z_0-9]*_INCLUDE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ABI\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_EXTERNAL_TOOLCHAIN\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ID\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_LOADED\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_TARGET\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_VERSION\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILE_OBJECT\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_LIBRARY\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_MODULE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_STATIC_LIBRARY\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_DEBUG\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_MINSIZEREL\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELEASE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELWITHDEBINFO\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_DEBUG\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_MINSIZEREL\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELEASE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELWITHDEBINFO\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IGNORE_EXTENSIONS\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_INCLUDE_DIRECTORIES\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_DIRECTORIES\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_LIBRARIES\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_INCLUDE_WHAT_YOU_USE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LIBRARY_ARCHITECTURE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE_PROPAGATES\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINK_EXECUTABLE\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_OUTPUT_EXTENSION\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_PLATFORM_ID\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_POSTFIX\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_ID\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_VERSION\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MINOR\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_PATCH\b" />
-        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\b" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
-        <keyword attribute="Builtin CMake Variable" context="#stay" String="cmake_vars" insensitive="false" />
-        <IncludeRules context="Detect More Builtin Variables" />
-      </context>
-      <context attribute="CMake Variable" lineEndContext="#pop" name="VarSubst">
-        <IncludeRules context="Detect Builtin Variables" />
-        <DetectIdentifier />
-        <DetectChar attribute="CMake Variable" context="#pop" char="}" />
-        <IncludeRules context="Detect Variables" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variables">
-        <RegExpr attribute="Environment Variable" context="#stay" String="\$ENV\{\s*[\w-]+\s*\}" />
-        <Detect2Chars attribute="CMake Variable" context="VarSubst" char="$" char1="{" />
-      </context>
-      <context attribute="Generator Expression" lineEndContext="#pop#pop" name="DetectSimpleGEEnd">
-        <DetectChar attribute="Generator Expression" context="#pop#pop" char="&gt;" />
-      </context>
-      <context attribute="Generator Expression" lineEndContext="#pop" name="Generator Expression">
-        <IncludeRules context="Detect Generator Expressions" />
-        <DetectChar attribute="Generator Expression" context="#pop" char="&gt;" />
-        <keyword attribute="Generator Expression Keyword" context="DetectSimpleGEEnd" String="simple_generator_expr" insensitive="false" />
-        <keyword attribute="Generator Expression Keyword" context="#stay" String="generator_expr" insensitive="false" />
-        <IncludeRules context="Detect Variables" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
-        <Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="&lt;" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Command" fallthroughContext="#pop" fallthrough="true">
-        <DetectSpaces/>
-        <DetectChar attribute="Normal Text" context="Command Args" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Macro" fallthroughContext="#pop" fallthrough="true">
-        <DetectSpaces/>
-        <DetectChar attribute="Normal Text" context="Macro Args" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Command Args">
-        <keyword attribute="Special Args" context="#stay" String="special_args" />
-        <keyword attribute="Special Args" context="#stay" String="extra_special_args" />
-        <!-- NOTE Handle CMP<NNN> as a special arg -->
-        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
-        <keyword attribute="Properties" context="#stay" String="properties" />
-        <keyword attribute="Properties" context="#stay" String="extra_properties" />
-        <DetectChar attribute="Normal Text" context="Command Args" char="(" />
-        <DetectChar attribute="Normal Text" context="#pop" char=")" />
-        <IncludeRules context="Detect Builtin Variables" />
-        <IncludeRules context="Macro Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Macro Args">
-        <DetectChar attribute="Normal Text" context="Macro Args" char="(" />
-        <DetectChar attribute="Normal Text" context="#pop" char=")" />
-        <RegExpr attribute="Escapes" context="#stay" String="\\[&quot;$n\\]" />
-        <DetectChar attribute="Strings" context="String" char="&quot;" />
-        <RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" />
-        <DetectChar attribute="Comment" context="Comment" char="#" />
-        <IncludeRules context="Detect Builtin Variables" />
-        <IncludeRules context="Detect Variables" />
-        <IncludeRules context="Detect Generator Expressions" />
-      </context>
-      <context attribute="Comment" lineEndContext="#pop" name="Comment">
-        <LineContinue attribute="Comment" context="#pop" />
-        <IncludeRules context="##Alerts" />
-        <IncludeRules context="##Modelines" />
-      </context>
-      <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
-        <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />
-      </context>
-      <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
-        <RegExpr attribute="Comment" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />
-        <IncludeRules context="##Alerts" />
-        <IncludeRules context="##Modelines" />
-      </context>
-      <context attribute="Strings" lineEndContext="#stay" name="String">
-        <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)" />
-        <RegExpr attribute="Escapes" context="#stay" String="\\[&quot;$nrt\\]" />
-        <IncludeRules context="Detect Variables" />
-        <IncludeRules context="Detect Generator Expressions" />
-      </context>
-      <context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
-        <RegExpr attribute="Strings" context="#pop" String="\]%1\]" dynamic="true" />
-      </context>
-    </contexts>
-
-    <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
-      <itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
-      <itemData name="Properties" defStyleNum="dsOthers" spellChecking="false" />
-      <itemData name="Commands" defStyleNum="dsKeyword" spellChecking="false" />
-      <itemData name="Third-Party Commands" defStyleNum="dsExtension" spellChecking="false" />
-      <itemData name="Macros"  defStyleNum="dsFunction" spellChecking="false" />
-      <itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
-      <itemData name="Escapes" defStyleNum="dsSpecialChar" spellChecking="false" />
-      <itemData name="Builtin CMake Variable" defStyleNum="dsVariable" spellChecking="false" />
-      <!-- TODO Rename to "Variable Substitution" -->
-      <itemData name="CMake Variable" defStyleNum="dsVariable" spellChecking="false" />
-      <!-- TODO Rename to "Environment Variable Substitution" -->
-      <itemData name="Environment Variable" defStyleNum="dsFloat" spellChecking="false" />
-      <itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false" />
-      <itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false" />
-      <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
-      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
-    </itemDatas>
-
-  </highlighting>
-
-  <general>
-    <comments>
-      <comment name="singleLine" start="#" />
-    </comments>
-    <keywords casesensitive="1" />
-  </general>
-</language>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+  <!ENTITY id_re "[_A-Za-z][\-_0-9A-Za-z]*">
+]>
+<!--
+  This file is part of KDE's kate project.
+
+  Copyright 2004 Alexander Neundorf (neundorf@kde.org)
+  Copyright 2005 Dominik Haumann (dhdev@gmx.de)
+  Copyright 2007,2008,2013,2014 Matthew Woehlke (mw_triad@users.sourceforge.net)
+  Copyright 2013-2015,2017-2018 Alex Turbov (i.zaufi@gmail.com)
+
+ **********************************************************************
+ * This library is free software; you can redistribute it and/or      *
+ * modify it under the terms of the GNU Lesser General Public         *
+ * License as published by the Free Software Foundation; either       *
+ * version 2 of the License, or (at your option) any later version.   *
+ *                                                                    *
+ * This library is distributed in the hope that it will be useful,    *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
+ * Lesser General Public License for more details.                    *
+ *                                                                    *
+ * You should have received a copy of the GNU Lesser General Public   *
+ * License along with this library; if not, write to the              *
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
+ * Boston, MA  02110-1301, USA.                                       *
+ **********************************************************************
+ -->
+
+<language
+    name="CMake"
+    version="6"
+    kateversion="2.4"
+    section="Other"
+    extensions="CMakeLists.txt;*.cmake;*.cmake.in"
+    style="CMake"
+    mimetype="text/x-cmake"
+    author="Alex Turbov (i.zaufi@gmail.com)"
+    license="LGPLv2+"
+  >
+  <highlighting>
+
+    <list name="commands">
+        <item>break</item>
+        <item>cmake_host_system_information</item>
+        <item>cmake_minimum_required</item>
+        <item>cmake_parse_arguments</item>
+        <item>cmake_policy</item>
+        <item>configure_file</item>
+        <item>continue</item>
+        <item>elseif</item>
+        <item>else</item>
+        <item>endforeach</item>
+        <item>endfunction</item>
+        <item>endif</item>
+        <item>endmacro</item>
+        <item>endwhile</item>
+        <item>execute_process</item>
+        <item>file</item>
+        <item>find_file</item>
+        <item>find_library</item>
+        <item>find_package</item>
+        <item>find_path</item>
+        <item>find_program</item>
+        <item>foreach</item>
+        <item>function</item>
+        <item>get_cmake_property</item>
+        <item>get_directory_property</item>
+        <item>get_filename_component</item>
+        <item>get_property</item>
+        <item>if</item>
+        <item>include</item>
+        <item>include_guard</item>
+        <item>list</item>
+        <item>macro</item>
+        <item>mark_as_advanced</item>
+        <item>math</item>
+        <item>message</item>
+        <item>option</item>
+        <item>return</item>
+        <item>separate_arguments</item>
+        <item>set_directory_properties</item>
+        <item>set_property</item>
+        <item>set</item>
+        <item>site_name</item>
+        <item>string</item>
+        <item>unset</item>
+        <item>variable_watch</item>
+        <item>while</item>
+        <item>add_compile_options</item>
+        <item>add_custom_command</item>
+        <item>add_custom_target</item>
+        <item>add_definitions</item>
+        <item>add_dependencies</item>
+        <item>add_executable</item>
+        <item>add_library</item>
+        <item>add_subdirectory</item>
+        <item>add_test</item>
+        <item>aux_source_directory</item>
+        <item>build_command</item>
+        <item>create_test_sourcelist</item>
+        <item>define_property</item>
+        <item>enable_language</item>
+        <item>enable_testing</item>
+        <item>export</item>
+        <item>fltk_wrap_ui</item>
+        <item>get_source_file_property</item>
+        <item>get_target_property</item>
+        <item>get_test_property</item>
+        <item>include_directories</item>
+        <item>include_external_msproject</item>
+        <item>include_regular_expression</item>
+        <item>install</item>
+        <item>link_directories</item>
+        <item>link_libraries</item>
+        <item>load_cache</item>
+        <item>project</item>
+        <item>qt_wrap_cpp</item>
+        <item>qt_wrap_ui</item>
+        <item>remove_definitions</item>
+        <item>set_source_files_properties</item>
+        <item>set_target_properties</item>
+        <item>set_tests_properties</item>
+        <item>source_group</item>
+        <item>target_compile_definitions</item>
+        <item>target_compile_features</item>
+        <item>target_compile_options</item>
+        <item>target_include_directories</item>
+        <item>target_link_libraries</item>
+        <item>target_sources</item>
+        <item>try_compile</item>
+        <item>try_run</item>
+        <item>ctest_build</item>
+        <item>ctest_configure</item>
+        <item>ctest_coverage</item>
+        <item>ctest_empty_binary_directory</item>
+        <item>ctest_memcheck</item>
+        <item>ctest_read_custom_files</item>
+        <item>ctest_run_script</item>
+        <item>ctest_sleep</item>
+        <item>ctest_start</item>
+        <item>ctest_submit</item>
+        <item>ctest_test</item>
+        <item>ctest_update</item>
+        <item>ctest_upload</item>
+    </list>
+    
+    <list name="cmake_host_system_information_nargs">
+      <item>QUERY</item>
+      <item>RESULT</item>
+    </list>
+    <list name="cmake_host_system_information_sargs">
+      <item>AVAILABLE_PHYSICAL_MEMORY</item>
+      <item>AVAILABLE_VIRTUAL_MEMORY</item>
+      <item>FQDN</item>
+      <item>HAS_AMD_3DNOW</item>
+      <item>HAS_AMD_3DNOW_PLUS</item>
+      <item>HAS_FPU</item>
+      <item>HAS_IA64</item>
+      <item>HAS_MMX</item>
+      <item>HAS_MMX_PLUS</item>
+      <item>HAS_SERIAL_NUMBER</item>
+      <item>HAS_SSE</item>
+      <item>HAS_SSE2</item>
+      <item>HAS_SSE_FP</item>
+      <item>HAS_SSE_MMX</item>
+      <item>HOSTNAME</item>
+      <item>IS_64BIT</item>
+      <item>NUMBER_OF_LOGICAL_CORES</item>
+      <item>NUMBER_OF_PHYSICAL_CORES</item>
+      <item>OS_NAME</item>
+      <item>OS_PLATFORM</item>
+      <item>OS_RELEASE</item>
+      <item>OS_VERSION</item>
+      <item>PROCESSOR_DESCRIPTION</item>
+      <item>PROCESSOR_NAME</item>
+      <item>PROCESSOR_SERIAL_NUMBER</item>
+      <item>TOTAL_PHYSICAL_MEMORY</item>
+      <item>TOTAL_VIRTUAL_MEMORY</item>
+    </list>
+    <list name="cmake_minimum_required_nargs">
+      <item>FATAL_ERROR</item>
+      <item>VERSION</item>
+    </list>
+    <list name="cmake_parse_arguments_nargs">
+      <item>PARSE_ARGV</item>
+    </list>
+    <list name="cmake_policy_nargs">
+      <item>GET</item>
+      <item>POP</item>
+      <item>PUSH</item>
+      <item>SET</item>
+      <item>VERSION</item>
+    </list>
+    <list name="cmake_policy_sargs">
+      <item>NEW</item>
+      <item>OLD</item>
+    </list>
+    <list name="configure_file_nargs">
+      <item>@ONLY</item>
+      <item>COPYONLY</item>
+      <item>ESCAPE_QUOTES</item>
+      <item>NEWLINE_STYLE</item>
+    </list>
+    <list name="configure_file_sargs">
+      <item>CRLF</item>
+      <item>DOS</item>
+      <item>LF</item>
+      <item>UNIX</item>
+      <item>WIN32</item>
+    </list>
+    <list name="elseif_nargs">
+      <item>AND</item>
+      <item>DEFINED</item>
+      <item>EQUAL</item>
+      <item>EXISTS</item>
+      <item>GREATER</item>
+      <item>GREATER_EQUAL</item>
+      <item>IN_LIST</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_DIRECTORY</item>
+      <item>IS_NEWER_THAN</item>
+      <item>IS_SYMLINK</item>
+      <item>LESS</item>
+      <item>LESS_EQUAL</item>
+      <item>MATCHES</item>
+      <item>NOT</item>
+      <item>OR</item>
+      <item>POLICY</item>
+      <item>STREQUAL</item>
+      <item>STRGREATER</item>
+      <item>STRGREATER_EQUAL</item>
+      <item>STRLESS</item>
+      <item>STRLESS_EQUAL</item>
+      <item>TARGET</item>
+      <item>TEST</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_GREATER_EQUAL</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_LESS_EQUAL</item>
+    </list>
+    <list name="execute_process_nargs">
+      <item>COMMAND</item>
+      <item>ENCODING</item>
+      <item>ERROR_FILE</item>
+      <item>ERROR_QUIET</item>
+      <item>ERROR_STRIP_TRAILING_WHITESPACE</item>
+      <item>ERROR_VARIABLE</item>
+      <item>INPUT_FILE</item>
+      <item>OUTPUT_FILE</item>
+      <item>OUTPUT_QUIET</item>
+      <item>OUTPUT_STRIP_TRAILING_WHITESPACE</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>RESULTS_VARIABLE</item>
+      <item>RESULT_VARIABLE</item>
+      <item>TIMEOUT</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="execute_process_sargs">
+      <item>ANSI</item>
+      <item>AUTO</item>
+      <item>NONE</item>
+      <item>OEM</item>
+      <item>UTF8</item>
+    </list>
+    <list name="file_nargs">
+      <item>APPEND</item>
+      <item>CONDITION</item>
+      <item>CONTENT</item>
+      <item>COPY</item>
+      <item>DESTINATION</item>
+      <item>DIRECTORY</item>
+      <item>DIRECTORY_PERMISSIONS</item>
+      <item>DOWNLOAD</item>
+      <item>ENCODING</item>
+      <item>EXCLUDE</item>
+      <item>EXPECTED_HASH</item>
+      <item>EXPECTED_MD5</item>
+      <item>FILES_MATCHING</item>
+      <item>FILE_PERMISSIONS</item>
+      <item>FOLLOW_SYMLINKS</item>
+      <item>GENERATE</item>
+      <item>GLOB</item>
+      <item>GLOB_RECURSE</item>
+      <item>GUARD</item>
+      <item>HEX</item>
+      <item>HTTPHEADER</item>
+      <item>INACTIVITY_TIMEOUT</item>
+      <item>INPUT</item>
+      <item>INSTALL</item>
+      <item>LENGTH_MAXIMUM</item>
+      <item>LENGTH_MINIMUM</item>
+      <item>LIMIT</item>
+      <item>LIMIT_COUNT</item>
+      <item>LIMIT_INPUT</item>
+      <item>LIMIT_OUTPUT</item>
+      <item>LIST_DIRECTORIES</item>
+      <item>LOCK</item>
+      <item>LOG</item>
+      <item>MAKE_DIRECTORY</item>
+      <item>MD5</item>
+      <item>NETRC</item>
+      <item>NETRC_FILE</item>
+      <item>NEWLINE_CONSUME</item>
+      <item>NO_HEX_CONVERSION</item>
+      <item>NO_SOURCE_PERMISSIONS</item>
+      <item>OFFSET</item>
+      <item>OUTPUT</item>
+      <item>PATTERN</item>
+      <item>PERMISSIONS</item>
+      <item>READ</item>
+      <item>REGEX</item>
+      <item>RELATIVE</item>
+      <item>RELATIVE_PATH</item>
+      <item>RELEASE</item>
+      <item>REMOVE</item>
+      <item>REMOVE_RECURSE</item>
+      <item>RENAME</item>
+      <item>RESULT_VARIABLE</item>
+      <item>SHA1</item>
+      <item>SHA224</item>
+      <item>SHA256</item>
+      <item>SHA384</item>
+      <item>SHA3_224</item>
+      <item>SHA3_256</item>
+      <item>SHA3_384</item>
+      <item>SHA3_512</item>
+      <item>SHA512</item>
+      <item>SHOW_PROGRESS</item>
+      <item>STATUS</item>
+      <item>STRINGS</item>
+      <item>TIMEOUT</item>
+      <item>TIMESTAMP</item>
+      <item>TLS_CAINFO</item>
+      <item>TLS_VERIFY</item>
+      <item>TO_CMAKE_PATH</item>
+      <item>TO_NATIVE_PATH</item>
+      <item>UPLOAD</item>
+      <item>USERPWD</item>
+      <item>USE_SOURCE_PERMISSIONS</item>
+      <item>UTC</item>
+      <item>WRITE</item>
+    </list>
+    <list name="file_sargs">
+      <item>FILE</item>
+      <item>FUNCTION</item>
+      <item>GROUP_EXECUTE</item>
+      <item>GROUP_READ</item>
+      <item>GROUP_WRITE</item>
+      <item>IGNORED</item>
+      <item>OPTIONAL</item>
+      <item>OWNER_EXECUTE</item>
+      <item>OWNER_READ</item>
+      <item>OWNER_WRITE</item>
+      <item>PROCESS</item>
+      <item>REQUIRED</item>
+      <item>SETGID</item>
+      <item>SETUID</item>
+      <item>UTF-16BE</item>
+      <item>UTF-16LE</item>
+      <item>UTF-32B</item>
+      <item>UTF-32LE</item>
+      <item>UTF-8</item>
+      <item>WORLD_EXECUTE</item>
+      <item>WORLD_READ</item>
+      <item>WORLD_WRITE</item>
+    </list>
+    <list name="find_file_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>DOC</item>
+      <item>HINTS</item>
+      <item>NAMES</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_PACKAGE_ROOT_PATH</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+    </list>
+    <list name="find_library_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>DOC</item>
+      <item>HINTS</item>
+      <item>NAMES</item>
+      <item>NAMES_PER_DIR</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_PACKAGE_ROOT_PATH</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+    </list>
+    <list name="find_package_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>COMPONENTS</item>
+      <item>CONFIG</item>
+      <item>CONFIGS</item>
+      <item>EXACT</item>
+      <item>HINTS</item>
+      <item>MODULE</item>
+      <item>NAMES</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_PACKAGE_REGISTRY</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_MODULE</item>
+      <item>NO_PACAKGE_ROOT_PATH</item>
+      <item>NO_POLICY_SCOPE</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>OPTIONAL_COMPONENTS</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+      <item>QUIET</item>
+      <item>REQUIRED</item>
+    </list>
+    <list name="find_path_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>DOC</item>
+      <item>HINTS</item>
+      <item>NAMES</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_PACKAGE_ROOT_PATH</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+    </list>
+    <list name="find_program_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>DOC</item>
+      <item>HINTS</item>
+      <item>NAMES</item>
+      <item>NAMES_PER_DIR</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_PACKAGE_ROOT_PATH</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+    </list>
+    <list name="foreach_nargs">
+      <item>IN</item>
+      <item>ITEMS</item>
+      <item>LISTS</item>
+      <item>RANGE</item>
+    </list>
+    <list name="get_directory_property_nargs">
+      <item>DEFINITION</item>
+      <item>DIRECTORY</item>
+    </list>
+    <list name="get_filename_component_nargs">
+      <item>ABSOLUTE</item>
+      <item>BASE_DIR</item>
+      <item>CACHE</item>
+      <item>DIRECTORY</item>
+      <item>EXT</item>
+      <item>NAME</item>
+      <item>NAME_WE</item>
+      <item>PATH</item>
+      <item>PROGRAM</item>
+      <item>PROGRAM_ARGS</item>
+      <item>REALPATH</item>
+    </list>
+    <list name="get_property_nargs">
+      <item>BRIEF_DOCS</item>
+      <item>CACHE</item>
+      <item>DEFINED</item>
+      <item>DIRECTORY</item>
+      <item>FULL_DOCS</item>
+      <item>GLOBAL</item>
+      <item>INSTALL</item>
+      <item>PROPERTY</item>
+      <item>SET</item>
+      <item>SOURCE</item>
+      <item>TARGET</item>
+      <item>TEST</item>
+      <item>VARIABLE</item>
+    </list>
+    <list name="if_nargs">
+      <item>AND</item>
+      <item>DEFINED</item>
+      <item>EQUAL</item>
+      <item>EXISTS</item>
+      <item>GREATER</item>
+      <item>GREATER_EQUAL</item>
+      <item>IN_LIST</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_DIRECTORY</item>
+      <item>IS_NEWER_THAN</item>
+      <item>IS_SYMLINK</item>
+      <item>LESS</item>
+      <item>LESS_EQUAL</item>
+      <item>MATCHES</item>
+      <item>NOT</item>
+      <item>OR</item>
+      <item>POLICY</item>
+      <item>STREQUAL</item>
+      <item>STRGREATER</item>
+      <item>STRGREATER_EQUAL</item>
+      <item>STRLESS</item>
+      <item>STRLESS_EQUAL</item>
+      <item>TARGET</item>
+      <item>TEST</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_GREATER_EQUAL</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_LESS_EQUAL</item>
+    </list>
+    <list name="include_nargs">
+      <item>NO_POLICY_SCOPE</item>
+      <item>OPTIONAL</item>
+      <item>RESULT_VARIABLE</item>
+    </list>
+    <list name="include_guard_nargs">
+      <item>DIRECTORY</item>
+      <item>GLOBAL</item>
+    </list>
+    <list name="list_nargs">
+      <item>APPEND</item>
+      <item>EXCLUDE</item>
+      <item>FILTER</item>
+      <item>FIND</item>
+      <item>GET</item>
+      <item>INCLUDE</item>
+      <item>INSERT</item>
+      <item>LENGTH</item>
+      <item>REGEX</item>
+      <item>REMOVE_AT</item>
+      <item>REMOVE_DUPLICATES</item>
+      <item>REMOVE_ITEM</item>
+      <item>REVERSE</item>
+      <item>SORT</item>
+    </list>
+    <list name="mark_as_advanced_nargs">
+      <item>CLEAR</item>
+      <item>FORCE</item>
+    </list>
+    <list name="math_nargs">
+      <item>EXPR</item>
+    </list>
+    <list name="message_nargs">
+      <item>AUTHOR_WARNING</item>
+      <item>DEPRECATION</item>
+      <item>FATAL_ERROR</item>
+      <item>SEND_ERROR</item>
+      <item>STATUS</item>
+      <item>WARNING</item>
+    </list>
+    <list name="separate_arguments_nargs">
+      <item>NATIVE_COMMAND</item>
+      <item>UNIX_COMMAND</item>
+      <item>WINDOWS_COMMAND</item>
+    </list>
+    <list name="set_directory_properties_nargs">
+      <item>PROPERTIES</item>
+    </list>
+    <list name="set_property_nargs">
+      <item>APPEND</item>
+      <item>APPEND_STRING</item>
+      <item>CACHE</item>
+      <item>DIRECTORY</item>
+      <item>GLOBAL</item>
+      <item>INSTALL</item>
+      <item>PROPERTY</item>
+      <item>SOURCE</item>
+      <item>TARGET</item>
+      <item>TEST</item>
+      <item>VARIABLE</item>
+    </list>
+    <list name="set_nargs">
+      <item>CACHE</item>
+      <item>FORCE</item>
+      <item>PARENT_SCOPE</item>
+    </list>
+    <list name="set_sargs">
+      <item>BOOL</item>
+      <item>FILEPATH</item>
+      <item>INTERNAL</item>
+      <item>PATH</item>
+      <item>STATIC</item>
+      <item>STRING</item>
+    </list>
+    <list name="string_nargs">
+      <item>@ONLY</item>
+      <item>ALPHABET</item>
+      <item>APPEND</item>
+      <item>ASCII</item>
+      <item>COMPARE</item>
+      <item>CONCAT</item>
+      <item>CONFIGURE</item>
+      <item>EQUAL</item>
+      <item>ESCAPE_QUOTES</item>
+      <item>FIND</item>
+      <item>GENEX_STRIP</item>
+      <item>GREATER</item>
+      <item>GREATER_EQUAL</item>
+      <item>LENGTH</item>
+      <item>LESS</item>
+      <item>LESS_EQUAL</item>
+      <item>MAKE_C_IDENTIFIER</item>
+      <item>MATCH</item>
+      <item>MATCHALL</item>
+      <item>MD5</item>
+      <item>NAME</item>
+      <item>NAMESPACE</item>
+      <item>NOTEQUAL</item>
+      <item>PREPEND</item>
+      <item>RANDOM</item>
+      <item>RANDOM_SEED</item>
+      <item>REGEX</item>
+      <item>REPLACE</item>
+      <item>REVERSE</item>
+      <item>SHA1</item>
+      <item>SHA224</item>
+      <item>SHA256</item>
+      <item>SHA384</item>
+      <item>SHA3_224</item>
+      <item>SHA3_256</item>
+      <item>SHA3_384</item>
+      <item>SHA3_512</item>
+      <item>SHA512</item>
+      <item>STRIP</item>
+      <item>SUBSTRING</item>
+      <item>TIMESTAMP</item>
+      <item>TOLOWER</item>
+      <item>TOUPPER</item>
+      <item>TYPE</item>
+      <item>UPPER</item>
+      <item>UTC</item>
+      <item>UUID</item>
+    </list>
+    <list name="unset_nargs">
+      <item>CACHE</item>
+      <item>PARENT_SCOPE</item>
+    </list>
+    <list name="while_nargs">
+      <item>AND</item>
+      <item>DEFINED</item>
+      <item>EQUAL</item>
+      <item>EXISTS</item>
+      <item>GREATER</item>
+      <item>GREATER_EQUAL</item>
+      <item>IN_LIST</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_DIRECTORY</item>
+      <item>IS_NEWER_THAN</item>
+      <item>IS_SYMLINK</item>
+      <item>LESS</item>
+      <item>LESS_EQUAL</item>
+      <item>MATCHES</item>
+      <item>NOT</item>
+      <item>OR</item>
+      <item>POLICY</item>
+      <item>STREQUAL</item>
+      <item>STRGREATER</item>
+      <item>STRGREATER_EQUAL</item>
+      <item>STRLESS</item>
+      <item>STRLESS_EQUAL</item>
+      <item>TARGET</item>
+      <item>TEST</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_GREATER_EQUAL</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_LESS_EQUAL</item>
+    </list>
+    <list name="add_custom_command_nargs">
+      <item>APPEND</item>
+      <item>ARGS</item>
+      <item>BYPRODUCTS</item>
+      <item>COMMAND</item>
+      <item>COMMAND_EXPAND_LISTS</item>
+      <item>COMMENT</item>
+      <item>DEPENDS</item>
+      <item>DEPFILE</item>
+      <item>IMPLICIT_DEPENDS</item>
+      <item>MAIN_DEPENDENCY</item>
+      <item>OUTPUT</item>
+      <item>POST_BUILD</item>
+      <item>PRE_BUILD</item>
+      <item>PRE_LINK</item>
+      <item>TARGET</item>
+      <item>USES_TERMINAL</item>
+      <item>VERBATIM</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="add_custom_target_nargs">
+      <item>ALL</item>
+      <item>APPEND</item>
+      <item>BYPRODUCTS</item>
+      <item>COMMAND</item>
+      <item>COMMAND_EXPAND_LISTS</item>
+      <item>COMMENT</item>
+      <item>DEPENDS</item>
+      <item>DEPFILE</item>
+      <item>IMPLICIT_DEPENDS</item>
+      <item>SOURCES</item>
+      <item>USES_TERMINAL</item>
+      <item>VERBATIM</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="add_executable_nargs">
+      <item>ALIAS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>GLOBAL</item>
+      <item>IMPORTED</item>
+      <item>MACOSX_BUNDLE</item>
+      <item>WIN32</item>
+    </list>
+    <list name="add_library_nargs">
+      <item>ALIAS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>GLOBAL</item>
+      <item>IMPORTED</item>
+      <item>INTERFACE</item>
+      <item>MODULE</item>
+      <item>OBJECT</item>
+      <item>SHARED</item>
+      <item>STATIC</item>
+      <item>UNKNOWN</item>
+    </list>
+    <list name="add_subdirectory_nargs">
+      <item>EXCLUDE_FROM_ALL</item>
+    </list>
+    <list name="add_test_nargs">
+      <item>COMMAND</item>
+      <item>CONFIGURATIONS</item>
+      <item>NAME</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="build_command_nargs">
+      <item>CONFIGURATION</item>
+      <item>TARGET</item>
+    </list>
+    <list name="create_test_sourcelist_nargs">
+      <item>EXTRA_INCLUDE</item>
+      <item>FUNCTION</item>
+    </list>
+    <list name="define_property_nargs">
+      <item>BRIEF_DOCS</item>
+      <item>CACHED_VARIABLE</item>
+      <item>DIRECTORY</item>
+      <item>FULL_DOCS</item>
+      <item>GLOBAL</item>
+      <item>INHERITED</item>
+      <item>PROPERTY</item>
+      <item>SOURCE</item>
+      <item>TEST</item>
+      <item>VARIABLE</item>
+    </list>
+    <list name="enable_language_nargs">
+      <item>OPTIONAL</item>
+    </list>
+    <list name="enable_language_sargs">
+      <item>C</item>
+      <item>CXX</item>
+      <item>Fortran</item>
+      <item>RC</item>
+    </list>
+    <list name="export_nargs">
+      <item>ANDROID_MK</item>
+      <item>APPEND</item>
+      <item>EXPORT</item>
+      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
+      <item>FILE</item>
+      <item>NAMESPACE</item>
+      <item>TARGETS</item>
+    </list>
+    <list name="include_directories_nargs">
+      <item>AFTER</item>
+      <item>BEFORE</item>
+      <item>SYSTEM</item>
+    </list>
+    <list name="include_external_msproject_nargs">
+      <item>GUID</item>
+      <item>PLATFORM</item>
+      <item>TYPE</item>
+    </list>
+    <list name="install_nargs">
+      <item>ARCHIVE</item>
+      <item>BUNDLE</item>
+      <item>CODE</item>
+      <item>COMPONENT</item>
+      <item>CONFIGURATIONS</item>
+      <item>DESTINATION</item>
+      <item>DIRECTORY</item>
+      <item>DIRECTORY_PERMISSIONS</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXPORT</item>
+      <item>EXPORT_ANDROID_MK</item>
+      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
+      <item>FILE</item>
+      <item>FILES</item>
+      <item>FILES_MATCHING</item>
+      <item>FILE_PERMISSIONS</item>
+      <item>FRAMEWORK</item>
+      <item>INCLUDES</item>
+      <item>LIBRARY</item>
+      <item>MESSAGE_NEVER</item>
+      <item>NAMELINK_ONLY</item>
+      <item>NAMELINK_SKIP</item>
+      <item>NAMESPACE</item>
+      <item>OBJECTS</item>
+      <item>OPTIONAL</item>
+      <item>PATTERN</item>
+      <item>PERMISSIONS</item>
+      <item>PRIVATE_HEADER</item>
+      <item>PROGRAMS</item>
+      <item>PUBLIC_HEADER</item>
+      <item>REGEX</item>
+      <item>RENAME</item>
+      <item>RESOURCE</item>
+      <item>RUNTIME</item>
+      <item>SCRIPT</item>
+      <item>TARGETS</item>
+      <item>USE_SOURCE_PERMISSIONS</item>
+    </list>
+    <list name="install_sargs">
+      <item>GROUP_EXECUTE</item>
+      <item>GROUP_READ</item>
+      <item>GROUP_WRITE</item>
+      <item>OWNER_EXECUTE</item>
+      <item>OWNER_READ</item>
+      <item>OWNER_WRITE</item>
+      <item>SETGID</item>
+      <item>SETUID</item>
+      <item>WORLD_EXECUTE</item>
+      <item>WORLD_READ</item>
+      <item>WORLD_WRITE</item>
+    </list>
+    <list name="link_libraries_nargs">
+      <item>debug</item>
+      <item>general</item>
+      <item>optimized</item>
+    </list>
+    <list name="load_cache_nargs">
+      <item>EXCLUDE</item>
+      <item>INCLUDE_INTERNALS</item>
+      <item>READ_WITH_PREFIX</item>
+    </list>
+    <list name="project_nargs">
+      <item>DESCRIPTION</item>
+      <item>LANGUAGES</item>
+      <item>VERSION</item>
+    </list>
+    <list name="project_sargs">
+      <item>C</item>
+      <item>CXX</item>
+      <item>Fortran</item>
+      <item>NONE</item>
+      <item>RC</item>
+    </list>
+    <list name="set_source_files_properties_nargs">
+      <item>PROPERTIES</item>
+    </list>
+    <list name="set_target_properties_nargs">
+      <item>PROPERTIES</item>
+    </list>
+    <list name="set_tests_properties_nargs">
+      <item>PROPERTIES</item>
+    </list>
+    <list name="source_group_nargs">
+      <item>FILES</item>
+      <item>PREFIX</item>
+      <item>REGULAR_EXPRESSION</item>
+      <item>TREE</item>
+    </list>
+    <list name="target_compile_definitions_nargs">
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="target_compile_features_nargs">
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="target_compile_features_sargs">
+      <item>c_function_prototypes</item>
+      <item>c_restrict</item>
+      <item>c_static_assert</item>
+      <item>c_std_11</item>
+      <item>c_std_90</item>
+      <item>c_std_99</item>
+      <item>c_variadic_macros</item>
+      <item>cxx_aggregate_default_initializers</item>
+      <item>cxx_alias_templates</item>
+      <item>cxx_alignas</item>
+      <item>cxx_alignof</item>
+      <item>cxx_attribute_deprecated</item>
+      <item>cxx_attributes</item>
+      <item>cxx_auto_type</item>
+      <item>cxx_binary_literals</item>
+      <item>cxx_constexpr</item>
+      <item>cxx_contextual_conversions</item>
+      <item>cxx_decltype</item>
+      <item>cxx_decltype_auto</item>
+      <item>cxx_decltype_incomplete_return_types</item>
+      <item>cxx_default_function_template_args</item>
+      <item>cxx_defaulted_functions</item>
+      <item>cxx_defaulted_move_initializers</item>
+      <item>cxx_delegating_constructors</item>
+      <item>cxx_deleted_functions</item>
+      <item>cxx_digit_separators</item>
+      <item>cxx_enum_forward_declarations</item>
+      <item>cxx_explicit_conversions</item>
+      <item>cxx_extended_friend_declarations</item>
+      <item>cxx_extern_templates</item>
+      <item>cxx_final</item>
+      <item>cxx_func_identifier</item>
+      <item>cxx_generalized_initializers</item>
+      <item>cxx_generic_lambdas</item>
+      <item>cxx_inheriting_constructors</item>
+      <item>cxx_inline_namespaces</item>
+      <item>cxx_lambda_init_captures</item>
+      <item>cxx_lambdas</item>
+      <item>cxx_local_type_template_args</item>
+      <item>cxx_long_long_type</item>
+      <item>cxx_noexcept</item>
+      <item>cxx_nonstatic_member_init</item>
+      <item>cxx_nullptr</item>
+      <item>cxx_override</item>
+      <item>cxx_range_for</item>
+      <item>cxx_raw_string_literals</item>
+      <item>cxx_reference_qualified_functions</item>
+      <item>cxx_relaxed_constexpr</item>
+      <item>cxx_return_type_deduction</item>
+      <item>cxx_right_angle_brackets</item>
+      <item>cxx_rvalue_references</item>
+      <item>cxx_sizeof_member</item>
+      <item>cxx_static_assert</item>
+      <item>cxx_std_11</item>
+      <item>cxx_std_14</item>
+      <item>cxx_std_17</item>
+      <item>cxx_std_98</item>
+      <item>cxx_strong_enums</item>
+      <item>cxx_template_template_parameters</item>
+      <item>cxx_thread_local</item>
+      <item>cxx_trailing_return_types</item>
+      <item>cxx_unicode_literals</item>
+      <item>cxx_uniform_initialization</item>
+      <item>cxx_unrestricted_unions</item>
+      <item>cxx_user_literals</item>
+      <item>cxx_variable_templates</item>
+      <item>cxx_variadic_macros</item>
+      <item>cxx_variadic_templates</item>
+    </list>
+    <list name="target_compile_options_nargs">
+      <item>BEFORE</item>
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="target_include_directories_nargs">
+      <item>BEFORE</item>
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+      <item>SYSTEM</item>
+    </list>
+    <list name="target_link_libraries_nargs">
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="target_sources_nargs">
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="try_compile_nargs">
+      <item>CMAKE_FLAGS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COPY_FILE</item>
+      <item>COPY_FILE_ERROR</item>
+      <item>LINK_LIBRARIES</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>RESULT_VAR</item>
+      <item>SOURCES</item>
+    </list>
+    <list name="try_run_nargs">
+      <item>ARGS</item>
+      <item>CMAKE_FLAGS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_OUTPUT_VARIABLE</item>
+      <item>COMPILE_RESULT_VAR</item>
+      <item>LINK_LIBRARIES</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>RUN_OUTPUT_VARIABLE</item>
+      <item>RUN_RESULT_VAR</item>
+    </list>
+    <list name="ctest_build_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>CONFIGURATION</item>
+      <item>FLAGS</item>
+      <item>NUMBER_ERRORS</item>
+      <item>NUMBER_WARNINGS</item>
+      <item>PROJECT_NAME</item>
+      <item>RETURN_VALUE</item>
+      <item>TARGET</item>
+    </list>
+    <list name="ctest_configure_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>OPTIONS</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SOURCE</item>
+    </list>
+    <list name="ctest_coverage_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>LABELS</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+    </list>
+    <list name="ctest_memcheck_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>DEFECT_COUNT</item>
+      <item>END</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FIXTURE</item>
+      <item>EXCLUDE_FIXTURE_CLEANUP</item>
+      <item>EXCLUDE_FIXTURE_SETUP</item>
+      <item>EXCLUDE_LABEL</item>
+      <item>INCLUDE</item>
+      <item>INCLUDE_LABEL</item>
+      <item>PARALLEL_LEVEL</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SCHEDULE_RANDOM</item>
+      <item>START</item>
+      <item>STOP_TIME</item>
+      <item>STRIDE</item>
+      <item>TEST_LOAD</item>
+    </list>
+    <list name="ctest_run_script_nargs">
+      <item>NEW_PROCESS</item>
+      <item>RETURN_VALUE</item>
+    </list>
+    <list name="ctest_start_nargs">
+      <item>APPEND</item>
+      <item>QUIET</item>
+      <item>TRACK</item>
+    </list>
+    <list name="ctest_submit_nargs">
+      <item>CDASH_UPLOAD</item>
+      <item>CDASH_UPLOAD_TYPE</item>
+      <item>FILES</item>
+      <item>HTTPHEADER</item>
+      <item>PARTS</item>
+      <item>QUIET</item>
+      <item>RETRY_COUNT</item>
+      <item>RETRY_DELAY</item>
+      <item>RETURN_VALUE</item>
+    </list>
+    <list name="ctest_test_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>END</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FIXTURE</item>
+      <item>EXCLUDE_FIXTURE_CLEANUP</item>
+      <item>EXCLUDE_FIXTURE_SETUP</item>
+      <item>EXCLUDE_LABEL</item>
+      <item>INCLUDE</item>
+      <item>INCLUDE_LABEL</item>
+      <item>PARALLEL_LEVEL</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SCHEDULE_RANDOM</item>
+      <item>START</item>
+      <item>STOP_TIME</item>
+      <item>STRIDE</item>
+      <item>TEST_LOAD</item>
+    </list>
+    <list name="ctest_update_nargs">
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SOURCE</item>
+    </list>
+    <list name="ctest_upload_nargs">
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>FILES</item>
+      <item>QUIET</item>
+    </list>
+
+    <list name="variables">
+      <item>ANDROID</item>
+      <item>APPLE</item>
+      <item>BORLAND</item>
+      <item>BUILD_SHARED_LIBS</item>
+      <item>BUILD_TESTING</item>
+      <item>CMAKE_ABSOLUTE_DESTINATION_FILES</item>
+      <item>CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS</item>
+      <item>CMAKE_ANDROID_API</item>
+      <item>CMAKE_ANDROID_API_MIN</item>
+      <item>CMAKE_ANDROID_ARCH</item>
+      <item>CMAKE_ANDROID_ARCH_ABI</item>
+      <item>CMAKE_ANDROID_ARM_MODE</item>
+      <item>CMAKE_ANDROID_ARM_NEON</item>
+      <item>CMAKE_ANDROID_ASSETS_DIRECTORIES</item>
+      <item>CMAKE_ANDROID_GUI</item>
+      <item>CMAKE_ANDROID_JAR_DEPENDENCIES</item>
+      <item>CMAKE_ANDROID_JAR_DIRECTORIES</item>
+      <item>CMAKE_ANDROID_JAVA_SOURCE_DIR</item>
+      <item>CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES</item>
+      <item>CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES</item>
+      <item>CMAKE_ANDROID_NDK</item>
+      <item>CMAKE_ANDROID_NDK_DEPRECATED_HEADERS</item>
+      <item>CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG</item>
+      <item>CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION</item>
+      <item>CMAKE_ANDROID_PROCESS_MAX</item>
+      <item>CMAKE_ANDROID_PROGUARD</item>
+      <item>CMAKE_ANDROID_PROGUARD_CONFIG_PATH</item>
+      <item>CMAKE_ANDROID_SECURE_PROPS_PATH</item>
+      <item>CMAKE_ANDROID_SKIP_ANT_STEP</item>
+      <item>CMAKE_ANDROID_STANDALONE_TOOLCHAIN</item>
+      <item>CMAKE_ANDROID_STL_TYPE</item>
+      <item>CMAKE_ANSI_CXXFLAGS</item>
+      <item>CMAKE_APPBUNDLE_PATH</item>
+      <item>CMAKE_AR</item>
+      <item>CMAKE_ARCHIVE_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_ARGC</item>
+      <item>CMAKE_ARGV0</item>
+      <item>CMAKE_AUTOMOC</item>
+      <item>CMAKE_AUTOMOC_DEPEND_FILTERS</item>
+      <item>CMAKE_AUTOMOC_MOC_OPTIONS</item>
+      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>
+      <item>CMAKE_AUTORCC</item>
+      <item>CMAKE_AUTORCC_OPTIONS</item>
+      <item>CMAKE_AUTOUIC</item>
+      <item>CMAKE_AUTOUIC_OPTIONS</item>
+      <item>CMAKE_AUTOUIC_SEARCH_PATHS</item>
+      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>
+      <item>CMAKE_BINARY_DIR</item>
+      <item>CMAKE_BUILD_RPATH</item>
+      <item>CMAKE_BUILD_TOOL</item>
+      <item>CMAKE_BUILD_TYPE</item>
+      <item>CMAKE_BUILD_WITH_INSTALL_NAME_DIR</item>
+      <item>CMAKE_BUILD_WITH_INSTALL_RPATH</item>
+      <item>CMAKE_CACHEFILE_DIR</item>
+      <item>CMAKE_CACHE_MAJOR_VERSION</item>
+      <item>CMAKE_CACHE_MINOR_VERSION</item>
+      <item>CMAKE_CACHE_PATCH_VERSION</item>
+      <item>CMAKE_CFG_INTDIR</item>
+      <item>CMAKE_CL_64</item>
+      <item>CMAKE_CODEBLOCKS_COMPILER_ID</item>
+      <item>CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES</item>
+      <item>CMAKE_CODELITE_USE_TARGETS</item>
+      <item>CMAKE_COLOR_MAKEFILE</item>
+      <item>CMAKE_COMMAND</item>
+      <item>CMAKE_COMPILER_2005</item>
+      <item>CMAKE_COMPILER_IS_GNUCC</item>
+      <item>CMAKE_COMPILER_IS_GNUCXX</item>
+      <item>CMAKE_COMPILER_IS_GNUG77</item>
+      <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_CONFIGURATION_TYPES</item>
+      <item>CMAKE_CROSSCOMPILING</item>
+      <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
+      <item>CMAKE_CTEST_COMMAND</item>
+      <item>CMAKE_CUDA_EXTENSIONS</item>
+      <item>CMAKE_CUDA_SEPARABLE_COMPILATION</item>
+      <item>CMAKE_CUDA_STANDARD</item>
+      <item>CMAKE_CUDA_STANDARD_REQUIRED</item>
+      <item>CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES</item>
+      <item>CMAKE_CURRENT_BINARY_DIR</item>
+      <item>CMAKE_CURRENT_LIST_DIR</item>
+      <item>CMAKE_CURRENT_LIST_FILE</item>
+      <item>CMAKE_CURRENT_LIST_LINE</item>
+      <item>CMAKE_CURRENT_SOURCE_DIR</item>
+      <item>CMAKE_CXX_COMPILE_FEATURES</item>
+      <item>CMAKE_CXX_EXTENSIONS</item>
+      <item>CMAKE_CXX_STANDARD</item>
+      <item>CMAKE_CXX_STANDARD_REQUIRED</item>
+      <item>CMAKE_C_COMPILE_FEATURES</item>
+      <item>CMAKE_C_EXTENSIONS</item>
+      <item>CMAKE_C_STANDARD</item>
+      <item>CMAKE_C_STANDARD_REQUIRED</item>
+      <item>CMAKE_DEBUG_POSTFIX</item>
+      <item>CMAKE_DEBUG_TARGET_PROPERTIES</item>
+      <item>CMAKE_DEPENDS_IN_PROJECT_ONLY</item>
+      <item>CMAKE_DIRECTORY_LABELS</item>
+      <item>CMAKE_DL_LIBS</item>
+      <item>CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES</item>
+      <item>CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT</item>
+      <item>CMAKE_ECLIPSE_MAKE_ARGUMENTS</item>
+      <item>CMAKE_ECLIPSE_VERSION</item>
+      <item>CMAKE_EDIT_COMMAND</item>
+      <item>CMAKE_ENABLE_EXPORTS</item>
+      <item>CMAKE_ERROR_DEPRECATED</item>
+      <item>CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_EXECUTABLE_SUFFIX</item>
+      <item>CMAKE_EXE_LINKER_FLAGS</item>
+      <item>CMAKE_EXE_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>
+      <item>CMAKE_EXPORT_NO_PACKAGE_REGISTRY</item>
+      <item>CMAKE_EXTRA_GENERATOR</item>
+      <item>CMAKE_EXTRA_INCLUDE_FILES</item>
+      <item>CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES</item>
+      <item>CMAKE_FIND_APPBUNDLE</item>
+      <item>CMAKE_FIND_FRAMEWORK</item>
+      <item>CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS</item>
+      <item>CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX</item>
+      <item>CMAKE_FIND_LIBRARY_PREFIXES</item>
+      <item>CMAKE_FIND_LIBRARY_SUFFIXES</item>
+      <item>CMAKE_FIND_NO_INSTALL_PREFIX</item>
+      <item>CMAKE_FIND_PACKAGE_NAME</item>
+      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_PACKAGE_SORT_DIRECTION</item>
+      <item>CMAKE_FIND_PACKAGE_SORT_ORDER</item>
+      <item>CMAKE_FIND_PACKAGE_WARN_NO_MODULE</item>
+      <item>CMAKE_FIND_ROOT_PATH</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</item>
+      <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_FRAMEWORK_PATH</item>
+      <item>CMAKE_Fortran_FORMAT</item>
+      <item>CMAKE_Fortran_MODDIR_DEFAULT</item>
+      <item>CMAKE_Fortran_MODDIR_FLAG</item>
+      <item>CMAKE_Fortran_MODOUT_FLAG</item>
+      <item>CMAKE_Fortran_MODULE_DIRECTORY</item>
+      <item>CMAKE_GENERATOR</item>
+      <item>CMAKE_GENERATOR_INSTANCE</item>
+      <item>CMAKE_GENERATOR_PLATFORM</item>
+      <item>CMAKE_GENERATOR_TOOLSET</item>
+      <item>CMAKE_GNUtoMS</item>
+      <item>CMAKE_HAS_ANSI_STRING_STREAM</item>
+      <item>CMAKE_HOME_DIRECTORY</item>
+      <item>CMAKE_HOST_APPLE</item>
+      <item>CMAKE_HOST_SOLARIS</item>
+      <item>CMAKE_HOST_SYSTEM</item>
+      <item>CMAKE_HOST_SYSTEM_NAME</item>
+      <item>CMAKE_HOST_SYSTEM_PROCESSOR</item>
+      <item>CMAKE_HOST_SYSTEM_VERSION</item>
+      <item>CMAKE_HOST_UNIX</item>
+      <item>CMAKE_HOST_WIN32</item>
+      <item>CMAKE_HP_PTHREADS_INIT</item>
+      <item>CMAKE_IGNORE_PATH</item>
+      <item>CMAKE_IMPORT_LIBRARY_PREFIX</item>
+      <item>CMAKE_IMPORT_LIBRARY_SUFFIX</item>
+      <item>CMAKE_INCLUDE_CURRENT_DIR</item>
+      <item>CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE</item>
+      <item>CMAKE_INCLUDE_DIRECTORIES_BEFORE</item>
+      <item>CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE</item>
+      <item>CMAKE_INCLUDE_PATH</item>
+      <item>CMAKE_INSTALL_BINDIR</item>
+      <item>CMAKE_INSTALL_DATADIR</item>
+      <item>CMAKE_INSTALL_DATAROOTDIR</item>
+      <item>CMAKE_INSTALL_DEBUG_LIBRARIES</item>
+      <item>CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY</item>
+      <item>CMAKE_INSTALL_DEFAULT_COMPONENT_NAME</item>
+      <item>CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
+      <item>CMAKE_INSTALL_DOCDIR</item>
+      <item>CMAKE_INSTALL_FULL_BINDIR</item>
+      <item>CMAKE_INSTALL_FULL_DATADIR</item>
+      <item>CMAKE_INSTALL_FULL_DATAROOTDIR</item>
+      <item>CMAKE_INSTALL_FULL_DOCDIR</item>
+      <item>CMAKE_INSTALL_FULL_INCLUDEDIR</item>
+      <item>CMAKE_INSTALL_FULL_INFODIR</item>
+      <item>CMAKE_INSTALL_FULL_LIBDIR</item>
+      <item>CMAKE_INSTALL_FULL_LIBEXECDIR</item>
+      <item>CMAKE_INSTALL_FULL_LOCALEDIR</item>
+      <item>CMAKE_INSTALL_FULL_LOCALSTATEDIR</item>
+      <item>CMAKE_INSTALL_FULL_MANDIR</item>
+      <item>CMAKE_INSTALL_FULL_OLDINCLUDEDIR</item>
+      <item>CMAKE_INSTALL_FULL_RUNSTATEDIR</item>
+      <item>CMAKE_INSTALL_FULL_SBINDIR</item>
+      <item>CMAKE_INSTALL_FULL_SHAREDSTATEDIR</item>
+      <item>CMAKE_INSTALL_FULL_SYSCONFDIR</item>
+      <item>CMAKE_INSTALL_INCLUDEDIR</item>
+      <item>CMAKE_INSTALL_INFODIR</item>
+      <item>CMAKE_INSTALL_LIBDIR</item>
+      <item>CMAKE_INSTALL_LIBEXECDIR</item>
+      <item>CMAKE_INSTALL_LOCALEDIR</item>
+      <item>CMAKE_INSTALL_LOCALSTATEDIR</item>
+      <item>CMAKE_INSTALL_MANDIR</item>
+      <item>CMAKE_INSTALL_MESSAGE</item>
+      <item>CMAKE_INSTALL_MFC_LIBRARIES</item>
+      <item>CMAKE_INSTALL_NAME_DIR</item>
+      <item>CMAKE_INSTALL_OLDINCLUDEDIR</item>
+      <item>CMAKE_INSTALL_OPENMP_LIBRARIES</item>
+      <item>CMAKE_INSTALL_PREFIX</item>
+      <item>CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT</item>
+      <item>CMAKE_INSTALL_RPATH</item>
+      <item>CMAKE_INSTALL_RPATH_USE_LINK_PATH</item>
+      <item>CMAKE_INSTALL_RUNSTATEDIR</item>
+      <item>CMAKE_INSTALL_SBINDIR</item>
+      <item>CMAKE_INSTALL_SHAREDSTATEDIR</item>
+      <item>CMAKE_INSTALL_SYSCONFDIR</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP</item>
+      <item>CMAKE_INSTALL_UCRT_LIBRARIES</item>
+      <item>CMAKE_INTERNAL_PLATFORM_ABI</item>
+      <item>CMAKE_INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>CMAKE_IOS_INSTALL_COMBINED</item>
+      <item>CMAKE_JOB_POOLS</item>
+      <item>CMAKE_JOB_POOL_COMPILE</item>
+      <item>CMAKE_JOB_POOL_LINK</item>
+      <item>CMAKE_LIBRARY_ARCHITECTURE</item>
+      <item>CMAKE_LIBRARY_ARCHITECTURE_REGEX</item>
+      <item>CMAKE_LIBRARY_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_LIBRARY_PATH</item>
+      <item>CMAKE_LIBRARY_PATH_FLAG</item>
+      <item>CMAKE_LINK_DEF_FILE_FLAG</item>
+      <item>CMAKE_LINK_DEPENDS_NO_SHARED</item>
+      <item>CMAKE_LINK_INTERFACE_LIBRARIES</item>
+      <item>CMAKE_LINK_LIBRARY_FILE_FLAG</item>
+      <item>CMAKE_LINK_LIBRARY_FLAG</item>
+      <item>CMAKE_LINK_LIBRARY_SUFFIX</item>
+      <item>CMAKE_LINK_SEARCH_END_STATIC</item>
+      <item>CMAKE_LINK_SEARCH_START_STATIC</item>
+      <item>CMAKE_LINK_WHAT_YOU_USE</item>
+      <item>CMAKE_MACOSX_BUNDLE</item>
+      <item>CMAKE_MACOSX_RPATH</item>
+      <item>CMAKE_MAJOR_VERSION</item>
+      <item>CMAKE_MAKE_PROGRAM</item>
+      <item>CMAKE_MATCH_COUNT</item>
+      <item>CMAKE_MFC_FLAG</item>
+      <item>CMAKE_MINIMUM_REQUIRED_VERSION</item>
+      <item>CMAKE_MINOR_VERSION</item>
+      <item>CMAKE_MODULE_LINKER_FLAGS</item>
+      <item>CMAKE_MODULE_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_MODULE_PATH</item>
+      <item>CMAKE_NETRC</item>
+      <item>CMAKE_NETRC_FILE</item>
+      <item>CMAKE_NINJA_OUTPUT_PATH_PREFIX</item>
+      <item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
+      <item>CMAKE_NO_ANSI_FOR_SCOPE</item>
+      <item>CMAKE_NO_ANSI_STREAM_HEADERS</item>
+      <item>CMAKE_NO_ANSI_STRING_STREAM</item>
+      <item>CMAKE_NO_BUILTIN_CHRPATH</item>
+      <item>CMAKE_NO_STD_NAMESPACE</item>
+      <item>CMAKE_NO_SYSTEM_FROM_IMPORTED</item>
+      <item>CMAKE_OBJECT_PATH_MAX</item>
+      <item>CMAKE_OSX_ARCHITECTURES</item>
+      <item>CMAKE_OSX_DEPLOYMENT_TARGET</item>
+      <item>CMAKE_OSX_SYSROOT</item>
+      <item>CMAKE_PARENT_LIST_FILE</item>
+      <item>CMAKE_PATCH_VERSION</item>
+      <item>CMAKE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_POSITION_INDEPENDENT_CODE</item>
+      <item>CMAKE_PREFIX_PATH</item>
+      <item>CMAKE_PROGRAM_PATH</item>
+      <item>CMAKE_PROJECT_DESCRIPTION</item>
+      <item>CMAKE_PROJECT_NAME</item>
+      <item>CMAKE_RANLIB</item>
+      <item>CMAKE_REQUIRED_DEFINITIONS</item>
+      <item>CMAKE_REQUIRED_FLAGS</item>
+      <item>CMAKE_REQUIRED_INCLUDES</item>
+      <item>CMAKE_REQUIRED_LIBRARIES</item>
+      <item>CMAKE_REQUIRED_QUIET</item>
+      <item>CMAKE_ROOT</item>
+      <item>CMAKE_RUNTIME_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_SCRIPT_MODE_FILE</item>
+      <item>CMAKE_SHARED_LIBRARY_PREFIX</item>
+      <item>CMAKE_SHARED_LIBRARY_SUFFIX</item>
+      <item>CMAKE_SHARED_LINKER_FLAGS</item>
+      <item>CMAKE_SHARED_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_SHARED_MODULE_PREFIX</item>
+      <item>CMAKE_SHARED_MODULE_SUFFIX</item>
+      <item>CMAKE_SIZEOF_VOID_P</item>
+      <item>CMAKE_SKIP_BUILD_RPATH</item>
+      <item>CMAKE_SKIP_INSTALL_ALL_DEPENDENCY</item>
+      <item>CMAKE_SKIP_INSTALL_RPATH</item>
+      <item>CMAKE_SKIP_INSTALL_RULES</item>
+      <item>CMAKE_SKIP_RPATH</item>
+      <item>CMAKE_SOURCE_DIR</item>
+      <item>CMAKE_STAGING_PREFIX</item>
+      <item>CMAKE_STATIC_LIBRARY_PREFIX</item>
+      <item>CMAKE_STATIC_LIBRARY_SUFFIX</item>
+      <item>CMAKE_STATIC_LINKER_FLAGS</item>
+      <item>CMAKE_STATIC_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS</item>
+      <item>CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE</item>
+      <item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>
+      <item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>
+      <item>CMAKE_SWIG_FLAGS</item>
+      <item>CMAKE_SWIG_OUTDIR</item>
+      <item>CMAKE_SYSROOT</item>
+      <item>CMAKE_SYSROOT_COMPILE</item>
+      <item>CMAKE_SYSROOT_LINK</item>
+      <item>CMAKE_SYSTEM</item>
+      <item>CMAKE_SYSTEM_APPBUNDLE_PATH</item>
+      <item>CMAKE_SYSTEM_FRAMEWORK_PATH</item>
+      <item>CMAKE_SYSTEM_IGNORE_PATH</item>
+      <item>CMAKE_SYSTEM_INCLUDE_PATH</item>
+      <item>CMAKE_SYSTEM_LIBRARY_PATH</item>
+      <item>CMAKE_SYSTEM_NAME</item>
+      <item>CMAKE_SYSTEM_PREFIX_PATH</item>
+      <item>CMAKE_SYSTEM_PROCESSOR</item>
+      <item>CMAKE_SYSTEM_PROGRAM_PATH</item>
+      <item>CMAKE_SYSTEM_VERSION</item>
+      <item>CMAKE_Swift_LANGUAGE_VERSION</item>
+      <item>CMAKE_THREAD_LIBS_INIT</item>
+      <item>CMAKE_THREAD_PREFER_PTHREAD</item>
+      <item>CMAKE_TOOLCHAIN_FILE</item>
+      <item>CMAKE_TRY_COMPILE_CONFIGURATION</item>
+      <item>CMAKE_TRY_COMPILE_PLATFORM_VARIABLES</item>
+      <item>CMAKE_TRY_COMPILE_TARGET_TYPE</item>
+      <item>CMAKE_TWEAK_VERSION</item>
+      <item>CMAKE_USER_MAKE_RULES_OVERRIDE</item>
+      <item>CMAKE_USE_PTHREADS_INIT</item>
+      <item>CMAKE_USE_RELATIVE_PATHS</item>
+      <item>CMAKE_USE_SPROC_INIT</item>
+      <item>CMAKE_USE_WIN32_THREADS_INIT</item>
+      <item>CMAKE_VERBOSE_MAKEFILE</item>
+      <item>CMAKE_VERSION</item>
+      <item>CMAKE_VISIBILITY_INLINES_HIDDEN</item>
+      <item>CMAKE_VS_DEVENV_COMMAND</item>
+      <item>CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</item>
+      <item>CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD</item>
+      <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
+      <item>CMAKE_VS_MSBUILD_COMMAND</item>
+      <item>CMAKE_VS_NsightTegra_VERSION</item>
+      <item>CMAKE_VS_PLATFORM_NAME</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET_CUDA</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE</item>
+      <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION</item>
+      <item>CMAKE_WARN_DEPRECATED</item>
+      <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_WIN32_EXECUTABLE</item>
+      <item>CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS</item>
+      <item>CMAKE_XCODE_GENERATE_SCHEME</item>
+      <item>CMAKE_XCODE_PLATFORM_TOOLSET</item>
+      <item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
+      <item>CPACK_ARCHIVE_COMPONENT_INSTALL</item>
+      <item>CPACK_ARCHIVE_FILE_NAME</item>
+      <item>CPACK_BUILD_SOURCE_DIRS</item>
+      <item>CPACK_BUNDLE_APPLE_CERT_APP</item>
+      <item>CPACK_BUNDLE_APPLE_CODESIGN_FILES</item>
+      <item>CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER</item>
+      <item>CPACK_BUNDLE_APPLE_ENTITLEMENTS</item>
+      <item>CPACK_BUNDLE_ICON</item>
+      <item>CPACK_BUNDLE_NAME</item>
+      <item>CPACK_BUNDLE_PLIST</item>
+      <item>CPACK_BUNDLE_STARTUP_COMMAND</item>
+      <item>CPACK_CMAKE_GENERATOR</item>
+      <item>CPACK_COMMAND_CODESIGN</item>
+      <item>CPACK_COMMAND_HDIUTIL</item>
+      <item>CPACK_COMMAND_PKGBUILD</item>
+      <item>CPACK_COMMAND_PRODUCTBUILD</item>
+      <item>CPACK_COMMAND_REZ</item>
+      <item>CPACK_COMMAND_SETFILE</item>
+      <item>CPACK_COMPONENTS_ALL</item>
+      <item>CPACK_COMPONENTS_GROUPING</item>
+      <item>CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY</item>
+      <item>CPACK_CREATE_DESKTOP_LINKS</item>
+      <item>CPACK_CYGWIN_BUILD_SCRIPT</item>
+      <item>CPACK_CYGWIN_PATCH_FILE</item>
+      <item>CPACK_CYGWIN_PATCH_NUMBER</item>
+      <item>CPACK_DEBIAN_ARCHIVE_TYPE</item>
+      <item>CPACK_DEBIAN_COMPRESSION_TYPE</item>
+      <item>CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS</item>
+      <item>CPACK_DEBIAN_FILE_NAME</item>
+      <item>CPACK_DEBIAN_PACKAGE_ARCHITECTURE</item>
+      <item>CPACK_DEBIAN_PACKAGE_BREAKS</item>
+      <item>CPACK_DEBIAN_PACKAGE_CONFLICTS</item>
+      <item>CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA</item>
+      <item>CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION</item>
+      <item>CPACK_DEBIAN_PACKAGE_DEBUG</item>
+      <item>CPACK_DEBIAN_PACKAGE_DEPENDS</item>
+      <item>CPACK_DEBIAN_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_DEBIAN_PACKAGE_ENHANCES</item>
+      <item>CPACK_DEBIAN_PACKAGE_EPOCH</item>
+      <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS</item>
+      <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY</item>
+      <item>CPACK_DEBIAN_PACKAGE_HOMEPAGE</item>
+      <item>CPACK_DEBIAN_PACKAGE_MAINTAINER</item>
+      <item>CPACK_DEBIAN_PACKAGE_NAME</item>
+      <item>CPACK_DEBIAN_PACKAGE_PREDEPENDS</item>
+      <item>CPACK_DEBIAN_PACKAGE_PRIORITY</item>
+      <item>CPACK_DEBIAN_PACKAGE_PROVIDES</item>
+      <item>CPACK_DEBIAN_PACKAGE_RECOMMENDS</item>
+      <item>CPACK_DEBIAN_PACKAGE_RELEASE</item>
+      <item>CPACK_DEBIAN_PACKAGE_REPLACES</item>
+      <item>CPACK_DEBIAN_PACKAGE_SECTION</item>
+      <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS</item>
+      <item>CPACK_DEBIAN_PACKAGE_SOURCE</item>
+      <item>CPACK_DEBIAN_PACKAGE_SUGGESTS</item>
+      <item>CPACK_DEBIAN_PACKAGE_VERSION</item>
+      <item>CPACK_DEB_COMPONENT_INSTALL</item>
+      <item>CPACK_DMG_BACKGROUND_IMAGE</item>
+      <item>CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK</item>
+      <item>CPACK_DMG_DS_STORE</item>
+      <item>CPACK_DMG_DS_STORE_SETUP_SCRIPT</item>
+      <item>CPACK_DMG_FORMAT</item>
+      <item>CPACK_DMG_SLA_DIR</item>
+      <item>CPACK_DMG_SLA_LANGUAGES</item>
+      <item>CPACK_DMG_VOLUME_NAME</item>
+      <item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CPACK_GENERATOR</item>
+      <item>CPACK_IFW_ADMIN_TARGET_DIRECTORY</item>
+      <item>CPACK_IFW_BINARYCREATOR_EXECUTABLE</item>
+      <item>CPACK_IFW_DEVTOOL_EXECUTABLE</item>
+      <item>CPACK_IFW_DOWNLOAD_ALL</item>
+      <item>CPACK_IFW_FRAMEWORK_VERSION</item>
+      <item>CPACK_IFW_INSTALLERBASE_EXECUTABLE</item>
+      <item>CPACK_IFW_PACKAGES_DIRECTORIES</item>
+      <item>CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS</item>
+      <item>CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH</item>
+      <item>CPACK_IFW_PACKAGE_BACKGROUND</item>
+      <item>CPACK_IFW_PACKAGE_BANNER</item>
+      <item>CPACK_IFW_PACKAGE_CONTROL_SCRIPT</item>
+      <item>CPACK_IFW_PACKAGE_GROUP</item>
+      <item>CPACK_IFW_PACKAGE_ICON</item>
+      <item>CPACK_IFW_PACKAGE_LOGO</item>
+      <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE</item>
+      <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME</item>
+      <item>CPACK_IFW_PACKAGE_NAME</item>
+      <item>CPACK_IFW_PACKAGE_PUBLISHER</item>
+      <item>CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR</item>
+      <item>CPACK_IFW_PACKAGE_RESOURCES</item>
+      <item>CPACK_IFW_PACKAGE_START_MENU_DIRECTORY</item>
+      <item>CPACK_IFW_PACKAGE_TITLE</item>
+      <item>CPACK_IFW_PACKAGE_TITLE_COLOR</item>
+      <item>CPACK_IFW_PACKAGE_WATERMARK</item>
+      <item>CPACK_IFW_PACKAGE_WINDOW_ICON</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_STYLE</item>
+      <item>CPACK_IFW_PRODUCT_URL</item>
+      <item>CPACK_IFW_REPOGEN_EXECUTABLE</item>
+      <item>CPACK_IFW_REPOSITORIES_ALL</item>
+      <item>CPACK_IFW_RESOLVE_DUPLICATE_NAMES</item>
+      <item>CPACK_IFW_ROOT</item>
+      <item>CPACK_IFW_TARGET_DIRECTORY</item>
+      <item>CPACK_IFW_VERBOSE</item>
+      <item>CPACK_INCLUDE_TOPLEVEL_DIRECTORY</item>
+      <item>CPACK_INSTALLED_DIRECTORIES</item>
+      <item>CPACK_INSTALL_CMAKE_PROJECTS</item>
+      <item>CPACK_INSTALL_COMMANDS</item>
+      <item>CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
+      <item>CPACK_INSTALL_SCRIPT</item>
+      <item>CPACK_MONOLITHIC_INSTALL</item>
+      <item>CPACK_NSIS_COMPRESSOR</item>
+      <item>CPACK_NSIS_CONTACT</item>
+      <item>CPACK_NSIS_CREATE_ICONS_EXTRA</item>
+      <item>CPACK_NSIS_DELETE_ICONS_EXTRA</item>
+      <item>CPACK_NSIS_DISPLAY_NAME</item>
+      <item>CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL</item>
+      <item>CPACK_NSIS_EXECUTABLES_DIRECTORY</item>
+      <item>CPACK_NSIS_EXTRA_INSTALL_COMMANDS</item>
+      <item>CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS</item>
+      <item>CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS</item>
+      <item>CPACK_NSIS_HELP_LINK</item>
+      <item>CPACK_NSIS_INSTALLED_ICON_NAME</item>
+      <item>CPACK_NSIS_INSTALLER_MUI_ICON_CODE</item>
+      <item>CPACK_NSIS_INSTALL_ROOT</item>
+      <item>CPACK_NSIS_MENU_LINKS</item>
+      <item>CPACK_NSIS_MODIFY_PATH</item>
+      <item>CPACK_NSIS_MUI_FINISHPAGE_RUN</item>
+      <item>CPACK_NSIS_MUI_ICON</item>
+      <item>CPACK_NSIS_MUI_UNIICON</item>
+      <item>CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP</item>
+      <item>CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP</item>
+      <item>CPACK_NSIS_PACKAGE_NAME</item>
+      <item>CPACK_NSIS_URL_INFO_ABOUT</item>
+      <item>CPACK_OSX_PACKAGE_VERSION</item>
+      <item>CPACK_OUTPUT_CONFIG_FILE</item>
+      <item>CPACK_PACKAGE_CHECKSUM</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_ICON</item>
+      <item>CPACK_PACKAGE_INSTALL_DIRECTORY</item>
+      <item>CPACK_PACKAGE_INSTALL_REGISTRY_KEY</item>
+      <item>CPACK_PACKAGE_NAME</item>
+      <item>CPACK_PACKAGE_VENDOR</item>
+      <item>CPACK_PACKAGE_VERSION</item>
+      <item>CPACK_PACKAGE_VERSION_MAJOR</item>
+      <item>CPACK_PACKAGE_VERSION_MINOR</item>
+      <item>CPACK_PACKAGE_VERSION_PATCH</item>
+      <item>CPACK_PACKAGING_INSTALL_PREFIX</item>
+      <item>CPACK_PKGBUILD_IDENTITY_NAME</item>
+      <item>CPACK_PKGBUILD_KEYCHAIN_PATH</item>
+      <item>CPACK_PRODUCTBUILD_IDENTITY_NAME</item>
+      <item>CPACK_PRODUCTBUILD_KEYCHAIN_PATH</item>
+      <item>CPACK_PRODUCTBUILD_RESOURCES_DIR</item>
+      <item>CPACK_PROJECT_CONFIG_FILE</item>
+      <item>CPACK_RESOURCE_FILE_LICENSE</item>
+      <item>CPACK_RESOURCE_FILE_README</item>
+      <item>CPACK_RESOURCE_FILE_WELCOME</item>
+      <item>CPACK_RPM_ADDITIONAL_MAN_DIRS</item>
+      <item>CPACK_RPM_BUILDREQUIRES</item>
+      <item>CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX</item>
+      <item>CPACK_RPM_CHANGELOG_FILE</item>
+      <item>CPACK_RPM_COMPONENT_INSTALL</item>
+      <item>CPACK_RPM_COMPRESSION_TYPE</item>
+      <item>CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS</item>
+      <item>CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION</item>
+      <item>CPACK_RPM_DEBUGINFO_FILE_NAME</item>
+      <item>CPACK_RPM_DEBUGINFO_PACKAGE</item>
+      <item>CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE</item>
+      <item>CPACK_RPM_DEFAULT_DIR_PERMISSIONS</item>
+      <item>CPACK_RPM_DEFAULT_FILE_PERMISSIONS</item>
+      <item>CPACK_RPM_DEFAULT_GROUP</item>
+      <item>CPACK_RPM_DEFAULT_USER</item>
+      <item>CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST</item>
+      <item>CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION</item>
+      <item>CPACK_RPM_FILE_NAME</item>
+      <item>CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE</item>
+      <item>CPACK_RPM_INSTALL_WITH_EXEC</item>
+      <item>CPACK_RPM_MAIN_COMPONENT</item>
+      <item>CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION</item>
+      <item>CPACK_RPM_PACKAGE_ARCHITECTURE</item>
+      <item>CPACK_RPM_PACKAGE_AUTOPROV</item>
+      <item>CPACK_RPM_PACKAGE_AUTOREQ</item>
+      <item>CPACK_RPM_PACKAGE_AUTOREQPROV</item>
+      <item>CPACK_RPM_PACKAGE_CONFLICTS</item>
+      <item>CPACK_RPM_PACKAGE_DEBUG</item>
+      <item>CPACK_RPM_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_RPM_PACKAGE_EPOCH</item>
+      <item>CPACK_RPM_PACKAGE_GROUP</item>
+      <item>CPACK_RPM_PACKAGE_LICENSE</item>
+      <item>CPACK_RPM_PACKAGE_NAME</item>
+      <item>CPACK_RPM_PACKAGE_OBSOLETES</item>
+      <item>CPACK_RPM_PACKAGE_PROVIDES</item>
+      <item>CPACK_RPM_PACKAGE_RELEASE</item>
+      <item>CPACK_RPM_PACKAGE_RELEASE_DIST</item>
+      <item>CPACK_RPM_PACKAGE_RELOCATABLE</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_POST</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_POSTUN</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_PRE</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_PREUN</item>
+      <item>CPACK_RPM_PACKAGE_SOURCES</item>
+      <item>CPACK_RPM_PACKAGE_SUGGESTS</item>
+      <item>CPACK_RPM_PACKAGE_SUMMARY</item>
+      <item>CPACK_RPM_PACKAGE_URL</item>
+      <item>CPACK_RPM_PACKAGE_VENDOR</item>
+      <item>CPACK_RPM_PACKAGE_VERSION</item>
+      <item>CPACK_RPM_POST_INSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_PRE_INSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_RELOCATION_PATHS</item>
+      <item>CPACK_RPM_SOURCE_PKG_BUILD_PARAMS</item>
+      <item>CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX</item>
+      <item>CPACK_RPM_SPEC_INSTALL_POST</item>
+      <item>CPACK_RPM_SPEC_MORE_DEFINE</item>
+      <item>CPACK_RPM_USER_BINARY_SPECFILE</item>
+      <item>CPACK_RPM_USER_FILELIST</item>
+      <item>CPACK_SET_DESTDIR</item>
+      <item>CPACK_SOURCE_GENERATOR</item>
+      <item>CPACK_SOURCE_IGNORE_FILES</item>
+      <item>CPACK_SOURCE_OUTPUT_CONFIG_FILE</item>
+      <item>CPACK_SOURCE_PACKAGE_FILE_NAME</item>
+      <item>CPACK_SOURCE_STRIP_FILES</item>
+      <item>CPACK_STRIP_FILES</item>
+      <item>CPACK_SYSTEM_NAME</item>
+      <item>CPACK_TOPLEVEL_TAG</item>
+      <item>CPACK_VERBATIM_VARIABLES</item>
+      <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CPACK_WIX_CMAKE_PACKAGE_REGISTRY</item>
+      <item>CPACK_WIX_CULTURES</item>
+      <item>CPACK_WIX_EXTENSIONS</item>
+      <item>CPACK_WIX_EXTRA_OBJECTS</item>
+      <item>CPACK_WIX_EXTRA_SOURCES</item>
+      <item>CPACK_WIX_LICENSE_RTF</item>
+      <item>CPACK_WIX_PATCH_FILE</item>
+      <item>CPACK_WIX_PRODUCT_GUID</item>
+      <item>CPACK_WIX_PRODUCT_ICON</item>
+      <item>CPACK_WIX_PROGRAM_MENU_FOLDER</item>
+      <item>CPACK_WIX_ROOT</item>
+      <item>CPACK_WIX_ROOT_FEATURE_DESCRIPTION</item>
+      <item>CPACK_WIX_ROOT_FEATURE_TITLE</item>
+      <item>CPACK_WIX_ROOT_FOLDER_ID</item>
+      <item>CPACK_WIX_SKIP_PROGRAM_FOLDER</item>
+      <item>CPACK_WIX_TEMPLATE</item>
+      <item>CPACK_WIX_UI_BANNER</item>
+      <item>CPACK_WIX_UI_DIALOG</item>
+      <item>CPACK_WIX_UI_REF</item>
+      <item>CPACK_WIX_UPGRADE_GUID</item>
+      <item>CTEST_BINARY_DIRECTORY</item>
+      <item>CTEST_BUILD_COMMAND</item>
+      <item>CTEST_BUILD_NAME</item>
+      <item>CTEST_BZR_COMMAND</item>
+      <item>CTEST_BZR_UPDATE_OPTIONS</item>
+      <item>CTEST_CHANGE_ID</item>
+      <item>CTEST_CHECKOUT_COMMAND</item>
+      <item>CTEST_CONFIGURATION_TYPE</item>
+      <item>CTEST_CONFIGURE_COMMAND</item>
+      <item>CTEST_COVERAGE_COMMAND</item>
+      <item>CTEST_COVERAGE_EXTRA_FLAGS</item>
+      <item>CTEST_CURL_OPTIONS</item>
+      <item>CTEST_CUSTOM_COVERAGE_EXCLUDE</item>
+      <item>CTEST_CUSTOM_ERROR_EXCEPTION</item>
+      <item>CTEST_CUSTOM_ERROR_MATCH</item>
+      <item>CTEST_CUSTOM_ERROR_POST_CONTEXT</item>
+      <item>CTEST_CUSTOM_ERROR_PRE_CONTEXT</item>
+      <item>CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE</item>
+      <item>CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS</item>
+      <item>CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS</item>
+      <item>CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE</item>
+      <item>CTEST_CUSTOM_MEMCHECK_IGNORE</item>
+      <item>CTEST_CUSTOM_POST_MEMCHECK</item>
+      <item>CTEST_CUSTOM_POST_TEST</item>
+      <item>CTEST_CUSTOM_PRE_MEMCHECK</item>
+      <item>CTEST_CUSTOM_PRE_TEST</item>
+      <item>CTEST_CUSTOM_TEST_IGNORE</item>
+      <item>CTEST_CUSTOM_WARNING_EXCEPTION</item>
+      <item>CTEST_CUSTOM_WARNING_MATCH</item>
+      <item>CTEST_CVS_CHECKOUT</item>
+      <item>CTEST_CVS_COMMAND</item>
+      <item>CTEST_CVS_UPDATE_OPTIONS</item>
+      <item>CTEST_DROP_LOCATION</item>
+      <item>CTEST_DROP_METHOD</item>
+      <item>CTEST_DROP_SITE</item>
+      <item>CTEST_DROP_SITE_CDASH</item>
+      <item>CTEST_DROP_SITE_PASSWORD</item>
+      <item>CTEST_DROP_SITE_USER</item>
+      <item>CTEST_EXTRA_COVERAGE_GLOB</item>
+      <item>CTEST_GIT_COMMAND</item>
+      <item>CTEST_GIT_INIT_SUBMODULES</item>
+      <item>CTEST_GIT_UPDATE_CUSTOM</item>
+      <item>CTEST_GIT_UPDATE_OPTIONS</item>
+      <item>CTEST_HG_COMMAND</item>
+      <item>CTEST_HG_UPDATE_OPTIONS</item>
+      <item>CTEST_LABELS_FOR_SUBPROJECTS</item>
+      <item>CTEST_MEMORYCHECK_COMMAND</item>
+      <item>CTEST_MEMORYCHECK_COMMAND_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_SANITIZER_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_SUPPRESSIONS_FILE</item>
+      <item>CTEST_MEMORYCHECK_TYPE</item>
+      <item>CTEST_NIGHTLY_START_TIME</item>
+      <item>CTEST_P4_CLIENT</item>
+      <item>CTEST_P4_COMMAND</item>
+      <item>CTEST_P4_OPTIONS</item>
+      <item>CTEST_P4_UPDATE_OPTIONS</item>
+      <item>CTEST_SCP_COMMAND</item>
+      <item>CTEST_SITE</item>
+      <item>CTEST_SOURCE_DIRECTORY</item>
+      <item>CTEST_SVN_COMMAND</item>
+      <item>CTEST_SVN_OPTIONS</item>
+      <item>CTEST_SVN_UPDATE_OPTIONS</item>
+      <item>CTEST_TEST_LOAD</item>
+      <item>CTEST_TEST_TIMEOUT</item>
+      <item>CTEST_TRIGGER_SITE</item>
+      <item>CTEST_UPDATE_COMMAND</item>
+      <item>CTEST_UPDATE_OPTIONS</item>
+      <item>CTEST_UPDATE_VERSION_ONLY</item>
+      <item>CTEST_USE_LAUNCHERS</item>
+      <item>CYGWIN</item>
+      <item>EXECUTABLE_OUTPUT_PATH</item>
+      <item>ExternalData_BINARY_ROOT</item>
+      <item>ExternalData_CUSTOM_ERROR</item>
+      <item>ExternalData_CUSTOM_FILE</item>
+      <item>ExternalData_CUSTOM_LOCATION</item>
+      <item>ExternalData_LINK_CONTENT</item>
+      <item>ExternalData_NO_SYMLINKS</item>
+      <item>ExternalData_OBJECT_STORES</item>
+      <item>ExternalData_SERIES_MATCH</item>
+      <item>ExternalData_SERIES_PARSE</item>
+      <item>ExternalData_SERIES_PARSE_NUMBER</item>
+      <item>ExternalData_SERIES_PARSE_PREFIX</item>
+      <item>ExternalData_SERIES_PARSE_SUFFIX</item>
+      <item>ExternalData_SOURCE_ROOT</item>
+      <item>ExternalData_TIMEOUT_ABSOLUTE</item>
+      <item>ExternalData_TIMEOUT_INACTIVITY</item>
+      <item>ExternalData_URL_TEMPLATES</item>
+      <item>GHS-MULTI</item>
+      <item>GRAPHVIZ_EXECUTABLES</item>
+      <item>GRAPHVIZ_EXTERNAL_LIBS</item>
+      <item>GRAPHVIZ_GENERATE_PER_TARGET</item>
+      <item>GRAPHVIZ_GRAPH_HEADER</item>
+      <item>GRAPHVIZ_GRAPH_NAME</item>
+      <item>GRAPHVIZ_GRAPH_TYPE</item>
+      <item>GRAPHVIZ_IGNORE_TARGETS</item>
+      <item>GRAPHVIZ_MODULE_LIBS</item>
+      <item>GRAPHVIZ_NODE_PREFIX</item>
+      <item>GRAPHVIZ_SHARED_LIBS</item>
+      <item>GRAPHVIZ_STATIC_LIBS</item>
+      <item>LIBRARY_OUTPUT_PATH</item>
+      <item>MINGW</item>
+      <item>MSVC</item>
+      <item>MSVC10</item>
+      <item>MSVC11</item>
+      <item>MSVC12</item>
+      <item>MSVC14</item>
+      <item>MSVC60</item>
+      <item>MSVC70</item>
+      <item>MSVC71</item>
+      <item>MSVC80</item>
+      <item>MSVC90</item>
+      <item>MSVC_IDE</item>
+      <item>MSVC_VERSION</item>
+      <item>PACKAGE_FIND_NAME</item>
+      <item>PACKAGE_FIND_VERSION</item>
+      <item>PACKAGE_FIND_VERSION_COUNT</item>
+      <item>PACKAGE_FIND_VERSION_MAJOR</item>
+      <item>PACKAGE_FIND_VERSION_MINOR</item>
+      <item>PACKAGE_FIND_VERSION_PATCH</item>
+      <item>PACKAGE_FIND_VERSION_TWEAK</item>
+      <item>PACKAGE_VERSION</item>
+      <item>PACKAGE_VERSION_COMPATIBLE</item>
+      <item>PACKAGE_VERSION_EXACT</item>
+      <item>PACKAGE_VERSION_UNSUITABLE</item>
+      <item>PROJECT_BINARY_DIR</item>
+      <item>PROJECT_DESCRIPTION</item>
+      <item>PROJECT_NAME</item>
+      <item>PROJECT_SOURCE_DIR</item>
+      <item>PROJECT_VERSION</item>
+      <item>PROJECT_VERSION_MAJOR</item>
+      <item>PROJECT_VERSION_MINOR</item>
+      <item>PROJECT_VERSION_PATCH</item>
+      <item>PROJECT_VERSION_TWEAK</item>
+      <item>QTIFWDIR</item>
+      <item>THREADS_PREFER_PTHREAD_FLAG</item>
+      <item>UNIX</item>
+      <item>WIN32</item>
+      <item>WINCE</item>
+      <item>WINDOWS_PHONE</item>
+      <item>WINDOWS_STORE</item>
+      <item>XCODE</item>
+      <item>XCODE_VERSION</item>
+    </list>
+    <list name="global-properties">
+      <item>ALLOW_DUPLICATE_CUSTOM_TARGETS</item>
+      <item>AUTOGEN_SOURCE_GROUP</item>
+      <item>AUTOGEN_TARGETS_FOLDER</item>
+      <item>AUTOMOC_SOURCE_GROUP</item>
+      <item>AUTOMOC_TARGETS_FOLDER</item>
+      <item>AUTORCC_SOURCE_GROUP</item>
+      <item>CMAKE_CXX_KNOWN_FEATURES</item>
+      <item>CMAKE_C_KNOWN_FEATURES</item>
+      <item>DEBUG_CONFIGURATIONS</item>
+      <item>DISABLED_FEATURES</item>
+      <item>ECLIPSE_EXTRA_NATURES</item>
+      <item>ENABLED_FEATURES</item>
+      <item>ENABLED_LANGUAGES</item>
+      <item>FIND_LIBRARY_USE_LIB32_PATHS</item>
+      <item>FIND_LIBRARY_USE_LIB64_PATHS</item>
+      <item>FIND_LIBRARY_USE_LIBX32_PATHS</item>
+      <item>FIND_LIBRARY_USE_OPENBSD_VERSIONING</item>
+      <item>FeatureSummary_DEFAULT_PKG_TYPE</item>
+      <item>FeatureSummary_PKG_TYPES</item>
+      <item>FeatureSummary_REQUIRED_PKG_TYPES</item>
+      <item>GENERATOR_IS_MULTI_CONFIG</item>
+      <item>GLOBAL_DEPENDS_DEBUG_MODE</item>
+      <item>GLOBAL_DEPENDS_NO_CYCLES</item>
+      <item>IN_TRY_COMPILE</item>
+      <item>JOB_POOLS</item>
+      <item>PACKAGES_FOUND</item>
+      <item>PACKAGES_NOT_FOUND</item>
+      <item>PREDEFINED_TARGETS_FOLDER</item>
+      <item>REPORT_UNDEFINED_PROPERTIES</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>RULE_MESSAGES</item>
+      <item>TARGET_ARCHIVES_MAY_BE_SHARED_LIBS</item>
+      <item>TARGET_MESSAGES</item>
+      <item>TARGET_SUPPORTS_SHARED_LIBS</item>
+      <item>USE_FOLDERS</item>
+      <item>XCODE_EMIT_EFFECTIVE_PLATFORM_NAME</item>
+    </list>
+    <list name="directory-properties">
+      <item>ADDITIONAL_MAKE_CLEAN_FILES</item>
+      <item>BINARY_DIR</item>
+      <item>BUILDSYSTEM_TARGETS</item>
+      <item>CACHE_VARIABLES</item>
+      <item>CLEAN_NO_CUSTOM</item>
+      <item>CMAKE_CONFIGURE_DEPENDS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>DEFINITIONS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>INCLUDE_REGULAR_EXPRESSION</item>
+      <item>INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>LABELS</item>
+      <item>LINK_DIRECTORIES</item>
+      <item>LISTFILE_STACK</item>
+      <item>MACROS</item>
+      <item>PARENT_DIRECTORY</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>SOURCE_DIR</item>
+      <item>SUBDIRECTORIES</item>
+      <item>TEST_INCLUDE_FILE</item>
+      <item>TEST_INCLUDE_FILES</item>
+      <item>VARIABLES</item>
+      <item>VS_STARTUP_PROJECT</item>
+    </list>
+    <list name="target-properties">
+      <item>ALIASED_TARGET</item>
+      <item>ANDROID_ANT_ADDITIONAL_OPTIONS</item>
+      <item>ANDROID_API</item>
+      <item>ANDROID_API_MIN</item>
+      <item>ANDROID_ARCH</item>
+      <item>ANDROID_ASSETS_DIRECTORIES</item>
+      <item>ANDROID_GUI</item>
+      <item>ANDROID_JAR_DEPENDENCIES</item>
+      <item>ANDROID_JAR_DIRECTORIES</item>
+      <item>ANDROID_JAVA_SOURCE_DIR</item>
+      <item>ANDROID_NATIVE_LIB_DEPENDENCIES</item>
+      <item>ANDROID_NATIVE_LIB_DIRECTORIES</item>
+      <item>ANDROID_PROCESS_MAX</item>
+      <item>ANDROID_PROGUARD</item>
+      <item>ANDROID_PROGUARD_CONFIG_PATH</item>
+      <item>ANDROID_SECURE_PROPS_PATH</item>
+      <item>ANDROID_SKIP_ANT_STEP</item>
+      <item>ANDROID_STL_TYPE</item>
+      <item>ARCHIVE_OUTPUT_DIRECTORY</item>
+      <item>ARCHIVE_OUTPUT_NAME</item>
+      <item>AUTOGEN_BUILD_DIR</item>
+      <item>AUTOGEN_TARGET_DEPENDS</item>
+      <item>AUTOMOC</item>
+      <item>AUTOMOC_DEPEND_FILTERS</item>
+      <item>AUTOMOC_MOC_OPTIONS</item>
+      <item>AUTORCC</item>
+      <item>AUTORCC_OPTIONS</item>
+      <item>AUTOUIC</item>
+      <item>AUTOUIC_OPTIONS</item>
+      <item>AUTOUIC_SEARCH_PATHS</item>
+      <item>BINARY_DIR</item>
+      <item>BUILD_RPATH</item>
+      <item>BUILD_WITH_INSTALL_NAME_DIR</item>
+      <item>BUILD_WITH_INSTALL_RPATH</item>
+      <item>BUNDLE</item>
+      <item>BUNDLE_EXTENSION</item>
+      <item>COMPATIBLE_INTERFACE_BOOL</item>
+      <item>COMPATIBLE_INTERFACE_NUMBER_MAX</item>
+      <item>COMPATIBLE_INTERFACE_NUMBER_MIN</item>
+      <item>COMPATIBLE_INTERFACE_STRING</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_FEATURES</item>
+      <item>COMPILE_FLAGS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>COMPILE_PDB_NAME</item>
+      <item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CROSSCOMPILING_EMULATOR</item>
+      <item>CUDA_EXTENSIONS</item>
+      <item>CUDA_PTX_COMPILATION</item>
+      <item>CUDA_RESOLVE_DEVICE_SYMBOLS</item>
+      <item>CUDA_SEPARABLE_COMPILATION</item>
+      <item>CUDA_STANDARD</item>
+      <item>CUDA_STANDARD_REQUIRED</item>
+      <item>CXX_EXTENSIONS</item>
+      <item>CXX_STANDARD</item>
+      <item>CXX_STANDARD_REQUIRED</item>
+      <item>C_EXTENSIONS</item>
+      <item>C_STANDARD</item>
+      <item>C_STANDARD_REQUIRED</item>
+      <item>DEFINE_SYMBOL</item>
+      <item>DEPLOYMENT_REMOTE_DIRECTORY</item>
+      <item>ENABLE_EXPORTS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXCLUDE_FROM_DEFAULT_BUILD</item>
+      <item>EXPORT_NAME</item>
+      <item>EchoString</item>
+      <item>FOLDER</item>
+      <item>FRAMEWORK</item>
+      <item>FRAMEWORK_VERSION</item>
+      <item>Fortran_FORMAT</item>
+      <item>Fortran_MODULE_DIRECTORY</item>
+      <item>GENERATOR_FILE_NAME</item>
+      <item>GNUtoMS</item>
+      <item>HAS_CXX</item>
+      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
+      <item>IMPORTED</item>
+      <item>IMPORTED_CONFIGURATIONS</item>
+      <item>IMPORTED_GLOBAL</item>
+      <item>IMPORTED_IMPLIB</item>
+      <item>IMPORTED_LIBNAME</item>
+      <item>IMPORTED_LINK_DEPENDENT_LIBRARIES</item>
+      <item>IMPORTED_LINK_INTERFACE_LANGUAGES</item>
+      <item>IMPORTED_LINK_INTERFACE_LIBRARIES</item>
+      <item>IMPORTED_LINK_INTERFACE_MULTIPLICITY</item>
+      <item>IMPORTED_LOCATION</item>
+      <item>IMPORTED_NO_SONAME</item>
+      <item>IMPORTED_OBJECTS</item>
+      <item>IMPORTED_SONAME</item>
+      <item>IMPORT_PREFIX</item>
+      <item>IMPORT_SUFFIX</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>INSTALL_NAME_DIR</item>
+      <item>INSTALL_RPATH</item>
+      <item>INSTALL_RPATH_USE_LINK_PATH</item>
+      <item>INTERFACE_AUTOUIC_OPTIONS</item>
+      <item>INTERFACE_COMPILE_DEFINITIONS</item>
+      <item>INTERFACE_COMPILE_FEATURES</item>
+      <item>INTERFACE_COMPILE_OPTIONS</item>
+      <item>INTERFACE_INCLUDE_DIRECTORIES</item>
+      <item>INTERFACE_LINK_LIBRARIES</item>
+      <item>INTERFACE_POSITION_INDEPENDENT_CODE</item>
+      <item>INTERFACE_SOURCES</item>
+      <item>INTERFACE_SYSTEM_INCLUDE_DIRECTORIES</item>
+      <item>INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>IOS_INSTALL_COMBINED</item>
+      <item>JOB_POOL_COMPILE</item>
+      <item>JOB_POOL_LINK</item>
+      <item>LABELS</item>
+      <item>LIBRARY_OUTPUT_DIRECTORY</item>
+      <item>LIBRARY_OUTPUT_NAME</item>
+      <item>LINKER_LANGUAGE</item>
+      <item>LINK_DEPENDS</item>
+      <item>LINK_DEPENDS_NO_SHARED</item>
+      <item>LINK_FLAGS</item>
+      <item>LINK_INTERFACE_LIBRARIES</item>
+      <item>LINK_INTERFACE_MULTIPLICITY</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_SEARCH_END_STATIC</item>
+      <item>LINK_SEARCH_START_STATIC</item>
+      <item>LINK_WHAT_YOU_USE</item>
+      <item>LOCATION</item>
+      <item>MACOSX_BUNDLE</item>
+      <item>MACOSX_BUNDLE_INFO_PLIST</item>
+      <item>MACOSX_FRAMEWORK_INFO_PLIST</item>
+      <item>MACOSX_RPATH</item>
+      <item>MANUALLY_ADDED_DEPENDENCIES</item>
+      <item>NAME</item>
+      <item>NO_SONAME</item>
+      <item>NO_SYSTEM_FROM_IMPORTED</item>
+      <item>OSX_ARCHITECTURES</item>
+      <item>OUTPUT_NAME</item>
+      <item>PDB_NAME</item>
+      <item>PDB_OUTPUT_DIRECTORY</item>
+      <item>POSITION_INDEPENDENT_CODE</item>
+      <item>PREFIX</item>
+      <item>PRIVATE_HEADER</item>
+      <item>PROJECT_LABEL</item>
+      <item>PUBLIC_HEADER</item>
+      <item>RESOURCE</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>RUNTIME_OUTPUT_DIRECTORY</item>
+      <item>RUNTIME_OUTPUT_NAME</item>
+      <item>SKIP_BUILD_RPATH</item>
+      <item>SOURCES</item>
+      <item>SOURCE_DIR</item>
+      <item>SOVERSION</item>
+      <item>STATIC_LIBRARY_FLAGS</item>
+      <item>SUFFIX</item>
+      <item>TYPE</item>
+      <item>VERSION</item>
+      <item>VISIBILITY_INLINES_HIDDEN</item>
+      <item>VS_CONFIGURATION_TYPE</item>
+      <item>VS_DEBUGGER_WORKING_DIRECTORY</item>
+      <item>VS_DESKTOP_EXTENSIONS_VERSION</item>
+      <item>VS_DOTNET_REFERENCES</item>
+      <item>VS_DOTNET_REFERENCES_COPY_LOCAL</item>
+      <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>
+      <item>VS_GLOBAL_KEYWORD</item>
+      <item>VS_GLOBAL_PROJECT_TYPES</item>
+      <item>VS_GLOBAL_ROOTNAMESPACE</item>
+      <item>VS_IOT_EXTENSIONS_VERSION</item>
+      <item>VS_IOT_STARTUP_TASK</item>
+      <item>VS_KEYWORD</item>
+      <item>VS_MOBILE_EXTENSIONS_VERSION</item>
+      <item>VS_SCC_AUXPATH</item>
+      <item>VS_SCC_LOCALPATH</item>
+      <item>VS_SCC_PROJECTNAME</item>
+      <item>VS_SCC_PROVIDER</item>
+      <item>VS_SDK_REFERENCES</item>
+      <item>VS_USER_PROPS</item>
+      <item>VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>
+      <item>VS_WINRT_COMPONENT</item>
+      <item>VS_WINRT_EXTENSIONS</item>
+      <item>VS_WINRT_REFERENCES</item>
+      <item>WIN32_EXECUTABLE</item>
+      <item>WINDOWS_EXPORT_ALL_SYMBOLS</item>
+      <item>XCODE_EXPLICIT_FILE_TYPE</item>
+      <item>XCODE_PRODUCT_TYPE</item>
+      <item>XCTEST</item>
+    </list>
+    <list name="source-properties">
+      <item>ABSTRACT</item>
+      <item>AUTORCC_OPTIONS</item>
+      <item>AUTOUIC_OPTIONS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_FLAGS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>EXTERNAL_OBJECT</item>
+      <item>Fortran_FORMAT</item>
+      <item>GENERATED</item>
+      <item>HEADER_FILE_ONLY</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>KEEP_EXTENSION</item>
+      <item>LABELS</item>
+      <item>LANGUAGE</item>
+      <item>LOCATION</item>
+      <item>MACOSX_PACKAGE_LOCATION</item>
+      <item>OBJECT_DEPENDS</item>
+      <item>OBJECT_OUTPUTS</item>
+      <item>SKIP_AUTOGEN</item>
+      <item>SKIP_AUTOMOC</item>
+      <item>SKIP_AUTORCC</item>
+      <item>SKIP_AUTOUIC</item>
+      <item>SYMBOLIC</item>
+      <item>VS_COPY_TO_OUT_DIR</item>
+      <item>VS_DEPLOYMENT_CONTENT</item>
+      <item>VS_DEPLOYMENT_LOCATION</item>
+      <item>VS_INCLUDE_IN_VSIX</item>
+      <item>VS_RESOURCE_GENERATOR</item>
+      <item>VS_SHADER_DISABLE_OPTIMIZATIONS</item>
+      <item>VS_SHADER_ENABLE_DEBUG</item>
+      <item>VS_SHADER_ENTRYPOINT</item>
+      <item>VS_SHADER_FLAGS</item>
+      <item>VS_SHADER_MODEL</item>
+      <item>VS_SHADER_OUTPUT_HEADER_FILE</item>
+      <item>VS_SHADER_TYPE</item>
+      <item>VS_SHADER_VARIABLE_NAME</item>
+      <item>VS_TOOL_OVERRIDE</item>
+      <item>VS_XAML_TYPE</item>
+      <item>WRAP_EXCLUDE</item>
+      <item>XCODE_EXPLICIT_FILE_TYPE</item>
+      <item>XCODE_FILE_ATTRIBUTES</item>
+      <item>XCODE_LAST_KNOWN_FILE_TYPE</item>
+    </list>
+    <list name="test-properties">
+      <item>ATTACHED_FILES</item>
+      <item>ATTACHED_FILES_ON_FAIL</item>
+      <item>COST</item>
+      <item>DEPENDS</item>
+      <item>DISABLED</item>
+      <item>ENVIRONMENT</item>
+      <item>FAIL_REGULAR_EXPRESSION</item>
+      <item>FIXTURES_CLEANUP</item>
+      <item>FIXTURES_REQUIRED</item>
+      <item>FIXTURES_SETUP</item>
+      <item>LABELS</item>
+      <item>MEASUREMENT</item>
+      <item>PASS_REGULAR_EXPRESSION</item>
+      <item>PROCESSORS</item>
+      <item>REQUIRED_FILES</item>
+      <item>RESOURCE_LOCK</item>
+      <item>RUN_SERIAL</item>
+      <item>SKIP_RETURN_CODE</item>
+      <item>TIMEOUT</item>
+      <item>TIMEOUT_AFTER_MATCH</item>
+      <item>WILL_FAIL</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="cache-properties">
+      <item>ADVANCED</item>
+      <item>HELPSTRING</item>
+      <item>MODIFIED</item>
+      <item>STRINGS</item>
+      <item>TYPE</item>
+      <item>VALUE</item>
+    </list>
+    <list name="install-properties">
+      <item>CPACK_DESKTOP_SHORTCUTS</item>
+      <item>CPACK_NEVER_OVERWRITE</item>
+      <item>CPACK_PERMANENT</item>
+      <item>CPACK_STARTUP_SHORTCUTS</item>
+      <item>CPACK_START_MENU_SHORTCUTS</item>
+      <item>CPACK_WIX_ACL</item>
+    </list>
+
+    <list name="generator-expressions">
+      <item>0</item>
+      <item>1</item>
+      <item>AND</item>
+      <item>ANGLE-R</item>
+      <item>BOOL</item>
+      <item>BUILD_INTERFACE</item>
+      <item>COMMA</item>
+      <item>COMPILE_FEATURES</item>
+      <item>COMPILE_LANGUAGE</item>
+      <item>CONFIG</item>
+      <item>CXX_COMPILER_ID</item>
+      <item>CXX_COMPILER_VERSION</item>
+      <item>C_COMPILER_ID</item>
+      <item>C_COMPILER_VERSION</item>
+      <item>EQUAL</item>
+      <item>IF</item>
+      <item>INSTALL_INTERFACE</item>
+      <item>INSTALL_PREFIX</item>
+      <item>JOIN</item>
+      <item>LINK_ONLY</item>
+      <item>LOWER_CASE</item>
+      <item>MAKE_C_IDENTIFIER</item>
+      <item>NOT</item>
+      <item>OR</item>
+      <item>PLATFORM_ID</item>
+      <item>SEMICOLON</item>
+      <item>SHELL_PATH</item>
+      <item>STREQUAL</item>
+      <item>TARGET_BUNDLE_CONTENT_DIR</item>
+      <item>TARGET_BUNDLE_DIR</item>
+      <item>TARGET_FILE</item>
+      <item>TARGET_FILE_DIR</item>
+      <item>TARGET_FILE_NAME</item>
+      <item>TARGET_LINKER_FILE</item>
+      <item>TARGET_LINKER_FILE_DIR</item>
+      <item>TARGET_LINKER_FILE_NAME</item>
+      <item>TARGET_NAME</item>
+      <item>TARGET_OBJECTS</item>
+      <item>TARGET_PDB_FILE</item>
+      <item>TARGET_PDB_FILE_DIR</item>
+      <item>TARGET_PDB_FILE_NAME</item>
+      <item>TARGET_POLICY</item>
+      <item>TARGET_PROPERTY</item>
+      <item>TARGET_SONAME_FILE</item>
+      <item>TARGET_SONAME_FILE_DIR</item>
+      <item>TARGET_SONAME_FILE_NAME</item>
+      <item>UPPER_CASE</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_GREATER_EQUAL</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_LESS_EQUAL</item>
+    </list>
+
+    <contexts>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+        <DetectSpaces/>
+        <WordDetect String="break" insensitive="true" attribute="Command" context="break_ctx" />
+        <WordDetect String="cmake_host_system_information" insensitive="true" attribute="Command" context="cmake_host_system_information_ctx" />
+        <WordDetect String="cmake_minimum_required" insensitive="true" attribute="Command" context="cmake_minimum_required_ctx" />
+        <WordDetect String="cmake_parse_arguments" insensitive="true" attribute="Command" context="cmake_parse_arguments_ctx" />
+        <WordDetect String="cmake_policy" insensitive="true" attribute="Command" context="cmake_policy_ctx" />
+        <WordDetect String="configure_file" insensitive="true" attribute="Command" context="configure_file_ctx" />
+        <WordDetect String="continue" insensitive="true" attribute="Command" context="continue_ctx" />
+        <WordDetect String="elseif" insensitive="true" attribute="Command" context="elseif_ctx" />
+        <WordDetect String="else" insensitive="true" attribute="Command" context="else_ctx" />
+        <WordDetect String="endforeach" insensitive="true" attribute="Command" context="endforeach_ctx" />
+        <WordDetect String="endfunction" insensitive="true" attribute="Command" context="endfunction_ctx" />
+        <WordDetect String="endif" insensitive="true" attribute="Command" context="endif_ctx" />
+        <WordDetect String="endmacro" insensitive="true" attribute="Command" context="endmacro_ctx" />
+        <WordDetect String="endwhile" insensitive="true" attribute="Command" context="endwhile_ctx" />
+        <WordDetect String="execute_process" insensitive="true" attribute="Command" context="execute_process_ctx" />
+        <WordDetect String="file" insensitive="true" attribute="Command" context="file_ctx" />
+        <WordDetect String="find_file" insensitive="true" attribute="Command" context="find_file_ctx" />
+        <WordDetect String="find_library" insensitive="true" attribute="Command" context="find_library_ctx" />
+        <WordDetect String="find_package" insensitive="true" attribute="Command" context="find_package_ctx" />
+        <WordDetect String="find_path" insensitive="true" attribute="Command" context="find_path_ctx" />
+        <WordDetect String="find_program" insensitive="true" attribute="Command" context="find_program_ctx" />
+        <WordDetect String="foreach" insensitive="true" attribute="Command" context="foreach_ctx" />
+        <WordDetect String="function" insensitive="true" attribute="Command" context="function_ctx" />
+        <WordDetect String="get_cmake_property" insensitive="true" attribute="Command" context="get_cmake_property_ctx" />
+        <WordDetect String="get_directory_property" insensitive="true" attribute="Command" context="get_directory_property_ctx" />
+        <WordDetect String="get_filename_component" insensitive="true" attribute="Command" context="get_filename_component_ctx" />
+        <WordDetect String="get_property" insensitive="true" attribute="Command" context="get_property_ctx" />
+        <WordDetect String="if" insensitive="true" attribute="Command" context="if_ctx" />
+        <WordDetect String="include" insensitive="true" attribute="Command" context="include_ctx" />
+        <WordDetect String="include_guard" insensitive="true" attribute="Command" context="include_guard_ctx" />
+        <WordDetect String="list" insensitive="true" attribute="Command" context="list_ctx" />
+        <WordDetect String="macro" insensitive="true" attribute="Command" context="macro_ctx" />
+        <WordDetect String="mark_as_advanced" insensitive="true" attribute="Command" context="mark_as_advanced_ctx" />
+        <WordDetect String="math" insensitive="true" attribute="Command" context="math_ctx" />
+        <WordDetect String="message" insensitive="true" attribute="Command" context="message_ctx" />
+        <WordDetect String="option" insensitive="true" attribute="Command" context="option_ctx" />
+        <WordDetect String="return" insensitive="true" attribute="Command" context="return_ctx" />
+        <WordDetect String="separate_arguments" insensitive="true" attribute="Command" context="separate_arguments_ctx" />
+        <WordDetect String="set_directory_properties" insensitive="true" attribute="Command" context="set_directory_properties_ctx" />
+        <WordDetect String="set_property" insensitive="true" attribute="Command" context="set_property_ctx" />
+        <WordDetect String="set" insensitive="true" attribute="Command" context="set_ctx" />
+        <WordDetect String="site_name" insensitive="true" attribute="Command" context="site_name_ctx" />
+        <WordDetect String="string" insensitive="true" attribute="Command" context="string_ctx" />
+        <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_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" />
+        <WordDetect String="add_definitions" insensitive="true" attribute="Command" context="add_definitions_ctx" />
+        <WordDetect String="add_dependencies" insensitive="true" attribute="Command" context="add_dependencies_ctx" />
+        <WordDetect String="add_executable" insensitive="true" attribute="Command" context="add_executable_ctx" />
+        <WordDetect String="add_library" insensitive="true" attribute="Command" context="add_library_ctx" />
+        <WordDetect String="add_subdirectory" insensitive="true" attribute="Command" context="add_subdirectory_ctx" />
+        <WordDetect String="add_test" insensitive="true" attribute="Command" context="add_test_ctx" />
+        <WordDetect String="aux_source_directory" insensitive="true" attribute="Command" context="aux_source_directory_ctx" />
+        <WordDetect String="build_command" insensitive="true" attribute="Command" context="build_command_ctx" />
+        <WordDetect String="create_test_sourcelist" insensitive="true" attribute="Command" context="create_test_sourcelist_ctx" />
+        <WordDetect String="define_property" insensitive="true" attribute="Command" context="define_property_ctx" />
+        <WordDetect String="enable_language" insensitive="true" attribute="Command" context="enable_language_ctx" />
+        <WordDetect String="enable_testing" insensitive="true" attribute="Command" context="enable_testing_ctx" />
+        <WordDetect String="export" insensitive="true" attribute="Command" context="export_ctx" />
+        <WordDetect String="fltk_wrap_ui" insensitive="true" attribute="Command" context="fltk_wrap_ui_ctx" />
+        <WordDetect String="get_source_file_property" insensitive="true" attribute="Command" context="get_source_file_property_ctx" />
+        <WordDetect String="get_target_property" insensitive="true" attribute="Command" context="get_target_property_ctx" />
+        <WordDetect String="get_test_property" insensitive="true" attribute="Command" context="get_test_property_ctx" />
+        <WordDetect String="include_directories" insensitive="true" attribute="Command" context="include_directories_ctx" />
+        <WordDetect String="include_external_msproject" insensitive="true" attribute="Command" context="include_external_msproject_ctx" />
+        <WordDetect String="include_regular_expression" insensitive="true" attribute="Command" context="include_regular_expression_ctx" />
+        <WordDetect String="install" insensitive="true" attribute="Command" context="install_ctx" />
+        <WordDetect String="link_directories" insensitive="true" attribute="Command" context="link_directories_ctx" />
+        <WordDetect String="link_libraries" insensitive="true" attribute="Command" context="link_libraries_ctx" />
+        <WordDetect String="load_cache" insensitive="true" attribute="Command" context="load_cache_ctx" />
+        <WordDetect String="project" insensitive="true" attribute="Command" context="project_ctx" />
+        <WordDetect String="qt_wrap_cpp" insensitive="true" attribute="Command" context="qt_wrap_cpp_ctx" />
+        <WordDetect String="qt_wrap_ui" insensitive="true" attribute="Command" context="qt_wrap_ui_ctx" />
+        <WordDetect String="remove_definitions" insensitive="true" attribute="Command" context="remove_definitions_ctx" />
+        <WordDetect String="set_source_files_properties" insensitive="true" attribute="Command" context="set_source_files_properties_ctx" />
+        <WordDetect String="set_target_properties" insensitive="true" attribute="Command" context="set_target_properties_ctx" />
+        <WordDetect String="set_tests_properties" insensitive="true" attribute="Command" context="set_tests_properties_ctx" />
+        <WordDetect String="source_group" insensitive="true" attribute="Command" context="source_group_ctx" />
+        <WordDetect String="target_compile_definitions" insensitive="true" attribute="Command" context="target_compile_definitions_ctx" />
+        <WordDetect String="target_compile_features" insensitive="true" attribute="Command" context="target_compile_features_ctx" />
+        <WordDetect String="target_compile_options" insensitive="true" attribute="Command" context="target_compile_options_ctx" />
+        <WordDetect String="target_include_directories" insensitive="true" attribute="Command" context="target_include_directories_ctx" />
+        <WordDetect String="target_link_libraries" insensitive="true" attribute="Command" context="target_link_libraries_ctx" />
+        <WordDetect String="target_sources" insensitive="true" attribute="Command" context="target_sources_ctx" />
+        <WordDetect String="try_compile" insensitive="true" attribute="Command" context="try_compile_ctx" />
+        <WordDetect String="try_run" insensitive="true" attribute="Command" context="try_run_ctx" />
+        <WordDetect String="ctest_build" insensitive="true" attribute="Command" context="ctest_build_ctx" />
+        <WordDetect String="ctest_configure" insensitive="true" attribute="Command" context="ctest_configure_ctx" />
+        <WordDetect String="ctest_coverage" insensitive="true" attribute="Command" context="ctest_coverage_ctx" />
+        <WordDetect String="ctest_empty_binary_directory" insensitive="true" attribute="Command" context="ctest_empty_binary_directory_ctx" />
+        <WordDetect String="ctest_memcheck" insensitive="true" attribute="Command" context="ctest_memcheck_ctx" />
+        <WordDetect String="ctest_read_custom_files" insensitive="true" attribute="Command" context="ctest_read_custom_files_ctx" />
+        <WordDetect String="ctest_run_script" insensitive="true" attribute="Command" context="ctest_run_script_ctx" />
+        <WordDetect String="ctest_sleep" insensitive="true" attribute="Command" context="ctest_sleep_ctx" />
+        <WordDetect String="ctest_start" insensitive="true" attribute="Command" context="ctest_start_ctx" />
+        <WordDetect String="ctest_submit" insensitive="true" attribute="Command" context="ctest_submit_ctx" />
+        <WordDetect String="ctest_test" insensitive="true" attribute="Command" context="ctest_test_ctx" />
+        <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" />
+        <DetectChar attribute="Comment" context="Comment" char="#" />
+        <DetectIdentifier attribute="User Function/Macro" context="User Function" />
+        <!-- Include keywords matching for language autocompleter work -->
+        <keyword attribute="Command" context="#stay" String="commands" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="break_ctx">
+        <DetectChar attribute="Normal Text" context="break_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="break_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_host_system_information_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_host_system_information_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_host_system_information_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="cmake_host_system_information_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="cmake_host_system_information_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_minimum_required_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="cmake_minimum_required_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_parse_arguments_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_parse_arguments_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_parse_arguments_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="cmake_parse_arguments_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_policy_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="cmake_policy_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="cmake_policy_sargs" />
+        <IncludeRules context="User Function Args" />
+        <!-- NOTE Handle CMP<NNN> as a special arg of `cmake_policy` command -->
+        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="configure_file_ctx">
+        <DetectChar attribute="Normal Text" context="configure_file_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="configure_file_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="configure_file_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="configure_file_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="continue_ctx">
+        <DetectChar attribute="Normal Text" context="continue_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="continue_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx">
+        <DetectChar attribute="Normal Text" context="elseif_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx_op">
+        <DetectChar attribute="Normal Text" context="elseif_ctx_op_nested" char="(" />
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx_op_nested">
+        <IncludeRules context="EndCmdPop" />
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="else_ctx">
+        <DetectChar attribute="Normal Text" context="else_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="else_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endforeach_ctx">
+        <DetectChar attribute="Normal Text" context="endforeach_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endforeach_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endfunction_ctx">
+        <DetectChar attribute="Normal Text" context="endfunction_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endfunction_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endif_ctx">
+        <DetectChar attribute="Normal Text" context="endif_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endif_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endmacro_ctx">
+        <DetectChar attribute="Normal Text" context="endmacro_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endmacro_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endwhile_ctx">
+        <DetectChar attribute="Normal Text" context="endwhile_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="endwhile_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx">
+        <DetectChar attribute="Normal Text" context="execute_process_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="execute_process_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="execute_process_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="file_ctx">
+        <DetectChar attribute="Normal Text" context="file_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="file_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="file_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="file_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx">
+        <DetectChar attribute="Normal Text" context="find_file_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="find_file_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx">
+        <DetectChar attribute="Normal Text" context="find_library_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="find_library_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx">
+        <DetectChar attribute="Normal Text" context="find_package_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="find_package_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_path_ctx">
+        <DetectChar attribute="Normal Text" context="find_path_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_path_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="find_path_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_program_ctx">
+        <DetectChar attribute="Normal Text" context="find_program_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_program_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="find_program_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx">
+        <DetectChar attribute="Normal Text" context="foreach_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="foreach_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="function_ctx">
+        <DetectChar attribute="Normal Text" context="function_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="function_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_cmake_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_cmake_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_cmake_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Property" context="#stay" String="global-properties" />
+        <IncludeRules context="Detect More global-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_directory_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_directory_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_directory_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="get_directory_property_nargs" />
+        <keyword attribute="Property" context="#stay" String="directory-properties" />
+        <IncludeRules context="Detect More directory-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_filename_component_ctx">
+        <DetectChar attribute="Normal Text" context="get_filename_component_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_filename_component_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="get_filename_component_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="get_property_nargs" />
+        <keyword attribute="Property" context="#stay" String="cache-properties" />
+        <keyword attribute="Property" context="#stay" String="directory-properties" />
+        <IncludeRules context="Detect More directory-properties" />
+        <keyword attribute="Property" context="#stay" String="global-properties" />
+        <IncludeRules context="Detect More global-properties" />
+        <keyword attribute="Property" context="#stay" String="install-properties" />
+        <keyword attribute="Property" context="#stay" String="source-properties" />
+        <IncludeRules context="Detect More source-properties" />
+        <keyword attribute="Property" context="#stay" String="target-properties" />
+        <IncludeRules context="Detect More target-properties" />
+        <keyword attribute="Property" context="#stay" String="test-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx">
+        <DetectChar attribute="Normal Text" context="if_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx_op">
+        <DetectChar attribute="Normal Text" context="if_ctx_op_nested" char="(" />
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="if_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx_op_nested">
+        <IncludeRules context="EndCmdPop" />
+        <keyword attribute="Named Args" context="#stay" String="if_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_ctx">
+        <DetectChar attribute="Normal Text" context="include_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="include_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_guard_ctx">
+        <DetectChar attribute="Normal Text" context="include_guard_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_guard_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="include_guard_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="list_ctx">
+        <DetectChar attribute="Normal Text" context="list_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="list_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="list_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="macro_ctx">
+        <DetectChar attribute="Normal Text" context="macro_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="macro_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="mark_as_advanced_ctx">
+        <DetectChar attribute="Normal Text" context="mark_as_advanced_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="mark_as_advanced_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="mark_as_advanced_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="math_ctx">
+        <DetectChar attribute="Normal Text" context="math_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="math_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="math_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="message_ctx">
+        <DetectChar attribute="Normal Text" context="message_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="message_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="message_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="option_ctx">
+        <DetectChar attribute="Normal Text" context="option_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="option_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="return_ctx">
+        <DetectChar attribute="Normal Text" context="return_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="return_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="separate_arguments_ctx">
+        <DetectChar attribute="Normal Text" context="separate_arguments_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="separate_arguments_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="separate_arguments_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_directory_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_directory_properties_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_directory_properties_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="set_directory_properties_nargs" />
+        <keyword attribute="Property" context="#stay" String="cache-properties" />
+        <keyword attribute="Property" context="#stay" String="directory-properties" />
+        <IncludeRules context="Detect More directory-properties" />
+        <keyword attribute="Property" context="#stay" String="global-properties" />
+        <IncludeRules context="Detect More global-properties" />
+        <keyword attribute="Property" context="#stay" String="install-properties" />
+        <keyword attribute="Property" context="#stay" String="source-properties" />
+        <IncludeRules context="Detect More source-properties" />
+        <keyword attribute="Property" context="#stay" String="target-properties" />
+        <IncludeRules context="Detect More target-properties" />
+        <keyword attribute="Property" context="#stay" String="test-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_property_ctx">
+        <DetectChar attribute="Normal Text" context="set_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="set_property_nargs" />
+        <keyword attribute="Property" context="#stay" String="cache-properties" />
+        <keyword attribute="Property" context="#stay" String="directory-properties" />
+        <IncludeRules context="Detect More directory-properties" />
+        <keyword attribute="Property" context="#stay" String="global-properties" />
+        <IncludeRules context="Detect More global-properties" />
+        <keyword attribute="Property" context="#stay" String="install-properties" />
+        <keyword attribute="Property" context="#stay" String="source-properties" />
+        <IncludeRules context="Detect More source-properties" />
+        <keyword attribute="Property" context="#stay" String="target-properties" />
+        <IncludeRules context="Detect More target-properties" />
+        <keyword attribute="Property" context="#stay" String="test-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_ctx">
+        <DetectChar attribute="Normal Text" context="set_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="set_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="set_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="site_name_ctx">
+        <DetectChar attribute="Normal Text" context="site_name_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="site_name_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="string_ctx">
+        <DetectChar attribute="Normal Text" context="string_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="string_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="string_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="unset_ctx">
+        <DetectChar attribute="Normal Text" context="unset_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="unset_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="unset_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="variable_watch_ctx">
+        <DetectChar attribute="Normal Text" context="variable_watch_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="variable_watch_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx">
+        <DetectChar attribute="Normal Text" context="while_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx_op">
+        <DetectChar attribute="Normal Text" context="while_ctx_op_nested" char="(" />
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="while_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx_op_nested">
+        <IncludeRules context="EndCmdPop" />
+        <keyword attribute="Named Args" context="#stay" String="while_nargs" />
+        <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>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_options_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx">
+        <DetectChar attribute="Normal Text" context="add_custom_command_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="add_custom_command_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx">
+        <DetectChar attribute="Normal Text" context="add_custom_target_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="add_custom_target_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_definitions_ctx">
+        <DetectChar attribute="Normal Text" context="add_definitions_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_definitions_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_dependencies_ctx">
+        <DetectChar attribute="Normal Text" context="add_dependencies_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_dependencies_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx">
+        <DetectChar attribute="Normal Text" context="add_executable_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="add_executable_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx">
+        <DetectChar attribute="Normal Text" context="add_library_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="add_library_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_subdirectory_ctx">
+        <DetectChar attribute="Normal Text" context="add_subdirectory_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_subdirectory_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="add_subdirectory_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx">
+        <DetectChar attribute="Normal Text" context="add_test_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="add_test_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="aux_source_directory_ctx">
+        <DetectChar attribute="Normal Text" context="aux_source_directory_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="aux_source_directory_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="build_command_ctx">
+        <DetectChar attribute="Normal Text" context="build_command_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="build_command_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="build_command_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_test_sourcelist_ctx">
+        <DetectChar attribute="Normal Text" context="create_test_sourcelist_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_test_sourcelist_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="create_test_sourcelist_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="define_property_ctx">
+        <DetectChar attribute="Normal Text" context="define_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="define_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="define_property_nargs" />
+        <keyword attribute="Property" context="#stay" String="cache-properties" />
+        <keyword attribute="Property" context="#stay" String="directory-properties" />
+        <IncludeRules context="Detect More directory-properties" />
+        <keyword attribute="Property" context="#stay" String="global-properties" />
+        <IncludeRules context="Detect More global-properties" />
+        <keyword attribute="Property" context="#stay" String="install-properties" />
+        <keyword attribute="Property" context="#stay" String="source-properties" />
+        <IncludeRules context="Detect More source-properties" />
+        <keyword attribute="Property" context="#stay" String="target-properties" />
+        <IncludeRules context="Detect More target-properties" />
+        <keyword attribute="Property" context="#stay" String="test-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="enable_language_ctx">
+        <DetectChar attribute="Normal Text" context="enable_language_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="enable_language_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="enable_language_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="enable_language_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="enable_testing_ctx">
+        <DetectChar attribute="Normal Text" context="enable_testing_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="enable_testing_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_ctx">
+        <DetectChar attribute="Normal Text" context="export_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="export_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="fltk_wrap_ui_ctx">
+        <DetectChar attribute="Normal Text" context="fltk_wrap_ui_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="fltk_wrap_ui_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_source_file_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Property" context="#stay" String="source-properties" />
+        <IncludeRules context="Detect More source-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_target_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_target_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_target_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Property" context="#stay" String="target-properties" />
+        <IncludeRules context="Detect More target-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_test_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_test_property_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_test_property_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Property" context="#stay" String="test-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_directories_ctx">
+        <DetectChar attribute="Normal Text" context="include_directories_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_directories_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="include_directories_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_external_msproject_ctx">
+        <DetectChar attribute="Normal Text" context="include_external_msproject_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_external_msproject_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="include_external_msproject_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_regular_expression_ctx">
+        <DetectChar attribute="Normal Text" context="include_regular_expression_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_regular_expression_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_ctx">
+        <DetectChar attribute="Normal Text" context="install_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="install_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="install_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx">
+        <DetectChar attribute="Normal Text" context="link_directories_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_libraries_ctx">
+        <DetectChar attribute="Normal Text" context="link_libraries_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_libraries_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="link_libraries_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="load_cache_ctx">
+        <DetectChar attribute="Normal Text" context="load_cache_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="load_cache_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="load_cache_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="project_ctx">
+        <DetectChar attribute="Normal Text" context="project_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="project_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="project_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="project_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_cpp_ctx">
+        <DetectChar attribute="Normal Text" context="qt_wrap_cpp_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_cpp_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_ui_ctx">
+        <DetectChar attribute="Normal Text" context="qt_wrap_ui_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_ui_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="remove_definitions_ctx">
+        <DetectChar attribute="Normal Text" context="remove_definitions_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="remove_definitions_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_source_files_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_source_files_properties_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_source_files_properties_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="set_source_files_properties_nargs" />
+        <keyword attribute="Property" context="#stay" String="source-properties" />
+        <IncludeRules context="Detect More source-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_target_properties_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="set_target_properties_nargs" />
+        <keyword attribute="Property" context="#stay" String="target-properties" />
+        <IncludeRules context="Detect More target-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_tests_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_tests_properties_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_tests_properties_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="set_tests_properties_nargs" />
+        <keyword attribute="Property" context="#stay" String="test-properties" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="source_group_ctx">
+        <DetectChar attribute="Normal Text" context="source_group_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="source_group_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="source_group_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx">
+        <DetectChar attribute="Normal Text" context="target_compile_definitions_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="target_compile_definitions_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx">
+        <DetectChar attribute="Normal Text" context="target_compile_features_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="target_compile_features_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="target_compile_features_sargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx">
+        <DetectChar attribute="Normal Text" context="target_compile_options_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="target_compile_options_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx">
+        <DetectChar attribute="Normal Text" context="target_include_directories_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="target_include_directories_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx">
+        <DetectChar attribute="Normal Text" context="target_link_libraries_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="target_link_libraries_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx">
+        <DetectChar attribute="Normal Text" context="target_sources_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="target_sources_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_compile_ctx">
+        <DetectChar attribute="Normal Text" context="try_compile_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_compile_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="try_compile_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_run_ctx">
+        <DetectChar attribute="Normal Text" context="try_run_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_run_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="try_run_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_build_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_build_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_build_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_build_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_configure_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_configure_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_configure_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_configure_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_coverage_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_coverage_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_empty_binary_directory_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_empty_binary_directory_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_empty_binary_directory_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_memcheck_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_memcheck_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_memcheck_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_memcheck_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_read_custom_files_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_read_custom_files_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_read_custom_files_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_run_script_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_run_script_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_run_script_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_run_script_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_sleep_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_sleep_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_sleep_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_start_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_start_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_start_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_start_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_submit_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_submit_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_submit_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_submit_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_test_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_test_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_test_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_test_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_update_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_update_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_update_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_update_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_upload_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_upload_ctx_op" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_upload_ctx_op">
+        <IncludeRules context="EndCmdPop2" />
+        <keyword attribute="Named Args" context="#stay" String="ctest_upload_nargs" />
+        <IncludeRules context="User Function Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More global-properties">
+        <RegExpr attribute="Property" context="#stay" String="\bFeatureSummary_&id_re;_DESCRIPTION\b" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More directory-properties">
+        <RegExpr attribute="Property" context="#stay" String="\bINTERPROCEDURAL_OPTIMIZATION_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bVS_GLOBAL_SECTION_POST_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bVS_GLOBAL_SECTION_PRE_&id_re;\b" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More target-properties">
+        <RegExpr attribute="Property" context="#stay" String="\bARCHIVE_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bARCHIVE_OUTPUT_NAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bCOMPILE_PDB_NAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bCOMPILE_PDB_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_OUTPUT_NAME\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_POSTFIX\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bEXCLUDE_FROM_DEFAULT_BUILD_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_IMPLIB_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LIBNAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LINK_DEPENDENT_LIBRARIES_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LINK_INTERFACE_LANGUAGES_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LINK_INTERFACE_LIBRARIES_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LINK_INTERFACE_MULTIPLICITY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LOCATION_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_NO_SONAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_OBJECTS_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bIMPORTED_SONAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bINTERPROCEDURAL_OPTIMIZATION_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_CLANG_TIDY\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_COMPILER_LAUNCHER\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_CPPCHECK\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_CPPLINT\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_INCLUDE_WHAT_YOU_USE\b" />
+        <RegExpr attribute="Property" context="#stay" String="\b&id_re;_VISIBILITY_PRESET\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bLIBRARY_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bLIBRARY_OUTPUT_NAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bLINK_FLAGS_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bLINK_INTERFACE_LIBRARIES_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bLINK_INTERFACE_MULTIPLICITY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bLOCATION_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bMAP_IMPORTED_CONFIG_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bOSX_ARCHITECTURES_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bOUTPUT_NAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bPDB_NAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bPDB_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bRUNTIME_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bRUNTIME_OUTPUT_NAME_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bSTATIC_LIBRARY_FLAGS_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bVS_DOTNET_REFERENCE_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bVS_DOTNET_REFERENCEPROP_&id_re;_TAG_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bVS_GLOBAL_&id_re;\b" />
+        <RegExpr attribute="Property" context="#stay" String="\bXCODE_ATTRIBUTE_&id_re;\b" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More source-properties">
+        <RegExpr attribute="Property" context="#stay" String="\bVS_CSHARP_&id_re;\b" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="EndCmdPop">
+        <DetectChar attribute="Normal Text" context="#pop" char=")" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="EndCmdPop2">
+        <DetectChar attribute="Normal Text" context="#pop#pop" char=")" />
+      </context>
+
+      <context attribute="User Function/Macro" lineEndContext="#stay" name="User Function">
+        <DetectChar attribute="Normal Text" context="User Function Opened" char="(" />
+        <IncludeRules context="EndCmdPop2" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="User Function Opened">
+        <IncludeRules context="EndCmdPop2" />
+        <IncludeRules context="User Function Args" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
+        <keyword attribute="Builtin Variable" context="#stay" String="variables" insensitive="false" />
+        <IncludeRules context="Detect More Builtin Variables" />
+        <!-- JGM: next line is needed because we don't really handle
+             \b at the beginning of a regex, and we don't want to
+             capture part of FOO_BAR as an "Internal Name" -->
+        <RegExpr attribute="Normal Text" context="#stay" String="&id_re;\b" />
+        <RegExpr attribute="Internal Name" context="#stay" String="\b_&id_re;\b" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_BINARY_DIR\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_SOURCE_DIR\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_MAJOR\b" />
+        <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;__TRYRUN_OUTPUT\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" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_REQUIRED_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION_COUNT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION_EXACT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION_MAJOR\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION_MINOR\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION_PATCH\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FIND_VERSION_TWEAK\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_FOUND\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_INCLUDE_DIRS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_LIBRARIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_LIBRARY_DIRS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_COUNT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_STRING\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_POSTFIX\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ANDROID_TOOLCHAIN_MACHINE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ANDROID_TOOLCHAIN_PREFIX\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ANDROID_TOOLCHAIN_SUFFIX\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ARCHIVE_APPEND\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ARCHIVE_CREATE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ARCHIVE_FINISH\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CLANG_TIDY\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_ABI\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_AR\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_EXTERNAL_TOOLCHAIN\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_ID\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_LAUNCHER\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_LOADED\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_RANLIB\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_TARGET\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_VERSION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILE_OBJECT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CPPCHECK\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CPPLINT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CREATE_SHARED_LIBRARY\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CREATE_SHARED_MODULE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CREATE_STATIC_LIBRARY\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_DEBUG\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_DEBUG_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_MINSIZEREL\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_MINSIZEREL_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_RELEASE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_RELEASE_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_RELWITHDEBINFO\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_FLAGS_RELWITHDEBINFO_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_GHS_KERNEL_FLAGS_DEBUG\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_GHS_KERNEL_FLAGS_MINSIZEREL\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_GHS_KERNEL_FLAGS_RELEASE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_GHS_KERNEL_FLAGS_RELWITHDEBINFO\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_IGNORE_EXTENSIONS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_IMPLICIT_INCLUDE_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_IMPLICIT_LINK_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_IMPLICIT_LINK_LIBRARIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_INCLUDE_WHAT_YOU_USE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_LIBRARY_ARCHITECTURE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_LINKER_PREFERENCE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_LINKER_PREFERENCE_PROPAGATES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_LINK_EXECUTABLE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_OUTPUT_EXTENSION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_PLATFORM_ID\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SIMULATE_ID\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SIMULATE_VERSION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SIZEOF_DATA_PTR\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SOURCE_FILE_EXTENSIONS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_STANDARD_INCLUDE_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_STANDARD_LIBRARIES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_VISIBILITY_PRESET\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_DISABLE_FIND_PACKAGE_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_&id_re;_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_INTERPROCEDURAL_OPTIMIZATION_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_MAP_IMPORTED_CONFIG_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_MATCH_[0-9]+\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_MODULE_LINKER_FLAGS_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_MODULE_LINKER_FLAGS_&id_re;_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_PDB_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_POLICY_DEFAULT_CMP&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_POLICY_WARNING_CMP&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_PROJECT_&id_re;_INCLUDE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_SHARED_LINKER_FLAGS_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_SHARED_LINKER_FLAGS_&id_re;_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_STATIC_LINKER_FLAGS_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_STATIC_LINKER_FLAGS_&id_re;_INIT\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_USER_MAKE_RULES_OVERRIDE_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_XCODE_ATTRIBUTE_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_&id_re;_COMPONENT_INSTALL\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_ARCHIVE_&id_re;_FILE_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_BINARY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_DEPENDS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_DESCRIPTION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_DISABLED\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_DISPLAY_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_GROUP\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_HIDDEN\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_REQUIRED\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_COMPONENT_&id_re;_DESCRIPTION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_FILE_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_ARCHITECTURE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_BREAKS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_CONFLICTS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_EXTRA\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_STRICT_PERMISSION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_DEPENDS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_ENHANCES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_PREDEPENDS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_PRIORITY\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_PROVIDES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_RECOMMENDS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_REPLACES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_SECTION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_DEBIAN_&id_re;_PACKAGE_SHLIBDEPS\b" />
+        <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_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" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_DEFAULT_USER\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_BUILD_SOURCE_DIRS_PREFIX\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_DEBUGINFO_FILE_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_DEBUGINFO_PACKAGE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_FILE_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_ARCHITECTURE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_AUTOPROV\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_AUTOREQ\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_AUTOREQPROV\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_CONFLICTS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_DESCRIPTION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_GROUP\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_NAME\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_OBSOLETES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_PREFIX\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_PROVIDES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_REQUIRES\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_REQUIRES_POST\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_REQUIRES_POSTUN\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_REQUIRES_PRE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_REQUIRES_PREUN\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_SUGGESTS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_SUMMARY\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_PACKAGE_URL\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_USER_FILELIST\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_&id_re;_USER_BINARY_SPECFILE\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_RPM_NO_&id_re;_INSTALL_PREFIX_RELOCATION\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_WIX_&id_re;_EXTENSIONS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_WIX_&id_re;_EXTRA_FLAGS\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bCPACK_WIX_PROPERTY_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bDOXYGEN_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bExternalData_CUSTOM_SCRIPT_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bExternalData_URL_ALGO_&id_re;_&id_re;\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\bSWIG_MODULE_&id_re;_EXTRA_DEPS\b" />
+      </context>
+
+      <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="{" />
+      </context>
+
+      <context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">
+        <IncludeRules context="Detect Builtin Variables" />
+        <DetectIdentifier />
+        <DetectChar attribute="Variable Substitution" context="#pop" char="}" />
+        <IncludeRules context="Detect Variable Substitutions" />
+      </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="\[(=*)\[" />
+        <DetectChar attribute="Comment" context="Comment" char="#" />
+        <IncludeRules context="Detect Builtin Variables" />
+        <IncludeRules context="Detect Variable Substitutions" />
+        <IncludeRules context="Detect Special Values" />
+        <IncludeRules context="Detect Aliased Targets" />
+        <IncludeRules context="Detect Generator Expressions" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Special Values">
+        <RegExpr attribute="True Special Arg" context="#stay" String="\b(TRUE|ON)\b" />
+        <RegExpr attribute="False Special Arg" context="#stay" String="\b(FALSE|OFF|(&id_re;-)?NOTFOUND)\b" />
+        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9][0-9][0-9]\b" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Aliased Targets">
+        <RegExpr attribute="Aliased Targets" context="#stay" String="\b&id_re;::&id_re;(::&id_re;)*\b" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <LineContinue attribute="Comment" context="#pop" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
+        <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />
+        <IncludeRules context="##reStructuredText" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
+        <RegExpr attribute="Comment" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+
+      <context attribute="Strings" lineEndContext="#stay" name="String">
+        <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)" />
+        <RegExpr attribute="Escapes" context="#stay" String="\\[&quot;$nrt\\]" />
+        <IncludeRules context="Detect Variable Substitutions" />
+        <IncludeRules context="Detect Generator Expressions" />
+      </context>
+
+      <context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
+        <RegExpr attribute="Strings" context="#pop" String="\]%1\]" dynamic="true" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
+        <Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="&lt;" />
+      </context>
+
+      <context attribute="Generator Expression" lineEndContext="#stay" name="Generator Expression">
+        <IncludeRules context="Detect Generator Expressions" />
+        <DetectChar attribute="Comment" context="Comment" char="#" />
+        <DetectChar attribute="Generator Expression" context="#pop" char="&gt;" />
+        <keyword attribute="Generator Expression Keyword" context="#stay" String="generator-expressions" insensitive="false" />
+        <IncludeRules context="Detect Aliased Targets" />
+        <IncludeRules context="Detect Variable Substitutions" />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
+      <itemData name="Command" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="User Function/Macro"  defStyleNum="dsFunction" spellChecking="false" />
+      <itemData name="Property" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="Aliased Targets" defStyleNum="dsBaseN" spellChecking="false" />
+      <itemData name="Named Args" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="True Special Arg" defStyleNum="dsOthers" color="#30a030" selColor="#30a030" spellChecking="false" />
+      <itemData name="False Special Arg" defStyleNum="dsOthers" color="#e05050" selColor="#e05050" spellChecking="false" />
+      <itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
+      <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="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" />
+      <itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false" />
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
+
+<!-- kate: indent-width 2; tab-width 2; -->
+
diff --git a/xml/coffee.xml b/xml/coffee.xml
--- a/xml/coffee.xml
+++ b/xml/coffee.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE language SYSTEM "language.dtd">
 
 <language name="CoffeeScript"
-          version="2"
+          version="3"
           kateversion="3.4"
           section="Scripts"
           extensions="Cakefile;*.coffee;*.coco"
@@ -171,7 +171,7 @@
         <StringDetect attribute="Comment" context="Multiline Comment" String="###" beginRegion="Comment"/>
         <DetectChar attribute="Comment" context="Comment" char="#"/>
         <!-- Regular expressions. -->
-        <RegExpr attribute="Regex" context="Multiline Regex" String="///" beginRegion="Multiline Regex"/>
+        <StringDetect attribute="Regex" context="Multiline Regex" String="///" beginRegion="Multiline Regex"/>
         <RegExpr attribute="Regex" context="#stay" String="/([^/\\\r\n]|\\.)*/[mig]{0,3}"/>
         <!-- Operators and other non-alphanumeric symbols. -->
         <AnyChar attribute="Symbol" context="#stay" String="():!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;{}"/>
diff --git a/xml/commonlisp.xml b/xml/commonlisp.xml
--- a/xml/commonlisp.xml
+++ b/xml/commonlisp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language version="5" kateversion="5.0" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
+<language version="6" kateversion="5.0" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
   <highlighting>
     <list name="symbols">
       <item>&lt;</item>
@@ -1155,7 +1155,6 @@
       <itemData name="Modifier"    defStyleNum="dsBuiltIn"/>
       <itemData name="Variable"    defStyleNum="dsVariable"/>
       <itemData name="Definition"  defStyleNum="dsKeyword"/>
-      <itemData name="Data"        defStyleNum="dsDataType"/>
       <itemData name="Decimal"     defStyleNum="dsDecVal"/>
       <itemData name="BaseN"       defStyleNum="dsBaseN"/>
       <itemData name="Float"       defStyleNum="dsFloat"/>
diff --git a/xml/cpp.xml b/xml/cpp.xml
--- a/xml/cpp.xml
+++ b/xml/cpp.xml
@@ -11,7 +11,7 @@
 <language
     name="C++"
     section="Sources"
-    version="5"
+    version="6"
     kateversion="5.0"
     indenter="cstyle"
     style="C++"
@@ -2005,7 +2005,6 @@
     <context lineEndContext="#pop" name="DetectNSEnd" attribute="Normal Text">
       <DetectIdentifier context="#stay" />
       <AnyChar context="#pop" String="&ns_punctuators;" lookAhead="true" />
-      <AnyChar context="#stay" String="&space;" lookAhead="true" />
     </context>
 
   </contexts>
diff --git a/xml/cs.xml b/xml/cs.xml
--- a/xml/cs.xml
+++ b/xml/cs.xml
@@ -1,5 +1,5 @@
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="C#" version="2" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde">
+<language name="C#" version="3" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde">
   <highlighting>
     <list name="keywords">
       <item>abstract</item>
@@ -117,7 +117,7 @@
         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="block1"/>
         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="block1"/>
         <RegExpr attribute="Keyword" context="#stay" String="\bpartial(?=\s+(class|struct|interface|void))"/>
-        <RegExpr attribute="Data Type" context="#stay" String="\bvar(?=\s+\w+\s*=\s*\w+)"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\bvar(?=\s+\w+)"/>
         <RegExpr attribute="Keyword" context="#stay" String="\byield(?=\s+(return|break))"/>
         <RegExpr attribute="Keyword" context="#stay" String="\b(set|get)(?=\s*[;{])"/>
         <RegExpr attribute="Keyword" context="#stay" String="\bglobal(?=\s*::\s*\w+)"/>
diff --git a/xml/css.xml b/xml/css.xml
--- a/xml/css.xml
+++ b/xml/css.xml
@@ -29,7 +29,7 @@
 
 -->
 
-<language name="CSS" version="4" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+<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">
@@ -835,11 +835,6 @@
             <item>tv</item>
         </list>
 
-        <list name="mediatypes_op">
-            <item>not</item>
-            <item>only</item>
-        </list>
-
         <list name="media_features">
             <item>width</item>
             <item>min-width</item>
@@ -1047,7 +1042,6 @@
             <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="Alert" defStyleNum="dsAlert" spellChecking="false"/>
             <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
         </itemDatas>
     </highlighting>
diff --git a/xml/d.xml b/xml/d.xml
--- a/xml/d.xml
+++ b/xml/d.xml
@@ -101,7 +101,7 @@
    ========================================================================
 -->
 
-<language name="D" version="2" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
+<language name="D" version="3" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
   <highlighting>
     <!-- User-defined keywords (add identifiers you'd like highlighted here) -->
     <list name="userkeywords">
@@ -402,7 +402,7 @@
         <DetectChar char="." attribute="Normal Text" context="Properties"/>
 
         <!-- Look ahead for a digit and switch to NumberLiteral context if found. -->
-        <RegExpr context="NumberLiteral" String="\d" attribute="" lookAhead="true"/>
+        <RegExpr context="NumberLiteral" String="\d" attribute="Normal Text" lookAhead="true"/>
 
         <!-- #line Integer [Filespec] -->
         <StringDetect attribute="Pragma" context="LinePragma" String="#line"/>
diff --git a/xml/diff.xml b/xml/diff.xml
--- a/xml/diff.xml
+++ b/xml/diff.xml
@@ -15,7 +15,7 @@
     2008-02-13: 1.11 Eduardo Robles Elvira <edulix AT gmail DOT com>
      Fixed folding.
 -->
-<language name="Diff" version="3" kateversion="5.0" section="Other" extensions="*.diff;*patch" mimetype="text/x-patch">
+<language name="Diff" version="4" kateversion="5.0" section="Other" extensions="*.diff;*patch" mimetype="text/x-patch">
 
   <highlighting>
 
@@ -96,7 +96,6 @@
       </context>
 
       <!-- line contexts -->
-      <context attribute="File" lineEndContext="#pop" name="File"/>
       <context attribute="Removed line" lineEndContext="#pop" name="Removed"/>
       <context attribute="Added line" lineEndContext="#pop" name="Added"/>
       <context attribute="Changed line (old)" lineEndContext="#pop" name="ChangedOld"/>
diff --git a/xml/dot.xml b/xml/dot.xml
--- a/xml/dot.xml
+++ b/xml/dot.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
 <!-- Adapted from the VIM highlighter, by Markus Mottl (markus@oefai.at) -->
-<language name="dot" version="2" kateversion="5.0" section="Scientific" extensions="*.dot" mimetype="text/x-dot" author="Postula Loïs (lois.postula@live.be)" priority="0">
+<language name="dot" version="3" kateversion="5.0" section="Scientific" extensions="*.dot" mimetype="text/x-dot" author="Postula Loïs (lois.postula@live.be)" priority="0">
 
   <highlighting>
 
@@ -127,8 +127,8 @@
 
       <!-- other contexts -->
       <context attribute="String" lineEndContext="#pop" name="String">
-        <Detect2Chars attribute="String Char" context="#stay" char="\\" char1="\\"/>
-        <Detect2Chars attribute="String Char" context="#stay" char="\\" char1="&quot;"/>
+        <Detect2Chars attribute="String Char" context="#stay" char="\" char1="\"/>
+        <Detect2Chars attribute="String Char" context="#stay" char="\" char1="&quot;"/>
         <DetectChar attribute="String" context="#pop" char="&quot;"/>
       </context>
 
diff --git a/xml/doxygenlua.xml b/xml/doxygenlua.xml
--- a/xml/doxygenlua.xml
+++ b/xml/doxygenlua.xml
@@ -1,342 +1,304 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd"
 [
-        <!ENTITY wordsep "([][,?;()]|\.$|\.?\s)">     <!-- things that end a TagWord -->
+    <!ENTITY wordsep "([][,?;()]|\.$|\.?\s)">     <!-- things that end a TagWord -->
 ]>
 <!--
-  Version 1.01 by Bruno Massa
-
-  Based on the original Doxygen Highlighter version 1.0 from
-  Copyright 2004 Dominik Haumann (dhdev@gmx.de)
-  Copyright 2007 Matthew Woehlke (mw_triad@users.sourceforge.net)
+sed -E '
+  s/<Detect2Chars(.*)char="\*" char1="\/"(.*)/<StringDetect\1String="]%1]" dynamic="true"\2/
+  s/ (name="ML_|name="BlockComment")/ dynamic="true" \1/
+' doxygen.xml > doxygenlua.xml
 
- **********************************************************************
- * This library is free software; you can redistribute it and/or      *
- * modify it under the terms of the GNU Lesser General Public         *
- * License as published by the Free Software Foundation; either       *
- * version 2 of the License, or (at your option) any later version.   *
- *                                                                    *
- * This library is distributed in the hope that it will be useful,    *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
- * Lesser General Public License for more details.                    *
- *                                                                    *
- * You should have received a copy of the GNU Lesser General Public   *
- * License along with this library; if not, write to the              *
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
- * Boston, MA  02110-1301, USA.                                       *
- **********************************************************************
- -->
-<language name="DoxygenLua" version="4" kateversion="5.0" section="Markup" extensions="*.dox;*.doxygen" mimetype="text/x-doxygen" author="Bruno Massa (brmassa@gmail.com)" license="LGPLv2+">
++ edit
+- <language>
+- "Normal Text" context
+- grep '\\\*' doxygenlua.xml
+-->
+<language name="DoxygenLua"
+          version="6"
+          kateversion="5.0"
+          section="Markup"
+          extensions=""
+          mimetype=""
+          author="Dominik Haumann (dhaumann@kde.org)"
+          license="MIT">
   <highlighting>
-    <!-- note: all tags may begin with a \ or @ char
+    <!-- NOTE: all tags may begin with a \ or @ char
          so if you add/change tags you have to do it twice -->
+    <!-- NOTE: Tags @code/@endcode, @dot/@enddot, @vermatim/@endverbatim, @msc/@endmsc, @f[/@f]
+         do not present in keywords due separate handle rules...
+    -->
     <list name="TagOnly">
-      <item>\arg</item>
-      <item>\attention</item>
-      <item>\author</item>
-      <item>\callgraph</item>
-      <item>\code</item>
-      <item>\dot</item>
-      <item>\else</item>
-      <item>\endcode</item>
-      <item>\endcond</item>
-      <item>\enddot</item>
-      <item>\endhtmlonly</item>
-      <item>\endif</item>
-      <item>\endlatexonly</item>
-      <item>\endlink</item>
-      <item>\endmanonly</item>
-      <item>\endverbatim</item>
-      <item>\endxmlonly</item>
-      <item>\f[</item>
-      <item>\f]</item>
-      <item>\f$</item>
-      <item>\hideinitializer</item>
-      <item>\htmlonly</item>
-      <item>\interface</item>
-      <item>\internal</item>
-      <item>\invariant</item>
-      <item>\~</item>
-      <item>\@</item>
-      <item>\$</item>
-      <item>\\</item>
-      <item>\#</item>
-      <item>\latexonly</item>
-      <item>\li</item>
-      <item>\manonly</item>
-      <item>\n</item>
-      <item>\nosubgrouping</item>
-      <item>\note</item>
-      <item>\only</item>
-      <item>\post</item>
-      <item>\pre</item>
-      <item>\remarks</item>
-      <item>\return</item>
-      <item>\returns</item>
-      <item>\sa</item>
-      <item>\see</item>
-      <item>\showinitializer</item>
-      <item>\since</item>
-      <item>\test</item>
-      <item>\todo</item>
-      <item>\verbatim</item>
-      <item>\warning</item>
-      <item>\xmlonly</item>
-
-      <item>@arg</item>
-      <item>@attention</item>
-      <item>@author</item>
-      <item>@callgraph</item>
-      <item>@code</item>
-      <item>@dot</item>
-      <item>@else</item>
-      <item>@endcode</item>
-      <item>@endcond</item>
-      <item>@enddot</item>
-      <item>@endhtmlonly</item>
-      <item>@endif</item>
-      <item>@endlatexonly</item>
-      <item>@endlink</item>
-      <item>@endmanonly</item>
-      <item>@endverbatim</item>
-      <item>@endxmlonly</item>
-      <item>@f[</item>
-      <item>@f]</item>
-      <item>@f$</item>
-      <item>@hideinitializer</item>
-      <item>@htmlonly</item>
-      <item>@interface</item>
-      <item>@internal</item>
-      <item>@invariant</item>
-      <item>@~</item>
-      <item>@@</item>
-      <item>@$</item>
-      <item>@\</item>
-      <item>@#</item>
-      <item>@latexonly</item>
-      <item>@li</item>
-      <item>@manonly</item>
-      <item>@n</item>
-      <item>@nosubgrouping</item>
-      <item>@note</item>
-      <item>@only</item>
-      <item>@post</item>
-      <item>@pre</item>
-      <item>@remarks</item>
-      <item>@return</item>
-      <item>@returns</item>
-      <item>@sa</item>
-      <item>@see</item>
-      <item>@showinitializer</item>
-      <item>@since</item>
-      <item>@test</item>
-      <item>@todo</item>
-      <item>@verbatim</item>
-      <item>@warning</item>
-      <item>@xmlonly</item>
+      <item>\arg</item>              <item>@arg</item>
+      <item>\author</item>           <item>@author</item>
+      <item>\authors</item>          <item>@authors</item>
+      <item>\brief</item>            <item>@brief</item>
+      <item>\callgraph</item>        <item>@callgraph</item>
+      <item>\callergraph</item>      <item>@callergraph</item>
+      <item>\date</item>             <item>@date</item>
+      <item>\deprecated</item>       <item>@deprecated</item>
+      <item>\details</item>          <item>@details</item>
+      <item>\docbookonly</item>      <item>@docbookonly</item>
+      <item>\else</item>             <item>@else</item>
+      <item>\endcond</item>          <item>@endcond</item>
+      <item>\enddocbookonly</item>   <item>@enddocbookonly</item>
+      <item>\endhtmlonly</item>      <item>@endhtmlonly</item>
+      <item>\endif</item>            <item>@endif</item>
+      <item>\endinternal</item>      <item>@endinternal</item>
+      <item>\endlatexonly</item>     <item>@endlatexonly</item>
+      <item>\endlink</item>          <item>@endlink</item>
+      <item>\endmanonly</item>       <item>@endmanonly</item>
+      <item>\endparblock</item>      <item>@endparblock</item>
+      <item>\endrtfonly</item>       <item>@endrtfonly</item>
+      <item>\endsecreflist</item>    <item>@endsecreflist</item>
+      <item>\endxmlonly</item>       <item>@endxmlonly</item>
+      <item>\f[</item>               <item>@f[</item>
+      <item>\f]</item>               <item>@f]</item>
+      <item>\f$</item>               <item>@f$</item>
+      <!-- TODO Add @f{environment}{ and @f} -->
+      <item>\hideinitializer</item>  <item>@hideinitializer</item>
+      <item>\htmlonly</item>         <item>@htmlonly</item>
+      <!-- TODO @internal is a candidate to be handled separately, cuz may introduce folding region -->
+      <item>\internal</item>         <item>@internal</item>
+      <item>\invariant</item>        <item>@invariant</item>
+      <item>\latexonly</item>        <item>@latexonly</item>
+      <item>\li</item>               <item>@li</item>
+      <item>\manonly</item>          <item>@manonly</item>
+      <item>\n</item>                <item>@n</item>
+      <item>\nosubgrouping</item>    <item>@nosubgrouping</item>
+      <item>\only</item>             <item>@only</item>
+      <item>\parblock</item>         <item>@parblock</item>
+      <item>\post</item>             <item>@post</item>
+      <item>\pre</item>              <item>@pre</item>
+      <item>\private</item>          <item>@pivate</item>
+      <item>\privatesection</item>   <item>@pivatesection</item>
+      <item>\protected</item>        <item>@protected</item>
+      <item>\protectedsection</item> <item>@protectedsection</item>
+      <item>\public</item>           <item>@public</item>
+      <item>\publicsection</item>    <item>@publicsection</item>
+      <item>\pure</item>             <item>@pure</item>
+      <item>\remark</item>           <item>@remark</item>
+      <item>\remarks</item>          <item>@remarks</item>
+      <item>\return</item>           <item>@return</item>
+      <item>\returns</item>          <item>@returns</item>
+      <item>\result</item>           <item>@result</item>
+      <item>\rtfonly</item>          <item>@rtfonly</item>
+      <item>\sa</item>               <item>@sa</item>
+      <item>\secreflist</item>       <item>@secreflist</item>
+      <item>\see</item>              <item>@see</item>
+      <item>\short</item>            <item>@short</item>
+      <item>\showinitializer</item>  <item>@showinitializer</item>
+      <item>\since</item>            <item>@since</item>
+      <item>\static</item>           <item>@static</item>
+      <item>\tableofcontents</item>  <item>@tableofcontents</item>
+      <item>\test</item>             <item>@test</item>
+      <item>\version</item>          <item>@version</item>
+      <item>\xmlonly</item>          <item>@xmlonly</item>
+      <!-- TODO Introduce separate context for @~ ? -->
+      <item>\#</item>                <item>@#</item>
+      <item>\$</item>                <item>@$</item>
+      <item>\%</item>                <item>@%</item>
+      <item>\&amp;</item>            <item>@&amp;</item>
+      <item>\&gt;</item>             <item>@&gt;</item>
+      <item>\&lt;</item>             <item>@&lt;</item>
+      <item>\&quot;</item>           <item>@&quot;</item>
+      <item>\::</item>               <item>@::</item>
+      <item>\@</item>                <item>@@</item>
+      <item>\\</item>                <item>@\</item>
+      <item>\~</item>                <item>@~</item>
+      <item>\.</item>                <item>@.</item>
+      <item>\--</item>               <item>@--</item>
+      <item>\---</item>              <item>@---</item>
     </list>
 
     <list name="TagWord">
-      <item>\addtogroup</item>
-      <item>\a</item>
-      <item>\anchor</item>
-      <item>\b</item>
-      <item>\c</item>
-      <item>\class</item>
-      <item>\cond</item>
-      <item>\copydoc</item>
-      <item>\def</item>
-      <item>\dontinclude</item>
-      <item>\dotfile</item>
-      <item>\e</item>
-      <item>\elseif</item>
-      <item>\em</item>
-      <item>\enum</item>
-      <item>\example</item>
-      <item>\exception</item>
-      <item>\exceptions</item>
-      <item>\file</item>
-      <item>\htmlinclude</item>
-      <item>\if</item>
-      <item>\ifnot</item>
-      <item>\include</item>
-      <item>\link</item>
-      <item>\namespace</item>
-      <item>\p</item>
-      <item>\package</item>
-      <item>\ref</item>
-      <item>\relatesalso</item>
-      <item>\relates</item>
-      <item>\retval</item>
-      <item>\throw</item>
-      <item>\throws</item>
-      <item>\verbinclude</item>
-      <item>\version</item>
-      <item>\xrefitem</item>
-
-      <item>@addtogroup</item>
-      <item>@a</item>
-      <item>@anchor</item>
-      <item>@b</item>
-      <item>@c</item>
-      <item>@class</item>
-      <item>@cond</item>
-      <item>@copydoc</item>
-      <item>@def</item>
-      <item>@dontinclude</item>
-      <item>@dotfile</item>
-      <item>@e</item>
-      <item>@elseif</item>
-      <item>@em</item>
-      <item>@enum</item>
-      <item>@example</item>
-      <item>@exception</item>
-      <item>@exceptions</item>
-      <item>@file</item>
-      <item>@htmlinclude</item>
-      <item>@if</item>
-      <item>@ifnot</item>
-      <item>@include</item>
-      <item>@link</item>
-      <item>@namespace</item>
-      <item>@p</item>
-      <item>@package</item>
-      <item>@ref</item>
-      <item>@relatesalso</item>
-      <item>@relates</item>
-      <item>@retval</item>
-      <item>@throw</item>
-      <item>@throws</item>
-      <item>@verbinclude</item>
-      <item>@version</item>
-      <item>@xrefitem</item>
+      <item>\a</item>                <item>@a</item>
+      <item>\anchor</item>           <item>@anchor</item>
+      <item>\b</item>                <item>@b</item>
+      <item>\c</item>                <item>@c</item>
+      <item>\cite</item>             <item>@cite</item>
+      <item>\cond</item>             <item>@cond</item>
+      <item>\copybrief</item>        <item>@copybrief</item>
+      <item>\copydetails</item>      <item>@copydetails</item>
+      <item>\copydoc</item>          <item>@copydoc</item>
+      <item>\def</item>              <item>@def</item>
+      <item>\dir</item>              <item>@dir</item>
+      <item>\dontinclude</item>      <item>@dontinclude</item>
+      <item>\e</item>                <item>@e</item>
+      <item>\elseif</item>           <item>@elseif</item>
+      <item>\em</item>               <item>@em</item>
+      <item>\enum</item>             <item>@enum</item>
+      <item>\example</item>          <item>@example</item>
+      <item>\exception</item>        <item>@exception</item>
+      <item>\exceptions</item>       <item>@exceptions</item>
+      <item>\extends</item>          <item>@extends</item>
+      <item>\file</item>             <item>@file</item>
+      <item>\htmlinclude</item>      <item>@htmlinclude</item>
+      <item>\idlexcept</item>        <item>@idlexcept</item>
+      <item>\if</item>               <item>@if</item>
+      <item>\ifnot</item>            <item>@ifnot</item>
+      <item>\implements</item>       <item>@implements</item>
+      <item>\include</item>          <item>@include</item>
+      <item>\includelineno</item>    <item>@includelineno</item>
+      <item>\latexinclude</item>     <item>@latexinclude</item>
+      <item>\link</item>             <item>@link</item>
+      <item>\memberof</item>         <item>@memberof</item>
+      <item>\namespace</item>        <item>@namespace</item>
+      <item>\p</item>                <item>@p</item>
+      <item>\package</item>          <item>@package</item>
+      <item>\property</item>         <item>@property</item>
+      <item>\relatedalso</item>      <item>@relatedalso</item>
+      <item>\relatesalso</item>      <item>@relatesalso</item>
+      <item>\related</item>          <item>@related</item>
+      <item>\relates</item>          <item>@relates</item>
+      <item>\retval</item>           <item>@retval</item>
+      <item>\throw</item>            <item>@throw</item>
+      <item>\throws</item>           <item>@throws</item>
+      <item>\verbinclude</item>      <item>@verbinclude</item>
+      <item>\version</item>          <item>@version</item>
+      <!-- TODO Introduce separate context for @xrefitem? -->
+      <item>\xrefitem</item>         <item>@xrefitem</item>
     </list>
     <list name="TagParam">
-      <item>\param</item>
-
-      <item>@param</item>
+      <item>\param</item>            <item>@param</item>
+      <!-- TODO @tparam has no optional direction actually! -->
+      <item>\tparam</item>           <item>@tparam</item>
     </list>
+    <!-- TODO Better (separate?) highlighting for @image required -->
     <list name="TagWordWord">
-      <item>\image</item>
-
-      <item>@image</item>
+      <item>\image</item>            <item>@image</item>
     </list>
+      <!-- TODO @union, @struct, @protocol, @interface, @class, @category
+           actually takes 3 params, 1 mandatory and 2 optional
+        -->
+      <!-- TODO @headerfile actually takes 2 params, where last one is optional -->
     <list name="TagWordString">
-      <item>\defgroup</item>
-      <item>\page</item>
-      <item>\paragraph</item>
-      <item>\section</item>
-      <item>\struct</item>
-      <item>\subsection</item>
-      <item>\subsubsection</item>
-      <item>\union</item>
-      <item>\weakgroup</item>
-
-      <item>@defgroup</item>
-      <item>@page</item>
-      <item>@paragraph</item>
-      <item>@section</item>
-      <item>@struct</item>
-      <item>@subsection</item>
-      <item>@subsubsection</item>
-      <item>@union</item>
-      <item>@weakgroup</item>
+      <item>\addtogroup</item>       <item>@addtogroup</item>
+      <item>\category</item>         <item>@category</item>
+      <item>\class</item>            <item>@class</item>
+      <item>\diafile</item>          <item>@diafile</item>
+      <item>\dotfile</item>          <item>@dotfile</item>
+      <item>\defgroup</item>         <item>@defgroup</item>
+      <item>\interface</item>        <item>@interface</item>
+      <item>\headerfile</item>       <item>@headerfile</item>
+      <item>\mscfile</item>          <item>@mscfile</item>
+      <item>\page</item>             <item>@page</item>
+      <item>\paragraph</item>        <item>@paragraph</item>
+      <item>\protocol</item>         <item>@prtocol</item>
+      <item>\ref</item>              <item>@ref</item>
+      <item>\section</item>          <item>@section</item>
+      <item>\snippet</item>          <item>@snippet</item>
+      <item>\struct</item>           <item>@struct</item>
+      <item>\subpage</item>          <item>@subpage</item>
+      <item>\subsection</item>       <item>@subsection</item>
+      <item>\subsubsection</item>    <item>@subsubsection</item>
+      <item>\union</item>            <item>@union</item>
+      <item>\weakgroup</item>        <item>@weakgroup</item>
     </list>
     <list name="TagString">
-      <item>\addindex</item>
-      <item>\brief</item>
-      <item>\bug</item>
-      <item>\date</item>
-      <item>\deprecated</item>
-      <item>\fn</item>
-      <item>\ingroup</item>
-      <item>\line</item>
-      <item>\mainpage</item>
-      <item>\name</item>
-      <item>\overload</item>
-      <item>\par</item>
-      <item>\short</item>
-      <item>\skip</item>
-      <item>\skipline</item>
-      <item>\typedef</item>
-      <item>\until</item>
-      <item>\var</item>
-
-      <item>@addindex</item>
-      <item>@brief</item>
-      <item>@bug</item>
-      <item>@date</item>
-      <item>@deprecated</item>
-      <item>@fn</item>
-      <item>@ingroup</item>
-      <item>@line</item>
-      <item>@mainpage</item>
-      <item>@name</item>
-      <item>@overload</item>
-      <item>@par</item>
-      <item>@short</item>
-      <item>@skip</item>
-      <item>@skipline</item>
-      <item>@typedef</item>
-      <item>@until</item>
-      <item>@var</item>
+      <item>\addindex</item>         <item>@addindex</item>
+      <item>\copyright</item>        <item>@copyright</item>
+      <item>\fn</item>               <item>@fn</item>
+      <item>\ingroup</item>          <item>@ingroup</item>
+      <item>\line</item>             <item>@line</item>
+      <item>\mainpage</item>         <item>@mainpage</item>
+      <item>\name</item>             <item>@name</item>
+      <item>\overload</item>         <item>@overload</item>
+      <item>\par</item>              <item>@par</item>
+      <item>\skip</item>             <item>@skip</item>
+      <item>\skipline</item>         <item>@skipline</item>
+      <item>\typedef</item>          <item>@typedef</item>
+      <item>\until</item>            <item>@until</item>
+      <item>\var</item>              <item>@var</item>
+      <item>\vhdlflow</item>         <item>@vhdlflow</item>
     </list>
+    <list name="Note">
+      <item>\note</item>             <item>@note</item>
+    </list>
+    <list name="Warning">
+      <item>\warning</item>          <item>@warning</item>
+    </list>
+    <list name="Attention">
+      <item>\attention</item>        <item>@attention</item>
+      <item>\bug</item>              <item>@bug</item>
+    </list>
+    <list name="Todo">
+      <item>\todo</item>             <item>@todo</item>
+    </list>
+
     <contexts>
-    <!-- different formats:
-      @tag                     : TagOnly
-      @tag rest_of_line        : TagString
-      @tag <word>              : TagWord
-      @tag <word> <word>       : TagWordWord
-      @tag <word> rest_of_line : TagWordString
+    <!--
+      Different types of recognized command formats:
+      (w/ params specified according doxygen manual (http://www.stack.nl/~dimitri/doxygen/commands.html))
+
+      @tag                       : TagOnly
+      @tag <word>                : TagWord
+      @tag (rest_of_line)        : TagString
+      @tag {paragraph}           : TagOnly
+      @tag <word> <word>         : TagWordWord
+      @tag <word> (rest_of_line) : TagWordString
+
+      TODO Not all commands are handled properly nowadays :( Need few more contexts...
     -->
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
-        <RegExpr      attribute="Comment" context="BlockComment" beginRegion="BlockComment"  String="--\[(=*)\[" dynamic="true" />
-        <StringDetect attribute="Comment" context="LineComment" String="--"/>
+        <RegExpr attribute="Region" context="#stay" String="--\s*@\{\s*$" beginRegion="MemberGroup" />
+        <RegExpr attribute="Region" context="#stay" String="--\s*@\}\s*$" endRegion="MemberGroup" />
+        <RegExpr attribute="Comment" context="BlockComment" String="--\[(=*)\[" beginRegion="BlockComment" dynamic="true" />
+        <Detect2Chars attribute="Comment" context="LineComment" char="-" char1="-" />
       </context>
       <context attribute="Comment" lineEndContext="#pop" name="LineComment">
+        <LineContinue attribute="Comment" context="#stay" />
         <DetectSpaces />
         <IncludeRules context="##Alerts" />
+        <IncludeRules context="SL_DetectEnv" />
         <keyword attribute="Tags" context="#stay" String="TagOnly" />
         <keyword attribute="Tags" context="SL_TagWord" String="TagWord" />
         <keyword attribute="Tags" context="SL_TagParam" String="TagParam" />
         <keyword attribute="Tags" context="SL_TagWordWord" String="TagWordWord" />
         <keyword attribute="Tags" context="SL_TagString" String="TagString" />
         <keyword attribute="Tags" context="SL_TagWordString" String="TagWordString" />
+        <RegExpr attribute="Custom Tags" context="#stay" String="[@\\][^@\\ \t]+" />
         <DetectIdentifier />
         <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
         <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
-        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
       </context>
-      <context attribute="Comment" lineEndContext="#stay" name="BlockComment" dynamic="true" >
+      <context attribute="Comment" lineEndContext="#stay" dynamic="true" name="BlockComment">
         <DetectSpaces />
-        <RegExpr      attribute="Comment" context="#pop" endRegion="BlockComment" String="\]%1\]" dynamic="true" />
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" endRegion="BlockComment" />
         <IncludeRules context="##Alerts" />
-        <Detect2Chars attribute="Region" context="#stay" char="@" char1="{" />
-        <Detect2Chars attribute="Region" context="#stay" char="@" char1="}" />
+        <Detect2Chars attribute="Region" context="#stay" char="@" char1="{" beginRegion="Group" />
+        <Detect2Chars attribute="Region" context="#stay" char="@" char1="}" endRegion="Group" />
+        <IncludeRules context="SL_DetectEnv" />
         <keyword attribute="Tags" context="#stay" String="TagOnly" />
         <keyword attribute="Tags" context="ML_TagWord" String="TagWord" />
         <keyword attribute="Tags" context="ML_TagParam" String="TagParam" />
         <keyword attribute="Tags" context="ML_TagWordWord" String="TagWordWord" />
         <keyword attribute="Tags" context="ML_TagString" String="TagString" />
         <keyword attribute="Tags" context="ML_TagWordString" String="TagWordString" />
+        <RegExpr attribute="Custom Tags" context="#stay" String="[@\\]([^@\\ \t])+" />
         <DetectIdentifier />
         <RegExpr attribute="Tags" context="#stay" String="\\(&lt;|&gt;)" />
         <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
-        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
         <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
       </context>
 
-<!-- NOTE: all contexts beginning with ML_ are for multiline comments
-     The following contexts contain a Detect2Chars that looks for a */ sequence to end multiline comments. Singleline comments do not have this limitation - that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed. <IncludeRules context="acontext"> could be used instead but it would make context switching much more complex and very hard to understand! (But use IncludeRules where the rules don't refer to another SL_*/ML_* context, to help maintainability.)
--->
+      <!-- NOTE: all contexts beginning with ML_ are for multiline comments
+                 The following contexts contain a Detect2Chars that looks for a */ sequence
+                 to end multiline comments. Singleline comments do not have this limitation -
+                 that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed.
+                 <IncludeRules context="acontext"> could be used instead but it would make context switching
+                 much more complex and very hard to understand! (But use IncludeRules where the rules don't
+                 refer to another SL_*/ML_* context, to help maintainability.)
+      -->
       <!-- tag contexts -->
-      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context attribute="Comment" lineEndContext="#pop" dynamic="true" name="ML_TagWord">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <IncludeRules context="SL_TagWord" />
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context attribute="Comment" lineEndContext="#pop" dynamic="true" name="ML_TagParam">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <DetectSpaces />
         <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in]" />
         <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[out]" />
@@ -344,62 +306,62 @@
         <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
         <RegExpr attribute="Word" context="#stay" String="\S" />
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context attribute="Comment" lineEndContext="#pop" dynamic="true" name="ML_TagWordWord">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <DetectSpaces />
         <RegExpr attribute="Word" context="ML_Tag2ndWord" String="\S(?=&wordsep;)" />
         <RegExpr attribute="Word" context="#stay" String="\S" />
       </context>
       <!-- TODO for kate 2.x, convert references to "#pop!ML_TagWord" -->
-      <context attribute="Comment" lineEndContext="#pop#pop" name="ML_Tag2ndWord">
-        <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" lookAhead="true"/>
+      <context attribute="Comment" lineEndContext="#pop#pop" dynamic="true" name="ML_Tag2ndWord">
+        <StringDetect attribute="Comment" context="#pop#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <IncludeRules context="SL_Tag2ndWord" />
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
+      <context attribute="Comment" lineEndContext="#pop" dynamic="true" name="ML_TagString">
         <DetectSpaces />
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
         <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
-        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
         <RegExpr attribute="Description" context="#stay" String="." />
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context attribute="Comment" lineEndContext="#pop" dynamic="true" name="ML_TagWordString">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <IncludeRules context="SL_TagWordString" />
       </context>
 
       <!-- html contexts -->
-      <context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context dynamic="true" name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
-        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
-        <RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*"/>
+        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
+        <RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*" />
       </context>
-      <context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context dynamic="true" name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <IncludeRules context="##Alerts" />
         <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
       </context>
-      <context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context dynamic="true" name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
         <DetectChar attribute="Types" context="ML_types1" char="'" />
         <DetectChar attribute="Types" context="ML_types2" char="&quot;" />
       </context>
-      <context name="ML_types1" attribute="Types" lineEndContext="#stay">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context dynamic="true" name="ML_types1" attribute="Types" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <DetectChar attribute="Types" context="#pop#pop" char="'" />
       </context>
-      <context name="ML_types2" attribute="Types" lineEndContext="#stay">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+      <context dynamic="true" name="ML_types2" attribute="Types" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" lookAhead="true" />
         <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
       </context>
 
-<!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
+      <!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
       <!-- tag contexts -->
       <context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
         <DetectSpaces />
-        <keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true"/>
+        <keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true" />
         <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
         <RegExpr attribute="Word" context="#stay" String="\S" />
       </context>
@@ -426,7 +388,7 @@
         <DetectSpaces />
         <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
         <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
-        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
         <RegExpr attribute="Description" context="#stay" String="." />
       </context>
       <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
@@ -438,8 +400,8 @@
       <!-- html contexts -->
       <context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
         <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
-        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
-        <RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*"/>
+        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
+        <RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*" />
       </context>
       <context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
         <IncludeRules context="##Alerts" />
@@ -457,25 +419,79 @@
         <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
       </context>
 
-    </contexts>
+      <context attribute="Comment" name="SL_DetectEnv" lineEndContext="#pop">
+        <RegExpr attribute="Tags" context="Code" String="[@\\]code\b" beginRegion="Code" />
+        <RegExpr attribute="Tags" context="Verbatim" String="[@\\]verbatim\b" beginRegion="Verbatim" />
+        <RegExpr attribute="Tags" context="Formula" String="[@\\]f\[" beginRegion="Formula" />
+        <RegExpr attribute="Tags" context="Msc" String="[@\\]msc\b" beginRegion="Msc" />
+        <RegExpr attribute="Tags" context="Dot" String="[@\\]dot\b" beginRegion="Dot" />
+        <keyword attribute="Note" context="#stay" String="Note" />
+        <keyword attribute="Warning" context="#stay" String="Warning" />
+        <keyword attribute="Attention" context="#stay" String="Attention" />
+        <keyword attribute="Todo" context="#stay" String="Todo" />
+        <RegExpr attribute="Entities" context="#stay" String="&amp;[A-Za-z]+&#59;" />
+      </context>
+
+      <context attribute="Comment" name="SL_DetectComment" lineEndContext="#pop">
+        <StringDetect attribute="Comment" context="#pop#pop" String="]%1]" dynamic="true" endRegion="BlockComment" />
+        <DetectChar attribute="Comment" context="#stay" char="*" />
+        <StringDetect attribute="Comment" context="#stay" String="///" />
+      </context>
+
+      <context attribute="Code" lineEndContext="#stay" name="Code">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]endcode\b" endRegion="Code" />
+      </context>
+
+      <context attribute="Verbatim" lineEndContext="#stay" name="Verbatim">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]endverbatim\b" endRegion="Verbatim" />
+      </context>
+
+      <context attribute="Formulas" lineEndContext="#stay" name="Formula">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]f\]" endRegion="Formula" />
+        <!-- TODO: How to force LaTeX math context here?? -->
+        <!-- <IncludeRules context="##LaTeX" /> -->
+      </context>
+
+      <context attribute="Message Sequence Chart" lineEndContext="#stay" name="Msc">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]endmsc\b" endRegion="Msc" />
+      </context>
+
+      <context attribute="Dot Graph" lineEndContext="#stay" name="Dot">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]enddot\b" endRegion="Dot" />
+      </context>
+
+  </contexts>
     <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal" />
-      <itemData name="Tags"        defStyleNum="dsAnnotation" bold="1" italic="0" />
-      <itemData name="Word"        defStyleNum="dsCommentVar" bold="1" italic="0" />
-      <itemData name="HTML Tag"    defStyleNum="dsKeyword"/>
-      <itemData name="Description" defStyleNum="dsString" />
-      <itemData name="Comment"     defStyleNum="dsDocumentation"/>
-      <itemData name="Region"      defStyleNum="dsRegionMarker" />
-      <itemData name="Identifier"  defStyleNum="dsOthers" />
+      <itemData name="Normal Text"  defStyleNum="dsNormal" />
+      <itemData name="Tags"         defStyleNum="dsAnnotation" bold="1" />
+      <itemData name="Custom Tags"  defStyleNum="dsAnnotation" />
+      <itemData name="Word"         defStyleNum="dsCommentVar" bold="1" italic="0" />
+      <itemData name="HTML Tag"     defStyleNum="dsKeyword" color="#000000" bold="1" italic="0" />
+      <itemData name="Entities"     defStyleNum="dsOthers" color="#4086C0" bold="1" italic="1" />
+      <itemData name="Description"  defStyleNum="dsDocumentation" />
+      <itemData name="Comment"      defStyleNum="dsComment" />
+      <itemData name="Region"       defStyleNum="dsRegionMarker" />
+      <itemData name="Identifier"   defStyleNum="dsOthers" />
       <itemData name="HTML Comment" defStyleNum="dsComment" />
-      <itemData name="Types"       defStyleNum="dsDataType" />
+      <itemData name="Types"        defStyleNum="dsDataType" />
+      <itemData name="Code"         defStyleNum="dsComment" />
+      <itemData name="Dot Graph"    defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
+      <itemData name="Formulas"     defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
+      <itemData name="Message Sequence Chart" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
+      <itemData name="Verbatim"     defStyleNum="dsComment" />
+      <itemData name="Note"         defStyleNum="dsInformation" bold="1" italic="0" />
+      <itemData name="Warning"      defStyleNum="dsWarning" bold="1" italic="0" />
+      <itemData name="Attention"    defStyleNum="dsAnnotation" bold="1" italic="0" />
+      <itemData name="Todo"         defStyleNum="dsAnnotation" bold="1" italic="0" />
     </itemDatas>
   </highlighting>
   <general>
-    <comments>
-      <comment name="singleLine" start="--" />
-      <comment name="multiLine" start="--[[" end="]]" />
-    </comments>
-    <keywords casesensitive="0" weakDeliminator="\$~" />
+    <keywords casesensitive="1" weakDeliminator="\$~" />
   </general>
 </language>
+<!-- kate: indent-width 2; -->
diff --git a/xml/elixir.xml b/xml/elixir.xml
--- a/xml/elixir.xml
+++ b/xml/elixir.xml
@@ -30,7 +30,7 @@
           name="Elixir"
           section="Sources"
           style="elixir"
-          version="2">
+          version="4">
   <highlighting>
     <list name="control-flow">
       <item>catch</item>
@@ -144,10 +144,6 @@
         <DetectChar attribute="Normal Text" char=")" context="#stay"/>
         <DetectIdentifier attribute="Normal Text" context="#stay"/>
       </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Find closing block brace">
-        <DetectChar attribute="Operator" char="}" context="#pop" endRegion="def bracketed block"/>
-        <IncludeRules context="Normal"/>
-      </context>
       <context attribute="DocComment" lineEndContext="#stay" name="Documentation">
         <StringDetect String="&quot;&quot;&quot;" attribute="Attribute" context="#pop"/>
         <RegExpr attribute="MarkdownHead" String="^\s*#+\s.*[#]?$"/>
@@ -183,16 +179,8 @@
         <RegExpr String="#@{1,2}" attribute="Substitution" context="#stay"/>
         <RegExpr String="\w(?!\w)" attribute="Substitution" context="#pop"/>
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="Comment Line">
-      </context>
       <context attribute="Comment" lineEndContext="#pop" name="General Comment">
       </context>
-      <!-- rules to be included in all regexpr contexts -->
-      <context attribute="Regular Expression" lineEndContext="#stay" name="regexpr_rules">
-        <Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
-        <RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/>
-        <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
-      </context>
       <context attribute="MarkdownCode" lineEndContext="#stay" name="Markdown Code">
         <RegExpr String="^\s*\`\`\`\s*$" attribute="MarkdownCode" context="#pop"/>
       </context>
@@ -215,14 +203,11 @@
       <itemData defStyleNum="dsVariable" name="Symbol"/>
       <itemData defStyleNum="dsString" name="String"/>
       <itemData defStyleNum="dsVerbatimString" name="Raw String"/>
-      <itemData defStyleNum="dsSpecialString" name="Regular Expression"/>
       <itemData defStyleNum="dsOthers" name="Substitution"/>
-      <itemData defStyleNum="dsNormal" name="Data"/>
       <itemData defStyleNum="dsOthers" name="Attribute"/>
       <itemData defStyleNum="dsComment" name="Comment"/>
       <itemData defStyleNum="dsComment" name="DocComment"/>
       <!-- use these to mark errors and alerts things -->
-      <itemData defStyleNum="dsError" name="Error"/>
       <itemData color="#FF9FEC" defStyleNum="dsNormal" name="Delimiter"/>
       <itemData defStyleNum="dsOperator" name="Operator"/>
       <itemData name="MarkdownHead" defStyleNum="dsFunction" bold="true"/>
diff --git a/xml/email.xml b/xml/email.xml
--- a/xml/email.xml
+++ b/xml/email.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="Email" version="3" kateversion="5.0" extensions="*.eml;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT">
+<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">
     <highlighting>
         <list name="header-names">
             <item>Authentication-Results:</item>
diff --git a/xml/fasm.xml b/xml/fasm.xml
--- a/xml/fasm.xml
+++ b/xml/fasm.xml
@@ -13,7 +13,7 @@
 * "used" and "defined" are treated opperators and are not highlighted.
 -->
 
-<language name="Intel x86 (FASM)" section="Assembler" version="1" kateversion="5.0" extensions="*.asm;*.inc;*.fasm" mimetype="" author="rCX (rCX12@yahoo.com)" license="GPL">
+<language name="Intel x86 (FASM)" section="Assembler" version="2" kateversion="5.0" extensions="*.asm;*.inc;*.fasm" mimetype="" author="rCX (rCX12@yahoo.com)" license="GPL">
   <highlighting>
     <list name="registers">
       <!-- General purpose registers -->
@@ -868,7 +868,6 @@
         <HlCChar attribute="Char" context="#stay"/>
       </context>
       <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
-      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
       <context name="String" attribute="String" lineEndContext="#pop">
         <AnyChar attribute="String" context="#pop" String="&quot;'"/>
       </context>
diff --git a/xml/fsharp.xml b/xml/fsharp.xml
--- a/xml/fsharp.xml
+++ b/xml/fsharp.xml
@@ -9,7 +9,7 @@
 <!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
 <!ENTITY DEC    "[0-9][0-9_]*">                                     <!-- Decimal digits with underscores. -->
 ]>
-<language name="FSharp" version="3" kateversion="5.0" section="Sources" extensions="*.fs;*.fsi;*.fsx" mimetype="" priority="10" author="Bas Bossink (bas.bossink@gmail.com)" license="LGPL">
+<language name="FSharp" version="5" kateversion="5.0" section="Sources" extensions="*.fs;*.fsi;*.fsx" mimetype="" priority="10" author="Bas Bossink (bas.bossink@gmail.com)" license="LGPL">
 
   <highlighting>
     <list name="keywords">
@@ -105,9 +105,6 @@
       <item>option</item>
       <item>seq</item>
     </list>
-    <list name="symbols">
-      <item>?</item>
-    </list>
     <list name="end">
       <item>end</item>
     </list>
@@ -256,7 +253,6 @@
       <itemData name="Identifier" defStyleNum="dsNormal"/>
       <itemData name="Symbol" defStyleNum="dsNormal"/>
       <itemData name="Keyword"  defStyleNum="dsKeyword"/>
-      <itemData name="Revised Syntax Keyword"  defStyleNum="dsNormal"/>
       <itemData name="Core Data Type"  defStyleNum="dsDataType"/>
       <itemData name="Decimal"  defStyleNum="dsDecVal"/>
       <itemData name="Hexadecimal"  defStyleNum="dsBaseN"/>
diff --git a/xml/gcc.xml b/xml/gcc.xml
--- a/xml/gcc.xml
+++ b/xml/gcc.xml
@@ -13,7 +13,7 @@
   -->
 <language
     name="GCCExtensions"
-    version="1"
+    version="3"
     kateversion="5.0"
     section="Sources"
     extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;"
diff --git a/xml/go.xml b/xml/go.xml
--- a/xml/go.xml
+++ b/xml/go.xml
@@ -26,7 +26,7 @@
 -->
 
 
-<language name="Go" version="3" kateversion="5.0" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">
+<language name="Go" version="4" kateversion="5.0" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">
     <highlighting>
     <list name="keywords">
 <!-- Keywords have been taken from The Go Programming Language Specification -> Keywords section -->
@@ -163,7 +163,6 @@
       <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
       <itemData name="Char"         defStyleNum="dsChar"   spellChecking="false"/>
       <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
-      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
     </itemDatas>
     </highlighting>
   <general>
diff --git a/xml/ini.xml b/xml/ini.xml
--- a/xml/ini.xml
+++ b/xml/ini.xml
@@ -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="2" kateversion="2.4" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
+<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="3" kateversion="2.4" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
 
 <highlighting>
 <list name="keywords">
@@ -44,8 +44,6 @@
   <Float attribute="Float" />
   <Int attribute="Int" />
   <keyword attribute="Keyword" String="keywords" />
-  <RegExpr attribute="Comment" context="#pop" String=";.*$" />
-  <RegExpr attribute="Comment" context="#pop" String="#.*$" />
  </context>
 
  <context name="Comment" attribute="Comment" lineEndContext="#pop">
diff --git a/xml/isocpp.xml b/xml/isocpp.xml
--- a/xml/isocpp.xml
+++ b/xml/isocpp.xml
@@ -11,7 +11,7 @@
 <language
     name="ISO C++"
     section="Sources"
-    version="10"
+    version="12"
     kateversion="5.0"
     indenter="cstyle"
     style="C++"
@@ -341,10 +341,6 @@
         <RegExpr attribute="String" context="#pop" String="\)%2&quot;" dynamic="true"/>
       </context>
 
-      <context name="DetectIdentifierEnd" attribute="Normal Text" lineEndContext="#pop">
-        <AnyChar context="#pop" String="&punctuators;" attribute="Symbol" />
-      </context>
-
       <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop" />
 
       <context name="DetectNSEnd" attribute="Normal Text" lineEndContext="#pop">
@@ -414,7 +410,7 @@
 
       <context name="Define" attribute="Preprocessor" lineEndContext="#pop">
         <LineContinue attribute="Separator Symbol" context="#stay" />
-        <DetectChar attribute="Error" context="#stay" char="\\" />
+        <DetectChar attribute="Error" context="#stay" char="\" />
         <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />
         <IncludeRules context="GNUMacros##GCCExtensions" />
       </context>
diff --git a/xml/javascript.xml b/xml/javascript.xml
--- a/xml/javascript.xml
+++ b/xml/javascript.xml
@@ -3,7 +3,7 @@
 <!-- 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="6" kateversion="5.0" section="Scripts" extensions="*.js;*.kwinscript;*.julius"
+<language name="JavaScript" version="7" kateversion="5.0" section="Scripts" extensions="*.js;*.kwinscript;*.julius"
           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>
@@ -227,7 +227,6 @@
       <itemData name="ControlFlow"  defStyleNum="dsControlFlow" spellChecking="false" />
       <itemData name="Reserved"     defStyleNum="dsKeyword" italic="true" spellChecking="false" />
       <itemData name="Module"       defStyleNum="dsImport" spellChecking="false" />
-      <itemData name="Function"     defStyleNum="dsFunction" spellChecking="false" />
       <itemData name="Objects"      defStyleNum="dsVariable" spellChecking="false" />
       <itemData name="Object Member" defStyleNum="dsAttribute" spellChecking="false" />
 
diff --git a/xml/json.xml b/xml/json.xml
--- a/xml/json.xml
+++ b/xml/json.xml
@@ -12,7 +12,7 @@
  ** http://tools.ietf.org/html/rfc4627
  ***************************************************************************
 -->
-<language name="JSON" section="Markup" version="2" kateversion="2.4" extensions="*.json;.kateproject;.arcconfig" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
+<language name="JSON" section="Markup" version="3" kateversion="2.4" extensions="*.json;.kateproject;.arcconfig;*.gltf" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
   <highlighting>
     <list name="Constants">
       <item>null</item>
diff --git a/xml/jsp.xml b/xml/jsp.xml
--- a/xml/jsp.xml
+++ b/xml/jsp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language version="2" 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="3" 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">
@@ -3036,7 +3036,6 @@
       <itemData name="Identifier" defStyleNum="dsOthers"/>
       <itemData name="Types" defStyleNum="dsDataType"/>
       <itemData name="String" defStyleNum="dsString"/>
-      <itemData name="Comment" defStyleNum="dsComment"/>
 
       <itemData name="Html Comment" defStyleNum="dsComment"/>
 
@@ -3045,7 +3044,6 @@
       <itemData name="Hex" defStyleNum="dsBaseN"/>
       <itemData name="Float" defStyleNum="dsFloat"/>
       <itemData name="Char" defStyleNum="dsChar"/>
-      <itemData name="String Char" defStyleNum="dsChar"/>
       <itemData name="Symbol" defStyleNum="dsNormal"/>
       <itemData name="Java 1.4.2 Classes" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
 
diff --git a/xml/julia.xml b/xml/julia.xml
--- a/xml/julia.xml
+++ b/xml/julia.xml
@@ -29,7 +29,7 @@
 
 <!DOCTYPE language SYSTEM "language.dtd">
 
-<language name="Julia" section="Sources" version="3" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">
+<language name="Julia" section="Sources" version="5" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">
 
   <highlighting>
     <list name="block_begin">
@@ -225,7 +225,7 @@
       </context>
 
       <!-- Contexts entered after beginning a list or array -->
-      <context name="nested" attribute="Normal Text" lineEndContext="#stay">
+<!--      <context name="nested" attribute="Normal Text" lineEndContext="#stay">
         <DetectChar char=")" context="#pop" endRegion="nested" attribute="Delimiter" />
       </context>
       <context name="squared" attribute="Normal Text" lineEndContext="#stay">
@@ -233,7 +233,7 @@
       </context>
       <context name="curly" attribute="Normal Text" lineEndContext="#stay">
         <DetectChar char="}" context="#pop" endRegion="curly" attribute="Delimiter" />
-      </context>
+      </context>-->
 
       <!-- Context entered after encountering an ' adjoint operator -->
       <context name="_adjoint" attribute="Operator" lineEndContext="#pop">
@@ -261,7 +261,6 @@
       <itemData name="Normal Text" defStyleNum="dsNormal" />
       <itemData name="Variable" defStyleNum="dsNormal" />
       <itemData name="Operator" defStyleNum="dsNormal"/>
-      <itemData name="Decimal" defStyleNum="dsDecVal" />
       <itemData name="Float" defStyleNum="dsFloat" />
       <itemData name="Hex" defStyleNum="dsBaseN" />
       <itemData name="Delimiter" defStyleNum="dsNormal" />
@@ -269,7 +268,6 @@
       <itemData name="String Char" defStyleNum="dsSpecialChar"/>
       <itemData name="Char" defStyleNum="dsChar"/>
       <itemData name="Incomplete Char" defStyleNum="dsChar"/>
-      <itemData name="System" defStyleNum="dsBaseN"/>
       <itemData name="Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Data Type" defStyleNum="dsDataType"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
diff --git a/xml/kotlin.xml b/xml/kotlin.xml
--- a/xml/kotlin.xml
+++ b/xml/kotlin.xml
@@ -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="2" 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="4" 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>
@@ -263,9 +263,6 @@
                 <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
             </context>
 
-            <context attribute="Symbol" lineEndContext="#stay" name="symbols">
-                <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;" />
-            </context>
         </contexts>
 
         <itemDatas>
@@ -278,7 +275,6 @@
             <itemData name="Annotation"   defStyleNum="dsAttribute"/>
             <itemData name="Data Type"    defStyleNum="dsDataType" bold="true" />
             <itemData name="Decimal"      defStyleNum="dsDecVal"/>
-            <itemData name="Hex"          defStyleNum="dsBaseN"/>
             <itemData name="Float"        defStyleNum="dsFloat"/>
             <itemData name="Char"         defStyleNum="dsChar"/>
             <itemData name="String"       defStyleNum="dsString"/>
diff --git a/xml/latex.xml b/xml/latex.xml
--- a/xml/latex.xml
+++ b/xml/latex.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="LaTeX" version="5" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz" 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="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" >
   <highlighting>
     <contexts>
       <!-- Normal text -->
@@ -132,8 +132,6 @@
         <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
         <RegExpr String="[a-zA-Z@]+(\+?|\*{0,3})" attribute="Macro" context="#pop"/>
         <RegExpr String="[^a-zA-Z]" attribute="Macro" context="#pop" />
-      </context>
-      <context name="ToEndOfLine" attribute="Normal Text" lineEndContext="#pop">
       </context>
 
       <!-- \mint command with parameter-->
diff --git a/xml/lilypond.xml b/xml/lilypond.xml
--- a/xml/lilypond.xml
+++ b/xml/lilypond.xml
@@ -56,7 +56,7 @@
 ]>
 <language name="LilyPond" section="Other"
           style="lilypond" indenter="lilypond"
-          version="4" kateversion="3.3"
+          version="6" kateversion="3.3"
           extensions="*.ly;*.LY;*.ily;*.ILY;*.lyi;*.LYI"
           mimetype="text/x-lilypond"
           author="Wilbert Berendsen (info@wilbertberendsen.nl)" license="LGPL">
@@ -1155,7 +1155,7 @@
       <itemData name="Chord" defStyleNum="dsDataType" bold="true"/>
       <itemData name="Beam" defStyleNum="dsDataType" bold="true"/>
       <itemData name="Check" defStyleNum="dsDecVal"/>
-      <itemData name="Repeat" defStyleNum="dsDataType" italic="true"/>
+      <itemData name="Tremolo" defStyleNum="dsOthers"/>
       <itemData name="Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Command" defStyleNum="dsFunction" bold="true"/>
       <itemData name="User Command" defStyleNum="dsFunction"/>
diff --git a/xml/lua.xml b/xml/lua.xml
--- a/xml/lua.xml
+++ b/xml/lua.xml
@@ -1,10 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+<!ENTITY HEX "[0-9A-Fa-f]">
+]>
 <!--
     LUA (www.lua.org) syntax highlighting for Kate
 
     CHANGES
 
+    [ Version 1.04 (2018-04-30) by Jonathan Poelen ]
+
+    - based on Lua 5.3
+    - some math.*, table.* and string.* are marked as deprecated
+    - fix special char, float format and ' collapsable
+
     [ Version 1.03 (2007-09-12) by Bruno Massa ]
 
     - [=[ ]=] comment and string style is now working (thanks to Dominik and Sebastian)
@@ -33,9 +42,8 @@
     - nil, false and true consided pseudo-variables (displayed as numbers)
     - NOTE, FIXME, TODO alerts added on comments
     - improved highlighting
-
-    -->
-<language name="Lua" version="2" indenter="lua" kateversion="3.4" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
+-->
+<language name="Lua" version="3" indenter="lua" kateversion="5.0" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
   <highlighting>
     <list name="keywords">
       <item>and</item>
@@ -44,7 +52,12 @@
       <item>local</item>
       <item>not</item>
       <item>or</item>
+      <!-- pseudo-variables -->
+      <item>nil</item>
+      <item>false</item>
+      <item>true</item>
     </list>
+
     <list name="control">
       <item>break</item>
       <item>do</item>
@@ -52,6 +65,7 @@
       <item>elseif</item>
       <item>end</item>
       <item>for</item>
+      <item>goto</item>
       <item>if</item>
       <item>repeat</item>
       <item>return</item>
@@ -59,188 +73,401 @@
       <item>until</item>
       <item>while</item>
     </list>
-    <list name="pseudo-variables">
-      <item>nil</item>
-      <item>false</item>
-      <item>true</item>
+
+    <list name="basevar">
+      <item>_PROMPT</item>
+      <item>_PROMPT2</item>
+      <item>LUA_PATH</item>
+      <item>LUA_CPATH</item>
+      <item>LUA_INIT</item>
+      <item>_ENV</item>
+      <item>_VERSION</item>
+      <item>_G</item>
+      <!-- Module -->
+      <item>package.config</item>
+      <item>package.cpath</item>
+      <item>package.loaded</item>
+      <item>package.path</item>
+      <item>package.preload</item>
+      <item>package.searchers</item>
+      <!-- UTF-8 Support -->
+      <item>utf8.charpattern</item>
+      <!-- Mathematical Functions -->
+      <item>math.maxinteger</item>
+      <item>math.mininteger</item>
+      <item>math.pi</item>
     </list>
+
     <list name="basefunc">
-      <item>string.byte</item>  <item>string.char</item>
-      <item>string.find</item>  <item>string.len</item>
-      <item>string.lower</item> <item>string.rep</item>
-      <item>string.sub</item>   <item>string.upper</item>
-      <item>string.format</item><item>string.gfind</item>
-      <item>string.gsub</item>  <item>table.concat</item>
-      <item>table.getn</item>   <item>table.sort</item>
-      <item>table.insert</item> <item>table.remove</item>
-      <item>table.setn</item>   <item>math.abs</item>
-      <item>math.sin</item>     <item>math.cos</item>
-      <item>math.tan</item>     <item>math.asin</item>
-      <item>math.acos</item>    <item>math.atan</item>
-      <item>math.atan2</item>   <item>math.ceil</item>
-      <item>math.floor</item>   <item>math.mod</item>
-      <item>math.frexp</item>   <item>math.ldexp</item>
-      <item>math.squrt</item>   <item>math.min</item>
-      <item>math.max</item>     <item>math.log</item>
-      <item>math.log10</item>   <item>math.exp</item>
-      <item>math.deg</item>     <item>math.rad</item>
-      <item>math.random</item>  <item>math.randomseed</item>
-      <item>io.close</item>     <item>io.flush</item>
-      <item>io.input</item>     <item>io.lines</item>
-      <item>io.open</item>      <item>io.output</item>
-      <item>io.read</item>      <item>io.stderr</item>
-      <item>io.stdin</item>     <item>io.stdout</item>
-      <item>io.tmpfile</item>   <item>io.write</item>
-      <item>os.clock</item>     <item>os.date</item>
-      <item>os.difftime</item>  <item>os.execute</item>
-      <item>os.exit</item>      <item>os.getenv</item>
-      <item>os.remove</item>    <item>os.rename</item>
-      <item>os.setlocale</item> <item>os.time</item>
-      <item>os.tmpname</item>   <item>debug.getinfo</item>
-      <item>debug.getlocal</item><item>debug.setlocal</item>
-      <item>debug.sethook</item><item>debug.gethook</item>
-      <item>assert</item>      <item>collectgarbage</item>
-      <item>dofile</item>      <item>error</item>
-      <item>next</item>        <item>print</item>
-      <item>rawget</item>      <item>rawset</item>
-      <item>tonumber</item>    <item>tostring</item>
-      <item>type</item>        <item>_ALERT</item>
-      <item>_ERRORMESSAGE</item><item>call</item>
-      <item>getmetatable</item><item>gcinfo</item>
-      <item>ipairs</item>      <item>loadfile</item>
-      <item>loadstring</item>  <item>pairs</item>
-      <item>pcall</item>       <item>require</item>
-      <item>LUA_PATH</item>    <item>setmetatable</item>
-      <item>_LOADED</item>     <item>_VERSION</item>
-      <item>gettagmethod</item><item>globals</item>
-      <item>newtag</item>      <item>setglobal</item>
-      <item>settag</item>      <item>settagmethod</item>
-      <item>setlinehook</item> <item>getglobals</item>
-      <item>copytagmethods</item><item>dostring</item>
-      <item>getglobal</item>   <item>tag</item>
-      <item>setglobals</item>  <item>unpack</item>
-      <item>exit</item>        <item>readfrom</item>
-      <item>writeto</item>     <item>appendto</item>
-      <item>read</item>        <item>write</item>
-      <item>getinfo</item>     <item>getlocal</item>
-      <item>setlocal</item>    <item>setcallhook</item>
-      <item>tinsert</item>     <item>tremove</item>
-      <item>flush</item>       <item>seek</item>
-      <item>setlocale</item>   <item>execute</item>
-      <item>remove</item>      <item>rename</item>
-      <item>tmpname</item>     <item>getenv</item>
-      <item>getn</item>        <item>sort</item>
-      <item>table.foreach</item> <item>table.foreachi</item>
-      <item>foreach</item>     <item>foreachi</item>
-      <item>abs</item>         <item>sin</item>
-      <item>cos</item>         <item>tan</item>
-      <item>asin</item>        <item>acos</item>
-      <item>atan</item>        <item>atan2</item>
-      <item>ceil</item>        <item>floor</item>
-      <item>mod</item>         <item>frexp</item>
-      <item>ldexp</item>       <item>squrt</item>
-      <item>min</item>         <item>max</item>
-      <item>log</item>         <item>log10</item>
-      <item>exp</item>         <item>deg</item>
-      <item>rad</item>         <item>random</item>
-      <item>randomseed</item>  <item>strlen</item>
-      <item>strsub</item>      <item>strlower</item>
-      <item>strupper</item>    <item>strchar</item>
-      <item>strrep</item>      <item>ascii</item>
-      <item>strbyte</item>     <item>format</item>
-      <item>strfind</item>     <item>gsub</item>
-      <item>openfile</item>    <item>closefile</item>
-      <item>date</item>        <item>clock</item>
+      <!-- Basic functions -->
+      <item>assert</item>
+      <item>collectgarbage</item>
+      <item>dofile</item>
+      <item>error</item>
+      <item>getmetatable</item>
+      <item>ipairs</item>
+      <item>load</item>
+      <item>loadfile</item>
+      <item>next</item>
+      <item>pairs</item>
+      <item>pcall</item>
+      <item>print</item>
+      <item>rawequal</item>
+      <item>rawget</item>
+      <item>rawlen</item>
+      <item>rawset</item>
+      <item>select</item>
+      <item>setmetatable</item>
+      <item>tonumber</item>
+      <item>tostring</item>
+      <item>type</item>
+      <item>xpcall</item>
 
+      <!-- Coroutine manipulation -->
+      <item>coroutine.create</item>
+      <item>coroutine.isyieldable</item>
+      <item>coroutine.resume</item>
+      <item>coroutine.running</item>
+      <item>coroutine.status</item>
+      <item>coroutine.wrap</item>
+      <item>coroutine.yield</item>
 
-      <item>cgilua</item>                     <item>cgilua.lp.translate</item>
-      <item>cgilua.contentheader</item>       <item>cgilua.script_file</item>
-      <item>cgilua.header</item>              <item>cgilua.script_path</item>
-      <item>cgilua.htmlheader</item>          <item>cgilua.script_pdir</item>
-      <item>cgilua.redirect</item>            <item>cgilua.script_vdir</item>
-      <item>cgilua.mkabsoluteurl</item>       <item>cgilua.script_vpath</item>
-      <item>cgilua.mkurlpath</item>           <item>cgilua.servervariable</item>
-      <item>cgilua.put</item>                 <item>cgilua.urlpath</item>
-      <item>cgilua.handlelp</item>            <item>cgilua.errorlog</item>
-      <item>cgilua.lp.compile</item>          <item>cgilua.seterrorhandler</item>
-      <item>cgilua.lp.include</item>          <item>cgilua.seterroroutput</item>
-      <item>cgilua.lp.setcompatmode</item>    <item>cgilua.addclosefunction</item>
-      <item>cgilua.lp.setoutfunc</item>       <item>cgilua.addopenfunction</item>
-      <item>cgilua.addscripthandler</item>    <item>cgilua.addscripthandler</item>
-      <item>cgilua.buildprocesshandler</item> <item>cgilua.setmaxfilesize</item>
-      <item>cgilua.setmaxinput</item>         <item>cgilua.urlcode.encodetable</item>
-      <item>cgilua.urlcode.escape</item>      <item>cgilua.urlcode.parsequery</item>
-      <item>cgilua.urlcode.unescape</item>    <item>cgilua.urlcode.insertfield</item>
-      <item>cgilua.setoutfunc</item>          <item>cgilua.addopenfunction</item>
-      <item>cgilua.doif</item>                <item>cgilua.doscript</item>
-      <item>cgilua.pack</item>                <item>cgilua.splitpath</item>
-      <item>cgilua.cookies.get</item>         <item>cgilua.cookies.set</item>
-      <item>cgilua.cookies.sethtml</item>     <item>cgilua.cookies.delete</item>
-      <item>cgilua.serialize</item>           <item>cgilua.session.close</item>
-      <item>cgilua.session.data</item>        <item>cgilua.session.load</item>
-      <item>cgilua.session.new</item>         <item>cgilua.session.open</item>
-      <item>cgilua.session.save</item>        <item>cgilua.session.setsessiondir</item>
-      <item>cgilua.session.delete</item>      <item>cgilua.session</item>
+      <!-- Module -->
+      <item>require</item>
+      <item>package.loadlib</item>
+      <item>package.searchpath</item>
+
+      <!-- String Manipulation -->
+      <item>string.byte</item>
+      <item>string.char</item>
+      <item>string.dump</item>
+      <item>string.find</item>
+      <item>string.format</item>
+      <item>string.gmatch</item>
+      <item>string.gsub</item>
+      <item>string.len</item>
+      <item>string.lower</item>
+      <item>string.match</item>
+      <item>string.pack</item>
+      <item>string.packsize</item>
+      <item>string.rep</item>
+      <item>string.reverse</item>
+      <item>string.sub</item>
+      <item>string.unpack</item>
+      <item>string.upper</item>
+
+      <!-- UTF-8 Support -->
+      <item>utf8.char</item>
+      <item>utf8.codes</item>
+      <item>utf8.codepoint</item>
+      <item>utf8.len</item>
+      <item>utf8.offset</item>
+
+      <!-- Table Manipulation -->
+      <item>table.concat</item>
+      <item>table.insert</item>
+      <item>table.move</item>
+      <item>table.pack</item>
+      <item>table.remove</item>
+      <item>table.sort</item>
+      <item>table.unpack</item>
+
+      <!-- Mathematical Functions -->
+      <item>math.abs</item>
+      <item>math.acos</item>
+      <item>math.asin</item>
+      <item>math.atan</item>
+      <item>math.ceil</item>
+      <item>math.cos</item>
+      <item>math.deg</item>
+      <item>math.exp</item>
+      <item>math.floor</item>
+      <item>math.fmod</item>
+      <item>math.huge</item>
+      <item>math.log</item>
+      <item>math.max</item>
+      <item>math.min</item>
+      <item>math.modf</item>
+      <item>math.rad</item>
+      <item>math.random</item>
+      <item>math.randomseed</item>
+      <item>math.sin</item>
+      <item>math.sqrt</item>
+      <item>math.tan</item>
+      <item>math.tointeger</item>
+      <item>math.type</item>
+      <item>math.utl</item>
+
+      <!-- Input and Output Facilities -->
+      <item>io.close</item>
+      <item>io.flush</item>
+      <item>io.input</item>
+      <item>io.lines</item>
+      <item>io.open</item>
+      <item>io.output</item>
+      <item>io.popen</item>
+      <item>io.read</item>
+      <item>io.stderr</item>
+      <item>io.stdin</item>
+      <item>io.stdout</item>
+      <item>io.tmpfile</item>
+      <item>io.type</item>
+      <item>io.write</item>
+
+      <!-- Operating System Facilities -->
+      <item>os.clock</item>
+      <item>os.date</item>
+      <item>os.difftime</item>
+      <item>os.execute</item>
+      <item>os.exit</item>
+      <item>os.getenv</item>
+      <item>os.remove</item>
+      <item>os.rename</item>
+      <item>os.setlocale</item>
+      <item>os.time</item>
+      <item>os.tmpname</item>
+
+      <!-- The Debug Library -->
+      <item>debug.debug</item>
+      <item>debug.gethook</item>
+      <item>debug.getinfo</item>
+      <item>debug.getlocal</item>
+      <item>debug.getmetatable</item>
+      <item>debug.getregistry</item>
+      <item>debug.getupvalue</item>
+      <item>debug.getuservalue</item>
+      <item>debug.sethook</item>
+      <item>debug.setlocal</item>
+      <item>debug.setmetatable</item>
+      <item>debug.setupvalue</item>
+      <item>debug.setuservalue</item>
+      <item>debug.traceback</item>
+      <item>debug.upvalueid</item>
+      <item>debug.upvaluejoin</item>
+
+      <item>cgilua</item>
+      <item>cgilua.addclosefunction</item>
+      <item>cgilua.addopenfunction</item>
+      <item>cgilua.addopenfunction</item>
+      <item>cgilua.addscripthandler</item>
+      <item>cgilua.addscripthandler</item>
+      <item>cgilua.buildprocesshandler</item>
+      <item>cgilua.contentheader</item>
+      <item>cgilua.cookies.delete</item>
+      <item>cgilua.cookies.get</item>
+      <item>cgilua.cookies.set</item>
+      <item>cgilua.cookies.sethtml</item>
       <item>cgilua.cookies</item>
+      <item>cgilua.doif</item>
+      <item>cgilua.doscript</item>
+      <item>cgilua.errorlog</item>
+      <item>cgilua.handlelp</item>
+      <item>cgilua.header</item>
+      <item>cgilua.htmlheader</item>
+      <item>cgilua.lp.compile</item>
+      <item>cgilua.lp.include</item>
+      <item>cgilua.lp.setcompatmode</item>
+      <item>cgilua.lp.setoutfunc</item>
+      <item>cgilua.lp.translate</item>
+      <item>cgilua.mkabsoluteurl</item>
+      <item>cgilua.mkurlpath</item>
+      <item>cgilua.pack</item>
+      <item>cgilua.put</item>
+      <item>cgilua.redirect</item>
+      <item>cgilua.script_file</item>
+      <item>cgilua.script_path</item>
+      <item>cgilua.script_pdir</item>
+      <item>cgilua.script_vdir</item>
+      <item>cgilua.script_vpath</item>
+      <item>cgilua.serialize</item>
+      <item>cgilua.servervariable</item>
+      <item>cgilua.session.close</item>
+      <item>cgilua.session.data</item>
+      <item>cgilua.session.delete</item>
+      <item>cgilua.session.load</item>
+      <item>cgilua.session.new</item>
+      <item>cgilua.session.open</item>
+      <item>cgilua.session.save</item>
+      <item>cgilua.session.setsessiondir</item>
+      <item>cgilua.session</item>
+      <item>cgilua.seterrorhandler</item>
+      <item>cgilua.seterroroutput</item>
+      <item>cgilua.setmaxfilesize</item>
+      <item>cgilua.setmaxinput</item>
+      <item>cgilua.setoutfunc</item>
+      <item>cgilua.splitpath</item>
+      <item>cgilua.urlcode.encodetable</item>
+      <item>cgilua.urlcode.escape</item>
+      <item>cgilua.urlcode.insertfield</item>
+      <item>cgilua.urlcode.parsequery</item>
+      <item>cgilua.urlcode.unescape</item>
+      <item>cgilua.urlpath</item>
 
-      <item>numrows</item>                    <item>connect</item>
-      <item>close</item>                      <item>fetch</item>
-      <item>getcolnames</item>                <item>getcoltypes</item>
-      <item>commit</item>                     <item>rollback</item>
+      <item>lfs</item>
+      <item>lfs.attributes</item>
+      <item>lfs.chdir</item>
+      <item>lfs.currentdir</item>
+      <item>lfs.dir</item>
+      <item>lfs.lock</item>
+      <item>lfs.mkdir</item>
+      <item>lfs.rmdir</item>
+      <item>lfs.touch</item>
+      <item>lfs.unlock</item>
+
+      <item>zip</item>
+      <item>zip.open</item>
+      <item>zip.openfile</item>
+
+      <!-- member function-->
+
+      <!-- String Manipulation -->
+      <item>byte</item>
+      <item>char</item>
+      <item>dump</item>
+      <item>find</item>
+      <item>format</item>
+      <item>gmatch</item>
+      <item>gsub</item>
+      <item>len</item>
+      <item>lower</item>
+      <item>match</item>
+      <item>pack</item>
+      <item>packsize</item>
+      <item>rep</item>
+      <item>reverse</item>
+      <item>sub</item>
+      <item>unpack</item>
+      <item>upper</item>
+
+      <!-- Table Manipulation -->
+      <item>concat</item>
+      <item>insert</item>
+      <item>move</item>
+      <item>pack</item>
+      <item>remove</item>
+      <item>sort</item>
+      <item>unpack</item>
+
+      <!-- luasql -->
+      <item>close</item>
+      <item>commit</item>
+      <item>connect</item>
+      <item>escape</item>
+      <item>execute</item>
+      <item>fetch</item>
+      <item>getcolnames</item>
+      <item>getcoltypes</item>
+      <item>getlastautoid</item>
+      <item>numrows</item>
+      <item>rollback</item>
       <item>setautocommit</item>
 
-      <item>lfs</item>                        <item>lfs.attributes</item>
-      <item>lfs.chdir</item>                  <item>lfs.currentdir</item>
-      <item>lfs.dir</item>                    <item>lfs.lock</item>
-      <item>lfs.mkdir</item>                  <item>lfs.rmdir</item>
-      <item>lfs.touch</item>                  <item>lfs.unlock</item>
+      <!-- luazip -->
+      <item>files</item>
 
-      <item>zip</item>                        <item>zip.open</item>
-      <item>zip.openfile</item>               <item>files</item>
-      <item>seek</item>                       <item>close</item>
+      <!-- File Manipulation -->
+      <item>close</item>
+      <item>flush</item>
       <item>lines</item>
+      <item>read</item>
+      <item>seek</item>
+      <item>setvbuf</item>
+      <item>write</item>
+    </list>
 
+    <list name="metamethod">
+      <item>__add</item>
+      <item>__sub</item>
+      <item>__mul</item>
+      <item>__div</item>
+      <item>__mod</item>
+      <item>__pow</item>
+      <item>__unm</item>
+      <item>__idiv</item>
+      <item>__band</item>
+      <item>__bor</item>
+      <item>__bxor</item>
+      <item>__bnot</item>
+      <item>__shl</item>
+      <item>__shr</item>
+      <item>__concat</item>
+      <item>__len</item>
+      <item>__eq</item>
+      <item>__lt</item>
+      <item>__le</item>
+      <item>__index</item>
+      <item>__newindex</item>
+      <item>__call</item>
 
-    </list>
-    <list name="attention">
-      <item>TODO</item>
-      <item>FIXME</item>
-      <item>NOTE</item>
+      <item>__tostring</item>
+      <item>__pairs</item>
+      <!-- setmetatable -->
+      <item>__metatable</item>
+      <!-- Garbage collector -->
+      <item>__gc</item>
+      <!-- Weak table -->
+      <item>__mode</item>
     </list>
+
     <list name="deprecated">
-      <item>table.foreach</item> <item>table.foreachi</item>
-      <item>foreach</item>       <item>foreachi</item>
+      <item>_ALERT</item>
+      <item>_ERRORMESSAGE</item>
+      <item>_LOADED</item>
+      <item>__ipairs</item>
+      <item>foreach</item>
+      <item>foreachi</item>
+      <item>loadstring</item>
+      <item>math.atan2</item>
+      <item>math.cosh</item>
+      <item>math.frexp</item>
+      <item>math.ldexp</item>
+      <item>math.log10</item>
+      <item>math.mod</item>
+      <item>math.pow</item>
+      <item>math.sinh</item>
+      <item>math.tanh</item>
+      <item>string.gfind</item>
+      <item>table.foreach</item>
+      <item>table.foreachi</item>
+      <item>table.getn</item>
+      <item>table.setn</item>
     </list>
 
     <contexts>
+      <context name="Shebang"       attribute="Comment" lineEndContext="Normal" fallthrough="true" fallthroughContext="Normal">
+        <Detect2Chars attribute="Comment" context="Comment" char="#" char1="!" column="0"/>
+      </context>
+
+      <context name="Comment"       attribute="Comment"     lineEndContext="#pop">
+      </context>
+
       <context name="Normal"        attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="##DoxygenLua" />
-        <keyword      attribute="Error"  context="#stay" String="deprecated" />
         <DetectSpaces />
-        <RegExpr      attribute="Comment"  context="Block Comment" beginRegion="block comment"  String="--\[(=*)\[" dynamic="true" />
-        <Detect2Chars attribute="Comment"  context="Comment"       char="-" char1="-"/>
-        <RegExpr      attribute="Strings"  context="String_block"  String="\[(=*)\[" dynamic="true" />
+        <keyword      attribute="Deprecated" context="#stay"       String="deprecated" />
+        <IncludeRules context="##DoxygenLua" />
+
+        <RegExpr      attribute="RawStrings" context="String_block"  String="\[(=*)\[" dynamic="true" />
         <DetectChar   attribute="Strings"  context="String_single" char="'"/>
         <DetectChar   attribute="Strings"  context="String_double" char="&quot;"/>
         <keyword      attribute="BFunc"    context="#stay"         String="basefunc"/>
+        <keyword      attribute="Metamethod" context="#stay"       String="metamethod"/>
+        <keyword      attribute="BVar"     context="#stay"         String="basevar"/>
 
-        <RegExpr      attribute="Keyword"  context="#stay" beginRegion="chunk" String="\bfunction\b" />
+        <WordDetect   attribute="Keyword"  context="#stay" beginRegion="chunk" String="function" />
         <keyword      attribute="Keyword"  context="#stay" String="keywords" />
-        <keyword      attribute="Keyword"  context="#stay"  String="pseudo-variables" />
-        <RegExpr      attribute="Control"  context="#stay" endRegion="chunk"   beginRegion="chunk" String="\belse\b" />
-        <RegExpr      attribute="Control"  context="#stay" endRegion="chunk"   beginRegion="chunk" String="\belseif\b" />
-        <RegExpr      attribute="Control"  context="#stay" beginRegion="chunk" String="\bdo\b" />
-        <RegExpr      attribute="Control"  context="#stay" beginRegion="chunk" String="\bif\b" />
-        <RegExpr      attribute="Control"  context="#stay" endRegion="chunk"   String="\bend\b" />
+        <WordDetect   attribute="Control"  context="#stay" endRegion="chunk"   beginRegion="chunk" String="else" />
+        <WordDetect   attribute="Control"  context="#stay" endRegion="chunk"   beginRegion="chunk" String="elseif" />
+        <WordDetect   attribute="Control"  context="#stay" beginRegion="chunk" String="do" />
+        <WordDetect   attribute="Control"  context="#stay" beginRegion="chunk" String="if" />
+        <WordDetect   attribute="Control"  context="#stay" endRegion="chunk"   String="end" />
         <keyword      attribute="Control"  context="#stay" String="control" />
 
         <DetectChar   attribute="Symbols"  context="#stay" beginRegion="table" char="{" />
         <DetectChar   attribute="Symbols"  context="#stay" endRegion="table"   char="}" />
 
-        <RegExpr      attribute="Numbers"  context="#stay"  String="\b\d*\.?\d*(e|e\-|e\+)?\d+\b"/>
-        <RegExpr      attribute="Numbers"  context="#stay"  String="\b-?0[xX][0-9a-fA-F]+\b"/>
+        <RegExpr      attribute="Numbers"  context="#stay" String="(?:0[xX](?:\.&HEX;+|&HEX;+\.?&HEX;*)(?:[pP][-+]?\d*)?|(?:\.\d+|\d+\.?\d*)(?:[eE][-+]?\d*)?)"/>
 
-        <RegExpr      attribute="Normal Text" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*(?=\s*([({'&quot;]|\[\[))\b" />
+        <RegExpr      attribute="Normal Text" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*(?=\s*([({'&quot;]|\[\[|\[=))" />
         <RegExpr      attribute="Constant" context="#stay" String="\b[A-Z_][A-Z0-9_]*\b" />
         <RegExpr      attribute="Variable" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*\b" />
 
@@ -249,44 +476,48 @@
         <Detect2Chars attribute="Error"    context="#stay" char="+" char1="="/>
         <Detect2Chars attribute="Error"    context="#stay" char="+" char1="+"/>
         <Detect2Chars attribute="Error"    context="#stay" char="." char1="="/>
-        <AnyChar      attribute="Symbols"  context="#stay" String="[]().,=~+-*/^&gt;&lt;#;" />
-      </context>
-      <context name="Comment"       attribute="Comment"     lineEndContext="#pop">
-        <Detect2Chars attribute="Alerts"   context="#stay" char="-" char1="-" />
-        <keyword      attribute="Alerts"   context="#stay" String="attention"/>
-      </context>
-      <context name="Block Comment" attribute="Comment"     lineEndContext="#stay" dynamic="true" >
-        <RegExpr attribute="Comment"  context="#pop"  endRegion="block comment" String="\]%1\]" dynamic="true" />
-        <Detect2Chars attribute="Alerts"   context="#stay" char="-" char1="-" />
-        <keyword      attribute="Alerts"   context="#stay" String="attention" />
+        <AnyChar      attribute="Symbols"  context="#stay" String=":[]().,=~+-*/%&amp;|^&gt;&lt;#;" />
       </context>
+
       <context name="String_single" attribute="Strings"     lineEndContext="Error">
-        <RegExpr      attribute="Symbols"  context="#stay" String="\\(a|b|f|n|r|t|v|\\|&quot;|\'|[|])" />
+        <DetectChar   attribute="Strings"  context="Special_char"  char="\" lookAhead="true"/>
         <DetectChar   attribute="Strings"  context="#pop"  char="'"/>
       </context>
+
       <context name="String_double" attribute="Strings"     lineEndContext="Error">
-        <RegExpr      attribute="Symbols"  context="#stay" String="\\[abfnrtv'&quot;\\\[\]]" />
+        <DetectChar   attribute="Strings"  context="Special_char"  char="\" lookAhead="true"/>
         <DetectChar   attribute="Strings"  context="#pop"  char="&quot;"/>
       </context>
-      <context name="String_block"  attribute="Strings"     lineEndContext="#stay" dynamic="true">
-        <RegExpr      attribute="Symbols"  context="#stay" String="\\(a|b|f|n|r|t|v|\\|&quot;|\'|[|])" />
-        <RegExpr      attribute="Strings"  context="#pop"  String="\]%1\]" dynamic="true" />
+
+      <context 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="\"/>
       </context>
+
+      <context name="String_block"  attribute="RawStrings"  lineEndContext="#stay" dynamic="true">
+        <StringDetect attribute="RawStrings"    context="#pop"  String="]%1]" dynamic="true" />
+      </context>
+
       <context name="Error"         attribute="Error"       lineEndContext="#stay">
       </context>
     </contexts>
+
     <itemDatas>
       <itemData name="Normal Text"     defStyleNum="dsNormal" spellChecking="false"/>
-      <itemData name="Alerts"          defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="Metamethod"      defStyleNum="dsBuiltIn" spellChecking="false"/>
       <itemData name="BFunc"           defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="BVar"            defStyleNum="dsVariable" spellChecking="false"/>
       <itemData name="Comment"         defStyleNum="dsComment"/>
-      <itemData name="Constant"        defStyleNum="dsNormal" /> <!-- JGM -->
-      <itemData name="Control"         defStyleNum="dsKeyword" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false"/>
+      <itemData name="Constant"        defStyleNum="dsConstant" spellChecking="false"/>
+      <itemData name="Control"         defStyleNum="dsControlFlow" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false"/>
       <itemData name="Error"           defStyleNum="dsError" spellChecking="false"/>
+      <itemData name="Deprecated"      defStyleNum="dsError" spellChecking="false"/>
       <itemData name="Keyword"         defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Numbers"         defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Special Char"    defStyleNum="dsSpecialChar" spellChecking="false"/>
       <itemData name="Strings"         defStyleNum="dsString"/>
-      <itemData name="Symbols"         defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="RawStrings"      defStyleNum="dsVerbatimString"/>
+      <itemData name="Symbols"         defStyleNum="dsOperator" spellChecking="false"/>
       <itemData name="Variable"        defStyleNum="dsNormal" /> <!-- JGM -->
     </itemDatas>
   </highlighting>
@@ -295,6 +526,6 @@
       <comment name="singleLine" start="--" />
       <comment name="multiLine" start="--[[" end="]]" />
     </comments>
-    <keywords casesensitive="1" weakDeliminator="&#46;" additionalDeliminator="&quot;"/>
+    <keywords casesensitive="1" weakDeliminator="." additionalDeliminator="'&quot;"/>
   </general>
 </language>
diff --git a/xml/makefile.xml b/xml/makefile.xml
--- a/xml/makefile.xml
+++ b/xml/makefile.xml
@@ -10,7 +10,7 @@
 <!-- v4 by Alex Richardson <arichardson.kde@gmail.com>
      added bmake support -->
 <language name="Makefile" section="Other"
-          version="6" kateversion="3.4"
+          version="7" kateversion="3.4"
           extensions="GNUmakefile;Makefile;makefile;GNUmakefile.*;Makefile.*;makefile.*;*.mk"
           mimetype="text/x-makefile" priority="11"
           author="Per Wigren (wigren@home.se)" license="">
@@ -433,8 +433,6 @@
           c is omitted, then no separator is used.  The common escapes
           (including octal numeric codes), work as expected. -->
         <Detect2Chars attribute="Builtin" context="#pop!bmake_var_modifier_arg" char="t" char1="s"/>
-        <RegExpr String=""/>
-
 
         <IncludeRules context="bmake_var_modifier_arg"/>
       </context>
diff --git a/xml/mandoc.xml b/xml/mandoc.xml
--- a/xml/mandoc.xml
+++ b/xml/mandoc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="Troff Mandoc" section="Markup" version="1" kateversion="2.4" extensions="*.1;*.2;*.3;*.4;*.5;*.6;*.7;*.8;*.1m;*.3x;*.tmac" mimetype="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
+<language name="Troff Mandoc" section="Markup" version="2" kateversion="2.4" extensions="*.1;*.2;*.3;*.4;*.5;*.6;*.7;*.8;*.1m;*.3x;*.tmac" mimetype="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
 
   <highlighting>
 
@@ -65,7 +65,6 @@
 
     <itemDatas>
       <itemData name="Normal Text"    defStyleNum="dsNormal"/>
-      <itemData name="Comment"        defStyleNum="dsComment"/>
       <itemData name="Macros"         defStyleNum="dsFunction"/>
       <itemData name="Headings"       defStyleNum="dsKeyword"/>
       <itemData name="Paragraphs"     defStyleNum="dsDataType"/>
diff --git a/xml/markdown.xml b/xml/markdown.xml
--- a/xml/markdown.xml
+++ b/xml/markdown.xml
@@ -35,7 +35,7 @@
 <!ENTITY strikeoutregex "[~]{2}[^~].*[^~][~]{2}">
 <!-- pandoc style -->
 ]>
-<language name="Markdown" version="2" kateversion="3.8" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
+<language name="Markdown" version="3" kateversion="3.8" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
   <highlighting>
     <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
@@ -74,6 +74,17 @@
       <context attribute="comment" lineEndContext="#stay" name="comment">
         <RegExpr String="--&gt;" attribute="comment" context="#pop" endRegion="comment"/>
       </context>
+      <context attribute="code" lineEndContext="#stay" name="php-code">
+        <WordDetect attribute="code" context="#pop" String="```"/>
+        <IncludeRules context="phpsource##PHP/PHP"/>
+      </context>
+      <context attribute="code" lineEndContext="#stay" name="python-code">
+        <WordDetect attribute="code" context="#pop" String="```"/>
+        <IncludeRules context="##Python"/>
+      </context>
+      <context attribute="code" lineEndContext="#stay" name="code">
+        <WordDetect attribute="code" context="#pop" String="```"/>
+      </context>
       <context attribute="common" name="inc" lineEndContext="#stay">
         <RegExpr attribute="code" String="`[^`]+`"/>
         <RegExpr context="comment" String="&lt;!--" beginRegion="comment"/>
@@ -87,6 +98,9 @@
         <RegExpr attribute="mailtolink" String="&mailtolinkregex;"/>
         <RegExpr attribute="strikeout" minimal="true" String="&strikeoutregex;"/>
         <RegExpr attribute="linebreak" minimal="true" String="&linebreakregex;"/>
+        <WordDetect attribute="code" context="php-code" String="```php"/>
+        <WordDetect attribute="code" context="python-code" String="```python"/>
+        <StringDetect attribute="code" context="code" String="```"/>
       </context>
     </contexts>
     <itemDatas>
diff --git a/xml/metafont.xml b/xml/metafont.xml
--- a/xml/metafont.xml
+++ b/xml/metafont.xml
@@ -6,7 +6,7 @@
 -->
 
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="Metapost/Metafont" section="Markup" version="1" kateversion="2.4"
+<language name="Metapost/Metafont" section="Markup" version="5" kateversion="5.0"
 extensions="*.mp;*.mps;*.mpost;*.mf" mimetype="text/x-metapost" 
 author="Yedvilun (yedvilun@gmail.com)" license="LGPL">
   <highlighting>
@@ -240,6 +240,7 @@
 
     <!--Page 155: 'grouping'-->
 
+<!--     commented out, since these keywords are in RegExpr rules-->
 <!--     <list name="mfStatement"> -->
 <!--       <item>begingroup</item> -->
 <!--       <item>endgroup</item> -->
@@ -548,27 +549,6 @@
       <item>withcolor</item>
     </list>
 
-    <!--Metafont primitives not found in MetaPost-->
-    <list name="notDefined">
-      <item>autorounding</item>
-      <item>chardx</item>
-
-      <item>chardy</item>
-      <item>fillin</item>
-      <item>granularity</item>
-      <item>hppp</item>
-      <item>proofing</item>
-      <item>smoothing</item>
-
-      <item>tracingedges</item>
-      <item>tracingpens</item>
-      <item>turningcheck</item>
-      <item>vppp</item>
-      <item>xoffset</item>
-      <item>yoffset</item>
-
-    </list>
-
     <!--Keywords defined by plain.mp-->
     <list name="mpMacro">
       <item>ahangle</item>
@@ -826,8 +806,9 @@
 
     </list>
 
-    <!--We put all the delimiters here. They will be treated apart, for code folding-->
-    <list name="EnvDelimiters">
+    <!--We put all the delimiters here. They will be treated apart, for code folding.
+        Commented out, since these keywords are already matched by RegExpr rules.-->
+<!--    <list name="EnvDelimiters">
       <item>beginchar</item>
       <item>endchar</item>
       <item>extra_beginchar</item>
@@ -838,7 +819,7 @@
       <item>endfig</item>
       <item>extra_beginfig</item>
       <item>extra_endfig</item>
-    </list>
+    </list>-->
 
     <contexts>
       <context name="Normal Text"    attribute="Normal Text" lineEndContext="#stay">
@@ -853,7 +834,7 @@
         <keyword String="mfStringExp" attribute="Statement" context="#stay"/>
         <keyword String="mfCommand"  attribute="Statement" context="#stay"/>
         <keyword String="mfType"     attribute="Type" context="#stay"/>
-        <keyword String="mfStatement" attribute="Statement" context="#stay"/>
+<!--         <keyword String="mfStatement" attribute="Statement" context="#stay"/> -->
         <keyword String="mfDefinition" attribute="Statement" context="#stay"/>
         <keyword String="mfCondition" attribute="Conditional" context="#stay"/>
         <keyword String="mfPrimitive" attribute="Statement" context="#stay"/>
@@ -918,7 +899,7 @@
 
       <!--TeX mode : we just define generic TeX commands-->
       <!--syntax from highlighting file latex.xml-->
-      <context name="TeXMode" attribute="Tex" lineEndContext="#stay">
+      <context name="TeXMode" attribute="TeX" lineEndContext="#stay">
         <DetectChar char="\" attribute="Keyword" context="ContrSeq"/>
         <DetectChar char="$" attribute="Math" context="MathMode" beginRegion="mathMode" />
 
@@ -931,10 +912,7 @@
         <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
         <RegExpr String="[a-zA-Z]+(\+?|\*{0,3})" attribute="Keyword" context="#pop"/>
         <RegExpr String="[^a-zA-Z]" attribute="Keyword" context="#pop" />
-
       </context>
-      <context name="ToEndOfLine" attribute="Normal Text" lineEndContext="#pop">
-      </context>
       <context name="Verb" attribute="Verbatim" lineEndContext="#pop#pop" >
         <RegExpr String="(.)" attribute="Normal Text" dynamic="true" context="VerbEnd" />
       </context>
@@ -962,8 +940,7 @@
 
       <!-- comment -->
       <context name="Comment" attribute="Comment" lineEndContext="#pop">
-
-        <RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
+        <IncludeRules context="##Alerts" />
         <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
       </context>
 
@@ -978,22 +955,22 @@
       <itemData name="Math" defStyleNum="dsNormal" color="#00A000" selColor="#FF40FF"  bold="0" italic="0"/>
       <itemData name="TeX" defStyleNum="dsNormal"/>
       <itemData name="String" defStyleNum="dsString"/>
-      <itemData name="Alert" defStyleNum="dsAlert"/>
+      <itemData name="Verbatim" defStyleNum="dsVerbatimString"/>
       <itemData name="Macro"  defStyleNum="dsKeyword" color="#770000" selColor="#99FFFF" bold="0" italic="0"/>
-      <itemData name="Operator" defStyleNum="dsKeyword" color="#244CFF" bold="0"/>
+      <itemData name="Operator" defStyleNum="dsOperator"/>
       <itemData name="Special" defStyleNum="dsKeyword" color="#008000" bold="0"/>
       <itemData name="Conditional" defStyleNum="dsKeyword"/>
 
       <itemData name="Statement" defStyleNum="dsNormal" color="#0000FF" selColor="#FFFF00" bold="0" italic="0"/>
       <itemData name="BoolExp" defStyleNum="dsKeyword" italic="1" bold="0" color="#AA00AA" selColor="#FFFF00"/>
       <itemData name="NumExp" defStyleNum="dsFunction"/>
-      <itemData name="Variable" defStyleNum="dsKeyword" color="#550022"/>
+      <itemData name="Variable" defStyleNum="dsVariable"/>
       <itemData name="Identifier" defStyleNum="dsKeyword"/>
       <itemData name="Type" defStyleNum="dsDataType"/>
       <itemData name="Decimal" defStyleNum="dsDecVal"/>
       <itemData name="Octal" defStyleNum="dsBaseN"/>
       <itemData name="Hex" defStyleNum="dsBaseN"/>
-
+      <itemData name="Bullet" defStyleNum="dsExtension"/>
       <itemData name="Float" defStyleNum="dsFloat"/>
  </itemDatas>
   </highlighting>
diff --git a/xml/modula-2.xml b/xml/modula-2.xml
--- a/xml/modula-2.xml
+++ b/xml/modula-2.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="Modula-2" version="2" kateversion="2.2" section="Sources" extensions="*.mod;*.def;*.mi;*.md" mimetype="text/x-modula-2">
+<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>
@@ -163,7 +163,6 @@
       <context attribute="Comment" lineEndContext="#stay" name="Comment2">
         <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")"/>
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="Comment3" />
       <context attribute="Directive" lineEndContext="#stay" name="Prep1">
         <StringDetect attribute="Directive" context="Prep1" String="$*)"/>
       </context>
diff --git a/xml/objectivecpp.xml b/xml/objectivecpp.xml
--- a/xml/objectivecpp.xml
+++ b/xml/objectivecpp.xml
@@ -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="*.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="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">
   <highlighting>
     <list name="keywords">
       <item>break</item>
@@ -193,14 +193,13 @@
         <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
         <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*"/>
 
-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="^#"/>
         <Detect2Chars attribute="String" context="String" char="@" char1="&quot;" />
-        
+
         <keyword attribute="Extensions" context="#stay" String="extensions" />
 
         <IncludeRules context="##Doxygen" />
-        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
-        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
         <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;"/>
@@ -210,44 +209,25 @@
         <HlCStringChar attribute="String Char" context="#stay"/>
         <DetectChar attribute="String" context="#pop" char="&quot;"/>
       </context>
-      <context attribute="Comment" lineEndContext="#pop" name="SingleLineComment"/>
+      <context attribute="Comment" lineEndContext="#pop" name="SingleLineComment">
+        <IncludeRules context="##Alerts" />
+      </context>
       <context attribute="Comment" lineEndContext="#stay" name="MultiLineComment">
         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
-      </context>
-      <context attribute="Preprocessor" lineEndContext="Default" 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="##Doxygen" />
-        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
-        <Detect2Chars attribute="Comment" context="MultiLineCommentPrep" char="/" char1="*"/>
+        <IncludeRules context="##Alerts" />
       </context>
       <context attribute="Comment" lineEndContext="#stay" name="MultiLineCommentPrep">
         <DetectSpaces />
         <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/"/>
+        <IncludeRules context="##Alerts" />
         <DetectIdentifier />
       </context>
-      
-      
-      
+
       <!-- from c++ -->
-      
+
       <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
       </context>
-      
-      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
-        <DetectSpaces />
-        <IncludeRules context="##Alerts" />
-        <DetectIdentifier />
-      </context>
-      
-      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
-        <DetectSpaces />
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
-        <IncludeRules context="##Alerts" />
-        <DetectIdentifier />
-      </context>
-      
+
       <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
         <LineContinue attribute="Preprocessor" context="#stay"/>
         <RegExpr attribute="Preprocessor" context="Define" String="define.*((?=\\))"/>
@@ -255,34 +235,34 @@
         <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
         <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
         <IncludeRules context="##Doxygen" />
-        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
         <Detect2Chars attribute="Comment" context="MultiLineCommentPrep" char="/" char1="*"/>
       </context>
-      
+
       <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
         <LineContinue attribute="Preprocessor" context="#stay"/>
       </context>
-      
+
       <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
         <DetectSpaces />
         <IncludeRules context="##Alerts" />
         <DetectIdentifier />
         <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"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
         <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true" />
         <RegExpr attribute="Preprocessor" context="#pop" String="#\s*(endif|else|elif)" endRegion="Outscoped" firstNonSpace="true" />
       </context>
-      
+
       <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
         <DetectSpaces />
         <IncludeRules context="##Alerts" />
         <DetectIdentifier />
         <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"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
         <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true"/>
         <RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="Outscoped" firstNonSpace="true"/>
       </context>
diff --git a/xml/octave.xml b/xml/octave.xml
--- a/xml/octave.xml
+++ b/xml/octave.xml
@@ -15,7 +15,7 @@
 -->
 
 
-<language name="Octave" version="2" kateversion="3.4" section="Scientific" extensions="*.octave;*.m;*.M" mimetype="text/octave" casesensitive="1" license="GPL" author="Luis Silvestre and Federico Zenith">
+<language name="Octave" version="3" kateversion="3.4" section="Scientific" extensions="*.octave;*.m;*.M" mimetype="text/octave" casesensitive="1" license="GPL" author="Luis Silvestre and Federico Zenith">
 
   <highlighting>
 
@@ -2195,7 +2195,6 @@
       <itemData name="Number" defStyleNum="dsFloat" spellChecking="false"/>
       <itemData name="Delimiter" defStyleNum="dsNormal" spellChecking="false"/>
       <itemData name="String" defStyleNum="dsString" color="#b20000"/>
-      <itemData name="String Char"  defStyleNum="dsChar"/>
       <itemData name="Incomplete String" defStyleNum="dsChar" color="#a020f0" spellChecking="false"/>
       <itemData name="Keyword"  defStyleNum="dsNormal" color="#0000ff" spellChecking="false"/>
       <itemData name="Comment" defStyleNum="dsComment" color="#009900"/>
diff --git a/xml/opencl.xml b/xml/opencl.xml
--- a/xml/opencl.xml
+++ b/xml/opencl.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
 <language name="OpenCL" section="Sources"
-          version="2" kateversion="3.4"
+          version="3" kateversion="3.4"
           indenter="cstyle"
           extensions="*.cl"
           mimetype="text/x-clsrc"
@@ -242,7 +242,6 @@
       <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
       <itemData name="Preprocessor" defStyleNum="dsOthers" spellChecking="false"/>
       <itemData name="Prep. Lib"    defStyleNum="dsOthers" spellChecking="false"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); -->
-      <itemData name="Alert"        defStyleNum="dsAlert" spellChecking="false"/>
       <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
       <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
     </itemDatas>
diff --git a/xml/perl.xml b/xml/perl.xml
--- a/xml/perl.xml
+++ b/xml/perl.xml
@@ -39,7 +39,7 @@
 
    Enhance tr/// and y/// support.
 -->
-<language name="Perl" version="4" kateversion="2.4" 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" 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">
   <highlighting>
     <list name="keywords">
       <item>if</item>
@@ -760,10 +760,6 @@
         <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" />
       </context>
-      <context name="end_handle" attribute="Nothing" lineEndContext="#stay">
-        <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*"/>
-        <StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
-      </context>
 
       <context name="Backticked" attribute="String (interpolated)" lineEndContext="#stay">
         <IncludeRules context="ipstring_internal"/>
@@ -776,10 +772,6 @@
         <keyword attribute="Keyword" context="#pop" String="keywords" /><!-- wonder why??? -->
       </context>
 
-      <context name="package_qualified_blank" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr attribute="Normal Text" context="#pop" String="[\w_]+" />
-      </context>
-
       <context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
         <RegExpr attribute="Function" context="#stay" String="\w+" />
         <RegExpr attribute="Normal Text" context="find_variable" String="\$\S" lookAhead="true" />
@@ -829,7 +821,6 @@
       <itemData name="Data"                      defStyleNum="dsNormal" />
       <itemData name="Comment"                   defStyleNum="dsComment" />
       <itemData name="Pod"                       defStyleNum="dsComment" />
-      <itemData name="Nothing"                   defStyleNum="dsComment" />
     </itemDatas>
   </highlighting>
   <general>
diff --git a/xml/php.xml b/xml/php.xml
--- a/xml/php.xml
+++ b/xml/php.xml
@@ -70,7 +70,7 @@
   <!ENTITY types "int|integer|bool|boolean|float|double|real|string|array|object">
 ]>
 
-<language name="PHP/PHP" indenter="cstyle" version="7" kateversion="3.4" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
+<language name="PHP/PHP" indenter="cstyle" version="8" kateversion="3.4" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
   <highlighting>
     <!-- https://secure.php.net/manual/en/reserved.keywords.php -->
     <list name="control structures">
@@ -5692,9 +5692,6 @@
       <itemData name="Backslash Code" defStyleNum="dsKeyword" color="#0F0F8F" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />
       <itemData name="Other" defStyleNum="dsOthers" spellChecking="false" />
 
-      <itemData name="HTML Tag" defStyleNum="dsKeyword" color="#0F0000" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />
-      <itemData name="HTML Comment" defStyleNum="dsComment" />
-      <itemData name="Identifier" defStyleNum="dsOthers" spellChecking="false" />
       <itemData name="Types" defStyleNum="dsDataType" spellChecking="false" />
       <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
     </itemDatas>
diff --git a/xml/povray.xml b/xml/povray.xml
new file mode 100644
--- /dev/null
+++ b/xml/povray.xml
@@ -0,0 +1,967 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Extended and updated by                                    -->
+<!-- Christoph Hormann <chris_hormann@gmx.de>, March 2004       -->
+<!-- features full POV-Ray 3.6 syntax with special highlighting -->
+<!-- of variable and macro declarations                         -->
+<!-- v1.1: added MegaPOV 1.2.1 keywords (Febuary 2006)          -->
+<language name="POV-Ray" version="5" kateversion="2.4" section="3D" extensions="*.inc;*.pov" mimetype="text/x-povray-script;text/x-povray-include" author="Christoph Hormann (chris_hormann@gmx.de)" license="LGPL" priority="2">
+	<highlighting>
+		<list name="keywords">
+			<item>aa_threshold</item>
+			<item>aa_level</item>
+			<item>absorption</item>
+			<item>abs</item>
+			<item>accuracy</item>
+			<item>acosh</item>
+			<item>acos</item>
+			<item>adaptive</item>
+			<item>adc_bailout</item>
+			<item>agate</item>
+			<item>agate_turb</item>
+			<item>all_intersections</item>
+			<item>all</item>
+			<item>alpha</item>
+			<item>always_sample</item>
+			<item>altitude</item>
+			<item>ambient_light</item>
+			<item>ambient</item>
+			<item>angle</item>
+			<item>aperture</item>
+			<item>append</item>
+			<item>arc_angle</item>
+			<item>area_light</item>
+			<item>array</item>
+			<item>ascii</item>
+			<item>asc</item>
+			<item>asinh</item>
+			<item>asin</item>
+			<item>assumed_gamma</item>
+			<item>atan2</item>
+			<item>atanh</item>
+			<item>atan</item>
+			<item>average</item>
+			<item>background</item>
+			<item>bezier_spline</item>
+			<item>bicubic_patch</item>
+			<item>black_hole</item>
+			<item>blob</item>
+			<item>blue</item>
+			<item>blur_samples</item>
+			<item>bounded_by</item>
+			<item>boxed</item>
+			<item>box</item>
+			<item>bozo</item>
+			<item>brick_size</item>
+			<item>brick</item>
+			<item>brightness</item>
+			<item>brilliance</item>
+			<item>bumps</item>
+			<item>bump_map</item>
+			<item>bump_size</item>
+			<item>b_spline</item>
+			<item>camera</item>
+			<item>caustics</item>
+			<item>ceil</item>
+			<item>cells</item>
+			<item>charset</item>
+			<item>checker</item>
+			<item>chr</item>
+			<item>circular</item>
+			<item>clipped_by</item>
+			<item>clock_delta</item>
+			<item>clock_on</item>
+			<item>clock</item>
+			<item>color_map</item>
+			<item>colour_map</item>
+			<item>color</item>
+			<item>colour</item>
+			<item>component</item>
+			<item>composite</item>
+			<item>concat</item>
+			<item>cone</item>
+			<item>confidence</item>
+			<item>conic_sweep</item>
+			<item>contained_by</item>
+			<item>control0</item>
+			<item>control1</item>
+			<item>coords</item>
+			<item>cosh</item>
+			<item>cos</item>
+			<item>count</item>
+			<item>crackle</item>
+			<item>crand</item>
+			<item>cube</item>
+			<item>cubic_spline</item>
+			<item>cubic</item>
+			<item>cubic_wave</item>
+			<item>cylinder</item>
+			<item>cylindrical</item>
+			<item>defined</item>
+			<item>degrees</item>
+			<item>density_file</item>
+			<item>density_map</item>
+			<item>density</item>
+			<item>dents</item>
+			<item>df3</item>
+			<item>difference</item>
+			<item>diffuse</item>
+			<item>dimensions</item>
+			<item>dimension_size</item>
+			<item>direction</item>
+			<item>disc</item>
+			<item>dispersion</item>
+			<item>dispersion_samples</item>
+			<item>distance_maximum</item>
+			<item>distance</item>
+			<item>dist_exp</item>
+			<item>div</item>
+			<item>double_illuminate</item>
+			<item>eccentricity</item>
+			<item>emission</item>
+			<item>error_bound</item>
+			<item>evaluate</item>
+			<item>exp</item>
+			<item>exponent</item>
+			<item>exterior</item>
+			<item>extinction</item>
+			<item>facets</item>
+			<item>face_indices</item>
+			<item>fade_colour</item>
+			<item>fade_color</item>
+			<item>fade_distance</item>
+			<item>fade_power</item>
+			<item>falloff_angle</item>
+			<item>falloff</item>
+			<item>false</item>
+			<item>file_exists</item>
+			<item>shadowless</item>
+			<item>filter</item>
+			<item>final_clock</item>
+			<item>final_frame</item>
+			<item>finish</item>
+			<item>fisheye</item>
+			<item>flatness</item>
+			<item>flip</item>
+			<item>floor</item>
+			<item>focal_point</item>
+			<item>fog_alt</item>
+			<item>fog_offset</item>
+			<item>fog</item>
+			<item>fog_type</item>
+			<item>form</item>
+			<item>frame_number</item>
+			<item>frequency</item>
+			<item>fresnel</item>
+			<item>function</item>
+			<item>gif</item>
+			<item>global_settings</item>
+			<item>gradient</item>
+			<item>granite</item>
+			<item>gray</item>
+			<item>gray_threshold</item>
+			<item>green</item>
+			<item>height_field</item>
+			<item>hexagon</item>
+			<item>hf_gray_16</item>
+			<item>hierarchy</item>
+			<item>hollow</item>
+			<item>hypercomplex</item>
+			<item>image_width</item>
+			<item>image_height</item>
+			<item>initial_clock</item>
+			<item>initial_frame</item>
+			<item>interior_texture</item>
+			<item>iff</item>
+			<item>image_map</item>
+			<item>image_pattern</item>
+			<item>inside</item>
+			<item>inside_vector</item>
+			<item>interior</item>
+			<item>interpolate</item>
+			<item>intersection</item>
+			<item>intervals</item>
+			<item>int</item>
+			<item>inverse</item>
+			<item>ior</item>
+			<item>irid</item>
+			<item>irid_wavelength</item>
+			<item>isosurface</item>
+			<item>jitter</item>
+			<item>julia</item>
+			<item>julia_fractal</item>
+			<item>jpeg</item>
+			<item>lambda</item>
+			<item>lathe</item>
+			<item>leopard</item>
+			<item>light_group</item>
+			<item>light_source</item>
+			<item>linear_spline</item>
+			<item>linear_sweep</item>
+			<item>ln</item>
+			<item>load_file</item>
+			<item>location</item>
+			<item>log</item>
+			<item>looks_like</item>
+			<item>look_at</item>
+			<item>low_error_factor</item>
+			<item>magnet</item>
+			<item>major_radius</item>
+			<item>mandel</item>
+			<item>map_type</item>
+			<item>marble</item>
+			<item>material_map</item>
+			<item>material</item>
+			<item>matrix</item>
+			<item>max_extent</item>
+			<item>max_gradient</item>
+			<item>max_intersections</item>
+			<item>max_iteration</item>
+			<item>max_sample</item>
+			<item>max</item>
+			<item>max_trace_level</item>
+			<item>max_trace</item>
+			<item>media_attenuation</item>
+			<item>media_interaction</item>
+			<item>media</item>
+			<item>merge</item>
+			<item>mesh2</item>
+			<item>mesh</item>
+			<item>metallic</item>
+			<item>method</item>
+			<item>metric</item>
+			<item>minimum_reuse</item>
+			<item>min_extent</item>
+			<item>min</item>
+			<item>mod</item>
+			<item>mortar</item>
+			<item>natural_spline</item>
+			<item>nearest_count</item>
+			<item>normal</item>
+			<item>normal_indices</item>
+			<item>normal_map</item>
+			<item>normal_vectors</item>
+			<item>no_image</item>
+			<item>no_reflection</item>
+			<item>no_shadow</item>
+			<item>no</item>
+			<item>number_of_waves</item>
+			<item>object</item>
+			<item>octaves</item>
+			<item>offset</item>
+			<item>off</item>
+			<item>omega</item>
+			<item>omnimax</item>
+			<item>once</item>
+			<item>onion</item>
+			<item>on</item>
+			<item>open</item>
+			<item>orientation</item>
+			<item>orient</item>
+			<item>orthographic</item>
+			<item>panoramic</item>
+			<item>parallel</item>
+			<item>parametric</item>
+			<item>pattern</item>
+			<item>perspective</item>
+			<item>pgm</item>
+			<item>phase</item>
+			<item>phong_size</item>
+			<item>phong</item>
+			<item>pigment_map</item>
+			<item>pigment</item>
+			<item>pi</item>
+			<item>planar</item>
+			<item>plane</item>
+			<item>png</item>
+			<item>point_at</item>
+			<item>polygon</item>
+			<item>poly</item>
+			<item>poly_wave</item>
+			<item>pot</item>
+			<item>pow</item>
+			<item>ppm</item>
+			<item>precision</item>
+			<item>precompute</item>
+			<item>pretrace_start</item>
+			<item>pretrace_end</item>
+			<item>prism</item>
+			<item>prod</item>
+			<item>projected_through</item>
+			<item>pwr</item>
+			<item>quadratic_spline</item>
+			<item>quadric</item>
+			<item>quartic</item>
+			<item>quaternion</item>
+			<item>quick_color</item>
+			<item>quick_colour</item>
+			<item>quilted</item>
+			<item>radial</item>
+			<item>radians</item>
+			<item>radiosity</item>
+			<item>radius</item>
+			<item>rainbow</item>
+			<item>ramp_wave</item>
+			<item>rand</item>
+			<item>range</item>
+			<item>ratio</item>
+			<item>reciprocal</item>
+			<item>recursion_limit</item>
+			<item>red</item>
+			<item>reflection_exponent</item>
+			<item>reflection</item>
+			<item>refraction</item>
+			<item>repeat</item>
+			<item>rgbft</item>
+			<item>rgbf</item>
+			<item>rgbt</item>
+			<item>rgb</item>
+			<item>right</item>
+			<item>ripples</item>
+			<item>rotate</item>
+			<item>roughness</item>
+			<item>samples</item>
+			<item>save_file</item>
+			<item>scale</item>
+			<item>scallop_wave</item>
+			<item>scattering</item>
+			<item>seed</item>
+			<item>select</item>
+			<item>sine_wave</item>
+			<item>sinh</item>
+			<item>sin</item>
+			<item>size</item>
+			<item>sky_sphere</item>
+			<item>sky</item>
+			<item>slice</item>
+			<item>slope_map</item>
+			<item>slope</item>
+			<item>smooth</item>
+			<item>smooth_triangle</item>
+			<item>solid</item>
+			<item>sor</item>
+			<item>specular</item>
+			<item>sphere_sweep</item>
+			<item>sphere</item>
+			<item>spherical</item>
+			<item>spiral1</item>
+			<item>spiral2</item>
+			<item>spline</item>
+			<item>spotlight</item>
+			<item>spotted</item>
+			<item>sqrt</item>
+			<item>sqr</item>
+			<item>statistics</item>
+			<item>strcmp</item>
+			<item>strength</item>
+			<item>strlen</item>
+			<item>strlwr</item>
+			<item>strupr</item>
+			<item>str</item>
+			<item>sturm</item>
+			<item>substr</item>
+			<item>sum</item>
+			<item>superellipsoid</item>
+			<item>sys</item>
+			<item>tanh</item>
+			<item>tan</item>
+			<item>texture_list</item>
+			<item>texture_map</item>
+			<item>texture</item>
+			<item>text</item>
+			<item>tga</item>
+			<item>thickness</item>
+			<item>threshold</item>
+			<item>tiff</item>
+			<item>tightness</item>
+			<item>tile2</item>
+			<item>tiles</item>
+			<item>normal</item>
+			<item>tolerance</item>
+			<item>toroidal</item>
+			<item>torus</item>
+			<item>trace</item>
+			<item>transform</item>
+			<item>translate</item>
+			<item>transmit</item>
+			<item>triangle</item>
+			<item>triangle_wave</item>
+			<item>true</item>
+			<item>ttf</item>
+			<item>turbulence</item>
+			<item>turb_depth</item>
+			<item>type</item>
+			<item>t</item>
+			<item>ultra_wide_angle</item>
+			<item>union</item>
+			<item>up</item>
+			<item>use_alpha</item>
+			<item>use_color</item>
+			<item>use_colour</item>
+			<item>use_index</item>
+			<item>utf8</item>
+			<item>uv_indices</item>
+			<item>uv_mapping</item>
+			<item>uv_vectors</item>
+			<item>u_steps</item>
+			<item>u</item>
+			<item>val</item>
+			<item>variance</item>
+			<item>vaxis_rotate</item>
+			<item>vcross</item>
+			<item>vdot</item>
+			<item>vertex_vectors</item>
+			<item>vlength</item>
+			<item>vnormalize</item>
+			<item>vrotate</item>
+			<item>vstr</item>
+			<item>vturbulence</item>
+			<item>v_steps</item>
+			<item>v</item>
+			<item>warning</item>
+			<item>warp</item>
+			<item>water_level</item>
+			<item>waves</item>
+			<item>while</item>
+			<item>width</item>
+			<item>wood</item>
+			<item>wrinkles</item>
+			<item>write</item>
+			<item>x</item>
+			<item>yes</item>
+			<item>y</item>
+			<item>z</item>
+			<item>photons</item>
+			<item>steps</item>
+			<item>pass_through</item>
+			<item>collect</item>
+			<item>autostop</item>
+			<item>gather</item>
+			<item>split_union</item>
+			<item>expand_thresholds</item>
+			<item>spacing</item>
+			<item>global</item>
+			<item>target</item>
+			<item>conserve_energy</item>
+			<item>cutaway_textures</item>
+			<item>pigment_pattern</item>
+			<item>no_bump_scale</item>
+			<item>global_lights</item>
+			<item>internal</item>
+			<item>noise_generator</item>
+		</list>
+		<list name="unofficial">
+			<item>akima_spline</item>
+			<item>aoi</item>
+			<item>basic_x_spline</item>
+			<item>camera_view</item>
+			<item>displace</item>
+			<item>exposure</item>
+			<item>exposure_gain</item>
+			<item>extended_x_spline</item>
+			<item>float</item>
+			<item>frame_step</item>
+			<item>date</item>
+			<item>start_chrono</item>
+			<item>current_chrono</item>
+			<item>general_x_spline</item>
+			<item>glow</item>
+			<item>h_align_left</item>
+			<item>h_align_right</item>
+			<item>h_align_center</item>
+			<item>v_align_top</item>
+			<item>v_align_bottom</item>
+			<item>v_align_center</item>
+			<item>inverted_normals</item>
+			<item>is</item>
+			<item>listed</item>
+			<item>mpeg</item>
+			<item>n_roots</item>
+			<item>noise_pigment</item>
+			<item>output_filename</item>
+			<item>post_process</item>
+			<item>projection</item>
+			<item>point</item>
+			<item>blur</item>
+			<item>set</item>
+			<item>sor_spline</item>
+			<item>string</item>
+			<item>structure</item>
+			<item>tcb_spline</item>
+			<item>tension</item>
+			<item>continuity</item>
+			<item>bias</item>
+			<item>user_defined</item>
+			<item>vector</item>
+			<item>unofficial_version</item>
+			<item>gravity</item>
+			<item>environment</item>
+			<item>friction</item>
+			<item>damping</item>
+			<item>simcloth</item>
+			<item>wind</item>
+			<item>neighbors</item>
+			<item>neighbours</item>
+			<item>internal_collision</item>
+			<item>viscosity</item>
+			<item>iterations</item>
+			<item>input</item>
+			<item>mesh_output</item>
+			<item>smooth_mesh</item>
+			<item>uv_mesh</item>
+			<item>output</item>
+			<item>stiffness</item>
+			<item>topology</item>
+			<item>mass</item>
+			<item>connection</item>
+			<item>face</item>
+			<item>velocity</item>
+			<item>position</item>
+			<item>mass_count</item>
+			<item>connection_count</item>
+			<item>face_count</item>
+			<item>index1</item>
+			<item>index2</item>
+			<item>index3</item>
+			<item>time</item>
+			<item>time_step</item>
+			<item>step_count</item>
+			<item>start_time</item>
+			<item>end_time</item>
+			<item>fixed</item>
+			<item>collision</item>
+			<item>interaction</item>
+			<item>group</item>
+			<item>attach</item>
+			<item>field</item>
+			<item>mechsim</item>
+			<item>bounding</item>
+			<item>viscoelastic</item>
+			<item>viscoelastic_count</item>
+			<item>element</item>
+			<item>length</item>
+			<item>force</item>
+			<item>message</item>
+			<item>weight</item>
+			<item>randomize</item>
+			<item>hdr</item>
+			<item>no_radiosity</item>
+			<item>motion_blur</item>
+			<item>tone_mapping</item>
+			<item>show_samples</item>
+			<item>show_low_count</item>
+		</list>
+		<list name="objects">
+			<item>bicubic_patch</item>
+			<item>blob</item>
+			<item>box</item>
+			<item>cone</item>
+			<item>cubic</item>
+			<item>cylinder</item>
+			<item>difference</item>
+			<item>disc</item>
+			<item>height_field</item>
+			<item>intersection</item>
+			<item>isosurface</item>
+			<item>julia_fractal</item>
+			<item>lathe</item>
+			<item>light_source</item>
+			<item>merge</item>
+			<item>mesh</item>
+			<item>mesh2</item>
+			<item>object</item>
+			<item>parametric</item>
+			<item>plane</item>
+			<item>poly</item>
+			<item>polygon</item>
+			<item>prism</item>
+			<item>quadric</item>
+			<item>quartic</item>
+			<item>smooth_triangle</item>
+			<item>sor</item>
+			<item>sphere</item>
+			<item>sphere_sweep</item>
+			<item>superellipsoid</item>
+			<item>text</item>
+			<item>torus</item>
+			<item>triangle</item>
+			<item>union</item>
+		</list>
+		<list name="texturing">
+			<item>aa_threshold</item>
+			<item>aa_level</item>
+			<item>absorption</item>
+			<item>agate</item>
+			<item>agate_turb</item>
+			<item>ambient</item>
+			<item>average</item>
+			<item>black_hole</item>
+			<item>blue</item>
+			<item>boxed</item>
+			<item>brick_size</item>
+			<item>brick</item>
+			<item>brilliance</item>
+			<item>bumps</item>
+			<item>bump_map</item>
+			<item>bump_size</item>
+			<item>caustics</item>
+			<item>cells</item>
+			<item>checker</item>
+			<item>color_map</item>
+			<item>colour_map</item>
+			<item>color</item>
+			<item>colour</item>
+			<item>conserve_energy</item>
+			<item>control0</item>
+			<item>control1</item>
+			<item>crackle</item>
+			<item>crand</item>
+			<item>cubic_wave</item>
+			<item>cylindrical</item>
+			<item>density_file</item>
+			<item>density_map</item>
+			<item>density</item>
+			<item>dents</item>
+			<item>diffuse</item>
+			<item>dist_exp</item>
+			<item>double_illuminate</item>
+			<item>eccentricity</item>
+			<item>emission</item>
+			<item>exponent</item>
+			<item>exterior</item>
+			<item>extinction</item>
+			<item>facets</item>
+			<item>fade_colour</item>
+			<item>fade_color</item>
+			<item>fade_distance</item>
+			<item>fade_power</item>
+			<item>filter</item>
+			<item>finish</item>
+			<item>form</item>
+			<item>frequency</item>
+			<item>fresnel</item>
+			<item>gradient</item>
+			<item>granite</item>
+			<item>gray</item>
+			<item>green</item>
+			<item>hexagon</item>
+			<item>hypercomplex</item>
+			<item>interior_texture</item>
+			<item>image_map</item>
+			<item>image_pattern</item>
+			<item>interior</item>
+			<item>interpolate</item>
+			<item>intervals</item>
+			<item>ior</item>
+			<item>irid</item>
+			<item>irid_wavelength</item>
+			<item>julia</item>
+			<item>lambda</item>
+			<item>leopard</item>
+			<item>magnet</item>
+			<item>mandel</item>
+			<item>map_type</item>
+			<item>marble</item>
+			<item>material_map</item>
+			<item>material</item>
+			<item>media</item>
+			<item>metallic</item>
+			<item>method</item>
+			<item>metric</item>
+			<item>mortar</item>
+			<item>normal</item>
+			<item>normal_map</item>
+			<item>number_of_waves</item>
+			<item>octaves</item>
+			<item>omega</item>
+			<item>once</item>
+			<item>onion</item>
+			<item>orientation</item>
+			<item>phase</item>
+			<item>phong_size</item>
+			<item>phong</item>
+			<item>pigment_map</item>
+			<item>pigment</item>
+			<item>planar</item>
+			<item>quaternion</item>
+			<item>quick_color</item>
+			<item>quick_colour</item>
+			<item>quilted</item>
+			<item>radial</item>
+			<item>ramp_wave</item>
+			<item>red</item>
+			<item>reflection_exponent</item>
+			<item>reflection</item>
+			<item>repeat</item>
+			<item>rgbft</item>
+			<item>rgbf</item>
+			<item>rgbt</item>
+			<item>rgb</item>
+			<item>ripples</item>
+			<item>roughness</item>
+			<item>samples</item>
+			<item>scallop_wave</item>
+			<item>scattering</item>
+			<item>sine_wave</item>
+			<item>slope_map</item>
+			<item>slope</item>
+			<item>solid</item>
+			<item>specular</item>
+			<item>spherical</item>
+			<item>spiral1</item>
+			<item>spiral2</item>
+			<item>spotted</item>
+			<item>texture_list</item>
+			<item>texture_map</item>
+			<item>texture</item>
+			<item>tile2</item>
+			<item>tiles</item>
+			<item>normal</item>
+			<item>toroidal</item>
+			<item>transmit</item>
+			<item>triangle_wave</item>
+			<item>turbulence</item>
+			<item>turb_depth</item>
+			<item>use_alpha</item>
+			<item>use_color</item>
+			<item>use_colour</item>
+			<item>use_index</item>
+			<item>uv_mapping</item>
+			<item>warp</item>
+			<item>waves</item>
+			<item>wood</item>
+			<item>wrinkles</item>
+			<item>cutaway_textures</item>
+			<item>pigment_pattern</item>
+			<item>no_bump_scale</item>
+		</list>
+		<list name="transforms">
+			<item>matrix</item>
+			<item>rotate</item>
+			<item>scale</item>
+			<item>translate</item>
+			<item>transform</item>
+		</list>
+		<list name="filetypes">
+			<item>df3</item>
+			<item>gif</item>
+			<item>iff</item>
+			<item>jpeg</item>
+			<item>pgm</item>
+			<item>png</item>
+			<item>pot</item>
+			<item>ppm</item>
+			<item>tga</item>
+			<item>tiff</item>
+			<item>ttf</item>
+		</list>
+		<list name="identifiers">
+			<item>clock</item>
+			<item>clock_delta</item>
+			<item>clock_on</item>
+			<item>final_clock</item>
+			<item>final_frame</item>
+			<item>frame_number</item>
+			<item>image_height</item>
+			<item>image_width</item>
+			<item>initial_clock</item>
+			<item>initial_frame</item>
+			<item>t</item>
+			<item>u</item>
+			<item>v</item>
+			<item>x</item>
+			<item>y</item>
+			<item>z</item>
+		</list>
+		<list name="constants">
+			<item>false</item>
+			<item>no</item>
+			<item>off</item>
+			<item>on</item>
+			<item>pi</item>
+			<item>true</item>
+			<item>yes</item>
+		</list>
+		<list name="functions">
+			<item>abs</item>
+			<item>acos</item>
+			<item>acosh</item>
+			<item>asc</item>
+			<item>asin</item>
+			<item>asinh</item>
+			<item>atan</item>
+			<item>atan2</item>
+			<item>atanh</item>
+			<item>ceil</item>
+			<item>chr</item>
+			<item>concat</item>
+			<item>cos</item>
+			<item>cosh</item>
+			<item>cube</item>
+			<item>defined</item>
+			<item>degress</item>
+			<item>dimension_size</item>
+			<item>dimensions</item>
+			<item>div</item>
+			<item>exp</item>
+			<item>file_exists</item>
+			<item>floor</item>
+			<item>inside</item>
+			<item>int</item>
+			<item>ln</item>
+			<item>log</item>
+			<item>max</item>
+			<item>min</item>
+			<item>mod</item>
+			<item>pow</item>
+			<item>prod</item>
+			<item>pwr</item>
+			<item>radians</item>
+			<item>rand</item>
+			<item>seed</item>
+			<item>select</item>
+			<item>sin</item>
+			<item>sinh</item>
+			<item>sqrt</item>
+			<item>str</item>
+			<item>strcmp</item>
+			<item>strlen</item>
+			<item>strlwr</item>
+			<item>strupr</item>
+			<item>substr</item>
+			<item>sum</item>
+			<item>tan</item>
+			<item>tanh</item>
+			<item>trace</item>
+			<item>val</item>
+			<item>vaxis_rotate</item>
+			<item>vcross</item>
+			<item>vdot</item>
+			<item>vlength</item>
+			<item>vnormalize</item>
+			<item>vrotate</item>
+			<item>vstr</item>
+			<item>vturbulence</item>
+		</list>
+		<list name="directives">
+			<item>#debug</item>
+			<item>#default</item>
+			<item>#else</item>
+			<item>#end</item>
+			<item>#error</item>
+			<item>#fclose</item>
+			<item>#fopen</item>
+			<item>#if</item>
+			<item>#ifdef</item>
+			<item>#ifndef</item>
+			<item>#include</item>
+			<item>#range</item>
+			<item>#read</item>
+			<item>#render</item>
+			<item>#statistics</item>
+			<item>#switch</item>
+			<item>#undef</item>
+			<item>#version</item>
+			<item>#warning</item>
+			<item>#while</item>
+			<item>#write</item>
+		</list>
+		<contexts>
+			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+				<StringDetect attribute="Declaration" context="Declaration" String="#declare" />
+				<StringDetect attribute="Declaration" context="Declaration" String="#local" />
+				<StringDetect attribute="Macro" context="Macro" String="#macro" />
+				<keyword attribute="Objects" context="#stay" String="objects" />
+				<keyword attribute="Texturing" context="#stay" String="texturing" />
+				<keyword attribute="Transforms" context="#stay" String="transforms" />
+				<keyword attribute="Filetype" context="#stay" String="filetypes" />
+				<keyword attribute="Keyword" context="#stay" String="identifiers" />
+				<keyword attribute="Constant" context="#stay" String="constants" />
+				<keyword attribute="Functions" context="#stay" String="functions" />
+				<keyword attribute="Directives" context="#stay" String="directives" />
+				<keyword attribute="Keyword" context="#stay" String="keywords" />
+				<keyword attribute="Unofficial" context="#stay" String="unofficial" />
+				<Float attribute="Float" context="#stay"/>
+				<Int attribute="Float" context="#stay"/>
+				<HlCChar attribute="Char" context="#stay"/>
+				<DetectChar attribute="String" context="String" char="&quot;"/>
+				<RegExpr attribute="Region Marker" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1" firstNonSpace="true"/>
+				<RegExpr attribute="Region Marker" context="#stay" String="//\s*END.*$" endRegion="Region1" firstNonSpace="true"/>
+				<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+				<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+				<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 attribute="Declaration" lineEndContext="#pop" name="Declaration">
+				<RegExpr attribute="Declare Keyword" context="Declare_Keyword" String="\w+" />
+				<LineContinue attribute="Declaration" context="#stay"/>
+				<AnyChar attribute="Symbol" context="#pop#pop" String="=[("/>
+			</context>
+
+			<context attribute="Macro" lineEndContext="#pop" name="Macro">
+				<RegExpr attribute="Declare Macro" context="Declare_Macro" String="\w+" />
+				<LineContinue attribute="Macro" context="#stay"/>
+				<DetectChar attribute="Symbol" context="#pop#pop" char="("/>
+			</context>
+
+			<context attribute="Declare Keyword" lineEndContext="#pop" name="Declare_Keyword">
+				<LineContinue attribute="Declare Keyword" context="#stay"/>
+				<AnyChar attribute="Symbol" context="#pop#pop" String="=[("/>
+			</context> 
+
+			<context attribute="Declare Macro" lineEndContext="#pop" name="Declare_Macro">
+				<LineContinue attribute="Declare Macro" context="#stay"/>
+				<DetectChar attribute="Symbol" context="#pop#pop" char="("/>
+			</context>
+
+			<context attribute="String" lineEndContext="#pop" name="String">
+				<LineContinue attribute="String" context="#stay"/>
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<DetectChar attribute="String" context="#pop" char="&quot;"/>
+			</context>
+
+			<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+				<IncludeRules context="##Alerts" />
+			</context>
+
+			<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+				<IncludeRules context="##Alerts" />
+				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+			</context>
+		</contexts>
+
+		<itemDatas>
+			<itemData name="Normal Text"     defStyleNum="dsNormal"   color="#000000" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Keyword"         defStyleNum="dsKeyword"  color="#000080" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Unofficial"      defStyleNum="dsKeyword"  color="#0080d0" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Objects"         defStyleNum="dsKeyword"  color="#800000" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Texturing"       defStyleNum="dsKeyword"  color="#000080" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Transforms"      defStyleNum="dsKeyword"  color="#000080" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Declaration"     defStyleNum="dsKeyword"  color="#000080" selColor="#000080" bold="1" italic="0"/>
+			<itemData name="Macro"           defStyleNum="dsKeyword"  color="#000080" selColor="#000080" bold="1" italic="0"/>
+			<itemData name="Declare Keyword" defStyleNum="dsKeyword"  color="#990099" selColor="#990099" bold="1" italic="0"/>
+			<itemData name="Declare Macro"   defStyleNum="dsKeyword"  color="#CC0000" selColor="#990099" bold="1" italic="0"/>
+			<itemData name="Functions"       defStyleNum="dsKeyword"  color="#000080" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Directives"      defStyleNum="dsOthers"   color="#3300ff" selColor="#3300ff" bold="1" italic="0"/>
+			<itemData name="Filetype"        defStyleNum="dsDataType" color="#000080" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Constant"        defStyleNum="dsFloat"    color="#0000ff" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Float"           defStyleNum="dsFloat"    color="#0000ff" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="Char"            defStyleNum="dsChar"     color="#000080" selColor="#ffffff" bold="0" italic="0"/>
+			<itemData name="String"          defStyleNum="dsString"   color="#ff0000" selColor="#ff0000" bold="0" italic="0"/>
+			<itemData name="String Char"     defStyleNum="dsChar"     color="#ff00ff" selColor="#ff00ff" bold="0" italic="0"/>
+			<itemData name="Comment"         defStyleNum="dsComment"  color="#008000" selColor="#008000" bold="0" italic="0"/>
+			<itemData name="Symbol"          defStyleNum="dsNormal"   color="#660099" selColor="#660099" bold="0" italic="0"/>
+			<itemData name="Region Marker"   defStyleNum="dsRegionMarker"/>
+		</itemDatas>
+	</highlighting>
+
+	<general>
+		<comments>
+			<comment name="singleLine" start="//" />
+			<comment name="multiLine" start="/*" end="*/" />
+		</comments>
+		<keywords casesensitive="1" />
+	</general>
+</language>
diff --git a/xml/powershell.xml b/xml/powershell.xml
--- a/xml/powershell.xml
+++ b/xml/powershell.xml
@@ -1,7 +1,7 @@
 <!DOCTYPE language SYSTEM "language.dtd">
 <language
   name="PowerShell"
-  version="2"
+  version="3"
   kateversion="5.0"
   extensions="*.ps1;*.ps1m;*.ps1d"
   section="Scripts"
@@ -47,7 +47,8 @@
       <item>Param</item>
       <item>Workflow</item>
     </list>
-    <list name="attributes">
+<!-- TODO: Seems unused?!
+      <list name="attributes">
       <item>CmdletBinding</item>
       <item>ConfirmImpact</item>
       <item>DefaultParameterSetName</item>
@@ -55,7 +56,7 @@
       <item>SupportsPaging</item>
       <item>SupportsShouldProcess</item>
       <item>PositionalBinding</item>
-    </list>
+    </list>-->
     <list name="types">
       <item>bool</item>
       <item>byte</item>
@@ -74,7 +75,8 @@
       <item>ulong</item>
       <item>ushort</item>
     </list>
-    <list name="operators">
+<!-- TODO: Seems unused?!
+      <list name="operators">
       <item>-split</item>
       <item>-isplit</item>
       <item>-csplit</item>
@@ -135,7 +137,7 @@
       <item>*=</item>
       <item>/=</item>
       <item>%=</item>
-    </list>
+    </list>-->
     <list name="cmdlets">
       <item>Add-Content</item>
       <item>Add-ADComputerServiceAccount</item>
diff --git a/xml/prolog.xml b/xml/prolog.xml
--- a/xml/prolog.xml
+++ b/xml/prolog.xml
@@ -105,7 +105,7 @@
     <!ENTITY bs         "\">
 ]>
 <language name="Prolog" section="Sources"
-	  version="5" kateversion="3.4"
+	  version="7" kateversion="3.4"
 	  mimetype="text/x-prolog"
 	  extensions="*.prolog;*.dcg;*.pro"
 	  author="Torsten Eichstädt (torsten.eichstaedt@web.de)"
@@ -335,19 +335,6 @@
 	    <!-- Unspecified integer representation/format -->
 	    <item>xor</item>
 	</list>
-	<list name="directives non-ISO">
-	    <!-- FIXME is this a top_level goal only? (consult :- include) -->
-	    <item>consult</item>
-	    <item>built_in</item>
-<!--GNU            <item>foreign</item> -->
-<!--GNU            <item>ensure_linked</item> -->
-<!--GNU            <item>built_in_fd</item> -->
-<!--             <item>if</item> -->
-<!-- 	    <item>else</item> -->
-<!-- 	    <item>endif</item> -->
-<!--             <item>elif</item> -->
-        </list>
-
         <!-- including directive "initialization" -->
         <list name="logic+control ISO">
 	    <item>initialization</item>
@@ -374,11 +361,6 @@
 <!-- 	    <item>numbervars</item> -->
 <!-- 	    <item>current_predicate</item> -->
 	</list>
-	<list name="listing non-ISO">
-	    <!-- FIXME is this a top_level goal? -->
-	    <item>listing</item>
-<!-- standard/compatible	    <item>public</item> -->
-	</list>
 	<list name="terms ISO">
 	    <!-- keep tokens with same prefix sorted by length? -->
 	    <item>atom_concat</item>
@@ -398,47 +380,9 @@
 	    <item>term_variables</item>
 	    <item>unify_with_occurs_check</item>
 	</list>
-	<list name="terms non-ISO">
-	    <!-- keep tokens with same prefix sorted by length? -->
-	    <item>number_atom</item>
-	    <item>expand_term</item>
-	    <item>term_expansion</item>
-
-	    <!--FIXME These go to streams non-ISO: -->
-	    <item>display</item>
-	    <item>print</item>
-	    <item>format</item>
-	    <item>portray_clause</item>
-	    <item>portray</item>
-	    <item>term_expansion</item>
-	</list>
 	<list name="DCG non-ISO">
 	    <item>phrase</item>
 	</list>
-	<list name="lists ISO">
-	    <item>sort</item>
-	    <item>keysort</item>
-	</list>
-	<list name="lists non-ISO">
-	    <item>append</item>
-	    <item>delete</item>
-	    <item>length</item>
-	    <item>last</item>
-	    <item>map_list</item>
-	    <item>min_list</item>
-	    <item>maplist</item>
-	    <item>msort</item>
-	    <item>memberchk</item>
-	    <item>member</item>
-	    <item>nth</item>
-	    <item>permutation</item>
-	    <item>reverse</item>
-	    <item>select</item>
-	    <item>prefix</item>
-	    <item>suffix</item>
-	    <item>sublist</item>
-	    <item>sum_list</item>
-	</list>
 	<list name="streams ISO">
 	    <item>open</item>
 <!--GNU	    <item>current_stream</item>-->
@@ -461,20 +405,6 @@
 	    <item>writeq</item>
 	    <item>write</item>
 	</list>
-	<list name="streams deprecated">
-	    <item>append</item>
-	    <item>seeing</item>
-	    <item>seen</item>
-	    <item>see</item>
-	    <item>telling</item>
-	    <item>tell</item>
-	    <item>told</item>
-	    <item>get0</item>
-	    <item>get</item>
-	    <item>skip</item>
-	    <item>put</item>
-	    <item>tab</item>
-	</list>
 	<list name="arith eval ISO">
 	    <item>is</item>
 	</list>
@@ -537,13 +467,6 @@
 	    <item>callable</item>
 	    <item>ground</item>
 	</list>
-	<!-- FIXME rename to "types non-ISO"? -->
-	<list name="list+is_list non-ISO">
-	    <item>list</item>
-	    <item>is_list</item>
-	<!--GNU            <item>partial_list</item> -->
-	    <!--GNU            <item>list_or_partial_list</item> -->
-	</list>
 	<list name="built-ins ISO">
 	    <item>current_op</item>
 	    <item>current_prolog_flag</item>
@@ -1043,7 +966,6 @@
 
 	    <!-- Comments (2nd not used, just a hint) -->
 	    <itemData name="% italic predicates: w/ side effects" defStyleNum="dsComment" />
-	    <itemData name="/* !avoid leading * to have folding */" defStyleNum="dsComment" />
 
 	    <!-- Predicates affected by 'outside world' -->
 	    <itemData name="Dynamic Clause Management" defStyleNum="dsKeyword" italic="true" spellChecking="false" />
diff --git a/xml/purebasic.xml b/xml/purebasic.xml
--- a/xml/purebasic.xml
+++ b/xml/purebasic.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">
-<language name="PureBasic" version="6" kateversion="2.3" section="Sources" extensions="*.pb;*.pbi" mimetype="text/x-purebasic" author="Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)" license="LGPL" priority="1" >
+<language name="PureBasic" version="7" kateversion="5.0" section="Sources" extensions="*.pb;*.pbi" mimetype="text/x-purebasic" author="Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)" license="LGPL" priority="1" >
   <highlighting>
     <list name="keywords">
       <item>Break</item>
@@ -1738,7 +1738,8 @@
         <DetectChar attribute="String" context="#pop" char="&quot;"/>
       </context>
       <context attribute="Comment" lineEndContext="#pop" name="Comment1">
-        <keyword attribute="Number" context="#stay" String="attention" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
       </context>
     </contexts>
     <itemDatas>
diff --git a/xml/python.xml b/xml/python.xml
--- a/xml/python.xml
+++ b/xml/python.xml
@@ -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="4" 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="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="">
 	<highlighting>
 		<list name="import">
 			<item>import</item>
@@ -349,6 +349,10 @@
 				<Int attribute="Int" context="#stay">
 					<StringDetect attribute="Int" String="L" insensitive="true" context="#stay"/>
 				</Int>
+
+				<RegExpr attribute="Int" String=" ([0-9]+_)+[0-9]+" context="#stay"/>
+				<RegExpr attribute="Float" String=" ([0-9]+_)+[0-9]+\.[0-9]+" context="#stay"/>
+				<RegExpr attribute="Hex" String=" [0-9]x([A-F0-9]+_)+[A-F0-9]+" context="#stay"/>
 
 				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>
 				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>
diff --git a/xml/r.xml b/xml/r.xml
--- a/xml/r.xml
+++ b/xml/r.xml
@@ -6,9 +6,9 @@
 	license: GPL v2
 	Kate   : http://kate.kde.org/
 	R      : http://www.r-project.org/
-	RKWard : http://rkward.sourceforge.net/
+	RKWard : http://rkward.kde.org/
 	-->
-<language version="7" kateversion="5.0" name="R Script" section="Scientific" extensions="*.R;*.r;*.S;*.s;*.q" mimetype="" license="GPLv2">
+<language version="8" kateversion="5.0" name="R Script" section="Scientific" extensions="*.R;*.r;*.S;*.s;*.q" mimetype="" license="GPLv2">
 <highlighting>
 
 	<list name="controls">
@@ -124,13 +124,13 @@
 	</contexts>
 
 	<itemDatas>
-	<!-- KDE default colors: http://accessibility.kde.org/oxygen.php?color=white -->
+		<!-- KDE default colors: http://accessibility.kde.org/oxygen.php?color=white -->
 		<itemData name="Normal Text" defStyleNum="dsNormal"/>
 		<itemData name="Symbol" defStyleNum="dsNormal"/>
 		<itemData name="Keyword" defStyleNum="dsKeyword"/>
 		<itemData name="Identifier" defStyleNum="dsDataType"/>
 		<itemData name="String" defStyleNum="dsString"/>
-		<itemData name="Headline" defStyleNum="dsNormal" color="#b00000" selColor="#b00000" bold="1" italic="0"/> <!-- KDE default color: text 5 -->
+		<itemData name="Headline" defStyleNum="dsComment" color="#b00000" selColor="#b00000" bold="1" italic="0"/> <!-- KDE default color: text 5 -->
 		<itemData name="Comment" defStyleNum="dsComment"/>
 		<itemData name="Assign" defStyleNum="dsNormal" color="#336366" selColor="#ccc099" bold="1" italic="0"/> <!-- KDE default color: text 7 -->
 		<itemData name="Control Structure" defStyleNum="dsControlFlow"/>
diff --git a/xml/relaxng.xml b/xml/relaxng.xml
--- a/xml/relaxng.xml
+++ b/xml/relaxng.xml
@@ -16,7 +16,7 @@
    - Namespace rules
 -->
 
-<language version="2"
+<language version="3"
           kateversion="2.4"
           name="RELAX NG"
           section="Markup"
@@ -71,36 +71,37 @@
          <RegExpr attribute="Attribute" context="attributes" String="\s*" />
          <DetectChar attribute="Tag" context="#pop" char="&gt;" />
       </context>
-      
+
       <context name="attributes" attribute="Attribute" lineEndContext="#stay">
          <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />
          <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />
          <RegExpr attribute="Normal Text" context="attrValue" String="\s*=\s*" />
       </context>
-      
+
       <context name="attrValue" attribute="Invalid" lineEndContext="#stay">
          <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />
          <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />
          <DetectChar attribute="Attribute Value" context="string" char="&quot;" />
       </context>
-      
+
       <context name="string" attribute="Attribute Value" lineEndContext="#stay">
          <DetectChar attribute="Attribute Value" context="#pop#pop" char="&quot;" />
          <IncludeRules context="detectEntRef" />
       </context>
-      
+
       <context name="comment" attribute="Comment" lineEndContext="#stay">
         <DetectSpaces/>
         <StringDetect attribute="Comment" context="#pop"  String="--&gt;" endRegion="comment"/>
         <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+"/>
         <IncludeRules context="##Alerts"/>
         <DetectIdentifier/>
-      </context>      
+      </context>
     </contexts>
-    
+
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal"/>
       <itemData name="Tag" defStyleNum="dsKeyword"/>
+      <itemData name="Entity Reference" defStyleNum="dsOthers"/>
       <itemData name="Invalid" defStyleNum="dsError"/>
       <itemData name="Attribute" defStyleNum="dsOthers"/>
       <itemData name="Attribute Value" defStyleNum="dsString" color="#800000" selColor="#ffffff" bold="0" italic="0"/>
diff --git a/xml/rhtml.xml b/xml/rhtml.xml
--- a/xml/rhtml.xml
+++ b/xml/rhtml.xml
@@ -44,7 +44,7 @@
 -->
 	
 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
-<language name="Ruby/Rails/RHTML" version="6" kateversion="2.4" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">
+<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+">
 	
 	<highlighting>
 	
@@ -1160,6 +1160,7 @@
 		<itemDatas>
 		<!-- BEGIN Ruby itemData -->
 			<itemData name="Ruby Normal Text" defStyleNum="dsNormal"/>
+			<itemData name="RUBY RAILS ERB Text" defStyleNum="dsExtension"/>
 			
 			<itemData name="Keyword" defStyleNum="dsKeyword"/>
 			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>
@@ -1197,7 +1198,6 @@
 			
 			<itemData name="Ruby Comment" defStyleNum="dsComment"/>
 			<itemData name="Blockcomment" defStyleNum="dsComment"/>
-			<itemData name="Region Marker" defStyleNum="dsNormal" color="#0000ff"/>
 			<itemData name="RDoc Value" defStyleNum="dsOthers"/>
 			
 			<!-- use these to mark errors and alerts things -->
@@ -1205,7 +1205,6 @@
 			<itemData name="Alert" defStyleNum="dsAlert" />
 
 			<itemData name="Delimiter" defStyleNum="dsChar"/>
-			<itemData name="Expression" defStyleNum="dsOthers"/>
 			<itemData name="Operator" defStyleNum="dsChar"/>
 		<!-- END Ruby itemData -->
 			
@@ -1220,7 +1219,6 @@
 			<itemData name="Value" defStyleNum="dsString" />
 			<itemData name="EntityRef" defStyleNum="dsDecVal" />
 			<itemData name="PEntityRef" defStyleNum="dsDecVal" />
-			<itemData name="Error" defStyleNum="dsError" />
 		<!-- END HTML itemData -->
 		
 		</itemDatas>
diff --git a/xml/roff.xml b/xml/roff.xml
--- a/xml/roff.xml
+++ b/xml/roff.xml
@@ -7,7 +7,7 @@
   <!ENTITY argsep1 "([^\\]|\\[&#37; |\^{}'`\-!?@)/,&amp;:~0E_acdeprtu])">
   <!ENTITY argsep2 "([^\\0-9]|\\[&#37;:{}'`\-_!@/cep])">
 ]>
-<language name="Roff" section="Markup" version="2" kateversion="2.4" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
+<language name="Roff" section="Markup" version="3" kateversion="2.4" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
 
   <highlighting>
 
@@ -33,14 +33,14 @@
 
       <context name="DetectComments" attribute="Normal Text" lineEndContext="#stay">
         <RegExpr attribute="Comment" context="Comment" String="\.\s*\\&quot;" column="0"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="&quot;"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="#"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\" char1="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\" char1="#"/>
       </context>
 
       <!-- catch glyphc, registers, strings, etc -->
       <context name="DetectOthers" attribute="Normal Text" lineEndContext="#stay">
         <IncludeRules context="DetectComments"/>
-        <DetectChar attribute="Escape" context="DetectEscape" char="\\" lookAhead="true"/>
+        <DetectChar attribute="Escape" context="DetectEscape" char="\" lookAhead="true"/>
         <DetectChar attribute="String" context="String" char="&quot;"/>
       </context>
 
@@ -50,7 +50,7 @@
         <RegExpr attribute="Font" context="#pop" String="\\[fF]&roffid;"/>
         <RegExpr attribute="Font" context="#pop" String="\\f([0-9]|\([0-9][0-9]|\[[0-9]+\])"/>
         <RegExpr attribute="Font" context="#pop" String="\\s(\[([1-3][0-9]|[04-9])\]|[04-9]|[+-][0-9]|([+-]?\(|\([+-])[0-9][0-9])"/>
-        <Detect2Chars attribute="Escape" context="#pop" char="\\" char1="\\"/>
+        <Detect2Chars attribute="Escape" context="#pop" char="\" char1="\"/>
         <RegExpr attribute="Escape" context="#pop" String="\\(\$[0-9*@]|[.:&#37; |^{}_!?@)/,&amp;:~0acdeEprtu])"/>
         <RegExpr attribute="Escape" context="Argument" String="\\[ABDXZbow]&argsep1;"/>
         <RegExpr attribute="Escape" context="#pop" String="\\[gkmMVYz]&roffid;"/>
@@ -62,7 +62,7 @@
         <RegExpr attribute="Glyph" context="#pop" String="\\N&argsep2;[0-9]+\1"/>
         <RegExpr attribute="Glyph" context="#pop" String="\\&roffid;"/>
         <RegExpr attribute="Escape" context="#pop" String="\\$"/>
-        <DetectChar attribute="Error" context="#pop" char="\\"/>
+        <DetectChar attribute="Error" context="#pop" char="\"/>
       </context>
 
       <!-- directive start -->
@@ -89,13 +89,13 @@
       <context name="Directive" attribute="Identifier" lineEndContext="#pop">
         <Float attribute="Number" context="#stay"/>
         <Int attribute="Number" context="#stay"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\" char1="&quot;"/>
         <IncludeRules context="DetectOthers"/>
       </context>
 
       <!-- quoted string -->
       <context name="String" attribute="String" lineEndContext="#pop">
-        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;"/>
+        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="&quot;"/>
         <DetectChar attribute="String" context="#pop" char="&quot;"/>
         <IncludeRules context="DetectOthers"/>
       </context>
@@ -103,8 +103,8 @@
       <!-- \!, \? escapes -->
       <context name="LiteralSL" attribute="Normal Text" lineEndContext="#pop"/>
       <context name="LiteralIL" attribute="Normal Text" lineEndContext="Error">
-        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="\\"/>
-        <Detect2Chars attribute="Escape" context="#pop" char="\\" char1="?"/>
+        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="\"/>
+        <Detect2Chars attribute="Escape" context="#pop" char="\" char1="?"/>
       </context>
 
       <!-- escape argument -->
@@ -135,8 +135,8 @@
       <context name="diDirective" attribute="Identifier" lineEndContext="diBody"/>
       <context name="diBody" attribute="Normal Text" lineEndContext="#stay">
         <RegExpr attribute="Other Macros" context="#pop#pop" String="\.\s*di\b" column="0" endRegion="di"/>
-        <Detect2Chars attribute="Escape" context="LiteralSL" char="\\" char1="!"/>
-        <Detect2Chars attribute="Escape" context="LiteralIL" char="\\" char1="?"/>
+        <Detect2Chars attribute="Escape" context="LiteralSL" char="\" char1="!"/>
+        <Detect2Chars attribute="Escape" context="LiteralIL" char="\" char1="?"/>
         <IncludeRules context="Normal"/>
       </context>
 
@@ -144,8 +144,8 @@
       <context name="daDirective" attribute="Identifier" lineEndContext="daBody"/>
       <context name="daBody" attribute="Normal Text" lineEndContext="#stay">
         <RegExpr attribute="Other Macros" context="#pop#pop" String="\.\s*da\b" column="0" endRegion="di"/>
-        <Detect2Chars attribute="Escape" context="LiteralSL" char="\\" char1="!"/>
-        <Detect2Chars attribute="Escape" context="LiteralIL" char="\\" char1="?"/>
+        <Detect2Chars attribute="Escape" context="LiteralSL" char="\" char1="!"/>
+        <Detect2Chars attribute="Escape" context="LiteralIL" char="\" char1="?"/>
         <IncludeRules context="Normal"/>
       </context>
 
@@ -153,7 +153,7 @@
       <context name="dsDirective" attribute="Identifier" lineEndContext="#pop">
         <Int attribute="Number" context="#stay"/>
         <Float attribute="Number" context="#stay"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\" char1="&quot;"/>
         <DetectChar attribute="String" context="dsString" char="&quot;"/>
         <IncludeRules context="DetectOthers"/>
       </context>
diff --git a/xml/ruby.xml b/xml/ruby.xml
--- a/xml/ruby.xml
+++ b/xml/ruby.xml
@@ -31,7 +31,7 @@
 
 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
 <language name="Ruby" section="Scripts"
-	  version="5" kateversion="3.3"
+	  version="8" kateversion="3.3"
 	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile"
 	  mimetype="application/x-ruby"
 	  style="ruby" indenter="ruby"
@@ -428,17 +428,10 @@
 				<RegExpr attribute="Member" String="\W" context="#pop"/>
 			</context>
 
-			<context name="Comment Line" attribute="Comment" lineEndContext="#pop">
-				<RegExpr attribute="Comment" String="\w\:\:\s" context="RDoc Label"/>
-				<IncludeRules context="##Alerts" />
-			</context>
-
 			<context name="General Comment" attribute="Comment" lineEndContext="#pop">
 				<IncludeRules context="##Alerts" />
 			</context>
 
-			<context name="RDoc Label" attribute="RDoc Value" lineEndContext="#pop"/>
-
 			<!-- HEREDOC support
 				The contexts below support both normal and indented heredocs
 			 -->
@@ -902,16 +895,10 @@
 
 			<itemData name="Comment" defStyleNum="dsComment"/>
 			<itemData name="Blockcomment" defStyleNum="dsComment"/>
-			<itemData name="Region Marker" defStyleNum="dsNormal" color="#0000ff"/>
-			<itemData name="RDoc Value" defStyleNum="dsOthers"/>
 
 			<itemData name="Here Document" defStyleNum="dsOthers"/>
 
-			<!-- use these to mark errors and alerts things -->
-			<itemData name="Error" defStyleNum="dsError" />
-
 			<itemData name="Delimiter" defStyleNum="dsNormal" color="#FF9FEC"/>
-			<itemData name="Expression" defStyleNum="dsOthers"/>
 			<itemData name="Operator" defStyleNum="dsNormal" color="#FF9FEC"/>
 		</itemDatas>
 	</highlighting>
diff --git a/xml/scala.xml b/xml/scala.xml
--- a/xml/scala.xml
+++ b/xml/scala.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="Scala" version="4" kateversion="2.3" section="Sources"
+<language name="Scala" version="5" kateversion="2.3" section="Sources"
           extensions="*.scala;*.sbt" mimetype="text/x-scala" license="LGPL"
           author="Stephane Micheloud (stephane.micheloud@epfl.ch)">
 <!--
@@ -3476,8 +3476,8 @@
       <itemData name="Normal Text"  defStyleNum="dsNormal"/>
       <itemData name="Keyword"      defStyleNum="dsKeyword"/>
       <itemData name="Function"     defStyleNum="dsFunction"/>
-      <itemData name="StaticImports"      defStyleNum="dsKeyword" color="#800080" selColor="#FFFFFF" bold="0" italic="0"/>
-      <itemData name="Imports"      defStyleNum="dsKeyword" color="#808000" selColor="#FFFFFF" bold="0" italic="0"/>
+<!--       <itemData name="StaticImports"      defStyleNum="dsKeyword" color="#800080" selColor="#FFFFFF" bold="0" italic="0"/> -->
+<!--       <itemData name="Imports"      defStyleNum="dsKeyword" color="#808000" selColor="#FFFFFF" bold="0" italic="0"/> -->
       <itemData name="Data Type"    defStyleNum="dsDataType"/>
       <itemData name="Decimal"      defStyleNum="dsDecVal"/>
       <itemData name="Octal"        defStyleNum="dsBaseN"/>
diff --git a/xml/scheme.xml b/xml/scheme.xml
--- a/xml/scheme.xml
+++ b/xml/scheme.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language version="4" kateversion="2.4" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
+<language version="6" kateversion="5.0" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
   <highlighting>
     <list name="operators">
       <item>&lt;=</item>
@@ -367,23 +367,21 @@
     <itemDatas>
       <itemData name="Normal"      defStyleNum="dsNormal"/>
       <itemData name="Keyword"     defStyleNum="dsKeyword"/>
-      <itemData name="Definition"  defStyleNum="dsKeyword" color="#d22811"/>
-      <itemData name="Operator"    defStyleNum="dsKeyword" color="#d22811"/>
+      <itemData name="Definition"  defStyleNum="dsExtension"/>
+      <itemData name="Operator"    defStyleNum="dsOperator"/>
       <itemData name="Function"    defStyleNum="dsFunction"/>
-      <itemData name="Data"        defStyleNum="dsDataType"/>
       <itemData name="Decimal"     defStyleNum="dsDecVal"/>
-      <itemData name="BaseN"       defStyleNum="dsBaseN"/>
       <itemData name="Float"       defStyleNum="dsFloat"/>
       <itemData name="Char"        defStyleNum="dsChar"/>
       <itemData name="String"      defStyleNum="dsString"/>
       <itemData name="Comment"     defStyleNum="dsComment"/>
       <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
-      <itemData name="Brackets1"    defStyleNum="dsNormal" color="#ff0000" selColor="#000000" bold="1" italic="0"/>
-      <itemData name="Brackets2"    defStyleNum="dsNormal" color="#ff8800" selColor="#000000" bold="1" italic="0"/>
-      <itemData name="Brackets3"    defStyleNum="dsNormal" color="#888800" selColor="#000000" bold="1" italic="0"/>
-      <itemData name="Brackets4"    defStyleNum="dsNormal" color="#008800" selColor="#000000" bold="1" italic="0"/>
-      <itemData name="Brackets5"    defStyleNum="dsNormal" color="#000088" selColor="#000000" bold="1" italic="0"/>
-      <itemData name="Brackets6"    defStyleNum="dsNormal" color="#880088" selColor="#000000" bold="1" italic="0"/>
+      <itemData name="Brackets1"    defStyleNum="dsNormal" color="#ff0000" bold="1"/>
+      <itemData name="Brackets2"    defStyleNum="dsNormal" color="#ff8800" bold="1"/>
+      <itemData name="Brackets3"    defStyleNum="dsNormal" color="#888800" bold="1"/>
+      <itemData name="Brackets4"    defStyleNum="dsNormal" color="#008800" bold="1"/>
+      <itemData name="Brackets5"    defStyleNum="dsNormal" color="#000088" bold="1"/>
+      <itemData name="Brackets6"    defStyleNum="dsNormal" color="#880088" bold="1"/>
     </itemDatas>
   </highlighting>
   <general>
diff --git a/xml/sql-postgresql.xml b/xml/sql-postgresql.xml
--- a/xml/sql-postgresql.xml
+++ b/xml/sql-postgresql.xml
@@ -3,7 +3,7 @@
 <!-- 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="5" 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="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="">
   <highlighting>
     <list name="keywords">
       <item>ABORT</item>
@@ -29,6 +29,7 @@
       <item>ASYMMETRIC</item>
       <item>AT</item>
       <item>ATOMIC</item>
+      <item>ATTACH</item>
       <item>AUTHORIZATION</item>
       <item>BACKWARD</item>
       <item>BEFORE</item>
@@ -134,6 +135,7 @@
       <item>DESCRIPTOR</item>
       <item>DESTROY</item>
       <item>DESTRUCTOR</item>
+      <item>DETACH</item>
       <item>DETERMINISTIC</item>
       <item>DIAGNOSTICS</item>
       <item>DICTIONARY</item>
@@ -312,6 +314,7 @@
       <item>OUT</item>
       <item>OUTER</item>
       <item>OUTPUT</item>
+      <item>OVER</item>
       <item>OVERLAPS</item>
       <item>OVERLAY</item>
       <item>OVERRIDING</item>
@@ -326,6 +329,7 @@
       <item>PARAMETER_SPECIFIC_NAME</item>
       <item>PARAMETER_SPECIFIC_SCHEMA</item>
       <item>PARTIAL</item>
+      <item>PARTITION</item>
       <item>PASCAL</item>
       <item>PASSWORD</item>
       <item>PATH</item>
@@ -344,6 +348,7 @@
       <item>PROCEDURAL</item>
       <item>PROCEDURE</item>
       <item>PUBLIC</item>
+      <item>RANGE</item>
       <item>READ</item>
       <item>READS</item>
       <item>REAL</item>
@@ -685,6 +690,7 @@
       <item>VARIANCE</item>
     </list>
     <list name="types">
+      <!-- https://www.postgresql.org/docs/current/static/datatype.html#DATATYPE-TABLE -->
       <item>BIGINT</item>
       <item>BIGSERIAL</item>
       <item>BIT</item>
@@ -698,6 +704,7 @@
       <item>CIRCLE</item>
       <item>DATE</item>
       <item>DECIMAL</item>
+      <item>FLOAT4</item>
       <item>FLOAT8</item>
       <item>INET</item>
       <item>INT</item>
@@ -706,10 +713,13 @@
       <item>INT8</item>
       <item>INTEGER</item>
       <item>INTERVAL</item>
+      <item>JSON</item>
+      <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>
@@ -718,15 +728,22 @@
       <item>POLYGON</item>
       <item>REAL</item>
       <item>SERIAL</item>
+      <item>SERIAL2</item>
+      <item>SERIAL4</item>
       <item>SERIAL8</item>
       <item>SMALLINT</item>
+      <item>SMALLSERIAL</item>
       <item>TEXT</item>
       <item>TIME</item>
       <item>TIMESTAMP</item>
       <item>TIMESTAMPTZ</item>
       <item>TIMETZ</item>
+      <item>TSQUERY</item>
+      <item>TSVECTOR</item>
+      <item>UUID</item>
       <item>VARBIT</item>
       <item>VARCHAR</item>
+      <item>XML</item>
     </list>
     <contexts>
       <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
diff --git a/xml/tcsh.xml b/xml/tcsh.xml
--- a/xml/tcsh.xml
+++ b/xml/tcsh.xml
@@ -8,7 +8,7 @@
         <!ENTITY noword   "(?![\w$+-])">		<!-- no word, $, + or - following -->
         <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name -->
 ]>
-<language name="Tcsh" version="1" kateversion="2.4" section="Scripts" extensions="*.csh;*.tcsh;csh.cshrc;csh.login;.tcshrc;.cshrc;.login" mimetype="application/x-csh" casesensitive="1" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL">
+<language name="Tcsh" version="5" kateversion="5.0" section="Scripts" extensions="*.csh;*.tcsh;csh.cshrc;csh.login;.tcshrc;.cshrc;.login" mimetype="application/x-csh" casesensitive="1" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL">
 
 <!-- (c) 2006 Matthew Woehlke (mw_triad@users.sourceforge.net)
     Based on the bash highlighter by Wilbert Berendsen (wilbert@kde.nl)
@@ -472,14 +472,14 @@
       </context>
 
       <!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
-      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
+<!--      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
         <DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
         <RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
       </context>
       <context attribute="Comment" lineEndContext="#pop" name="CommentParen">
         <RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
         <IncludeRules context="##Alerts" />
-      </context>
+      </context> -->
 
       <!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
       <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
@@ -522,11 +522,11 @@
         <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
         <!-- handle variable assignments -->
 <!--R--><RegExpr attribute="Keyword" context="#stay" String="\b@\s" />
-<!--R--><RegExpr attribute="Keyword" context="#stay" String="\bset\s" />
-        <RegExpr attribute="Keyword" context="CmdSetEnv" String="\bsetenv\s" />
+<!--R--><WordDetect attribute="Keyword" context="#stay" String="set" />
+        <WordDetect attribute="Keyword" context="CmdSetEnv" String="setenv" />
         <!-- handle functions with function keyword before keywords -->
 <!--!--><StringDetect attribute="Function" context="#stay" String=":()" />
-<!--!--><RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
+<!--!--><WordDetect attribute="Keyword" context="FunctionDef" String="function" />
         <!-- handle keywords -->
         <keyword attribute="Keyword" context="#stay" String="keywords" />
         <keyword attribute="Builtin" context="#stay" String="builtins" />
@@ -657,15 +657,6 @@
         <IncludeRules context="FindMost" />
       </context>
 
-      <!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->
-      <context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">
-        <DetectChar attribute="Variable" context="Subscript" char="[" />
-        <DetectChar attribute="Variable" context="Assign" char="=" />
-        <IncludeRules context="FindStrings" />
-        <IncludeRules context="FindSubstitutions" />
-        <IncludeRules context="FindOthers" />
-      </context>
-
       <!-- Subscript consumes anything till ], marks as Variable -->
       <context attribute="Variable" lineEndContext="#stay" name="Subscript">
         <DetectChar attribute="Variable" context="#pop" char="]" />
@@ -683,7 +674,7 @@
       <context attribute="Normal Text" lineEndContext="#pop" name="CmdSetEnv" fallthrough="true" fallthroughContext="#pop">
         <!-- handle command line options -->
         <RegExpr attribute="Variable" context="#pop" String="\b&varname;" />
-        <DetectChar attribute="Variable" context="Assign" char=" " />
+        <RegExpr attribute="Variable" context="Assign" String=" " />
         <IncludeRules context="FindMost" />
       </context>
 
@@ -700,16 +691,6 @@
         <RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />
       </context>
 
-      <!-- ProcessSubst handles <(command) and >(command) -->
-      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">
-        <DetectChar attribute="Redirection" context="#pop" char=")" />
-        <IncludeRules context="FindCommentsParen" />
-        <IncludeRules context="FindCommands" />
-        <IncludeRules context="FindStrings" />
-        <IncludeRules context="FindSubstitutions" />
-        <IncludeRules context="FindOthers" />
-      </context>
-
       <!-- StringSQ consumes anything till ' -->
       <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
         <DetectChar attribute="String SingleQ" context="#pop" char="'" />
@@ -739,16 +720,16 @@
       </context>
 
       <!-- SubstFile is called after a <( or >( is encoutered -->
-      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">
+<!--      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">
         <DetectChar attribute="Redirection" context="#pop" char=")" />
         <IncludeRules context="FindCommentsParen" />
         <IncludeRules context="FindStrings" />
         <IncludeRules context="FindSubstitutions" />
         <IncludeRules context="FindOthers" />
       </context>
-
+-->
       <!-- SubstCommand is called after a $( is encountered -->
-      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">
+<!--      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">
         <DetectChar attribute="Variable" context="#pop" char=")" />
         <IncludeRules context="FindCommentsParen" />
         <IncludeRules context="FindCommands" />
@@ -756,6 +737,7 @@
         <IncludeRules context="FindSubstitutions" />
         <IncludeRules context="FindOthers" />
       </context>
+-->
 
       <!-- SubstBackq is called when a backquote is encountered -->
       <context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">
@@ -796,45 +778,6 @@
         <IncludeRules context="FindAll" />
       </context>
 
-      <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->
-      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
-        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*&quot;(&word;)&quot;)" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*'(&word;)')" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*\\(&word;))" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocINQ" String="(&lt;&lt;-\s*(&word;))" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*&quot;(&word;)&quot;)" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />
-        <RegExpr attribute="Redirection" context="HereDocNQ"  String="(&lt;&lt;\s*(&word;))" lookAhead="true" />
-        <StringDetect attribute="Redirection" context="#pop"  String="&lt;&lt;" /><!-- always met -->
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">
-        <IncludeRules context="FindAll" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocQ" dynamic="true">
-        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
-        <RegExpr attribute="Redirection" context="#pop#pop" String="%2[\s;]*$" dynamic="true" column="0"/>
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocNQ" dynamic="true">
-        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
-        <RegExpr attribute="Redirection" context="#pop#pop" String="%2[\s;]*$" dynamic="true" column="0"/>
-        <IncludeRules context="FindSubstitutions" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocIQ" dynamic="true">
-        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
-        <RegExpr attribute="Redirection" context="#pop#pop" String="\s*%2[\s;]*$" dynamic="true" column="0"/>
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocINQ" dynamic="true">
-        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
-        <RegExpr attribute="Redirection" context="#pop#pop" String="\s*%2[\s;]*$" dynamic="true" column="0"/>
-        <IncludeRules context="FindSubstitutions" />
-      </context>
-
     </contexts>
 
     <itemDatas>
@@ -842,7 +785,6 @@
       <itemData name="Comment"		defStyleNum="dsComment" />
       <itemData name="Keyword" 		defStyleNum="dsKeyword" />
       <itemData name="Control" 		defStyleNum="dsKeyword" />
-      <itemData name="Label"            defStyleNum="dsOthers" />
       <itemData name="Builtin" 		defStyleNum="dsKeyword" />
       <itemData name="Command" 		defStyleNum="dsKeyword" />
       <itemData name="Redirection" 	defStyleNum="dsKeyword" />
diff --git a/xml/verilog.xml b/xml/verilog.xml
--- a/xml/verilog.xml
+++ b/xml/verilog.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="Verilog" version="2" kateversion="2.4" 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="4" kateversion="2.4" 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">
       <item>macromodule</item>
@@ -204,18 +204,14 @@
         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="Some Context"/>
-      <context attribute="Comment" lineEndContext="#stay" name="Some Context2">
-          <IncludeRules context="##Alerts" />
-          <StringDetect attribute="Comment" context="#pop" String="#endif" firstNonSpace="true"/>
-      </context>
 
       <context attribute="Block name" lineEndContext="#pop" name="Block name">
           <DetectIdentifier attribute="Data Type" context="#pop"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="Port">
+<!--      <context attribute="Normal Text" lineEndContext="#stay" name="Port">
           <DetectIdentifier attribute="Normal Text" context="#pop"/>
-      </context>
+      </context>-->
     </contexts>
 
     <itemDatas>
@@ -232,7 +228,6 @@
       <itemData name="String"  defStyleNum="dsString"/>
       <itemData name="String Char"  defStyleNum="dsChar"/>
       <itemData name="Comment"  defStyleNum="dsComment"/>
-      <itemData name="Alert"        defStyleNum="dsAlert" />
       <itemData name="Symbol"  defStyleNum="dsNormal"/>
       <itemData name="Preprocessor"  defStyleNum="dsOthers"/>
       <itemData name="Prep. Lib"  defStyleNum="dsFloat"/>
@@ -243,7 +238,7 @@
       <itemData name="Block name" defStyleNum="dsDataType"/>
       <itemData name="Drive/charge strength" defStyleNum="dsBaseN"/>
       <itemData name="Gate instantiation" defStyleNum="dsDataType"/>
-      <itemData name="Port map" defStyleNum="dsDataType"/>
+<!--       <itemData name="Port map" defStyleNum="dsDataType"/> -->
       <itemData name="Case label" defStyleNum="dsDecVal"/>
     </itemDatas>
   </highlighting>
diff --git a/xml/vhdl.xml b/xml/vhdl.xml
--- a/xml/vhdl.xml
+++ b/xml/vhdl.xml
@@ -8,7 +8,7 @@
   <!ENTITY label     "((&varname;)\s*:\s*)?">
 
 ]>
-<language name="VHDL" version="3" 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="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)">
   <highlighting>
     <list name="keywordsToplevel">
       <item>file</item>
@@ -132,18 +132,6 @@
       <item>then</item>
     </list>
 
-    <list name="forOrWhile">
-      <item>loop</item>
-    </list>
-
-    <list name="directions">
-      <item>in</item>
-      <item>inout</item>
-      <item>out</item>
-      <item>buffer</item>
-      <item>linkage</item>
-    </list>
-
     <list name="signals">
       <item>signal</item>
       <item>variable</item>
@@ -651,7 +639,6 @@
       <itemData name="Vector" defStyleNum="dsString"/>
       <itemData name="Operator" defStyleNum="dsOthers"/>
       <itemData name="Attribute" defStyleNum="dsBaseN"/>
-      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
       <itemData name="Signal" defStyleNum="dsOthers"/>
       <itemData name="Range" defStyleNum="dsOthers"/>
       <itemData name="Redirection" defStyleNum="dsKeyword" color="#223388"/>
diff --git a/xml/xml.xml b/xml/xml.xml
--- a/xml/xml.xml
+++ b/xml/xml.xml
@@ -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="6" kateversion="3.4" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel" 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="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">
 
 <highlighting>
 <contexts>
diff --git a/xml/xul.xml b/xml/xul.xml
--- a/xml/xul.xml
+++ b/xml/xul.xml
@@ -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="2" 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="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">
 
 <highlighting>
    <list name="keywords">
@@ -603,10 +603,8 @@
   <itemData name="Data Type"    defStyleNum="dsDataType"/>
   <itemData name="Decimal"      defStyleNum="dsDecVal"/>
   <itemData name="Float"        defStyleNum="dsFloat"/>
-  <itemData name="Char"         defStyleNum="dsChar"/>
   <itemData name="String"       defStyleNum="dsString"/>
   <itemData name="String Char"  defStyleNum="dsChar"/>
-  <itemData name="Comment"      defStyleNum="dsComment"/>
   <itemData name="Symbol"       defStyleNum="dsNormal"/>
   <itemData name="Regular Expression" defStyleNum="dsOthers"   />
   <itemData name="Pattern Internal Operator" defStyleNum="dsFloat" />
diff --git a/xml/yacc.xml b/xml/yacc.xml
--- a/xml/yacc.xml
+++ b/xml/yacc.xml
@@ -10,6 +10,17 @@
 
 
 == UPDATE HISTORY ==
+2018-02-20 // Nibaldo González <nibgonz@gmail.com>
+
+  Fix '$' symbol, highlighted as 'dsError' by C++ (isocpp.xml). 
+  Update syntax for Bison (3.0.4):
+   - Add declarations, directives in rules and the '@' variable.
+   - Allow a tag in '%union', declarations in multiple lines and 
+     grammar declarations in the grammar rules section.
+   - The ';' char is not necessary to finish a rule. Allow '; |' 
+     within rules.
+  Add mimetypes and extensions '*.ypp' & '*.y++'.
+
 2007-10-01 // Sebastian Pipping <webmaster@hartwork.org>
 
   Added: Extension "*.yy" for Bison
@@ -19,13 +30,9 @@
   YACC.XML 1.00 - First released.
 
 
-== TODO ==
-- Add a mime type (cannot find it !?)
-
-
 ========================================================================
 -->
-<language name="Yacc/Bison" version="3" kateversion="2.4" section="Sources" extensions="*.y;*.yy" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
+<language name="Yacc/Bison" version="4" kateversion="2.4" section="Sources" extensions="*.y;*.yy;*.ypp;*.y++" mimetype="text/x-yacc;text/x-bison" priority="5" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
 
 <highlighting>
 <contexts>
@@ -44,19 +51,35 @@
 
   <context name="Declarations" attribute="Normal Text" lineEndContext="#stay">
     <IncludeRules context="Comment" />
-    <StringDetect attribute="Directive" context="Union Start" String="%union" />
     <Detect2Chars attribute="Content-Type Delimiter" context="Rules" char="%" char1="%" beginRegion="rules" endRegion="declarations" />
-
-    <!-- not sure that strict yacc allows that ... but it is commonly used -->
+    <!-- Prologue Declarations -->
     <Detect2Chars attribute="Content-Type Delimiter" context="C Declarations" char="%" char1="{" beginRegion="cdeclarations" column="0" />
-
+    <IncludeRules context="Grammar Declarations" />
+    <WordDetect attribute="Directive" context="Code-Symbols Start" String="%initial-action" />
+    <WordDetect attribute="Directive" context="Code-Symbols Start" String="%param" />
+    <WordDetect attribute="Directive" context="Code-Symbols Start" String="%lex-param" />
+    <WordDetect attribute="Directive" context="Code-Symbols Start" String="%parse-param" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%&lt;flag&gt;" />
+    <!-- Any word followed by '%' (End with ';' or '%') -->
     <DetectChar attribute="Directive" context="Percent Command" char="%" />
+  </context>  
+  <context name="Grammar Declarations" attribute="Normal Text" lineEndContext="#stay">
+    <WordDetect attribute="Directive" context="Union Start" String="%union" />
+    <WordDetect attribute="Directive" context="Union Start" String="%code" />
+    <WordDetect attribute="Directive" context="Code-Symbols Start" String="%destructor" />
+    <WordDetect attribute="Directive" context="Code-Symbols Start" String="%printer" />
   </context>
 
   <context name="Union Start" attribute="Normal Text" lineEndContext="#stay">
     <IncludeRules context="Comment" />
     <DetectSpaces />
     <DetectChar attribute="Normal Text" context="Union In" char="{" beginRegion="union" />
+    <RegExpr attribute="Normal Text" context="#pop!Union Tag" String="[^\s\{](?=(\s|$|//))" />
+  </context>
+  <context name="Union Tag" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <DetectSpaces />
+    <DetectChar attribute="Normal Text" context="Union In" char="{" beginRegion="union" />
     <RegExpr attribute="Alert" context="#pop" String="." />
   </context>
   <context name="Union In" attribute="Normal Text" lineEndContext="#stay">
@@ -70,39 +93,109 @@
     <IncludeRules context="##C++" />
   </context>
 
+  <!-- '%'<decl> ('{' <Code-Symbols In> '}')+ <Percent Command In> [';'] -->
+  <context name="Code-Symbols Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <DetectSpaces />
+    <DetectChar attribute="Normal Text" context="Code-Symbols In" char="{" beginRegion="code-symbols" />
+    <RegExpr attribute="Alert" context="#pop" String="." />
+  </context>
+  <context name="Code-Symbols In" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Normal Text" context="#pop#pop!Code-Symbols End" char="}" endRegion="code-symbols" />
+    <DetectChar attribute="Normal Text" context="Code-Symbols InIn" char="{" />
+    <IncludeRules context="Symbol-Variable" />
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Code-Symbols InIn" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Normal Text" context="Code-Symbols InIn" char="{" />
+    <DetectChar attribute="Normal Text" context="#pop" char="}" />
+    <IncludeRules context="Symbol-Variable" />
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Code-Symbols End" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Percent Command In">
+    <IncludeRules context="Comment" />
+    <DetectSpaces />
+    <DetectChar attribute="Normal Text" context="#pop" char=";" lookAhead="true" />
+    <DetectChar attribute="Normal Text" context="Code-Symbols In" char="{" beginRegion="code-symbols" />
+  </context>
+
   <context name="Rules" attribute="Rule" lineEndContext="#stay">
     <IncludeRules context="Comment" />
     <Detect2Chars attribute="Content-Type Delimiter" context="User Code" char="%" char1="%" beginRegion="code" endRegion="rules" />
     <DetectChar attribute="Normal Text" context="Rule In" char=":" beginRegion="rule" />
+    <DetectChar attribute="Rule" context="Grammar Declaration Start" char="%" lookAhead="true" />
   </context>
 
   <context name="Rule In" attribute="Definition" lineEndContext="#stay">
     <IncludeRules context="Comment" />
-    <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="rule" />
+    <DetectChar attribute="Normal Text" context="Rule End" char=";" endRegion="rule" />
     <DetectChar attribute="Normal Text" context="Normal C Bloc" char="{" beginRegion="bloc" />
     <DetectChar attribute="Normal Text" context="#stay" char="|" />
     <IncludeRules context="StringOrChar" />
+    <RegExpr attribute="Directive" context="#stay" String="%\?(?=\{)" />
+    <WordDetect attribute="Directive" context="#stay" String="%empty" />
+    <WordDetect attribute="Directive" context="#stay" String="%prec" />
+    <WordDetect attribute="Directive" context="#stay" String="%dprec" />
+    <WordDetect attribute="Directive" context="#stay" String="%merge" />
+
+    <!-- Finish rule without the ';' character (see the 'rhses.1' rule in the 'src/parse-gram.y' file, from the Bison source) -->
+    <RegExpr attribute="Open Rule" context="#pop" String="[\w\-\.](?=[\w\-\.]*:)" column="0" endRegion="rule" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="#pop" char="%" char1="%" lookAhead="true" firstNonSpace="true" endRegion="rule" />
+    <RegExpr attribute="Directive" context="#pop" String="%(union|code|destructor|printer|start|(no\-)?default\-prec|nterm|token|type|left|right|nonassoc|precedence)\b" lookAhead="true" column="0" endRegion="rule" />
   </context>
+  <!-- The Bison parser allows to have ';' followed by '|', without the rule ending. 
+       The problem here is that the ';' char has endRegion="rule" (although it is not very relevant). -->
+  <context name="Rule End" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+    <DetectSpaces />
+    <DetectChar attribute="Normal Text" context="#stay" char=";" />
+    <DetectChar attribute="Normal Text" context="#pop" char="|" />
+    <IncludeRules context="Comment" />
+  </context>
 
+  <context name="Grammar Declaration Start" attribute="Normal Text" lineEndContext="#stay">
+    <!-- In the rules section, only highlighting exact declarations -->
+    <IncludeRules context="Grammar Declarations" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%start" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%default-prec" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%no-default-prec" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%nterm" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%token" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%type" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%left" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%right" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%nonassoc" />
+    <WordDetect attribute="Directive" context="Percent Command In" String="%precedence" /> 
+
+    <DetectChar attribute="Rule" context="#pop" char="%" /> <!-- End when there is an invalid declaration -->
+    <DetectChar attribute="Normal Text" context="#pop" char=";" />
+    <IncludeRules context="Comment" />
+    <DetectSpaces />
+    <RegExpr attribute="Alert" context="#pop" String=".+" />
+  </context>
+
   <context name="User Code" attribute="Normal Text" lineEndContext="#stay">
     <IncludeRules context="##C++" />
   </context>
 
-  <context name="Percent Command" attribute="Directive" lineEndContext="#pop">
+  <context name="Percent Command" attribute="Directive" lineEndContext="#pop!Percent Command In">
     <IncludeRules context="Comment" />
-    <RegExpr attribute="Normal Text" context="Percent Command In" String="\W" lookAhead="true" />
+    <RegExpr attribute="Normal Text" context="#pop!Percent Command In" String="[^\w\-]" lookAhead="true" />
   </context>
-  <context name="Percent Command In" attribute="Normal Text" lineEndContext="#pop#pop">
+  <context name="Percent Command In" attribute="Normal Text" lineEndContext="#stay">
+    <!-- This can be applied to multiple lines -->
+    <DetectChar attribute="Normal Text" context="#pop" char=";" lookAhead="true" />
+    <DetectChar attribute="Normal Text" context="#pop" char="%" lookAhead="true" firstNonSpace="true" />
+    <Detect2Chars attribute="Normal Text" context="#pop" char="%" char1="%" lookAhead="true" />
     <IncludeRules context="StringOrChar" />
     <DetectChar attribute="Data Type" context="PC type" char="&lt;" />
+    <IncludeRules context="Comment" />
   </context>
-  <context name="PC type" attribute="Data Type" lineEndContext="#pop#pop#pop">
+  <context name="PC type" attribute="Data Type" lineEndContext="#pop#pop">
     <DetectChar attribute="Data Type" context="#pop" char="&gt;" />
   </context>
 
   <context name="Comment" attribute="Comment" lineEndContext="#stay">
     <Detect2Chars attribute="Comment" context="CommentStar" char="/" char1="*" />
-    <!-- not sure that strict yacc allows that ... but I saw it in some sources ... -->
     <Detect2Chars attribute="Comment" context="CommentSlash" char="/" char1="/" />
   </context>
   <context name="CommentStar" attribute="Comment" lineEndContext="#stay">
@@ -128,15 +221,20 @@
   <context name="Normal C Bloc" attribute="Normal Text" lineEndContext="#stay">
     <DetectChar attribute="Normal Text" context="Normal C Bloc" char="{" beginRegion="bloc" />
     <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="bloc" />
+    <IncludeRules context="Symbol-Variable" />
     <IncludeRules context="##C++" />
+  </context>
+  <context name="Symbol-Variable" attribute="Normal Text" lineEndContext="#stay">
     <DetectChar attribute="Directive" context="Dol" char="$" />
+    <RegExpr attribute="Directive" context="#stay" String="@(\$?)(\d+|[A-Za-z_]\w*)?" />
   </context>
   <context name="Dol" attribute="Normal Text" fallthrough="true" fallthroughContext="DolEnd" lineEndContext="#stay">
     <RegExpr attribute="Data Type" context="DolEnd" String="&lt;[^&gt;]+&gt;" />
   </context>
-  <context name="DolEnd" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="Directive" context="#pop#pop" String="\d+" />
+  <context name="DolEnd" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+    <RegExpr attribute="Directive" context="#pop#pop" String="@?\d+" />
     <DetectChar attribute="Directive" context="#pop#pop" char="$" />
+    <DetectIdentifier attribute="Directive" context="#pop#pop" />
   </context>
 </contexts>
 
@@ -147,6 +245,7 @@
   <itemData name="Content-Type Delimiter" defStyleNum="dsBaseN" bold="1" />
   <itemData name="Directive" defStyleNum="dsKeyword"/>
   <itemData name="Rule" defStyleNum="dsString" />
+  <itemData name="Open Rule" defStyleNum="dsString" bold="1" />
   <itemData name="Backslash Code" defStyleNum="dsString" bold="1" />
   <itemData name="Alert" defStyleNum="dsAlert" />
   <itemData name="String" defStyleNum="dsString"/>
@@ -158,6 +257,7 @@
 <general>
   <comments>
     <comment name="multiLine" start="/*" end="*/" />
+    <comment name="singleLine" start="//" />
   </comments>
 </general>
 </language>
diff --git a/xml/zsh.xml b/xml/zsh.xml
--- a/xml/zsh.xml
+++ b/xml/zsh.xml
@@ -622,8 +622,8 @@
 
       <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
       <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
-        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="'" />
-        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;" />
+        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="'" />
+        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="&quot;" />
         <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
         <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
         <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
