diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,6 +8,10 @@
 a Haskell syntax highlighting library with support for KDE XML syntax
 highlighting descriptions.
 
+Formatters are no longer included in this package: see
+`skylighting-format-ansi`, `skylighting-format-blaze-html`, and
+`skylighting-format-latex`.
+
 For details on how to use this package, see the Haddock documentation and
 the [Skylighting README](https://github.com/jgm/skylighting/blob/master/skylighting/README.md).
 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,21 @@
 # Revision history for skylighting and skylighting-core
 
+## 0.13
+
+  * Update syntax definitions from upstream: bash, cmake, diff,
+    ini, perl, php, sgml, xml.
+
+  * Split out formatters into separate packages (#152). API changes:
+    - Skylighting.Core no longer exports Skylighting.Format.ANSI,
+      Skylighting.Format.HTML, Skylighting.Format.LaTeX.  These are
+      now provided by separate packages, skylighting-format-ansi,
+      skylighting-format-blaze-html, skylighting-format-latex.
+    - Skylighting.Types no longer exports XTerm256ColorCode.
+      This has been moved to skylighting-format-ansi.
+
+  * Change Makefile to use cabal instead of stack.
+
+
 ## 0.12.3.1
 
   * Allow mtl 2.3.
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.12.3.1
+version:             0.13
 synopsis:            syntax highlighting library
 description:         Skylighting is a syntax highlighting library.
                      It derives its tokenizers from XML syntax
@@ -108,9 +108,6 @@
                        Skylighting.Styles
                        Skylighting.Loader
                        Skylighting.Tokenizer
-                       Skylighting.Format.ANSI
-                       Skylighting.Format.HTML
-                       Skylighting.Format.LaTeX
   other-modules:       Regex.KDE
                        Regex.KDE.Regex
                        Regex.KDE.Compile
@@ -131,10 +128,8 @@
                        xml-conduit >= 1.9.1.0 && < 1.10,
                        safe,
                        base64-bytestring,
-                       blaze-html >= 0.5,
-                       containers >= 0.6.0.1,
-                       ansi-terminal >= 0.7,
-                       colour >= 2.0
+                       colour >= 2.0,
+                       containers >= 0.6.0.1
   hs-source-dirs:      src
   ghc-prof-options:    -fprof-auto-exported
   default-language:    Haskell2010
diff --git a/src/Skylighting/Core.hs b/src/Skylighting/Core.hs
--- a/src/Skylighting/Core.hs
+++ b/src/Skylighting/Core.hs
@@ -10,9 +10,6 @@
   , module Skylighting.Regex
   , module Skylighting.Styles
   , module Skylighting.Loader
-  , module Skylighting.Format.ANSI
-  , module Skylighting.Format.HTML
-  , module Skylighting.Format.LaTeX
   ) where
 import Control.Monad
 import Data.List (tails)
@@ -20,9 +17,6 @@
 import Data.Maybe (listToMaybe)
 import Data.Text (Text)
 import qualified Data.Text as Text
-import Skylighting.Format.ANSI
-import Skylighting.Format.HTML
-import Skylighting.Format.LaTeX
 import Skylighting.Loader
 import Skylighting.Parser
 import Skylighting.Regex
diff --git a/src/Skylighting/Format/ANSI.hs b/src/Skylighting/Format/ANSI.hs
deleted file mode 100644
--- a/src/Skylighting/Format/ANSI.hs
+++ /dev/null
@@ -1,80 +0,0 @@
-{-# LANGUAGE CPP               #-}
-{-# LANGUAGE OverloadedStrings #-}
-module Skylighting.Format.ANSI (
-         formatANSI
-       ) where
-import Control.Monad (mplus)
-import qualified Data.Map as Map
-import Data.Maybe (fromMaybe, isNothing, maybeToList)
-import Data.Text (Text)
-import qualified Data.Text as Text
-import Skylighting.Types
-import qualified System.Console.ANSI.Codes as ANSI
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
-
-formatANSI :: FormatOptions -> Style -> [SourceLine] -> Text
-formatANSI opts sty = (beforeText <>)
-                        . (<> afterText)
-                        . Text.intercalate (Text.singleton '\n')
-                        . zipWith (sourceLineToANSI opts sty) [startNum..]
-    where beforeText = ansiResetText <> ansiStyleText clv (defaultColor sty) (backgroundColor sty) False False False
-          afterText = ansiResetText
-          startNum = LineNo $ startNumber opts
-          clv = ansiColorLevel opts
-
-sourceLineToANSI :: FormatOptions -> Style -> LineNo -> SourceLine -> Text
-sourceLineToANSI opts sty lno = prependLineNoText
-                                 . mconcat
-                                 . map (tokenToANSI clv sty)
-    where prependLineNoText = if numberLines opts
-                                 then (lineNoText <>)
-                                 else id
-          lineNoText = ansiStyleText clv lineNoFgc lineNoBgc False False False
-                         <> Text.pack (show $ lineNo lno)
-                         <> ansiStyleText clv (defaultColor sty) (backgroundColor sty) False False False
-                         <> "\t"
-          lineNoFgc = lineNumberColor sty `mplus` defaultColor sty
-          lineNoBgc = lineNumberBackgroundColor sty `mplus` backgroundColor sty
-          clv = ansiColorLevel opts
-
-tokenToANSI :: ANSIColorLevel -> Style -> Token -> Text
-tokenToANSI clv sty (tokTy, tokText) = ansiStyleText clv tokFgc tokBgc tokB tokI tokU
-                                         <> tokText
-                                         <> ansiStyleText clv (defaultColor sty) (backgroundColor sty) False False False
-    where TokenStyle tokFgcRaw tokBgcRaw tokB tokI tokU = fromMaybe defStyle . Map.lookup tokTy $ tokenStyles sty
-          tokFgc = tokFgcRaw `mplus` defaultColor sty
-          tokBgc = tokBgcRaw `mplus` backgroundColor sty
-
-ansiStyleText :: ANSIColorLevel -- ^ color support level
-            -> Maybe Color -- ^ foreground
-            -> Maybe Color -- ^ background
-            -> Bool -- ^ bold
-            -> Bool -- ^ italic
-            -> Bool -- ^ underlined
-            -> Text
-ansiStyleText clv fgc bgc b i u = optReset <> sgrTextFg <> sgrTextBg
-                                    <> (Text.pack . ANSI.setSGRCode $ concat [sgrCodeFg,
-                                                                              sgrCodeBg,
-                                                                              sgrCodeBold,
-                                                                              sgrCodeItal,
-                                                                              sgrCodeUndl])
-    -- FIXME: the @ansi-terminal@ library should do the 256-color parts more cleanly someday
-    where (sgrCodeFg, sgrTextFg) = case clv of
-            ANSITrueColor -> (maybeToList $ fmap (ANSI.SetRGBColor ANSI.Foreground . fromColor) fgc, "")
-            ANSI256Color -> ([], fromMaybe "" $ fmap (\c -> Text.pack $ ANSI.csi [38, 5,
-              fromIntegral . getXterm256ColorCode $ fromColor c] "m") fgc)
-            ANSI16Color -> (maybeToList $ fmap (uncurry (ANSI.SetColor ANSI.Foreground) . fromColor) fgc, "")
-          (sgrCodeBg, sgrTextBg) = case clv of
-            ANSITrueColor -> (maybeToList $ fmap (ANSI.SetRGBColor ANSI.Background . fromColor) bgc, "")
-            ANSI256Color -> ([], fromMaybe "" $ fmap (\c -> Text.pack $ ANSI.csi [48, 5,
-              fromIntegral . getXterm256ColorCode $ fromColor c] "m") bgc)
-            ANSI16Color -> (maybeToList $ fmap (uncurry (ANSI.SetColor ANSI.Background) . fromColor) bgc, "")
-          optReset = if isNothing fgc && isNothing bgc then ansiResetText else ""
-          sgrCodeBold = [ANSI.SetConsoleIntensity $ if b then ANSI.BoldIntensity else ANSI.NormalIntensity]
-          sgrCodeItal = [ANSI.SetItalicized i] -- FIXME: Not very widely supported in terminals
-          sgrCodeUndl = [ANSI.SetUnderlining $ if u then ANSI.SingleUnderline else ANSI.NoUnderline]
-
-ansiResetText :: Text
-ansiResetText = Text.pack $ ANSI.setSGRCode [ANSI.Reset]
diff --git a/src/Skylighting/Format/HTML.hs b/src/Skylighting/Format/HTML.hs
deleted file mode 100644
--- a/src/Skylighting/Format/HTML.hs
+++ /dev/null
@@ -1,216 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE NoOverloadedStrings #-}
-module Skylighting.Format.HTML (
-      formatHtmlInline
-    , formatHtmlBlock
-    , styleToCss
-    ) where
-
-import Data.List (intersperse, sort)
-import qualified Data.Map as Map
-import qualified Data.Text as Text
-import Skylighting.Types
-import Text.Blaze.Html
-import qualified Text.Blaze.Html5 as H
-import qualified Text.Blaze.Html5.Attributes as A
-import Data.String (fromString)
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
-
--- | Format tokens using HTML spans inside @code@ tags. For example,
--- A @KeywordTok@ is rendered as a span with class @kw@.
--- Short class names correspond to 'TokenType's as follows:
--- 'KeywordTok'        = @kw@,
--- 'DataTypeTok'       = @dt@,
--- 'DecValTok'         = @dv@,
--- 'BaseNTok'          = @bn@,
--- 'FloatTok'          = @fl@,
--- 'CharTok'           = @ch@,
--- 'StringTok'         = @st@,
--- 'CommentTok'        = @co@,
--- 'OtherTok'          = @ot@,
--- 'AlertTok'          = @al@,
--- 'FunctionTok'       = @fu@,
--- 'RegionMarkerTok'   = @re@,
--- 'ErrorTok'          = @er@,
--- 'ConstantTok'       = @cn@,
--- 'SpecialCharTok'    = @sc@,
--- 'VerbatimStringTok' = @vs@,
--- 'SpecialStringTok'  = @ss@,
--- 'ImportTok'         = @im@,
--- 'DocumentationTok'  = @do@,
--- 'AnnotationTok'     = @an@,
--- 'CommentVarTok'     = @cv@,
--- 'VariableTok'       = @va@,
--- 'ControlFlowTok'    = @cf@,
--- 'OperatorTok'       = @op@,
--- 'BuiltInTok'        = @bu@,
--- 'ExtensionTok'      = @ex@,
--- 'PreprocessorTok'   = @pp@,
--- 'AttributeTok'      = @at@,
--- 'InformationTok'    = @in@,
--- 'WarningTok'        = @wa@.
--- A 'NormalTok' is not marked up at all.
-formatHtmlInline :: FormatOptions -> [SourceLine] -> Html
-formatHtmlInline opts = wrapCode opts
-                      . mconcat . intersperse (toHtml "\n")
-                      . map (mapM_ (tokenToHtml opts))
-
--- | Format tokens as an HTML @pre@ block. Each line is wrapped in an a
--- element with the class ‘source-line’. If line numbering
--- is selected, the surrounding pre is given the class ‘numberSource’,
--- and the resulting html will display line numbers thanks to the included
--- CSS.  See the documentation for 'formatHtmlInline' for information about how
--- tokens are encoded.
-formatHtmlBlock :: FormatOptions -> [SourceLine] -> Html
-formatHtmlBlock opts ls =
-  H.div ! A.class_ (toValue "sourceCode") $
-  H.pre ! A.class_ (toValue $ Text.unwords classes)
-        $ wrapCode opts
-        $ mconcat . intersperse (toHtml "\n")
-        $ zipWith (sourceLineToHtml opts) [startNum..] ls
-  where  classes = Text.pack "sourceCode" :
-                   [Text.pack "numberSource" | numberLines opts] ++
-                   [x | x <- containerClasses opts
-                      , x /= Text.pack "sourceCode"]
-         startNum = LineNo $ startNumber opts
-
-wrapCode :: FormatOptions -> Html -> Html
-wrapCode opts h = H.code ! A.class_ (toValue $ Text.unwords
-                                             $ Text.pack "sourceCode"
-                                               : codeClasses opts)
-                         !? (startZero /= 0, A.style (toValue counterOverride))
-                         $ h
-  where  counterOverride = "counter-reset: source-line " <> show startZero <> ";"
-         startZero = startNumber opts - 1
-
--- | Each line of source is wrapped in an (inline-block) anchor that makes
--- subsequent per-line processing (e.g. adding line numnbers) possible.
-sourceLineToHtml :: FormatOptions -> LineNo -> SourceLine -> Html
-sourceLineToHtml opts lno cont =
-  H.span ! A.id lineNum
-         $ do
-           H.a ! A.href lineRef
-               ! (if numberLines opts
-                     then mempty
-                     else customAttribute (fromString "aria-hidden")
-                           (fromString "true")) -- see jgm/pandoc#6352
-               ! (if numberLines opts
-                     then mempty
-                     else customAttribute (fromString "tabindex")
-                           (fromString "-1"))
-               $ mempty
-           mapM_ (tokenToHtml opts) cont
-  where  lineNum = toValue prefixedLineNo
-         lineRef = toValue ('#':prefixedLineNo)
-         prefixedLineNo = Text.unpack (lineIdPrefix opts) <> show (lineNo lno)
-
-tokenToHtml :: FormatOptions -> Token -> Html
-tokenToHtml _ (NormalTok, txt)  = toHtml txt
-tokenToHtml opts (toktype, txt) =
-  if titleAttributes opts
-     then sp ! A.title (toValue $ show toktype)
-     else sp
-   where sp = H.span ! A.class_ (toValue $ short toktype) $ toHtml txt
-
-short :: TokenType -> String
-short KeywordTok        = "kw"
-short DataTypeTok       = "dt"
-short DecValTok         = "dv"
-short BaseNTok          = "bn"
-short FloatTok          = "fl"
-short CharTok           = "ch"
-short StringTok         = "st"
-short CommentTok        = "co"
-short OtherTok          = "ot"
-short AlertTok          = "al"
-short FunctionTok       = "fu"
-short RegionMarkerTok   = "re"
-short ErrorTok          = "er"
-short ConstantTok       = "cn"
-short SpecialCharTok    = "sc"
-short VerbatimStringTok = "vs"
-short SpecialStringTok  = "ss"
-short ImportTok         = "im"
-short DocumentationTok  = "do"
-short AnnotationTok     = "an"
-short CommentVarTok     = "cv"
-short VariableTok       = "va"
-short ControlFlowTok    = "cf"
-short OperatorTok       = "op"
-short BuiltInTok        = "bu"
-short ExtensionTok      = "ex"
-short PreprocessorTok   = "pp"
-short AttributeTok      = "at"
-short InformationTok    = "in"
-short WarningTok        = "wa"
-short NormalTok         = ""
-
--- | Returns CSS for styling highlighted code according to the given style.
-styleToCss :: Style -> String
-styleToCss f = unlines $
-  divspec ++ numberspec ++ colorspec ++ linkspec ++
-    sort (map toCss (Map.toList (tokenStyles f)))
-   where colorspec = pure . unwords $ [
-            "div.sourceCode\n  {"
-          , maybe "" (\c -> "color: "            ++ fromColor c ++ ";") (defaultColor f)
-          , maybe "" (\c -> "background-color: " ++ fromColor c ++ ";") (backgroundColor f)
-          , "}"
-          ]
-         numberspec = [
-            "pre.numberSource code"
-          , "  { counter-reset: source-line 0; }"
-          , "pre.numberSource code > span"
-          , "  { position: relative; left: -4em; counter-increment: source-line; }"
-          , "pre.numberSource code > span > a:first-child::before"
-          , "  { content: counter(source-line);"
-          , "    position: relative; left: -1em; text-align: right; vertical-align: baseline;"
-          , "    border: none; 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;"
-          , "    padding: 0 4px; width: 4em;"
-          , maybe "" (\c -> "    background-color: " ++ fromColor c ++ ";\n")
-              (lineNumberBackgroundColor f) ++
-            maybe "" (\c -> "    color: " ++ fromColor c ++ ";\n")
-              (lineNumberColor f) ++
-            "  }"
-          , "pre.numberSource { margin-left: 3em; " ++
-              maybe "" (\c -> "border-left: 1px solid " ++ fromColor c ++ "; ") (lineNumberColor f) ++
-              " padding-left: 4px; }"
-          ]
-         divspec = [
-            "pre > code.sourceCode { white-space: pre; position: relative; }" -- position relative needed for relative contents
-          , "pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }"
-          , "pre > code.sourceCode > span:empty { height: 1.2em; }" -- correct empty line height
-          , ".sourceCode { overflow: visible; }" -- needed for line numbers
-          , "code.sourceCode > span { color: inherit; text-decoration: inherit; }"
-          , "div.sourceCode { margin: 1em 0; }" -- Collapse neighbours correctly
-          , "pre.sourceCode { margin: 0; }" -- Collapse neighbours correctly
-          , "@media screen {"
-          , "div.sourceCode { overflow: auto; }" -- do not overflow on screen
-          , "}"
-          , "@media print {"
-          , "pre > code.sourceCode { white-space: pre-wrap; }"
-          , "pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }"
-          , "}"
-          ]
-         linkspec = [ "@media screen {"
-          , "pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }"
-          , "}"
-          ]
-
-toCss :: (TokenType, TokenStyle) -> String
-toCss (t,tf) = "code span" ++ (if null (short t) then "" else ('.' : short t)) ++ " { "
-                ++ colorspec ++ backgroundspec ++ weightspec ++ stylespec
-                ++ decorationspec ++ "} /* " ++ showTokenType t ++ " */"
-  where colorspec = maybe "" (\col -> "color: " ++ fromColor col ++ "; ") $ tokenColor tf
-        backgroundspec = maybe "" (\col -> "background-color: " ++ fromColor col ++ "; ") $ tokenBackground tf
-        weightspec = if tokenBold tf then "font-weight: bold; " else ""
-        stylespec  = if tokenItalic tf then "font-style: italic; " else ""
-        decorationspec = if tokenUnderline tf then "text-decoration: underline; " else ""
-        showTokenType t' = case reverse (show t') of
-                             'k':'o':'T':xs -> reverse xs
-                             _              -> ""
-
diff --git a/src/Skylighting/Format/LaTeX.hs b/src/Skylighting/Format/LaTeX.hs
deleted file mode 100644
--- a/src/Skylighting/Format/LaTeX.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE CPP                 #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Skylighting.Format.LaTeX (
-         formatLaTeXInline
-       , formatLaTeXBlock
-       , styleToLaTeX
-       ) where
-
-import Control.Monad (mplus)
-import Data.Char (isSpace)
-import Data.List (sort)
-import qualified Data.Map as Map
-import Data.Text (Text)
-import qualified Data.Text as Text
-import Skylighting.Types
-import Text.Printf
-#if !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
-#endif
-
-formatLaTeX :: Bool -> [SourceLine] -> Text
-formatLaTeX inline = Text.intercalate (Text.singleton '\n')
-                       . map (sourceLineToLaTeX inline)
-
--- | Formats tokens as LaTeX using custom commands inside
--- @|@ characters. Assumes that @|@ is defined as a short verbatim
--- command by the macros produced by 'styleToLaTeX'.
--- A @KeywordTok@ is rendered using @\\KeywordTok{..}@, and so on.
-formatLaTeXInline :: FormatOptions -> [SourceLine] -> Text
-formatLaTeXInline _opts ls = "\\VERB|" <> formatLaTeX True ls <> "|"
-
-sourceLineToLaTeX :: Bool -> SourceLine -> Text
-sourceLineToLaTeX inline = mconcat . map (tokenToLaTeX inline)
-
-tokenToLaTeX :: Bool -> Token -> Text
-tokenToLaTeX inline (NormalTok, txt)
-  | Text.all isSpace txt = escapeLaTeX inline txt
-tokenToLaTeX inline (toktype, txt)   = Text.cons '\\'
-  (Text.pack (show toktype) <> "{" <> escapeLaTeX inline txt <> "}")
-
-escapeLaTeX :: Bool -> Text -> Text
-escapeLaTeX inline = Text.concatMap escapeLaTeXChar
-  where escapeLaTeXChar c =
-         case c of
-           '\\' -> "\\textbackslash{}"
-           '{'  -> "\\{"
-           '}'  -> "\\}"
-           '|' | inline -> "\\VerbBar{}" -- used in inline verbatim
-           '_'  -> "\\_"
-           '&'  -> "\\&"
-           '%'  -> "\\%"
-           '#'  -> "\\#"
-           '`'  -> "\\textasciigrave{}"
-           '\'' -> "\\textquotesingle{}"
-           '-'  -> "{-}" -- prevent ligatures
-           '~'  -> "\\textasciitilde{}"
-           '^'  -> "\\^{}"
-           '>'  -> "\\textgreater{}"
-           '<'  -> "\\textless{}"
-           _    -> Text.singleton c
-
--- LaTeX
-
--- | Format tokens as a LaTeX @Highlighting@ environment inside a
--- @Shaded@ environment.  @Highlighting@ and @Shaded@ are
--- defined by the macros produced by 'styleToLaTeX'.  @Highlighting@
--- is a verbatim environment using @fancyvrb@; @\\@, @{@, and @}@
--- have their normal meanings inside this environment, so that
--- formatting commands work.  @Shaded@ is either nothing
--- (if the style's background color is default) or a @snugshade@
--- environment from @framed@, providing a background color
--- for the whole code block, even if it spans multiple pages.
-formatLaTeXBlock :: FormatOptions -> [SourceLine] -> Text
-formatLaTeXBlock opts ls = Text.unlines
-  ["\\begin{Shaded}"
-  ,"\\begin{Highlighting}[" <>
-   (if numberLines opts
-       then "numbers=left," <>
-            (if startNumber opts == 1
-                then ""
-                else ",firstnumber=" <>
-                     Text.pack (show (startNumber opts))) <> ","
-       else Text.empty) <> "]"
-  ,formatLaTeX False ls
-  ,"\\end{Highlighting}"
-  ,"\\end{Shaded}"]
-
--- | Converts a 'Style' to a set of LaTeX macro definitions,
--- which should be placed in the document's preamble.
--- Note: default LaTeX setup doesn't allow boldface typewriter font.
--- To make boldface work in styles, you need to use a different typewriter
--- font. This will work for computer modern:
---
--- > \DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
---
--- Or, with xelatex:
---
--- > \usepackage{fontspec}
--- > \setmainfont[SmallCapsFont={* Caps}]{Latin Modern Roman}
--- > \setsansfont{Latin Modern Sans}
--- > \setmonofont[SmallCapsFont={Latin Modern Mono Caps}]{Latin Modern Mono Light}
---
-styleToLaTeX :: Style -> Text
-styleToLaTeX f = Text.unlines $
-  [ "\\usepackage{color}"
-  , "\\usepackage{fancyvrb}"
-  , "\\newcommand{\\VerbBar}{|}"
-  , "\\newcommand{\\VERB}{\\Verb[commandchars=\\\\\\{\\}]}"
-  , "\\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\\\\{\\}}"
-  , "% Add ',fontsize=\\small' for more characters per line"
-  ] ++
-  (case backgroundColor f of
-        Nothing          -> ["\\newenvironment{Shaded}{}{}"]
-        Just (RGB r g b) -> ["\\usepackage{framed}"
-                            ,Text.pack
-                              (printf "\\definecolor{shadecolor}{RGB}{%d,%d,%d}" r g b)
-                            ,"\\newenvironment{Shaded}{\\begin{snugshade}}{\\end{snugshade}}"])
-  ++ sort (map (macrodef (defaultColor f) (Map.toList (tokenStyles f)))
-            (enumFromTo KeywordTok NormalTok))
-
-macrodef :: Maybe Color -> [(TokenType, TokenStyle)] -> TokenType -> Text
-macrodef defaultcol tokstyles tokt = "\\newcommand{\\"
-  <> Text.pack (show tokt)
-  <> "}[1]{"
-  <> Text.pack (co . ul . bf . it . bg $ "#1")
-  <> "}"
-  where tokf = case lookup tokt tokstyles of
-                     Nothing -> defStyle
-                     Just x  -> x
-        ul x = if tokenUnderline tokf
-                  then "\\underline{" <> x <> "}"
-                  else x
-        it x = if tokenItalic tokf
-                  then "\\textit{" <> x <> "}"
-                  else x
-        bf x = if tokenBold tokf
-                  then "\\textbf{" <> x <> "}"
-                  else x
-        bcol = fromColor `fmap` tokenBackground tokf
-                  :: Maybe (Double, Double, Double)
-        bg x = case bcol of
-                    Nothing        -> x
-                    Just (r, g, b) ->
-                       printf "\\colorbox[rgb]{%0.2f,%0.2f,%0.2f}{%s}" r g b x
-        col  = fromColor `fmap` (tokenColor tokf `mplus` defaultcol)
-                  :: Maybe (Double, Double, Double)
-        co x = case col of
-                    Nothing        -> x
-                    Just (r, g, b) ->
-                        printf "\\textcolor[rgb]{%0.2f,%0.2f,%0.2f}{%s}" r g b x
-
diff --git a/src/Skylighting/Types.hs b/src/Skylighting/Types.hs
--- a/src/Skylighting/Types.hs
+++ b/src/Skylighting/Types.hs
@@ -36,7 +36,6 @@
               , FromColor(..)
               , Style(..)
               , ANSIColorLevel(..)
-              , Xterm256ColorCode(..)
               -- * Format options
               , FormatOptions(..)
               , defaultFormatOpts
@@ -51,11 +50,8 @@
 import Data.Colour.SRGB (Colour, sRGB24, toSRGB24)
 import qualified Data.Colour.SRGB as Colour
 import Data.Data (Data)
-import Data.Int
-import Data.List (minimumBy)
 import qualified Data.Map as Map
 import Data.Maybe (fromMaybe)
-import Data.Ord (comparing)
 import qualified Data.Set as Set
 import Data.Text (Text)
 import qualified Data.Text as Text
@@ -64,7 +60,6 @@
 import GHC.Generics (Generic)
 import Safe (readMay)
 import Skylighting.Regex
-import qualified System.Console.ANSI.Types as ANSI
 import Text.Printf
 
 -- | Full name of a context: the first member of the pair is the full
@@ -337,297 +332,6 @@
 instance (RealFrac a, Floating a) => ToColor (Colour a) where
     toColor c = let (Colour.RGB r g b) = toSRGB24 c in toColor (r, g, b)
 
-instance ToColor (ANSI.ColorIntensity, ANSI.Color) where
-    toColor = flip lookup ansi16ColorList -- cannot actually fail
-
--- | Standard values taken from https://jonasjacek.github.io/colors/
-ansi16ColorList :: [((ANSI.ColorIntensity, ANSI.Color), Color)]
-ansi16ColorList = [ ((ANSI.Dull , ANSI.Black  ), RGB 0   0   0  )
-                  , ((ANSI.Dull , ANSI.Red    ), RGB 128 0   0  )
-                  , ((ANSI.Dull , ANSI.Green  ), RGB 0   128 0  )
-                  , ((ANSI.Dull , ANSI.Yellow ), RGB 128 128 0  )
-                  , ((ANSI.Dull , ANSI.Blue   ), RGB 0   0   128)
-                  , ((ANSI.Dull , ANSI.Magenta), RGB 128 0   128)
-                  , ((ANSI.Dull , ANSI.Cyan   ), RGB 0   128 128)
-                  , ((ANSI.Dull , ANSI.White  ), RGB 192 192 192)
-                  , ((ANSI.Vivid, ANSI.Black  ), RGB 128 128 128)
-                  , ((ANSI.Vivid, ANSI.Red    ), RGB 255 0   0  )
-                  , ((ANSI.Vivid, ANSI.Green  ), RGB 0   255 0  )
-                  , ((ANSI.Vivid, ANSI.Yellow ), RGB 255 255 0  )
-                  , ((ANSI.Vivid, ANSI.Blue   ), RGB 0   0   255)
-                  , ((ANSI.Vivid, ANSI.Magenta), RGB 255 0   255)
-                  , ((ANSI.Vivid, ANSI.Cyan   ), RGB 0   255 255)
-                  , ((ANSI.Vivid, ANSI.White  ), RGB 255 255 255)
-                  ]
-
-newtype Xterm256ColorCode = Xterm256ColorCode { getXterm256ColorCode :: Word8 }
-    deriving (Show, Read, Eq, Ord, Enum, Bounded, Data, Typeable, Generic)
-
-instance Binary Xterm256ColorCode
-
--- | Converted from https://jonasjacek.github.io/colors/data.json, then slightly rearranged
-ansi256ColorList :: [(Xterm256ColorCode, Color)]
-ansi256ColorList = [ (Xterm256ColorCode 232, RGB 8 8 8) -- grayscale colors
-                   , (Xterm256ColorCode 233, RGB 18 18 18)
-                   , (Xterm256ColorCode 234, RGB 28 28 28)
-                   , (Xterm256ColorCode 235, RGB 38 38 38)
-                   , (Xterm256ColorCode 236, RGB 48 48 48)
-                   , (Xterm256ColorCode 237, RGB 58 58 58)
-                   , (Xterm256ColorCode 238, RGB 68 68 68)
-                   , (Xterm256ColorCode 239, RGB 78 78 78)
-                   , (Xterm256ColorCode 240, RGB 88 88 88)
-                   , (Xterm256ColorCode 241, RGB 98 98 98)
-                   , (Xterm256ColorCode 242, RGB 108 108 108)
-                   , (Xterm256ColorCode 243, RGB 118 118 118)
-                   , (Xterm256ColorCode 244, RGB 128 128 128)
-                   , (Xterm256ColorCode 245, RGB 138 138 138)
-                   , (Xterm256ColorCode 246, RGB 148 148 148)
-                   , (Xterm256ColorCode 247, RGB 158 158 158)
-                   , (Xterm256ColorCode 248, RGB 168 168 168)
-                   , (Xterm256ColorCode 249, RGB 178 178 178)
-                   , (Xterm256ColorCode 250, RGB 188 188 188)
-                   , (Xterm256ColorCode 251, RGB 198 198 198)
-                   , (Xterm256ColorCode 252, RGB 208 208 208)
-                   , (Xterm256ColorCode 253, RGB 218 218 218)
-                   , (Xterm256ColorCode 254, RGB 228 228 228)
-                   , (Xterm256ColorCode 255, RGB 238 238 238)
-                   , (Xterm256ColorCode 16, RGB 0 0 0) -- RGB cube colors
-                   , (Xterm256ColorCode 17, RGB 0 0 95)
-                   , (Xterm256ColorCode 18, RGB 0 0 135)
-                   , (Xterm256ColorCode 19, RGB 0 0 175)
-                   , (Xterm256ColorCode 20, RGB 0 0 215)
-                   , (Xterm256ColorCode 21, RGB 0 0 255)
-                   , (Xterm256ColorCode 22, RGB 0 95 0)
-                   , (Xterm256ColorCode 23, RGB 0 95 95)
-                   , (Xterm256ColorCode 24, RGB 0 95 135)
-                   , (Xterm256ColorCode 25, RGB 0 95 175)
-                   , (Xterm256ColorCode 26, RGB 0 95 215)
-                   , (Xterm256ColorCode 27, RGB 0 95 255)
-                   , (Xterm256ColorCode 28, RGB 0 135 0)
-                   , (Xterm256ColorCode 29, RGB 0 135 95)
-                   , (Xterm256ColorCode 30, RGB 0 135 135)
-                   , (Xterm256ColorCode 31, RGB 0 135 175)
-                   , (Xterm256ColorCode 32, RGB 0 135 215)
-                   , (Xterm256ColorCode 33, RGB 0 135 255)
-                   , (Xterm256ColorCode 34, RGB 0 175 0)
-                   , (Xterm256ColorCode 35, RGB 0 175 95)
-                   , (Xterm256ColorCode 36, RGB 0 175 135)
-                   , (Xterm256ColorCode 37, RGB 0 175 175)
-                   , (Xterm256ColorCode 38, RGB 0 175 215)
-                   , (Xterm256ColorCode 39, RGB 0 175 255)
-                   , (Xterm256ColorCode 40, RGB 0 215 0)
-                   , (Xterm256ColorCode 41, RGB 0 215 95)
-                   , (Xterm256ColorCode 42, RGB 0 215 135)
-                   , (Xterm256ColorCode 43, RGB 0 215 175)
-                   , (Xterm256ColorCode 44, RGB 0 215 215)
-                   , (Xterm256ColorCode 45, RGB 0 215 255)
-                   , (Xterm256ColorCode 46, RGB 0 255 0)
-                   , (Xterm256ColorCode 47, RGB 0 255 95)
-                   , (Xterm256ColorCode 48, RGB 0 255 135)
-                   , (Xterm256ColorCode 49, RGB 0 255 175)
-                   , (Xterm256ColorCode 50, RGB 0 255 215)
-                   , (Xterm256ColorCode 51, RGB 0 255 255)
-                   , (Xterm256ColorCode 52, RGB 95 0 0)
-                   , (Xterm256ColorCode 53, RGB 95 0 95)
-                   , (Xterm256ColorCode 54, RGB 95 0 135)
-                   , (Xterm256ColorCode 55, RGB 95 0 175)
-                   , (Xterm256ColorCode 56, RGB 95 0 215)
-                   , (Xterm256ColorCode 57, RGB 95 0 255)
-                   , (Xterm256ColorCode 58, RGB 95 95 0)
-                   , (Xterm256ColorCode 59, RGB 95 95 95)
-                   , (Xterm256ColorCode 60, RGB 95 95 135)
-                   , (Xterm256ColorCode 61, RGB 95 95 175)
-                   , (Xterm256ColorCode 62, RGB 95 95 215)
-                   , (Xterm256ColorCode 63, RGB 95 95 255)
-                   , (Xterm256ColorCode 64, RGB 95 135 0)
-                   , (Xterm256ColorCode 65, RGB 95 135 95)
-                   , (Xterm256ColorCode 66, RGB 95 135 135)
-                   , (Xterm256ColorCode 67, RGB 95 135 175)
-                   , (Xterm256ColorCode 68, RGB 95 135 215)
-                   , (Xterm256ColorCode 69, RGB 95 135 255)
-                   , (Xterm256ColorCode 70, RGB 95 175 0)
-                   , (Xterm256ColorCode 71, RGB 95 175 95)
-                   , (Xterm256ColorCode 72, RGB 95 175 135)
-                   , (Xterm256ColorCode 73, RGB 95 175 175)
-                   , (Xterm256ColorCode 74, RGB 95 175 215)
-                   , (Xterm256ColorCode 75, RGB 95 175 255)
-                   , (Xterm256ColorCode 76, RGB 95 215 0)
-                   , (Xterm256ColorCode 77, RGB 95 215 95)
-                   , (Xterm256ColorCode 78, RGB 95 215 135)
-                   , (Xterm256ColorCode 79, RGB 95 215 175)
-                   , (Xterm256ColorCode 80, RGB 95 215 215)
-                   , (Xterm256ColorCode 81, RGB 95 215 255)
-                   , (Xterm256ColorCode 82, RGB 95 255 0)
-                   , (Xterm256ColorCode 83, RGB 95 255 95)
-                   , (Xterm256ColorCode 84, RGB 95 255 135)
-                   , (Xterm256ColorCode 85, RGB 95 255 175)
-                   , (Xterm256ColorCode 86, RGB 95 255 215)
-                   , (Xterm256ColorCode 87, RGB 95 255 255)
-                   , (Xterm256ColorCode 88, RGB 135 0 0)
-                   , (Xterm256ColorCode 89, RGB 135 0 95)
-                   , (Xterm256ColorCode 90, RGB 135 0 135)
-                   , (Xterm256ColorCode 91, RGB 135 0 175)
-                   , (Xterm256ColorCode 92, RGB 135 0 215)
-                   , (Xterm256ColorCode 93, RGB 135 0 255)
-                   , (Xterm256ColorCode 94, RGB 135 95 0)
-                   , (Xterm256ColorCode 95, RGB 135 95 95)
-                   , (Xterm256ColorCode 96, RGB 135 95 135)
-                   , (Xterm256ColorCode 97, RGB 135 95 175)
-                   , (Xterm256ColorCode 98, RGB 135 95 215)
-                   , (Xterm256ColorCode 99, RGB 135 95 255)
-                   , (Xterm256ColorCode 100, RGB 135 135 0)
-                   , (Xterm256ColorCode 101, RGB 135 135 95)
-                   , (Xterm256ColorCode 102, RGB 135 135 135)
-                   , (Xterm256ColorCode 103, RGB 135 135 175)
-                   , (Xterm256ColorCode 104, RGB 135 135 215)
-                   , (Xterm256ColorCode 105, RGB 135 135 255)
-                   , (Xterm256ColorCode 106, RGB 135 175 0)
-                   , (Xterm256ColorCode 107, RGB 135 175 95)
-                   , (Xterm256ColorCode 108, RGB 135 175 135)
-                   , (Xterm256ColorCode 109, RGB 135 175 175)
-                   , (Xterm256ColorCode 110, RGB 135 175 215)
-                   , (Xterm256ColorCode 111, RGB 135 175 255)
-                   , (Xterm256ColorCode 112, RGB 135 215 0)
-                   , (Xterm256ColorCode 113, RGB 135 215 95)
-                   , (Xterm256ColorCode 114, RGB 135 215 135)
-                   , (Xterm256ColorCode 115, RGB 135 215 175)
-                   , (Xterm256ColorCode 116, RGB 135 215 215)
-                   , (Xterm256ColorCode 117, RGB 135 215 255)
-                   , (Xterm256ColorCode 118, RGB 135 255 0)
-                   , (Xterm256ColorCode 119, RGB 135 255 95)
-                   , (Xterm256ColorCode 120, RGB 135 255 135)
-                   , (Xterm256ColorCode 121, RGB 135 255 175)
-                   , (Xterm256ColorCode 122, RGB 135 255 215)
-                   , (Xterm256ColorCode 123, RGB 135 255 255)
-                   , (Xterm256ColorCode 124, RGB 175 0 0)
-                   , (Xterm256ColorCode 125, RGB 175 0 95)
-                   , (Xterm256ColorCode 126, RGB 175 0 135)
-                   , (Xterm256ColorCode 127, RGB 175 0 175)
-                   , (Xterm256ColorCode 128, RGB 175 0 215)
-                   , (Xterm256ColorCode 129, RGB 175 0 255)
-                   , (Xterm256ColorCode 130, RGB 175 95 0)
-                   , (Xterm256ColorCode 131, RGB 175 95 95)
-                   , (Xterm256ColorCode 132, RGB 175 95 135)
-                   , (Xterm256ColorCode 133, RGB 175 95 175)
-                   , (Xterm256ColorCode 134, RGB 175 95 215)
-                   , (Xterm256ColorCode 135, RGB 175 95 255)
-                   , (Xterm256ColorCode 136, RGB 175 135 0)
-                   , (Xterm256ColorCode 137, RGB 175 135 95)
-                   , (Xterm256ColorCode 138, RGB 175 135 135)
-                   , (Xterm256ColorCode 139, RGB 175 135 175)
-                   , (Xterm256ColorCode 140, RGB 175 135 215)
-                   , (Xterm256ColorCode 141, RGB 175 135 255)
-                   , (Xterm256ColorCode 142, RGB 175 175 0)
-                   , (Xterm256ColorCode 143, RGB 175 175 95)
-                   , (Xterm256ColorCode 144, RGB 175 175 135)
-                   , (Xterm256ColorCode 145, RGB 175 175 175)
-                   , (Xterm256ColorCode 146, RGB 175 175 215)
-                   , (Xterm256ColorCode 147, RGB 175 175 255)
-                   , (Xterm256ColorCode 148, RGB 175 215 0)
-                   , (Xterm256ColorCode 149, RGB 175 215 95)
-                   , (Xterm256ColorCode 150, RGB 175 215 135)
-                   , (Xterm256ColorCode 151, RGB 175 215 175)
-                   , (Xterm256ColorCode 152, RGB 175 215 215)
-                   , (Xterm256ColorCode 153, RGB 175 215 255)
-                   , (Xterm256ColorCode 154, RGB 175 255 0)
-                   , (Xterm256ColorCode 155, RGB 175 255 95)
-                   , (Xterm256ColorCode 156, RGB 175 255 135)
-                   , (Xterm256ColorCode 157, RGB 175 255 175)
-                   , (Xterm256ColorCode 158, RGB 175 255 215)
-                   , (Xterm256ColorCode 159, RGB 175 255 255)
-                   , (Xterm256ColorCode 160, RGB 215 0 0)
-                   , (Xterm256ColorCode 161, RGB 215 0 95)
-                   , (Xterm256ColorCode 162, RGB 215 0 135)
-                   , (Xterm256ColorCode 163, RGB 215 0 175)
-                   , (Xterm256ColorCode 164, RGB 215 0 215)
-                   , (Xterm256ColorCode 165, RGB 215 0 255)
-                   , (Xterm256ColorCode 166, RGB 215 95 0)
-                   , (Xterm256ColorCode 167, RGB 215 95 95)
-                   , (Xterm256ColorCode 168, RGB 215 95 135)
-                   , (Xterm256ColorCode 169, RGB 215 95 175)
-                   , (Xterm256ColorCode 170, RGB 215 95 215)
-                   , (Xterm256ColorCode 171, RGB 215 95 255)
-                   , (Xterm256ColorCode 172, RGB 215 135 0)
-                   , (Xterm256ColorCode 173, RGB 215 135 95)
-                   , (Xterm256ColorCode 174, RGB 215 135 135)
-                   , (Xterm256ColorCode 175, RGB 215 135 175)
-                   , (Xterm256ColorCode 176, RGB 215 135 215)
-                   , (Xterm256ColorCode 177, RGB 215 135 255)
-                   , (Xterm256ColorCode 178, RGB 215 175 0)
-                   , (Xterm256ColorCode 179, RGB 215 175 95)
-                   , (Xterm256ColorCode 180, RGB 215 175 135)
-                   , (Xterm256ColorCode 181, RGB 215 175 175)
-                   , (Xterm256ColorCode 182, RGB 215 175 215)
-                   , (Xterm256ColorCode 183, RGB 215 175 255)
-                   , (Xterm256ColorCode 184, RGB 215 215 0)
-                   , (Xterm256ColorCode 185, RGB 215 215 95)
-                   , (Xterm256ColorCode 186, RGB 215 215 135)
-                   , (Xterm256ColorCode 187, RGB 215 215 175)
-                   , (Xterm256ColorCode 188, RGB 215 215 215)
-                   , (Xterm256ColorCode 189, RGB 215 215 255)
-                   , (Xterm256ColorCode 190, RGB 215 255 0)
-                   , (Xterm256ColorCode 191, RGB 215 255 95)
-                   , (Xterm256ColorCode 192, RGB 215 255 135)
-                   , (Xterm256ColorCode 193, RGB 215 255 175)
-                   , (Xterm256ColorCode 194, RGB 215 255 215)
-                   , (Xterm256ColorCode 195, RGB 215 255 255)
-                   , (Xterm256ColorCode 196, RGB 255 0 0)
-                   , (Xterm256ColorCode 197, RGB 255 0 95)
-                   , (Xterm256ColorCode 198, RGB 255 0 135)
-                   , (Xterm256ColorCode 199, RGB 255 0 175)
-                   , (Xterm256ColorCode 200, RGB 255 0 215)
-                   , (Xterm256ColorCode 201, RGB 255 0 255)
-                   , (Xterm256ColorCode 202, RGB 255 95 0)
-                   , (Xterm256ColorCode 203, RGB 255 95 95)
-                   , (Xterm256ColorCode 204, RGB 255 95 135)
-                   , (Xterm256ColorCode 205, RGB 255 95 175)
-                   , (Xterm256ColorCode 206, RGB 255 95 215)
-                   , (Xterm256ColorCode 207, RGB 255 95 255)
-                   , (Xterm256ColorCode 208, RGB 255 135 0)
-                   , (Xterm256ColorCode 209, RGB 255 135 95)
-                   , (Xterm256ColorCode 210, RGB 255 135 135)
-                   , (Xterm256ColorCode 211, RGB 255 135 175)
-                   , (Xterm256ColorCode 212, RGB 255 135 215)
-                   , (Xterm256ColorCode 213, RGB 255 135 255)
-                   , (Xterm256ColorCode 214, RGB 255 175 0)
-                   , (Xterm256ColorCode 215, RGB 255 175 95)
-                   , (Xterm256ColorCode 216, RGB 255 175 135)
-                   , (Xterm256ColorCode 217, RGB 255 175 175)
-                   , (Xterm256ColorCode 218, RGB 255 175 215)
-                   , (Xterm256ColorCode 219, RGB 255 175 255)
-                   , (Xterm256ColorCode 220, RGB 255 215 0)
-                   , (Xterm256ColorCode 221, RGB 255 215 95)
-                   , (Xterm256ColorCode 222, RGB 255 215 135)
-                   , (Xterm256ColorCode 223, RGB 255 215 175)
-                   , (Xterm256ColorCode 224, RGB 255 215 215)
-                   , (Xterm256ColorCode 225, RGB 255 215 255)
-                   , (Xterm256ColorCode 226, RGB 255 255 0)
-                   , (Xterm256ColorCode 227, RGB 255 255 95)
-                   , (Xterm256ColorCode 228, RGB 255 255 135)
-                   , (Xterm256ColorCode 229, RGB 255 255 175)
-                   , (Xterm256ColorCode 230, RGB 255 255 215)
-                   , (Xterm256ColorCode 231, RGB 255 255 255)
-                   , (Xterm256ColorCode 0, RGB 0 0 0) -- “system” colors
-                   , (Xterm256ColorCode 1, RGB 128 0 0)
-                   , (Xterm256ColorCode 2, RGB 0 128 0)
-                   , (Xterm256ColorCode 3, RGB 128 128 0)
-                   , (Xterm256ColorCode 4, RGB 0 0 128)
-                   , (Xterm256ColorCode 5, RGB 128 0 128)
-                   , (Xterm256ColorCode 6, RGB 0 128 128)
-                   , (Xterm256ColorCode 7, RGB 192 192 192)
-                   , (Xterm256ColorCode 8, RGB 128 128 128)
-                   , (Xterm256ColorCode 9, RGB 255 0 0)
-                   , (Xterm256ColorCode 10, RGB 0 255 0)
-                   , (Xterm256ColorCode 11, RGB 255 255 0)
-                   , (Xterm256ColorCode 12, RGB 0 0 255)
-                   , (Xterm256ColorCode 13, RGB 255 0 255)
-                   , (Xterm256ColorCode 14, RGB 0 255 255)
-                   , (Xterm256ColorCode 15, RGB 255 255 255)
-                   ]
-
-instance ToColor Xterm256ColorCode where
-    toColor = flip lookup ansi256ColorList -- cannot actually fail
-
 -- | JSON @"#1aff2b"@ corresponds to the color @RGB 0x1a 0xff 0x2b@.
 instance FromJSON Color where
   parseJSON (String t) = maybe mempty return $ toColor (Text.unpack t)
@@ -651,26 +355,6 @@
 
 instance (Ord a, Floating a) => FromColor (Colour a) where
     fromColor (RGB r g b) = sRGB24 r g b
-
--- | Warning: this conversion is extremely approximate!
-instance FromColor (ANSI.ColorIntensity, ANSI.Color) where
-    fromColor = findApproximateColor ansi16ColorList
-
--- | Warning: this conversion is noticeably approximate!
-instance FromColor Xterm256ColorCode where
-    -- Same algorithm as above
-    fromColor = findApproximateColor ansi256ColorList
-
-colorDistance :: Color -> Color -> Int16
-colorDistance (RGB r1 g1 b1) (RGB r2 g2 b2) = abs (fromIntegral r1 - fromIntegral r2)
-                                                + abs (fromIntegral g1 - fromIntegral g2)
-                                                + abs (fromIntegral b1 - fromIntegral b2)
-
--- This is the most naïve possible nearest-neighbor search;
--- it could almost certainly be optimized, if its speed matters at all.
-findApproximateColor :: [(a, Color)] -> Color -> a
-findApproximateColor acs c = let ranked = map (\ac -> (ac, colorDistance c $ snd ac)) acs
-                      in fst . fst $ minimumBy (comparing snd) ranked
 
 -- | A rendering style. This determines how each kind of token
 -- is to be rendered, and sets a default color and background
diff --git a/xml/bash.xml b/xml/bash.xml
--- a/xml/bash.xml
+++ b/xml/bash.xml
@@ -39,7 +39,7 @@
         <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])">
 ]>
 
-<language name="Bash" version="38" kateversion="5.79" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.exlib;*.exheres-0;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+<language name="Bash" version="40" kateversion="5.79" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.exlib;*.exheres-0;.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)
@@ -1405,6 +1405,7 @@
       <!-- ExprDblBracket consumes an expression till ]] -->
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
       </context>
 
@@ -1480,6 +1481,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValue">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
         <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\](?:[^]]|\][^ &tab;]))++" endRegion="expression"/>
       </context>
 
@@ -1665,37 +1667,37 @@
     <itemDatas>
       <itemData name="Normal Text"    defStyleNum="dsNormal"/>
       <itemData name="Comment"        defStyleNum="dsComment"/>
-      <itemData name="Keyword"        defStyleNum="dsKeyword"/>
-      <itemData name="Control"        defStyleNum="dsKeyword"/>
-      <itemData name="Control Flow"   defStyleNum="dsControlFlow"/>
-      <itemData name="Builtin"        defStyleNum="dsBuiltIn"/>
-      <itemData name="Command"        defStyleNum="dsFunction"/>
-      <itemData name="OtherCommand"   defStyleNum="dsExtension"/>
-      <itemData name="Redirection"    defStyleNum="dsOperator"/>
-      <itemData name="Escape"         defStyleNum="dsDataType"/>
+      <itemData name="Keyword"        defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Control"        defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Control Flow"   defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Builtin"        defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Command"        defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="OtherCommand"   defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Redirection"    defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Escape"         defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="String SingleQ" defStyleNum="dsString"/>
       <itemData name="String DoubleQ" defStyleNum="dsString"/>
       <itemData name="Here Doc"       defStyleNum="dsString"/>
-      <itemData name="Backquote"      defStyleNum="dsKeyword"/>
+      <itemData name="Backquote"      defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="String Transl." defStyleNum="dsString"/>
       <itemData name="String Escape"  defStyleNum="dsDataType"/>
-      <itemData name="Variable"       defStyleNum="dsVariable"/>
-      <itemData name="Expression"     defStyleNum="dsOthers"/>
-      <itemData name="Function"       defStyleNum="dsFunction"/>
-      <itemData name="Pattern"        defStyleNum="dsSpecialString"/>
-      <itemData name="Path"           defStyleNum="dsNormal"/>
-      <itemData name="Glob"           defStyleNum="dsPreprocessor"/>
-      <itemData name="Option"         defStyleNum="dsAttribute"/>
-      <itemData name="Hex"            defStyleNum="dsBaseN"/>
-      <itemData name="Octal"          defStyleNum="dsBaseN"/>
-      <itemData name="Decimal"        defStyleNum="dsDecVal"/>
-      <itemData name="Base"           defStyleNum="dsDataType"/>
-      <itemData name="BaseN"          defStyleNum="dsBaseN"/>
-      <itemData name="File Descriptor" defStyleNum="dsDecVal"/>
-      <itemData name="Parameter Expansion" defStyleNum="dsVariable"/>
-      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator"/>
-      <itemData name="Operator"       defStyleNum="dsOperator"/>
-      <itemData name="Error"          defStyleNum="dsError"/>
+      <itemData name="Variable"       defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Expression"     defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Function"       defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Pattern"        defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="Path"           defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Glob"           defStyleNum="dsPreprocessor" spellChecking="false"/>
+      <itemData name="Option"         defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Hex"            defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Octal"          defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Decimal"        defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Base"           defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="BaseN"          defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="File Descriptor" defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Parameter Expansion" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Operator"       defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Error"          defStyleNum="dsError" spellChecking="false"/>
     </itemDatas>
   </highlighting>
   <general>
diff --git a/xml/cmake.xml b/xml/cmake.xml
--- a/xml/cmake.xml
+++ b/xml/cmake.xml
@@ -25,7 +25,7 @@
 
 <language
     name="CMake"
-    version="38"
+    version="39"
     kateversion="5.0"
     section="Other"
     extensions="CMakeLists.txt;*.cmake;*.cmake.in"
@@ -148,12 +148,24 @@
         <item>ctest_upload</item>
     </list>
     <list name="cmake_host_system_information_nargs">
+      <item>ERROR_VARIABLE</item>
       <item>QUERY</item>
       <item>RESULT</item>
+      <item>SEPARATOR</item>
+      <item>SUBKEYS</item>
+      <item>VALUE</item>
+      <item>VALUE_NAMES</item>
+      <item>VIEW</item>
+      <item>WINDOWS_REGISTRY</item>
     </list>
     <list name="cmake_host_system_information_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
       <item>AVAILABLE_PHYSICAL_MEMORY</item>
       <item>AVAILABLE_VIRTUAL_MEMORY</item>
+      <item>BOTH</item>
       <item>DISTRIB_INFO</item>
       <item>FQDN</item>
       <item>HAS_AMD_3DNOW</item>
@@ -167,6 +179,7 @@
       <item>HAS_SSE2</item>
       <item>HAS_SSE_FP</item>
       <item>HAS_SSE_MMX</item>
+      <item>HOST</item>
       <item>HOSTNAME</item>
       <item>IS_64BIT</item>
       <item>NUMBER_OF_LOGICAL_CORES</item>
@@ -178,6 +191,7 @@
       <item>PROCESSOR_DESCRIPTION</item>
       <item>PROCESSOR_NAME</item>
       <item>PROCESSOR_SERIAL_NUMBER</item>
+      <item>TARGET</item>
       <item>TOTAL_PHYSICAL_MEMORY</item>
       <item>TOTAL_VIRTUAL_MEMORY</item>
     </list>
@@ -192,7 +206,13 @@
       <item>GET_CALL_IDS</item>
       <item>ID</item>
       <item>ID_VAR</item>
+      <item>SET_DEPENDENCY_PROVIDER</item>
+      <item>SUPPORTED_METHODS</item>
     </list>
+    <list name="cmake_language_sargs">
+      <item>FETCHCONTENT_MAKEAVAILABLE_SERIAL</item>
+      <item>FIND_PACKAGE</item>
+    </list>
     <list name="cmake_minimum_required_nargs">
       <item>FATAL_ERROR</item>
       <item>VERSION</item>
@@ -205,7 +225,9 @@
       <item>APPEND</item>
       <item>APPEND_STRING</item>
       <item>BASE_DIRECTORY</item>
+      <item>COMPARE</item>
       <item>CONVERT</item>
+      <item>EQUAL</item>
       <item>EXTENSION</item>
       <item>FILENAME</item>
       <item>GET</item>
@@ -225,6 +247,7 @@
       <item>NATIVE_PATH</item>
       <item>NORMALIZE</item>
       <item>NORMAL_PATH</item>
+      <item>NOT_EQUAL</item>
       <item>OUTPUT_VARIABLE</item>
       <item>PARENT_PATH</item>
       <item>RELATIVE_PART</item>
@@ -286,6 +309,7 @@
       <item>MATCHES</item>
       <item>NOT</item>
       <item>OR</item>
+      <item>PATH_EQUAL</item>
       <item>POLICY</item>
       <item>STREQUAL</item>
       <item>STRGREATER</item>
@@ -410,6 +434,8 @@
       <item>POST_INCLUDE_REGEXES</item>
       <item>PRE_EXCLUDE_REGEXES</item>
       <item>PRE_INCLUDE_REGEXES</item>
+      <item>RANGE_END</item>
+      <item>RANGE_START</item>
       <item>READ</item>
       <item>READ_SYMLINK</item>
       <item>REAL_PATH</item>
@@ -501,6 +527,7 @@
       <item>NO_CACHE</item>
       <item>NO_CMAKE_ENVIRONMENT_PATH</item>
       <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
       <item>NO_CMAKE_PATH</item>
       <item>NO_CMAKE_SYSTEM_PATH</item>
       <item>NO_DEFAULT_PATH</item>
@@ -509,8 +536,18 @@
       <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
       <item>PATHS</item>
       <item>PATH_SUFFIXES</item>
+      <item>REGISTRY_VIEW</item>
       <item>REQUIRED</item>
     </list>
+    <list name="find_file_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>BOTH</item>
+      <item>HOST</item>
+      <item>TARGET</item>
+    </list>
     <list name="find_library_nargs">
       <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
       <item>DOC</item>
@@ -520,6 +557,7 @@
       <item>NO_CACHE</item>
       <item>NO_CMAKE_ENVIRONMENT_PATH</item>
       <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
       <item>NO_CMAKE_PATH</item>
       <item>NO_CMAKE_SYSTEM_PATH</item>
       <item>NO_DEFAULT_PATH</item>
@@ -528,19 +566,32 @@
       <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
       <item>PATHS</item>
       <item>PATH_SUFFIXES</item>
+      <item>REGISTRY_VIEW</item>
       <item>REQUIRED</item>
     </list>
+    <list name="find_library_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>BOTH</item>
+      <item>HOST</item>
+      <item>TARGET</item>
+    </list>
     <list name="find_package_nargs">
+      <item>BYPASS_PROVIDER</item>
       <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
       <item>COMPONENTS</item>
       <item>CONFIG</item>
       <item>CONFIGS</item>
       <item>EXACT</item>
+      <item>GLOBAL</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_INSTALL_PREFIX</item>
       <item>NO_CMAKE_PACKAGE_REGISTRY</item>
       <item>NO_CMAKE_PATH</item>
       <item>NO_CMAKE_SYSTEM_PACKAGE_REGISTRY</item>
@@ -555,8 +606,18 @@
       <item>PATHS</item>
       <item>PATH_SUFFIXES</item>
       <item>QUIET</item>
+      <item>REGISTRY_VIEW</item>
       <item>REQUIRED</item>
     </list>
+    <list name="find_package_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>BOTH</item>
+      <item>HOST</item>
+      <item>TARGET</item>
+    </list>
     <list name="find_path_nargs">
       <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
       <item>DOC</item>
@@ -565,6 +626,7 @@
       <item>NO_CACHE</item>
       <item>NO_CMAKE_ENVIRONMENT_PATH</item>
       <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
       <item>NO_CMAKE_PATH</item>
       <item>NO_CMAKE_SYSTEM_PATH</item>
       <item>NO_DEFAULT_PATH</item>
@@ -573,8 +635,18 @@
       <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
       <item>PATHS</item>
       <item>PATH_SUFFIXES</item>
+      <item>REGISTRY_VIEW</item>
       <item>REQUIRED</item>
     </list>
+    <list name="find_path_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>BOTH</item>
+      <item>HOST</item>
+      <item>TARGET</item>
+    </list>
     <list name="find_program_nargs">
       <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
       <item>DOC</item>
@@ -584,6 +656,7 @@
       <item>NO_CACHE</item>
       <item>NO_CMAKE_ENVIRONMENT_PATH</item>
       <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
       <item>NO_CMAKE_PATH</item>
       <item>NO_CMAKE_SYSTEM_PATH</item>
       <item>NO_DEFAULT_PATH</item>
@@ -592,8 +665,18 @@
       <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
       <item>PATHS</item>
       <item>PATH_SUFFIXES</item>
+      <item>REGISTRY_VIEW</item>
       <item>REQUIRED</item>
     </list>
+    <list name="find_program_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>BOTH</item>
+      <item>HOST</item>
+      <item>TARGET</item>
+    </list>
     <list name="foreach_nargs">
       <item>IN</item>
       <item>ITEMS</item>
@@ -661,6 +744,7 @@
       <item>MATCHES</item>
       <item>NOT</item>
       <item>OR</item>
+      <item>PATH_EQUAL</item>
       <item>POLICY</item>
       <item>STREQUAL</item>
       <item>STRGREATER</item>
@@ -869,6 +953,7 @@
       <item>MATCHES</item>
       <item>NOT</item>
       <item>OR</item>
+      <item>PATH_EQUAL</item>
       <item>POLICY</item>
       <item>STREQUAL</item>
       <item>STRGREATER</item>
@@ -1281,7 +1366,6 @@
       <item>LINK_LIBRARIES</item>
       <item>LINK_OPTIONS</item>
       <item>OUTPUT_VARIABLE</item>
-      <item>RESULT_VAR</item>
       <item>SOURCES</item>
     </list>
     <list name="try_run_nargs">
@@ -1676,6 +1760,7 @@
       <item>DEPENDS</item>
       <item>DOWNLOAD_COMMAND</item>
       <item>DOWNLOAD_DIR</item>
+      <item>DOWNLOAD_EXTRACT_TIMESTAMP</item>
       <item>DOWNLOAD_NAME</item>
       <item>DOWNLOAD_NO_EXTRACT</item>
       <item>DOWNLOAD_NO_PROGRESS</item>
@@ -2091,13 +2176,12 @@
       <item>LINK_TO</item>
       <item>MODULE</item>
       <item>NAME</item>
+      <item>NO_IMPLICIT_LINK_TO_MATLAB_LIBRARIES</item>
       <item>OUTPUT_NAME</item>
-      <item>SHARED</item>
-      <item>SRC</item>
-    </list>
-    <list name="matlab_add_mex_sargs">
       <item>R2017b</item>
       <item>R2018a</item>
+      <item>SHARED</item>
+      <item>SRC</item>
     </list>
     <list name="pkg_check_modules_nargs">
       <item>GLOBAL</item>
@@ -2106,6 +2190,7 @@
       <item>NO_CMAKE_PATH</item>
       <item>QUIET</item>
       <item>REQUIRED</item>
+      <item>STATIC_TARGET</item>
     </list>
     <list name="pkg_search_module_nargs">
       <item>GLOBAL</item>
@@ -2114,6 +2199,7 @@
       <item>NO_CMAKE_PATH</item>
       <item>QUIET</item>
       <item>REQUIRED</item>
+      <item>STATIC_TARGET</item>
     </list>
     <list name="protobuf_generate_cpp_nargs">
       <item>DESCRIPTORS</item>
@@ -2250,6 +2336,7 @@
       <item>CMAKE_CODEBLOCKS_COMPILER_ID</item>
       <item>CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES</item>
       <item>CMAKE_CODELITE_USE_TARGETS</item>
+      <item>CMAKE_COLOR_DIAGNOSTICS</item>
       <item>CMAKE_COLOR_MAKEFILE</item>
       <item>CMAKE_COMMAND</item>
       <item>CMAKE_COMPILER_2005</item>
@@ -2257,6 +2344,7 @@
       <item>CMAKE_COMPILER_IS_GNUCXX</item>
       <item>CMAKE_COMPILER_IS_GNUG77</item>
       <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_COMPILE_WARNING_AS_ERROR</item>
       <item>CMAKE_CONFIGURATION_TYPES</item>
       <item>CMAKE_CROSSCOMPILING</item>
       <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
@@ -2338,9 +2426,11 @@
       <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>
       <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>
       <item>CMAKE_FIND_PACKAGE_PREFER_CONFIG</item>
+      <item>CMAKE_FIND_PACKAGE_REDIRECTS_DIR</item>
       <item>CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS</item>
       <item>CMAKE_FIND_PACKAGE_SORT_DIRECTION</item>
       <item>CMAKE_FIND_PACKAGE_SORT_ORDER</item>
+      <item>CMAKE_FIND_PACKAGE_TARGETS_GLOBAL</item>
       <item>CMAKE_FIND_PACKAGE_WARN_NO_MODULE</item>
       <item>CMAKE_FIND_ROOT_PATH</item>
       <item>CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</item>
@@ -2350,6 +2440,7 @@
       <item>CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH</item>
       <item>CMAKE_FIND_USE_CMAKE_PATH</item>
       <item>CMAKE_FIND_USE_CMAKE_SYSTEM_PATH</item>
+      <item>CMAKE_FIND_USE_INSTALL_PREFIX</item>
       <item>CMAKE_FIND_USE_PACKAGE_REGISTRY</item>
       <item>CMAKE_FIND_USE_PACKAGE_ROOT_PATH</item>
       <item>CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH</item>
@@ -2541,6 +2632,7 @@
       <item>CMAKE_PROJECT_INCLUDE</item>
       <item>CMAKE_PROJECT_INCLUDE_BEFORE</item>
       <item>CMAKE_PROJECT_NAME</item>
+      <item>CMAKE_PROJECT_TOP_LEVEL_INCLUDES</item>
       <item>CMAKE_PROJECT_VERSION</item>
       <item>CMAKE_PROJECT_VERSION_MAJOR</item>
       <item>CMAKE_PROJECT_VERSION_MINOR</item>
@@ -2600,6 +2692,7 @@
       <item>CMAKE_THREAD_PREFER_PTHREAD</item>
       <item>CMAKE_TOOLCHAIN_FILE</item>
       <item>CMAKE_TRY_COMPILE_CONFIGURATION</item>
+      <item>CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES</item>
       <item>CMAKE_TRY_COMPILE_PLATFORM_VARIABLES</item>
       <item>CMAKE_TRY_COMPILE_TARGET_TYPE</item>
       <item>CMAKE_TWEAK_VERSION</item>
@@ -2611,6 +2704,7 @@
       <item>CMAKE_USE_SPROC_INIT</item>
       <item>CMAKE_USE_WIN32_THREADS_INIT</item>
       <item>CMAKE_VERBOSE_MAKEFILE</item>
+      <item>CMAKE_VERIFY_INTERFACE_HEADER_SETS</item>
       <item>CMAKE_VERSION</item>
       <item>CMAKE_VISIBILITY_INLINES_HIDDEN</item>
       <item>CMAKE_VS_DEVENV_COMMAND</item>
@@ -2634,8 +2728,10 @@
       <item>CMAKE_VS_SDK_SOURCE_DIRECTORIES</item>
       <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION</item>
       <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM</item>
+      <item>CMAKE_VS_WINRT_BY_DEFAULT</item>
       <item>CMAKE_WARN_DEPRECATED</item>
       <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_WATCOM_RUNTIME_LIBRARY</item>
       <item>CMAKE_WIN32_EXECUTABLE</item>
       <item>CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS</item>
       <item>CMAKE_XCODE_BUILD_SYSTEM</item>
@@ -2662,6 +2758,7 @@
       <item>CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP</item>
       <item>CMAKE_XCODE_SCHEME_WORKING_DIRECTORY</item>
       <item>CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS</item>
+      <item>CMAKE_XCODE_XCCONFIG</item>
       <item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
       <item>CPACK_ARCHIVE_COMPONENT_INSTALL</item>
       <item>CPACK_ARCHIVE_FILE_NAME</item>
@@ -2731,6 +2828,7 @@
       <item>CPACK_DMG_FORMAT</item>
       <item>CPACK_DMG_SLA_DIR</item>
       <item>CPACK_DMG_SLA_LANGUAGES</item>
+      <item>CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE</item>
       <item>CPACK_DMG_VOLUME_NAME</item>
       <item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
       <item>CPACK_EXTERNAL_BUILT_PACKAGES</item>
@@ -2966,6 +3064,7 @@
       <item>CPACK_TOPLEVEL_TAG</item>
       <item>CPACK_VERBATIM_VARIABLES</item>
       <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CPACK_WIX_ARCHITECTURE</item>
       <item>CPACK_WIX_CMAKE_PACKAGE_REGISTRY</item>
       <item>CPACK_WIX_CULTURES</item>
       <item>CPACK_WIX_CUSTOM_XMLNS</item>
@@ -3015,6 +3114,7 @@
       <item>CTEST_CUSTOM_PRE_MEMCHECK</item>
       <item>CTEST_CUSTOM_PRE_TEST</item>
       <item>CTEST_CUSTOM_TEST_IGNORE</item>
+      <item>CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION</item>
       <item>CTEST_CUSTOM_WARNING_EXCEPTION</item>
       <item>CTEST_CUSTOM_WARNING_MATCH</item>
       <item>CTEST_CVS_CHECKOUT</item>
@@ -3102,6 +3202,7 @@
       <item>ExternalData_URL_TEMPLATES</item>
       <item>FETCHCONTENT_FULLY_DISCONNECTED</item>
       <item>FETCHCONTENT_QUIET</item>
+      <item>FETCHCONTENT_TRY_FIND_PACKAGE_MODE</item>
       <item>FETCHCONTENT_UPDATES_DISCONNECTED</item>
       <item>FLEX_EXECUTABLE</item>
       <item>FLTK2_BASE_LIBRARY</item>
@@ -3494,6 +3595,7 @@
       <item>XINDY_COMPILER</item>
       <item>XalanC_LIBRARY</item>
       <item>XercesC_LIBRARY</item>
+      <item>ZLIB_USE_STATIC_LIBS</item>
       <item>wxWidgets_CONFIGURATION</item>
       <item>wxWidgets_CXX_FLAGS</item>
       <item>wxWidgets_DEFINITIONS</item>
@@ -3530,6 +3632,7 @@
       <item>CMAKE_APPLE_SILICON_PROCESSOR</item>
       <item>CMAKE_BUILD_PARALLEL_LEVEL</item>
       <item>CMAKE_BUILD_TYPE</item>
+      <item>CMAKE_COLOR_DIAGNOSTICS</item>
       <item>CMAKE_CONFIGURATION_TYPES</item>
       <item>CMAKE_CONFIG_TYPE</item>
       <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>
@@ -3703,6 +3806,7 @@
       <item>COMPILE_OPTIONS</item>
       <item>COMPILE_PDB_NAME</item>
       <item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>COMPILE_WARNING_AS_ERROR</item>
       <item>CROSSCOMPILING_EMULATOR</item>
       <item>CUDA_ARCHITECTURES</item>
       <item>CUDA_EXTENSIONS</item>
@@ -3777,10 +3881,13 @@
       <item>INTERFACE_COMPILE_FEATURES</item>
       <item>INTERFACE_COMPILE_OPTIONS</item>
       <item>INTERFACE_HEADER_SETS</item>
+      <item>INTERFACE_HEADER_SETS_TO_VERIFY</item>
       <item>INTERFACE_INCLUDE_DIRECTORIES</item>
       <item>INTERFACE_LINK_DEPENDS</item>
       <item>INTERFACE_LINK_DIRECTORIES</item>
       <item>INTERFACE_LINK_LIBRARIES</item>
+      <item>INTERFACE_LINK_LIBRARIES_DIRECT</item>
+      <item>INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE</item>
       <item>INTERFACE_LINK_OPTIONS</item>
       <item>INTERFACE_POSITION_INDEPENDENT_CODE</item>
       <item>INTERFACE_PRECOMPILE_HEADERS</item>
@@ -3866,6 +3973,7 @@
       <item>UNITY_BUILD_CODE_BEFORE_INCLUDE</item>
       <item>UNITY_BUILD_MODE</item>
       <item>UNITY_BUILD_UNIQUE_ID</item>
+      <item>VERIFY_INTERFACE_HEADER_SETS</item>
       <item>VERSION</item>
       <item>VISIBILITY_INLINES_HIDDEN</item>
       <item>VS_CONFIGURATION_TYPE</item>
@@ -3877,6 +3985,7 @@
       <item>VS_DOTNET_DOCUMENTATION_FILE</item>
       <item>VS_DOTNET_REFERENCES</item>
       <item>VS_DOTNET_REFERENCES_COPY_LOCAL</item>
+      <item>VS_DOTNET_STARTUP_OBJECT</item>
       <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>
       <item>VS_DPI_AWARE</item>
       <item>VS_GLOBAL_KEYWORD</item>
@@ -3887,6 +3996,7 @@
       <item>VS_JUST_MY_CODE_DEBUGGING</item>
       <item>VS_KEYWORD</item>
       <item>VS_MOBILE_EXTENSIONS_VERSION</item>
+      <item>VS_NO_COMPILE_BATCHING</item>
       <item>VS_NO_SOLUTION_DEPLOY</item>
       <item>VS_PACKAGE_REFERENCES</item>
       <item>VS_PLATFORM_TOOLSET</item>
@@ -3902,6 +4012,7 @@
       <item>VS_WINRT_COMPONENT</item>
       <item>VS_WINRT_EXTENSIONS</item>
       <item>VS_WINRT_REFERENCES</item>
+      <item>WATCOM_RUNTIME_LIBRARY</item>
       <item>WIN32_EXECUTABLE</item>
       <item>WINDOWS_EXPORT_ALL_SYMBOLS</item>
       <item>XCODE_EXPLICIT_FILE_TYPE</item>
@@ -3930,6 +4041,7 @@
       <item>XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP</item>
       <item>XCODE_SCHEME_WORKING_DIRECTORY</item>
       <item>XCODE_SCHEME_ZOMBIE_OBJECTS</item>
+      <item>XCODE_XCCONFIG</item>
       <item>XCTEST</item>
     </list>
     <list name="source-properties">
@@ -4042,6 +4154,8 @@
       <item>VERSION_EQUAL</item>
       <item>VERSION_LESS_EQUAL</item>
       <item>VERSION_GREATER_EQUAL</item>
+      <item>PATH_EQUAL</item>
+      <item>PATH</item>
       <item>TARGET_EXISTS</item>
       <item>CONFIG</item>
       <item>PLATFORM_ID</item>
@@ -4061,6 +4175,8 @@
       <item>LINK_LANGUAGE</item>
       <item>DEVICE_LINK</item>
       <item>HOST_LINK</item>
+      <item>LINK_LIBRARY</item>
+      <item>LINK_GROUP</item>
       <item>ANGLE-R</item>
       <item>COMMA</item>
       <item>SEMICOLON</item>
@@ -4093,6 +4209,7 @@
       <item>TARGET_PDB_FILE_BASE_NAME</item>
       <item>TARGET_PDB_FILE_NAME</item>
       <item>TARGET_PDB_FILE_DIR</item>
+      <item>TARGET_BUNDLE_DIR_NAME</item>
       <item>TARGET_BUNDLE_DIR</item>
       <item>TARGET_BUNDLE_CONTENT_DIR</item>
       <item>TARGET_PROPERTY</item>
@@ -4688,6 +4805,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx_op">
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="cmake_language_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="cmake_language_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx">
@@ -4838,6 +4956,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx_op">
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="find_file_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="find_file_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx">
@@ -4847,6 +4966,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx_op">
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="find_library_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="find_library_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx">
@@ -4857,6 +4977,7 @@
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="find_package_nargs" />
         <keyword attribute="Standard Module" context="#stay" String="standard-finder-modules" />
+        <keyword attribute="Special Args" context="#stay" String="find_package_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="find_path_ctx">
@@ -4866,6 +4987,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="find_path_ctx_op">
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="find_path_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="find_path_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="find_program_ctx">
@@ -4875,6 +4997,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="find_program_ctx_op">
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="find_program_nargs" />
+        <keyword attribute="Special Args" context="#stay" String="find_program_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx">
@@ -7240,7 +7363,6 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="matlab_add_mex_ctx_op">
         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
         <keyword attribute="Named Args" context="#stay" String="matlab_add_mex_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="matlab_add_mex_sargs" />
         <IncludeRules context="User Function Args" />
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="pkg_check_modules_ctx">
@@ -7363,7 +7485,7 @@
 
       <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
         <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&var_ref_re;_PLATFORM_ID|CMAKE_&var_ref_re;_COMPILER_VERSION_INTERNAL|CMAKE_&var_ref_re;_COMPILER_ARCHITECTURE_ID|CMAKE_&var_ref_re;_COMPILER_ABI)\b" />
-        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:SWIG_MODULE_&var_ref_re;_EXTRA_DEPS|OpenMP_&var_ref_re;_SPEC_DATE|OpenMP_&var_ref_re;_LIB_NAMES|OpenMP_&var_ref_re;_LIBRARY|OpenMP_&var_ref_re;_FLAGS|OpenACC_&var_ref_re;_SPEC_DATE|OpenACC_&var_ref_re;_OPTIONS|OpenACC_&var_ref_re;_FLAGS|MPI_&var_ref_re;_LIB_NAMES|MPI_&var_ref_re;_LIBRARY|MPI_&var_ref_re;_COMPILE_OPTIONS|MPI_&var_ref_re;_COMPILE_DEFINITIONS|MPI_&var_ref_re;_COMPILER|MPI_&var_ref_re;_ADDITIONAL_INCLUDE_VARS|ICU_&var_ref_re;_LIBRARY|ICU_&var_ref_re;_EXECUTABLE|FETCHCONTENT_UPDATES_DISCONNECTED_&var_ref_re;|FETCHCONTENT_SOURCE_DIR_&var_ref_re;|ExternalData_URL_ALGO_&var_ref_re;_&var_ref_re;|ExternalData_CUSTOM_SCRIPT_&var_ref_re;|DOXYGEN_&var_ref_re;|CPACK_WIX_PROPERTY_&var_ref_re;|CPACK_WIX_&var_ref_re;_EXTRA_FLAGS|CPACK_WIX_&var_ref_re;_EXTENSIONS|CPACK_RPM_NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION|CPACK_RPM_&var_ref_re;_USER_FILELIST|CPACK_RPM_&var_ref_re;_USER_BINARY_SPECFILE|CPACK_RPM_&var_ref_re;_PACKAGE_URL|CPACK_RPM_&var_ref_re;_PACKAGE_SUMMARY|CPACK_RPM_&var_ref_re;_PACKAGE_SUGGESTS|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_PREUN|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_PRE|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_POSTUN|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_POST|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES|CPACK_RPM_&var_ref_re;_PACKAGE_PROVIDES|CPACK_RPM_&var_ref_re;_PACKAGE_PREFIX|CPACK_RPM_&var_ref_re;_PACKAGE_OBSOLETES|CPACK_RPM_&var_ref_re;_PACKAGE_NAME|CPACK_RPM_&var_ref_re;_PACKAGE_GROUP|CPACK_RPM_&var_ref_re;_PACKAGE_DESCRIPTION|CPACK_RPM_&var_ref_re;_PACKAGE_CONFLICTS|CPACK_RPM_&var_ref_re;_PACKAGE_AUTOREQPROV|CPACK_RPM_&var_ref_re;_PACKAGE_AUTOREQ|CPACK_RPM_&var_ref_re;_PACKAGE_AUTOPROV|CPACK_RPM_&var_ref_re;_PACKAGE_ARCHITECTURE|CPACK_RPM_&var_ref_re;_FILE_NAME|CPACK_RPM_&var_ref_re;_DEFAULT_USER|CPACK_RPM_&var_ref_re;_DEFAULT_GROUP|CPACK_RPM_&var_ref_re;_DEFAULT_FILE_PERMISSIONS|CPACK_RPM_&var_ref_re;_DEFAULT_DIR_PERMISSIONS|CPACK_RPM_&var_ref_re;_DEBUGINFO_PACKAGE|CPACK_RPM_&var_ref_re;_DEBUGINFO_FILE_NAME|CPACK_RPM_&var_ref_re;_BUILD_SOURCE_DIRS_PREFIX|CPACK_PREFLIGHT_&var_ref_re;_SCRIPT|CPACK_POSTFLIGHT_&var_ref_re;_SCRIPT|CPACK_NUGET_PACKAGE_DEPENDENCIES_&var_ref_re;_VERSION|CPACK_NUGET_&var_ref_re;_PACKAGE_VERSION|CPACK_NUGET_&var_ref_re;_PACKAGE_TITLE|CPACK_NUGET_&var_ref_re;_PACKAGE_TAGS|CPACK_NUGET_&var_ref_re;_PACKAGE_RELEASE_NOTES|CPACK_NUGET_&var_ref_re;_PACKAGE_OWNERS|CPACK_NUGET_&var_ref_re;_PACKAGE_NAME|CPACK_NUGET_&var_ref_re;_PACKAGE_LICENSE_FILE_NAME|CPACK_NUGET_&var_ref_re;_PACKAGE_LICENSE_EXPRESSION|CPACK_NUGET_&var_ref_re;_PACKAGE_LICENSEURL|CPACK_NUGET_&var_ref_re;_PACKAGE_LANGUAGE|CPACK_NUGET_&var_ref_re;_PACKAGE_ICONURL|CPACK_NUGET_&var_ref_re;_PACKAGE_ICON|CPACK_NUGET_&var_ref_re;_PACKAGE_HOMEPAGE_URL|CPACK_NUGET_&var_ref_re;_PACKAGE_DESCRIPTION_SUMMARY|CPACK_NUGET_&var_ref_re;_PACKAGE_DESCRIPTION|CPACK_NUGET_&var_ref_re;_PACKAGE_DEPENDENCIES_&var_ref_re;_VERSION|CPACK_NUGET_&var_ref_re;_PACKAGE_DEPENDENCIES|CPACK_NUGET_&var_ref_re;_PACKAGE_COPYRIGHT|CPACK_NUGET_&var_ref_re;_PACKAGE_AUTHORS|CPACK_NSIS_&var_ref_re;_INSTALL_DIRECTORY|CPACK_DMG_&var_ref_re;_FILE_NAME|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SUGGESTS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SOURCE|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SHLIBDEPS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SECTION|CPACK_DEBIAN_&var_ref_re;_PACKAGE_REPLACES|CPACK_DEBIAN_&var_ref_re;_PACKAGE_RECOMMENDS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_PROVIDES|CPACK_DEBIAN_&var_ref_re;_PACKAGE_PRIORITY|CPACK_DEBIAN_&var_ref_re;_PACKAGE_PREDEPENDS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_NAME|CPACK_DEBIAN_&var_ref_re;_PACKAGE_ENHANCES|CPACK_DEBIAN_&var_ref_re;_PACKAGE_DEPENDS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_CONTROL_STRICT_PERMISSION|CPACK_DEBIAN_&var_ref_re;_PACKAGE_CONTROL_EXTRA|CPACK_DEBIAN_&var_ref_re;_PACKAGE_CONFLICTS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_BREAKS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_ARCHITECTURE|CPACK_DEBIAN_&var_ref_re;_FILE_NAME|CPACK_DEBIAN_&var_ref_re;_DESCRIPTION|CPACK_DEBIAN_&var_ref_re;_DEBUGINFO_PACKAGE|CPACK_COMPONENT_&var_ref_re;_REQUIRED|CPACK_COMPONENT_&var_ref_re;_HIDDEN|CPACK_COMPONENT_&var_ref_re;_GROUP|CPACK_COMPONENT_&var_ref_re;_DISPLAY_NAME|CPACK_COMPONENT_&var_ref_re;_DISABLED|CPACK_COMPONENT_&var_ref_re;_DESCRIPTION|CPACK_COMPONENT_&var_ref_re;_DEPENDS|CPACK_BINARY_&var_ref_re;|CPACK_ARCHIVE_&var_ref_re;_FILE_NAME|CPACK_&var_ref_re;_COMPONENT_INSTALL|CMAKE_XCODE_ATTRIBUTE_&var_ref_re;|CMAKE_USER_MAKE_RULES_OVERRIDE_&var_ref_re;|CMAKE_STATIC_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_STATIC_LINKER_FLAGS_&var_ref_re;|CMAKE_SHARED_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_SHARED_LINKER_FLAGS_&var_ref_re;|CMAKE_RUNTIME_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_REQUIRE_FIND_PACKAGE_&var_ref_re;|CMAKE_PROJECT_&var_ref_re;_INCLUDE|CMAKE_POLICY_WARNING_CMP[0-9]{4}|CMAKE_POLICY_DEFAULT_CMP[0-9]{4}|CMAKE_PDB_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_MODULE_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_MODULE_LINKER_FLAGS_&var_ref_re;|CMAKE_MATCH_[0-9]+|CMAKE_MAP_IMPORTED_CONFIG_&var_ref_re;|CMAKE_LIBRARY_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_INTERPROCEDURAL_OPTIMIZATION_&var_ref_re;|CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_&var_ref_re;|CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_&var_ref_re;|CMAKE_EXE_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_EXE_LINKER_FLAGS_&var_ref_re;|CMAKE_DISABLE_FIND_PACKAGE_&var_ref_re;|CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_ARGV[0-9]+|CMAKE_ARCHIVE_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_&var_ref_re;_VISIBILITY_PRESET|CMAKE_&var_ref_re;_STANDARD_LIBRARIES|CMAKE_&var_ref_re;_STANDARD_INCLUDE_DIRECTORIES|CMAKE_&var_ref_re;_SOURCE_FILE_EXTENSIONS|CMAKE_&var_ref_re;_SIZEOF_DATA_PTR|CMAKE_&var_ref_re;_SIMULATE_VERSION|CMAKE_&var_ref_re;_SIMULATE_ID|CMAKE_&var_ref_re;_POSTFIX|CMAKE_&var_ref_re;_OUTPUT_EXTENSION|CMAKE_&var_ref_re;_LINK_WHAT_YOU_USE_FLAG|CMAKE_&var_ref_re;_LINK_LIBRARY_FLAG|CMAKE_&var_ref_re;_LINK_LIBRARY_FILE_FLAG|CMAKE_&var_ref_re;_LINK_EXECUTABLE|CMAKE_&var_ref_re;_LINKER_WRAPPER_FLAG_SEP|CMAKE_&var_ref_re;_LINKER_WRAPPER_FLAG|CMAKE_&var_ref_re;_LINKER_PREFERENCE_PROPAGATES|CMAKE_&var_ref_re;_LINKER_PREFERENCE|CMAKE_&var_ref_re;_LINKER_LAUNCHER|CMAKE_&var_ref_re;_LIBRARY_ARCHITECTURE|CMAKE_&var_ref_re;_INCLUDE_WHAT_YOU_USE|CMAKE_&var_ref_re;_IMPLICIT_LINK_LIBRARIES|CMAKE_&var_ref_re;_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES|CMAKE_&var_ref_re;_IMPLICIT_LINK_DIRECTORIES|CMAKE_&var_ref_re;_IMPLICIT_INCLUDE_DIRECTORIES|CMAKE_&var_ref_re;_IGNORE_EXTENSIONS|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_RELWITHDEBINFO|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_RELEASE|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_MINSIZEREL|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_DEBUG|CMAKE_&var_ref_re;_FLAGS_RELWITHDEBINFO_INIT|CMAKE_&var_ref_re;_FLAGS_RELWITHDEBINFO|CMAKE_&var_ref_re;_FLAGS_RELEASE_INIT|CMAKE_&var_ref_re;_FLAGS_RELEASE|CMAKE_&var_ref_re;_FLAGS_MINSIZEREL_INIT|CMAKE_&var_ref_re;_FLAGS_MINSIZEREL|CMAKE_&var_ref_re;_FLAGS_INIT|CMAKE_&var_ref_re;_FLAGS_DEBUG_INIT|CMAKE_&var_ref_re;_FLAGS_DEBUG|CMAKE_&var_ref_re;_FLAGS|CMAKE_&var_ref_re;_EXTENSIONS_DEFAULT|CMAKE_&var_ref_re;_EXTENSIONS|CMAKE_&var_ref_re;_CREATE_STATIC_LIBRARY|CMAKE_&var_ref_re;_CREATE_SHARED_MODULE|CMAKE_&var_ref_re;_CREATE_SHARED_LIBRARY|CMAKE_&var_ref_re;_CPPLINT|CMAKE_&var_ref_re;_CPPCHECK|CMAKE_&var_ref_re;_COMPILE_OBJECT|CMAKE_&var_ref_re;_COMPILER_VERSION|CMAKE_&var_ref_re;_COMPILER_TARGET|CMAKE_&var_ref_re;_COMPILER_RANLIB|CMAKE_&var_ref_re;_COMPILER_LOADED|CMAKE_&var_ref_re;_COMPILER_LAUNCHER|CMAKE_&var_ref_re;_COMPILER_ID|CMAKE_&var_ref_re;_COMPILER_EXTERNAL_TOOLCHAIN|CMAKE_&var_ref_re;_COMPILER_AR|CMAKE_&var_ref_re;_COMPILER|CMAKE_&var_ref_re;_CLANG_TIDY|CMAKE_&var_ref_re;_BYTE_ORDER|CMAKE_&var_ref_re;_ARCHIVE_FINISH|CMAKE_&var_ref_re;_ARCHIVE_CREATE|CMAKE_&var_ref_re;_ARCHIVE_APPEND|CMAKE_&var_ref_re;_ANDROID_TOOLCHAIN_SUFFIX|CMAKE_&var_ref_re;_ANDROID_TOOLCHAIN_PREFIX|CMAKE_&var_ref_re;_ANDROID_TOOLCHAIN_MACHINE|Boost_&var_ref_re;_LIBRARY_RELEASE|Boost_&var_ref_re;_LIBRARY_DEBUG|Boost_&var_ref_re;_LIBRARY|BISON_&var_ref_re;_OUTPUT_SOURCE|BISON_&var_ref_re;_OUTPUT_HEADER|BISON_&var_ref_re;_OUTPUTS|BISON_&var_ref_re;_INPUT|BISON_&var_ref_re;_DEFINED|BISON_&var_ref_re;_COMPILE_FLAGS|ARGV[0-9]+|&var_ref_re;__TRYRUN_OUTPUT|&var_ref_re;_VERSION_TWEAK|&var_ref_re;_VERSION_STRING|&var_ref_re;_VERSION_PATCH|&var_ref_re;_VERSION_MINOR|&var_ref_re;_VERSION_MAJOR|&var_ref_re;_VERSION_COUNT|&var_ref_re;_VERSION|&var_ref_re;_UNPARSED_ARGUMENTS|&var_ref_re;_SOURCE_DIR|&var_ref_re;_ROOT|&var_ref_re;_MODULE_NAME|&var_ref_re;_LIBRARY_DIRS|&var_ref_re;_LIBRARIES|&var_ref_re;_KEYWORDS_MISSING_VALUES|&var_ref_re;_IS_TOP_LEVEL|&var_ref_re;_INCLUDE_DIRS|&var_ref_re;_HOMEPAGE_URL|&var_ref_re;_FOUND|&var_ref_re;_FIND_VERSION_RANGE_MIN|&var_ref_re;_FIND_VERSION_RANGE_MAX|&var_ref_re;_FIND_VERSION_RANGE|&var_ref_re;_FIND_VERSION_MIN_TWEAK|&var_ref_re;_FIND_VERSION_MIN_PATCH|&var_ref_re;_FIND_VERSION_MIN_MINOR|&var_ref_re;_FIND_VERSION_MIN_MAJOR|&var_ref_re;_FIND_VERSION_MIN_COUNT|&var_ref_re;_FIND_VERSION_MIN|&var_ref_re;_FIND_VERSION_MAX_TWEAK|&var_ref_re;_FIND_VERSION_MAX_PATCH|&var_ref_re;_FIND_VERSION_MAX_MINOR|&var_ref_re;_FIND_VERSION_MAX_MAJOR|&var_ref_re;_FIND_VERSION_MAX_COUNT|&var_ref_re;_FIND_VERSION_MAX|&var_ref_re;_FIND_VERSION_EXACT|&var_ref_re;_FIND_VERSION_COUNT|&var_ref_re;_FIND_VERSION_COMPLETE|&var_ref_re;_FIND_REQUIRED_&var_ref_re;|&var_ref_re;_FIND_REQUIRED|&var_ref_re;_FIND_QUIETLY|&var_ref_re;_FIND_COMPONENTS|&var_ref_re;_DESCRIPTION|&var_ref_re;_CONSIDERED_VERSIONS|&var_ref_re;_CONSIDERED_CONFIGS|&var_ref_re;_CONFIG|&var_ref_re;_BINARY_DIR)\b" />
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:SWIG_MODULE_&var_ref_re;_EXTRA_DEPS|OpenMP_&var_ref_re;_SPEC_DATE|OpenMP_&var_ref_re;_LIB_NAMES|OpenMP_&var_ref_re;_LIBRARY|OpenMP_&var_ref_re;_FLAGS|OpenACC_&var_ref_re;_SPEC_DATE|OpenACC_&var_ref_re;_OPTIONS|OpenACC_&var_ref_re;_FLAGS|MPI_&var_ref_re;_LIB_NAMES|MPI_&var_ref_re;_LIBRARY|MPI_&var_ref_re;_COMPILE_OPTIONS|MPI_&var_ref_re;_COMPILE_DEFINITIONS|MPI_&var_ref_re;_COMPILER|MPI_&var_ref_re;_ADDITIONAL_INCLUDE_VARS|ICU_&var_ref_re;_LIBRARY|ICU_&var_ref_re;_EXECUTABLE|FETCHCONTENT_UPDATES_DISCONNECTED_&var_ref_re;|FETCHCONTENT_SOURCE_DIR_&var_ref_re;|ExternalData_URL_ALGO_&var_ref_re;_&var_ref_re;|ExternalData_CUSTOM_SCRIPT_&var_ref_re;|DOXYGEN_&var_ref_re;|CPACK_WIX_PROPERTY_&var_ref_re;|CPACK_WIX_&var_ref_re;_EXTRA_FLAGS|CPACK_WIX_&var_ref_re;_EXTENSIONS|CPACK_RPM_NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION|CPACK_RPM_&var_ref_re;_USER_FILELIST|CPACK_RPM_&var_ref_re;_USER_BINARY_SPECFILE|CPACK_RPM_&var_ref_re;_PACKAGE_URL|CPACK_RPM_&var_ref_re;_PACKAGE_SUMMARY|CPACK_RPM_&var_ref_re;_PACKAGE_SUGGESTS|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_PREUN|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_PRE|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_POSTUN|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES_POST|CPACK_RPM_&var_ref_re;_PACKAGE_REQUIRES|CPACK_RPM_&var_ref_re;_PACKAGE_PROVIDES|CPACK_RPM_&var_ref_re;_PACKAGE_PREFIX|CPACK_RPM_&var_ref_re;_PACKAGE_OBSOLETES|CPACK_RPM_&var_ref_re;_PACKAGE_NAME|CPACK_RPM_&var_ref_re;_PACKAGE_GROUP|CPACK_RPM_&var_ref_re;_PACKAGE_DESCRIPTION|CPACK_RPM_&var_ref_re;_PACKAGE_CONFLICTS|CPACK_RPM_&var_ref_re;_PACKAGE_AUTOREQPROV|CPACK_RPM_&var_ref_re;_PACKAGE_AUTOREQ|CPACK_RPM_&var_ref_re;_PACKAGE_AUTOPROV|CPACK_RPM_&var_ref_re;_PACKAGE_ARCHITECTURE|CPACK_RPM_&var_ref_re;_FILE_NAME|CPACK_RPM_&var_ref_re;_DEFAULT_USER|CPACK_RPM_&var_ref_re;_DEFAULT_GROUP|CPACK_RPM_&var_ref_re;_DEFAULT_FILE_PERMISSIONS|CPACK_RPM_&var_ref_re;_DEFAULT_DIR_PERMISSIONS|CPACK_RPM_&var_ref_re;_DEBUGINFO_PACKAGE|CPACK_RPM_&var_ref_re;_DEBUGINFO_FILE_NAME|CPACK_RPM_&var_ref_re;_BUILD_SOURCE_DIRS_PREFIX|CPACK_PREFLIGHT_&var_ref_re;_SCRIPT|CPACK_POSTFLIGHT_&var_ref_re;_SCRIPT|CPACK_NUGET_PACKAGE_DEPENDENCIES_&var_ref_re;_VERSION|CPACK_NUGET_&var_ref_re;_PACKAGE_VERSION|CPACK_NUGET_&var_ref_re;_PACKAGE_TITLE|CPACK_NUGET_&var_ref_re;_PACKAGE_TAGS|CPACK_NUGET_&var_ref_re;_PACKAGE_RELEASE_NOTES|CPACK_NUGET_&var_ref_re;_PACKAGE_OWNERS|CPACK_NUGET_&var_ref_re;_PACKAGE_NAME|CPACK_NUGET_&var_ref_re;_PACKAGE_LICENSE_FILE_NAME|CPACK_NUGET_&var_ref_re;_PACKAGE_LICENSE_EXPRESSION|CPACK_NUGET_&var_ref_re;_PACKAGE_LICENSEURL|CPACK_NUGET_&var_ref_re;_PACKAGE_LANGUAGE|CPACK_NUGET_&var_ref_re;_PACKAGE_ICONURL|CPACK_NUGET_&var_ref_re;_PACKAGE_ICON|CPACK_NUGET_&var_ref_re;_PACKAGE_HOMEPAGE_URL|CPACK_NUGET_&var_ref_re;_PACKAGE_DESCRIPTION_SUMMARY|CPACK_NUGET_&var_ref_re;_PACKAGE_DESCRIPTION|CPACK_NUGET_&var_ref_re;_PACKAGE_DEPENDENCIES_&var_ref_re;_VERSION|CPACK_NUGET_&var_ref_re;_PACKAGE_DEPENDENCIES|CPACK_NUGET_&var_ref_re;_PACKAGE_COPYRIGHT|CPACK_NUGET_&var_ref_re;_PACKAGE_AUTHORS|CPACK_NSIS_&var_ref_re;_INSTALL_DIRECTORY|CPACK_DMG_&var_ref_re;_FILE_NAME|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SUGGESTS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SOURCE|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SHLIBDEPS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_SECTION|CPACK_DEBIAN_&var_ref_re;_PACKAGE_REPLACES|CPACK_DEBIAN_&var_ref_re;_PACKAGE_RECOMMENDS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_PROVIDES|CPACK_DEBIAN_&var_ref_re;_PACKAGE_PRIORITY|CPACK_DEBIAN_&var_ref_re;_PACKAGE_PREDEPENDS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_NAME|CPACK_DEBIAN_&var_ref_re;_PACKAGE_ENHANCES|CPACK_DEBIAN_&var_ref_re;_PACKAGE_DEPENDS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_CONTROL_STRICT_PERMISSION|CPACK_DEBIAN_&var_ref_re;_PACKAGE_CONTROL_EXTRA|CPACK_DEBIAN_&var_ref_re;_PACKAGE_CONFLICTS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_BREAKS|CPACK_DEBIAN_&var_ref_re;_PACKAGE_ARCHITECTURE|CPACK_DEBIAN_&var_ref_re;_FILE_NAME|CPACK_DEBIAN_&var_ref_re;_DESCRIPTION|CPACK_DEBIAN_&var_ref_re;_DEBUGINFO_PACKAGE|CPACK_COMPONENT_&var_ref_re;_REQUIRED|CPACK_COMPONENT_&var_ref_re;_HIDDEN|CPACK_COMPONENT_&var_ref_re;_GROUP|CPACK_COMPONENT_&var_ref_re;_DISPLAY_NAME|CPACK_COMPONENT_&var_ref_re;_DISABLED|CPACK_COMPONENT_&var_ref_re;_DESCRIPTION|CPACK_COMPONENT_&var_ref_re;_DEPENDS|CPACK_BINARY_&var_ref_re;|CPACK_ARCHIVE_&var_ref_re;_FILE_NAME|CPACK_&var_ref_re;_COMPONENT_INSTALL|CMAKE_XCODE_ATTRIBUTE_&var_ref_re;|CMAKE_USER_MAKE_RULES_OVERRIDE_&var_ref_re;|CMAKE_STATIC_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_STATIC_LINKER_FLAGS_&var_ref_re;|CMAKE_SHARED_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_SHARED_LINKER_FLAGS_&var_ref_re;|CMAKE_RUNTIME_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_REQUIRE_FIND_PACKAGE_&var_ref_re;|CMAKE_PROJECT_&var_ref_re;_INCLUDE_BEFORE|CMAKE_PROJECT_&var_ref_re;_INCLUDE|CMAKE_POLICY_WARNING_CMP[0-9]{4}|CMAKE_POLICY_DEFAULT_CMP[0-9]{4}|CMAKE_PDB_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_MODULE_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_MODULE_LINKER_FLAGS_&var_ref_re;|CMAKE_MATCH_[0-9]+|CMAKE_MAP_IMPORTED_CONFIG_&var_ref_re;|CMAKE_LINK_LIBRARY_USING_&var_ref_re;_SUPPORTED|CMAKE_LINK_LIBRARY_USING_&var_ref_re;|CMAKE_LIBRARY_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_INTERPROCEDURAL_OPTIMIZATION_&var_ref_re;|CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_&var_ref_re;|CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_&var_ref_re;|CMAKE_EXE_LINKER_FLAGS_&var_ref_re;_INIT|CMAKE_EXE_LINKER_FLAGS_&var_ref_re;|CMAKE_DISABLE_FIND_PACKAGE_&var_ref_re;|CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_ARGV[0-9]+|CMAKE_ARCHIVE_OUTPUT_DIRECTORY_&var_ref_re;|CMAKE_&var_ref_re;_VISIBILITY_PRESET|CMAKE_&var_ref_re;_STANDARD_LIBRARIES|CMAKE_&var_ref_re;_STANDARD_INCLUDE_DIRECTORIES|CMAKE_&var_ref_re;_SOURCE_FILE_EXTENSIONS|CMAKE_&var_ref_re;_SIZEOF_DATA_PTR|CMAKE_&var_ref_re;_SIMULATE_VERSION|CMAKE_&var_ref_re;_SIMULATE_ID|CMAKE_&var_ref_re;_POSTFIX|CMAKE_&var_ref_re;_OUTPUT_EXTENSION|CMAKE_&var_ref_re;_LINK_WHAT_YOU_USE_FLAG|CMAKE_&var_ref_re;_LINK_LIBRARY_USING_&var_ref_re;_SUPPORTED|CMAKE_&var_ref_re;_LINK_LIBRARY_USING_&var_ref_re;|CMAKE_&var_ref_re;_LINK_LIBRARY_FLAG|CMAKE_&var_ref_re;_LINK_LIBRARY_FILE_FLAG|CMAKE_&var_ref_re;_LINK_GROUP_USING_&var_ref_re;_SUPPORTED|CMAKE_&var_ref_re;_LINK_GROUP_USING_&var_ref_re;|CMAKE_&var_ref_re;_LINK_EXECUTABLE|CMAKE_&var_ref_re;_LINKER_WRAPPER_FLAG_SEP|CMAKE_&var_ref_re;_LINKER_WRAPPER_FLAG|CMAKE_&var_ref_re;_LINKER_PREFERENCE_PROPAGATES|CMAKE_&var_ref_re;_LINKER_PREFERENCE|CMAKE_&var_ref_re;_LINKER_LAUNCHER|CMAKE_&var_ref_re;_LIBRARY_ARCHITECTURE|CMAKE_&var_ref_re;_INCLUDE_WHAT_YOU_USE|CMAKE_&var_ref_re;_IMPLICIT_LINK_LIBRARIES|CMAKE_&var_ref_re;_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES|CMAKE_&var_ref_re;_IMPLICIT_LINK_DIRECTORIES|CMAKE_&var_ref_re;_IMPLICIT_INCLUDE_DIRECTORIES|CMAKE_&var_ref_re;_IGNORE_EXTENSIONS|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_RELWITHDEBINFO|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_RELEASE|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_MINSIZEREL|CMAKE_&var_ref_re;_GHS_KERNEL_FLAGS_DEBUG|CMAKE_&var_ref_re;_FLAGS_RELWITHDEBINFO_INIT|CMAKE_&var_ref_re;_FLAGS_RELWITHDEBINFO|CMAKE_&var_ref_re;_FLAGS_RELEASE_INIT|CMAKE_&var_ref_re;_FLAGS_RELEASE|CMAKE_&var_ref_re;_FLAGS_MINSIZEREL_INIT|CMAKE_&var_ref_re;_FLAGS_MINSIZEREL|CMAKE_&var_ref_re;_FLAGS_INIT|CMAKE_&var_ref_re;_FLAGS_DEBUG_INIT|CMAKE_&var_ref_re;_FLAGS_DEBUG|CMAKE_&var_ref_re;_FLAGS_&var_ref_re;_INIT|CMAKE_&var_ref_re;_FLAGS_&var_ref_re;|CMAKE_&var_ref_re;_FLAGS|CMAKE_&var_ref_re;_EXTENSIONS_DEFAULT|CMAKE_&var_ref_re;_EXTENSIONS|CMAKE_&var_ref_re;_CREATE_STATIC_LIBRARY|CMAKE_&var_ref_re;_CREATE_SHARED_MODULE|CMAKE_&var_ref_re;_CREATE_SHARED_LIBRARY|CMAKE_&var_ref_re;_CPPLINT|CMAKE_&var_ref_re;_CPPCHECK|CMAKE_&var_ref_re;_COMPILE_OBJECT|CMAKE_&var_ref_re;_COMPILER_VERSION|CMAKE_&var_ref_re;_COMPILER_TARGET|CMAKE_&var_ref_re;_COMPILER_RANLIB|CMAKE_&var_ref_re;_COMPILER_LOADED|CMAKE_&var_ref_re;_COMPILER_LAUNCHER|CMAKE_&var_ref_re;_COMPILER_ID|CMAKE_&var_ref_re;_COMPILER_EXTERNAL_TOOLCHAIN|CMAKE_&var_ref_re;_COMPILER_AR|CMAKE_&var_ref_re;_COMPILER|CMAKE_&var_ref_re;_CLANG_TIDY|CMAKE_&var_ref_re;_BYTE_ORDER|CMAKE_&var_ref_re;_ARCHIVE_FINISH|CMAKE_&var_ref_re;_ARCHIVE_CREATE|CMAKE_&var_ref_re;_ARCHIVE_APPEND|CMAKE_&var_ref_re;_ANDROID_TOOLCHAIN_SUFFIX|CMAKE_&var_ref_re;_ANDROID_TOOLCHAIN_PREFIX|CMAKE_&var_ref_re;_ANDROID_TOOLCHAIN_MACHINE|Boost_&var_ref_re;_LIBRARY_RELEASE|Boost_&var_ref_re;_LIBRARY_DEBUG|Boost_&var_ref_re;_LIBRARY|BISON_&var_ref_re;_OUTPUT_SOURCE|BISON_&var_ref_re;_OUTPUT_HEADER|BISON_&var_ref_re;_OUTPUTS|BISON_&var_ref_re;_INPUT|BISON_&var_ref_re;_DEFINED|BISON_&var_ref_re;_COMPILE_FLAGS|ARGV[0-9]+|&var_ref_re;__TRYRUN_OUTPUT|&var_ref_re;_VERSION_TWEAK|&var_ref_re;_VERSION_STRING|&var_ref_re;_VERSION_PATCH|&var_ref_re;_VERSION_MINOR|&var_ref_re;_VERSION_MAJOR|&var_ref_re;_VERSION_COUNT|&var_ref_re;_VERSION|&var_ref_re;_UNPARSED_ARGUMENTS|&var_ref_re;_STATIC_LINK_LIBRARIES|&var_ref_re;_SOURCE_DIR|&var_ref_re;_ROOT|&var_ref_re;_MODULE_NAME|&var_ref_re;_LINK_LIBRARIES|&var_ref_re;_LIBRARY_DIRS|&var_ref_re;_LIBRARIES|&var_ref_re;_LDFLAGS_OTHER|&var_ref_re;_LDFLAGS|&var_ref_re;_KEYWORDS_MISSING_VALUES|&var_ref_re;_IS_TOP_LEVEL|&var_ref_re;_INCLUDE_DIRS|&var_ref_re;_HOMEPAGE_URL|&var_ref_re;_FOUND|&var_ref_re;_FIND_VERSION_RANGE_MIN|&var_ref_re;_FIND_VERSION_RANGE_MAX|&var_ref_re;_FIND_VERSION_RANGE|&var_ref_re;_FIND_VERSION_MIN_TWEAK|&var_ref_re;_FIND_VERSION_MIN_PATCH|&var_ref_re;_FIND_VERSION_MIN_MINOR|&var_ref_re;_FIND_VERSION_MIN_MAJOR|&var_ref_re;_FIND_VERSION_MIN_COUNT|&var_ref_re;_FIND_VERSION_MIN|&var_ref_re;_FIND_VERSION_MAX_TWEAK|&var_ref_re;_FIND_VERSION_MAX_PATCH|&var_ref_re;_FIND_VERSION_MAX_MINOR|&var_ref_re;_FIND_VERSION_MAX_MAJOR|&var_ref_re;_FIND_VERSION_MAX_COUNT|&var_ref_re;_FIND_VERSION_MAX|&var_ref_re;_FIND_VERSION_EXACT|&var_ref_re;_FIND_VERSION_COUNT|&var_ref_re;_FIND_VERSION_COMPLETE|&var_ref_re;_FIND_REQUIRED_&var_ref_re;|&var_ref_re;_FIND_REQUIRED|&var_ref_re;_FIND_QUIETLY|&var_ref_re;_FIND_COMPONENTS|&var_ref_re;_DESCRIPTION|&var_ref_re;_CONSIDERED_VERSIONS|&var_ref_re;_CONSIDERED_CONFIGS|&var_ref_re;_CONFIG|&var_ref_re;_CFLAGS_OTHER|&var_ref_re;_CFLAGS|&var_ref_re;_BINARY_DIR)\b" />
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
diff --git a/xml/diff.xml b/xml/diff.xml
--- a/xml/diff.xml
+++ b/xml/diff.xml
@@ -12,7 +12,7 @@
     2008-02-13: 1.11 Eduardo Robles Elvira <edulix AT gmail DOT com>
      Fixed folding.
 -->
-<language name="Diff" version="7" kateversion="5.62" section="Other" extensions="*.diff;*patch;*.rej" mimetype="text/x-patch">
+<language name="Diff" version="8" kateversion="5.62" section="Other" extensions="*.diff;*patch;*.rej" mimetype="text/x-patch">
 
   <highlighting>
 
@@ -115,13 +115,13 @@
     </contexts>
 
     <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="File"  defStyleNum="dsKeyword"/>
-      <itemData name="Header"  defStyleNum="dsDataType"/>
-      <itemData name="Removed line"  defStyleNum="dsString" />
-      <itemData name="Added line"  defStyleNum="dsVariable"/>
-      <itemData name="Changed line (old)"  defStyleNum="dsString"/>
-      <itemData name="Changed line (new)"  defStyleNum="dsVariable"/>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="File"  defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Header"  defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Removed line"  defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Added line"  defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Changed line (old)"  defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Changed line (new)"  defStyleNum="dsVariable" spellChecking="false"/>
     </itemDatas>
 
   </highlighting>
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="10" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
+<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="11" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
 
 <highlighting>
 <list name="keywords">
@@ -65,14 +65,14 @@
 
 
 <itemDatas>
- <itemData name="Normal Text" defStyleNum="dsDataType" />
- <itemData name="Section" defStyleNum="dsKeyword" />
- <itemData name="Comment" defStyleNum="dsComment" />
- <itemData name="Assignment" defStyleNum="dsOthers" />
- <itemData name="Value" defStyleNum="dsString" />
- <itemData name="Float" defStyleNum="dsFloat" />
- <itemData name="Int" defStyleNum="dsDecVal" />
- <itemData name="Keyword" defStyleNum="dsKeyword" />
+ <itemData name="Normal Text" defStyleNum="dsDataType" spellChecking="false"/>
+ <itemData name="Section" defStyleNum="dsKeyword" spellChecking="false"/>
+ <itemData name="Comment" defStyleNum="dsComment"/>
+ <itemData name="Assignment" defStyleNum="dsOthers" spellChecking="false"/>
+ <itemData name="Value" defStyleNum="dsString" spellChecking="false"/>
+ <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+ <itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>
+ <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
 </itemDatas>
 </highlighting>
 
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="18" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
+<language name="Perl" version="19" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
   <highlighting>
     <list name="keywords">
       <item>if</item>
@@ -829,23 +829,23 @@
     </contexts>
     <itemDatas>
       <itemData name="Normal Text"               defStyleNum="dsNormal" />
-      <itemData name="Keyword"                   defStyleNum="dsKeyword" />
-      <itemData name="Pragma"                    defStyleNum="dsKeyword" />
-      <itemData name="Function"                  defStyleNum="dsFunction" />
-      <itemData name="Operator"                  defStyleNum="dsOthers" bold="1" /> <!-- #008000 -->
-      <itemData name="Data Type"                 defStyleNum="dsDataType" />
+      <itemData name="Keyword"                   defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Pragma"                    defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Function"                  defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Operator"                  defStyleNum="dsOthers" bold="1" spellChecking="false"/> <!-- #008000 -->
+      <itemData name="Data Type"                 defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="Special Variable"          defStyleNum="dsWarning" bold="0" italic="0" /> <!-- #C00000 -->
-      <itemData name="Decimal"                   defStyleNum="dsDecVal" />
-      <itemData name="Octal"                     defStyleNum="dsBaseN" />
-      <itemData name="Hex"                       defStyleNum="dsBaseN" />
-      <itemData name="Bin"                       defStyleNum="dsBaseN" />
-      <itemData name="Float"                     defStyleNum="dsFloat" />
+      <itemData name="Decimal"                   defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"                     defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"                       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Bin"                       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"                     defStyleNum="dsFloat" spellChecking="false"/>
       <itemData name="String"                    defStyleNum="dsSpecialString" /> <!-- #FF6C6C -->
       <itemData name="String (interpolated)"     defStyleNum="dsString" />
       <itemData name="String Special Character"  defStyleNum="dsChar" />
-      <itemData name="Pattern"                   defStyleNum="dsOthers" />
-      <itemData name="Pattern Internal Operator" defStyleNum="dsChar" />
-      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN" />
+      <itemData name="Pattern"                   defStyleNum="dsOthers"  spellChecking="false"/>
+      <itemData name="Pattern Internal Operator" defStyleNum="dsChar"  spellChecking="false"/>
+      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN"  spellChecking="false"/>
       <itemData name="Data"                      defStyleNum="dsNormal" />
       <itemData name="Comment"                   defStyleNum="dsComment" />
       <itemData name="Pod"                       defStyleNum="dsComment" />
diff --git a/xml/php.xml b/xml/php.xml
--- a/xml/php.xml
+++ b/xml/php.xml
@@ -77,7 +77,7 @@
   <!ENTITY float "\b&LNUM;(\.(&LNUM;)?(&EXPONENT;)?|&EXPONENT;)|\.&LNUM;(&EXPONENT;)?">
 ]>
 
-<language name="PHP/PHP" indenter="cstyle" version="22" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
+<language name="PHP/PHP" indenter="cstyle" version="23" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
   <highlighting>
     <!-- https://php.watch/versions -->
     <!-- Based on 8.1 -->
@@ -11161,7 +11161,7 @@
       </context>
       <context name="heredoc" attribute="String" lineEndContext="#stay" dynamic="true">
         <IncludeRules context="doublestringvariablecommon" />
-        <RegExpr attribute="Heredoc" context="#pop" String="^%1(?=;?$)" dynamic="true" endRegion="Heredoc" column="0" />
+        <RegExpr attribute="Heredoc" context="#pop" String="^\s*%1(?=;?$)" dynamic="true" endRegion="Heredoc" column="0" />
       </context>
 
       <context name="htmlnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
diff --git a/xml/sgml.xml b/xml/sgml.xml
--- a/xml/sgml.xml
+++ b/xml/sgml.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
-<language name="SGML" version="4" kateversion="5.0" section="Markup" extensions="*.sgml" mimetype="text/sgml">
+<language name="SGML" version="5" kateversion="5.0" section="Markup" extensions="*.sgml" mimetype="text/sgml">
   <highlighting>
     <contexts>
        <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
@@ -33,9 +33,9 @@
     </contexts>
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Tag" defStyleNum="dsKeyword"/>
-      <itemData name="Attribute Name" defStyleNum="dsOthers"/>
-      <itemData name="Attribute Value" defStyleNum="dsDataType"/>
+      <itemData name="Tag" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Attribute Name" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Attribute Value" defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
     </itemDatas>
   </highlighting>
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="14" kateversion="5.0" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+<language name="XML" version="15" kateversion="5.0" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
 
 <highlighting>
 <contexts>
@@ -164,7 +164,7 @@
 <itemDatas>
   <itemData name="Normal Text"     defStyleNum="dsNormal" />
   <itemData name="Other Text"      defStyleNum="dsNormal" />
-  <itemData name="Comment"         defStyleNum="dsComment" spellChecking="false" />
+  <itemData name="Comment"         defStyleNum="dsComment" spellChecking="true" />
   <itemData name="CDATA"           defStyleNum="dsBaseN"    bold="1" italic="0" spellChecking="false" />
   <itemData name="CDATA Symbols"   defStyleNum="dsBaseN"    bold="0" italic="0" spellChecking="false" />
   <itemData name="Processing Instruction" defStyleNum="dsFunction" bold="1" italic="0" spellChecking="false" />
