diff --git a/ParseSyntaxFiles.hs b/ParseSyntaxFiles.hs
--- a/ParseSyntaxFiles.hs
+++ b/ParseSyntaxFiles.hs
@@ -383,6 +383,7 @@
     "JavaScript" -> "Javascript"
     "SQL (MySQL)" -> "SqlMysql"
     "DoxygenLua" -> "Doxygenlua"
+    "reStructuredText" -> "Restructuredtext"
     x -> x
 
 listName :: String -> String
diff --git a/README b/README
--- a/README
+++ b/README
@@ -77,6 +77,7 @@
 - Python
 - R
 - Relaxngcompact
+- Restructuredtext
 - Rhtml
 - Ruby
 - Rust
diff --git a/Text/Highlighting/Kate/Syntax.hs b/Text/Highlighting/Kate/Syntax.hs
--- a/Text/Highlighting/Kate/Syntax.hs
+++ b/Text/Highlighting/Kate/Syntax.hs
@@ -91,6 +91,7 @@
 import qualified Text.Highlighting.Kate.Syntax.Python as Python
 import qualified Text.Highlighting.Kate.Syntax.R as R
 import qualified Text.Highlighting.Kate.Syntax.Relaxngcompact as Relaxngcompact
+import qualified Text.Highlighting.Kate.Syntax.Restructuredtext as Restructuredtext
 import qualified Text.Highlighting.Kate.Syntax.Rhtml as Rhtml
 import qualified Text.Highlighting.Kate.Syntax.Roff as Roff
 import qualified Text.Highlighting.Kate.Syntax.Ruby as Ruby
@@ -116,11 +117,11 @@
 
 -- | List of supported languages.
 languages :: [String]
-languages = ["Actionscript","Ada","Alert","Alert_indent","Apache","Asn1","Asp","Awk","Bash","Bibtex","Boo","C","Changelog","Clojure","Cmake","Coffee","Coldfusion","Commonlisp","Cpp","Cs","Css","Curry","D","Diff","Djangotemplate","Doxygen","Doxygenlua","Dtd","Eiffel","Email","Erlang","Fortran","Fsharp","Gnuassembler","Go","Haskell","Haxe","Html","Ini","Java","Javadoc","Javascript","Json","Jsp","Julia","Latex","Lex","LiterateCurry","LiterateHaskell","Lua","Makefile","Mandoc","Markdown","Matlab","Maxima","Metafont","Mips","Modelines","Modula2","Modula3","Monobasic","Nasm","Noweb","Objectivec","Objectivecpp","Ocaml","Octave","Pascal","Perl","Php","Pike","Postscript","Prolog","Python","R","Relaxngcompact","Rhtml","Roff","Ruby","Rust","Scala","Scheme","Sci","Sed","Sgml","Sql","SqlMysql","SqlPostgresql","Tcl","Texinfo","Verilog","Vhdl","Xml","Xorg","Xslt","Xul","Yacc","Yaml"]
+languages = ["Actionscript","Ada","Alert","Alert_indent","Apache","Asn1","Asp","Awk","Bash","Bibtex","Boo","C","Changelog","Clojure","Cmake","Coffee","Coldfusion","Commonlisp","Cpp","Cs","Css","Curry","D","Diff","Djangotemplate","Doxygen","Doxygenlua","Dtd","Eiffel","Email","Erlang","Fortran","Fsharp","Gnuassembler","Go","Haskell","Haxe","Html","Ini","Java","Javadoc","Javascript","Json","Jsp","Julia","Latex","Lex","LiterateCurry","LiterateHaskell","Lua","Makefile","Mandoc","Markdown","Matlab","Maxima","Metafont","Mips","Modelines","Modula2","Modula3","Monobasic","Nasm","Noweb","Objectivec","Objectivecpp","Ocaml","Octave","Pascal","Perl","Php","Pike","Postscript","Prolog","Python","R","Relaxngcompact","Restructuredtext","Rhtml","Roff","Ruby","Rust","Scala","Scheme","Sci","Sed","Sgml","Sql","SqlMysql","SqlPostgresql","Tcl","Texinfo","Verilog","Vhdl","Xml","Xorg","Xslt","Xul","Yacc","Yaml"]
 
 -- | List of language extensions.
 languageExtensions :: [(String, String)]
-languageExtensions = [("Actionscript", Actionscript.syntaxExtensions), ("Ada", Ada.syntaxExtensions), ("Alert", Alert.syntaxExtensions), ("Alert_indent", Alert_indent.syntaxExtensions), ("Apache", Apache.syntaxExtensions), ("Asn1", Asn1.syntaxExtensions), ("Asp", Asp.syntaxExtensions), ("Awk", Awk.syntaxExtensions), ("Bash", Bash.syntaxExtensions), ("Bibtex", Bibtex.syntaxExtensions), ("Boo", Boo.syntaxExtensions), ("C", C.syntaxExtensions), ("Changelog", Changelog.syntaxExtensions), ("Clojure", Clojure.syntaxExtensions), ("Cmake", Cmake.syntaxExtensions), ("Coffee", Coffee.syntaxExtensions), ("Coldfusion", Coldfusion.syntaxExtensions), ("Commonlisp", Commonlisp.syntaxExtensions), ("Cpp", Cpp.syntaxExtensions), ("Cs", Cs.syntaxExtensions), ("Css", Css.syntaxExtensions), ("Curry", Curry.syntaxExtensions), ("D", D.syntaxExtensions), ("Diff", Diff.syntaxExtensions), ("Djangotemplate", Djangotemplate.syntaxExtensions), ("Doxygen", Doxygen.syntaxExtensions), ("Doxygenlua", Doxygenlua.syntaxExtensions), ("Dtd", Dtd.syntaxExtensions), ("Eiffel", Eiffel.syntaxExtensions), ("Email", Email.syntaxExtensions), ("Erlang", Erlang.syntaxExtensions), ("Fortran", Fortran.syntaxExtensions), ("Fsharp", Fsharp.syntaxExtensions), ("Gnuassembler", Gnuassembler.syntaxExtensions), ("Go", Go.syntaxExtensions), ("Haskell", Haskell.syntaxExtensions), ("Haxe", Haxe.syntaxExtensions), ("Html", Html.syntaxExtensions), ("Ini", Ini.syntaxExtensions), ("Java", Java.syntaxExtensions), ("Javadoc", Javadoc.syntaxExtensions), ("Javascript", Javascript.syntaxExtensions), ("Json", Json.syntaxExtensions), ("Jsp", Jsp.syntaxExtensions), ("Julia", Julia.syntaxExtensions), ("Latex", Latex.syntaxExtensions), ("Lex", Lex.syntaxExtensions), ("LiterateCurry", LiterateCurry.syntaxExtensions), ("LiterateHaskell", LiterateHaskell.syntaxExtensions), ("Lua", Lua.syntaxExtensions), ("Makefile", Makefile.syntaxExtensions), ("Mandoc", Mandoc.syntaxExtensions), ("Markdown", Markdown.syntaxExtensions), ("Matlab", Matlab.syntaxExtensions), ("Maxima", Maxima.syntaxExtensions), ("Metafont", Metafont.syntaxExtensions), ("Mips", Mips.syntaxExtensions), ("Modelines", Modelines.syntaxExtensions), ("Modula2", Modula2.syntaxExtensions), ("Modula3", Modula3.syntaxExtensions), ("Monobasic", Monobasic.syntaxExtensions), ("Nasm", Nasm.syntaxExtensions), ("Noweb", Noweb.syntaxExtensions), ("Objectivec", Objectivec.syntaxExtensions), ("Objectivecpp", Objectivecpp.syntaxExtensions), ("Ocaml", Ocaml.syntaxExtensions), ("Octave", Octave.syntaxExtensions), ("Pascal", Pascal.syntaxExtensions), ("Perl", Perl.syntaxExtensions), ("Php", Php.syntaxExtensions), ("Pike", Pike.syntaxExtensions), ("Postscript", Postscript.syntaxExtensions), ("Prolog", Prolog.syntaxExtensions), ("Python", Python.syntaxExtensions), ("R", R.syntaxExtensions), ("Relaxngcompact", Relaxngcompact.syntaxExtensions), ("Rhtml", Rhtml.syntaxExtensions), ("Roff", Roff.syntaxExtensions), ("Ruby", Ruby.syntaxExtensions), ("Rust", Rust.syntaxExtensions), ("Scala", Scala.syntaxExtensions), ("Scheme", Scheme.syntaxExtensions), ("Sci", Sci.syntaxExtensions), ("Sed", Sed.syntaxExtensions), ("Sgml", Sgml.syntaxExtensions), ("Sql", Sql.syntaxExtensions), ("SqlMysql", SqlMysql.syntaxExtensions), ("SqlPostgresql", SqlPostgresql.syntaxExtensions), ("Tcl", Tcl.syntaxExtensions), ("Texinfo", Texinfo.syntaxExtensions), ("Verilog", Verilog.syntaxExtensions), ("Vhdl", Vhdl.syntaxExtensions), ("Xml", Xml.syntaxExtensions), ("Xorg", Xorg.syntaxExtensions), ("Xslt", Xslt.syntaxExtensions), ("Xul", Xul.syntaxExtensions), ("Yacc", Yacc.syntaxExtensions), ("Yaml", Yaml.syntaxExtensions)]
+languageExtensions = [("Actionscript", Actionscript.syntaxExtensions), ("Ada", Ada.syntaxExtensions), ("Alert", Alert.syntaxExtensions), ("Alert_indent", Alert_indent.syntaxExtensions), ("Apache", Apache.syntaxExtensions), ("Asn1", Asn1.syntaxExtensions), ("Asp", Asp.syntaxExtensions), ("Awk", Awk.syntaxExtensions), ("Bash", Bash.syntaxExtensions), ("Bibtex", Bibtex.syntaxExtensions), ("Boo", Boo.syntaxExtensions), ("C", C.syntaxExtensions), ("Changelog", Changelog.syntaxExtensions), ("Clojure", Clojure.syntaxExtensions), ("Cmake", Cmake.syntaxExtensions), ("Coffee", Coffee.syntaxExtensions), ("Coldfusion", Coldfusion.syntaxExtensions), ("Commonlisp", Commonlisp.syntaxExtensions), ("Cpp", Cpp.syntaxExtensions), ("Cs", Cs.syntaxExtensions), ("Css", Css.syntaxExtensions), ("Curry", Curry.syntaxExtensions), ("D", D.syntaxExtensions), ("Diff", Diff.syntaxExtensions), ("Djangotemplate", Djangotemplate.syntaxExtensions), ("Doxygen", Doxygen.syntaxExtensions), ("Doxygenlua", Doxygenlua.syntaxExtensions), ("Dtd", Dtd.syntaxExtensions), ("Eiffel", Eiffel.syntaxExtensions), ("Email", Email.syntaxExtensions), ("Erlang", Erlang.syntaxExtensions), ("Fortran", Fortran.syntaxExtensions), ("Fsharp", Fsharp.syntaxExtensions), ("Gnuassembler", Gnuassembler.syntaxExtensions), ("Go", Go.syntaxExtensions), ("Haskell", Haskell.syntaxExtensions), ("Haxe", Haxe.syntaxExtensions), ("Html", Html.syntaxExtensions), ("Ini", Ini.syntaxExtensions), ("Java", Java.syntaxExtensions), ("Javadoc", Javadoc.syntaxExtensions), ("Javascript", Javascript.syntaxExtensions), ("Json", Json.syntaxExtensions), ("Jsp", Jsp.syntaxExtensions), ("Julia", Julia.syntaxExtensions), ("Latex", Latex.syntaxExtensions), ("Lex", Lex.syntaxExtensions), ("LiterateCurry", LiterateCurry.syntaxExtensions), ("LiterateHaskell", LiterateHaskell.syntaxExtensions), ("Lua", Lua.syntaxExtensions), ("Makefile", Makefile.syntaxExtensions), ("Mandoc", Mandoc.syntaxExtensions), ("Markdown", Markdown.syntaxExtensions), ("Matlab", Matlab.syntaxExtensions), ("Maxima", Maxima.syntaxExtensions), ("Metafont", Metafont.syntaxExtensions), ("Mips", Mips.syntaxExtensions), ("Modelines", Modelines.syntaxExtensions), ("Modula2", Modula2.syntaxExtensions), ("Modula3", Modula3.syntaxExtensions), ("Monobasic", Monobasic.syntaxExtensions), ("Nasm", Nasm.syntaxExtensions), ("Noweb", Noweb.syntaxExtensions), ("Objectivec", Objectivec.syntaxExtensions), ("Objectivecpp", Objectivecpp.syntaxExtensions), ("Ocaml", Ocaml.syntaxExtensions), ("Octave", Octave.syntaxExtensions), ("Pascal", Pascal.syntaxExtensions), ("Perl", Perl.syntaxExtensions), ("Php", Php.syntaxExtensions), ("Pike", Pike.syntaxExtensions), ("Postscript", Postscript.syntaxExtensions), ("Prolog", Prolog.syntaxExtensions), ("Python", Python.syntaxExtensions), ("R", R.syntaxExtensions), ("Relaxngcompact", Relaxngcompact.syntaxExtensions), ("Restructuredtext", Restructuredtext.syntaxExtensions), ("Rhtml", Rhtml.syntaxExtensions), ("Roff", Roff.syntaxExtensions), ("Ruby", Ruby.syntaxExtensions), ("Rust", Rust.syntaxExtensions), ("Scala", Scala.syntaxExtensions), ("Scheme", Scheme.syntaxExtensions), ("Sci", Sci.syntaxExtensions), ("Sed", Sed.syntaxExtensions), ("Sgml", Sgml.syntaxExtensions), ("Sql", Sql.syntaxExtensions), ("SqlMysql", SqlMysql.syntaxExtensions), ("SqlPostgresql", SqlPostgresql.syntaxExtensions), ("Tcl", Tcl.syntaxExtensions), ("Texinfo", Texinfo.syntaxExtensions), ("Verilog", Verilog.syntaxExtensions), ("Vhdl", Vhdl.syntaxExtensions), ("Xml", Xml.syntaxExtensions), ("Xorg", Xorg.syntaxExtensions), ("Xslt", Xslt.syntaxExtensions), ("Xul", Xul.syntaxExtensions), ("Yacc", Yacc.syntaxExtensions), ("Yaml", Yaml.syntaxExtensions)]
 
 -- | Returns a list of languages appropriate for the given file extension.
 languagesByExtension :: String -> [String]
@@ -136,7 +137,7 @@
 -- extension (if unique).
 -- The parsers read the input lazily and parse line by line;
 -- results are returned immediately.
--- Supported languages: @actionscript@, @ada@, @alert@, @alert_indent@, @apache@, @asn1@, @asp@, @awk@, @bash@, @bibtex@, @boo@, @c@, @changelog@, @clojure@, @cmake@, @coffee@, @coldfusion@, @commonlisp@, @cpp@, @cs@, @css@, @curry@, @d@, @diff@, @djangotemplate@, @doxygen@, @doxygenlua@, @dtd@, @eiffel@, @email@, @erlang@, @fortran@, @fsharp@, @gnuassembler@, @go@, @haskell@, @haxe@, @html@, @ini@, @java@, @javadoc@, @javascript@, @json@, @jsp@, @julia@, @latex@, @lex@, @literatecurry@, @literatehaskell@, @lua@, @makefile@, @mandoc@, @markdown@, @matlab@, @maxima@, @metafont@, @mips@, @modelines@, @modula2@, @modula3@, @monobasic@, @nasm@, @noweb@, @objectivec@, @objectivecpp@, @ocaml@, @octave@, @pascal@, @perl@, @php@, @pike@, @postscript@, @prolog@, @python@, @r@, @relaxngcompact@, @rhtml@, @roff@, @ruby@, @rust@, @scala@, @scheme@, @sci@, @sed@, @sgml@, @sql@, @sqlmysql@, @sqlpostgresql@, @tcl@, @texinfo@, @verilog@, @vhdl@, @xml@, @xorg@, @xslt@, @xul@, @yacc@, @yaml@.
+-- Supported languages: @actionscript@, @ada@, @alert@, @alert_indent@, @apache@, @asn1@, @asp@, @awk@, @bash@, @bibtex@, @boo@, @c@, @changelog@, @clojure@, @cmake@, @coffee@, @coldfusion@, @commonlisp@, @cpp@, @cs@, @css@, @curry@, @d@, @diff@, @djangotemplate@, @doxygen@, @doxygenlua@, @dtd@, @eiffel@, @email@, @erlang@, @fortran@, @fsharp@, @gnuassembler@, @go@, @haskell@, @haxe@, @html@, @ini@, @java@, @javadoc@, @javascript@, @json@, @jsp@, @julia@, @latex@, @lex@, @literatecurry@, @literatehaskell@, @lua@, @makefile@, @mandoc@, @markdown@, @matlab@, @maxima@, @metafont@, @mips@, @modelines@, @modula2@, @modula3@, @monobasic@, @nasm@, @noweb@, @objectivec@, @objectivecpp@, @ocaml@, @octave@, @pascal@, @perl@, @php@, @pike@, @postscript@, @prolog@, @python@, @r@, @relaxngcompact@, @restructuredtext@, @rhtml@, @roff@, @ruby@, @rust@, @scala@, @scheme@, @sci@, @sed@, @sgml@, @sql@, @sqlmysql@, @sqlpostgresql@, @tcl@, @texinfo@, @verilog@, @vhdl@, @xml@, @xorg@, @xslt@, @xul@, @yacc@, @yaml@.
 highlightAs :: String         -- ^ Language syntax (e.g. "haskell") or extension (e.g. "hs").
             -> String         -- ^ Source code to highlight
             -> [SourceLine]   -- ^ List of highlighted source lines
@@ -224,6 +225,7 @@
         "python" -> Python.highlight
         "r" -> R.highlight
         "relaxngcompact" -> Relaxngcompact.highlight
+        "restructuredtext" -> Restructuredtext.highlight
         "rhtml" -> Rhtml.highlight
         "roff" -> Roff.highlight
         "ruby" -> Ruby.highlight
diff --git a/Text/Highlighting/Kate/Syntax/Cmake.hs b/Text/Highlighting/Kate/Syntax/Cmake.hs
--- a/Text/Highlighting/Kate/Syntax/Cmake.hs
+++ b/Text/Highlighting/Kate/Syntax/Cmake.hs
@@ -1,5 +1,5 @@
 {- This module was generated from data in the Kate syntax
-   highlighting file cmake.xml, version 1.22, by Alexander Neundorf (neundorf@kde.org) -}
+   highlighting file cmake.xml, version 1.23, by Alexander Neundorf (neundorf@kde.org) -}
 
 module Text.Highlighting.Kate.Syntax.Cmake
           (highlight, parseExpression, syntaxName, syntaxExtensions)
@@ -8,6 +8,7 @@
 import Text.Highlighting.Kate.Common
 import qualified Text.Highlighting.Kate.Syntax.Alert
 import qualified Text.Highlighting.Kate.Syntax.Modelines
+import qualified Text.Highlighting.Kate.Syntax.Restructuredtext
 import Text.ParserCombinators.Parsec hiding (State)
 import Control.Monad.State
 import Data.Char (isSpace)
@@ -58,6 +59,7 @@
       ("CMake","Command Args") -> return ()
       ("CMake","Macro Args") -> return ()
       ("CMake","Comment") -> (popContext) >> pEndLine
+      ("CMake","DocumentationBracketBlock") -> return ()
       ("CMake","String") -> return ()
       _ -> return ()
     else return ()
@@ -76,7 +78,7 @@
 list_extra'5fproperties = Set.fromList $ words $ "COMMANDS DEFINITION"
 list_cmake'5fvars = Set.fromList $ words $ "APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CTEST_COMMAND CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DL_LIBS CMAKE_EDIT_COMMAND CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_MACOSX_BUNDLE CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MFC_FLAG CMAKE_MINOR_VERSION CMAKE_MODULE_PATH CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_OBJECT_PATH_MAX CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STANDARD_LIBRARIES CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_SYSTEM CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VS_PLATFORM_TOOLSET CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_XCODE_PLATFORM_TOOLSET CYGWIN EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH MSVC MSVC10 MSVC11 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_NAME PROJECT_SOURCE_DIR UNIX WIN32 XCODE_VERSION"
 list_simple'5fgenerator'5fexpr = Set.fromList $ words $ "CONFIGURATION ANGLE-R COMMA SEMICOLON INSTALL_PREFIX"
-list_generator'5fexpr = Set.fromList $ words $ "0 1 CONFIG BOOL STREQUAL TARGET_NAME INSTALL_INTERFACE BUILD_INTERFACE TARGET_FILE TARGET_LINKER_FILE TARGET_SONAME_FILE TARGET_DIR TARGET_LINKER_DIR TARGET_SONAME_DIR TARGET_PROPERTY TARGET_POLICY AND OR NOT"
+list_generator'5fexpr = Set.fromList $ words $ "0 1 CONFIG BOOL STREQUAL TARGET_NAME INSTALL_INTERFACE BUILD_INTERFACE TARGET_FILE TARGET_LINKER_FILE TARGET_SONAME_FILE TARGET_DIR TARGET_LINKER_DIR TARGET_SONAME_DIR TARGET_PROPERTY TARGET_OBJECTS TARGET_POLICY AND OR NOT"
 
 regex_'5cbif'5cb = compileRegex "\\bif\\b"
 regex_'5cbelse'5cb = compileRegex "\\belse\\b"
@@ -90,6 +92,7 @@
 regex_'5cbendwhile'5cb = compileRegex "\\bendwhile\\b"
 regex_'23'5cs'2aBEGIN'2e'2a'24 = compileRegex "#\\s*BEGIN.*$"
 regex_'23'5cs'2aEND'2e'2a'24 = compileRegex "#\\s*END.*$"
+regex_'23'5c'5b'28'3d'2a'29'5c'5b'5c'2erst'3a = compileRegex "#\\[(=*)\\[\\.rst:"
 regex_'5cw'2b'5cs'2a'28'3f'3d'5c'28'29 = compileRegex "\\w+\\s*(?=\\()"
 regex_'5cbCMAKE'5fCOMPILER'5fIS'5fGNU'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex "\\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\\b"
 regex_'5cbCMAKE'5fDISABLE'5fFIND'5fPACKAGE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex "\\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\\b"
@@ -128,7 +131,6 @@
 regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSOURCE'5fFILE'5fEXTENSIONS'5cb = compileRegex "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\\b"
 regex_'5c'24ENV'5c'7b'5cs'2a'5b'5cw'2d'5d'2b'5cs'2a'5c'7d = compileRegex "\\$ENV\\{\\s*[\\w-]+\\s*\\}"
 regex_'5cbCMP'5b0'2d9'5d'2b'5cb = compileRegex "\\bCMP[0-9]+\\b"
-regex_'23'2e'2a'24 = compileRegex "#.*$"
 regex_'22'28'3f'3d'5b_'29'3b'5d'7c'24'29 = compileRegex "\"(?=[ );]|$)"
 regex_'5c'5c'5b'22'24n'5c'5c'5d = compileRegex "\\\\[\"$n\\\\]"
 
@@ -163,6 +165,8 @@
    <|>
    ((pFirstNonSpace >> pRegExpr regex_'23'5cs'2aEND'2e'2a'24 >>= withAttribute RegionMarkerTok))
    <|>
+   ((pColumn 0 >> pRegExpr regex_'23'5c'5b'28'3d'2a'29'5c'5b'5c'2erst'3a >>= withAttribute NormalTok) >>~ pushContext ("CMake","DocumentationBracketBlock"))
+   <|>
    ((pDetectChar False '#' >>= withAttribute CommentTok) >>~ pushContext ("CMake","Comment"))
    <|>
    ((parseRules ("CMake","Detect Variables")))
@@ -316,7 +320,7 @@
    <|>
    ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("CMake","String"))
    <|>
-   ((pRegExpr regex_'23'2e'2a'24 >>= withAttribute CommentTok))
+   ((pDetectChar False '#' >>= withAttribute CommentTok) >>~ pushContext ("CMake","Comment"))
    <|>
    ((parseRules ("CMake","Detect Builtin Variables")))
    <|>
@@ -333,6 +337,13 @@
    <|>
    (currentContext >>= \x -> guard (x == ("CMake","Comment")) >> pDefault >>= withAttribute CommentTok))
 
+parseRules ("CMake","DocumentationBracketBlock") =
+  (((Text.Highlighting.Kate.Syntax.Restructuredtext.parseExpression (Just ("reStructuredText",""))))
+   <|>
+   ((lookAhead (pRegExprDynamic "\\]%1\\]") >> (popContext >> popContext) >> currentContext >>= parseRules))
+   <|>
+   (currentContext >>= \x -> guard (x == ("CMake","DocumentationBracketBlock")) >> pDefault >>= withAttribute NormalTok))
+
 parseRules ("CMake","String") =
   (((pRegExpr regex_'22'28'3f'3d'5b_'29'3b'5d'7c'24'29 >>= withAttribute StringTok) >>~ (popContext))
    <|>
@@ -346,5 +357,6 @@
 
 parseRules ("Alerts", _) = Text.Highlighting.Kate.Syntax.Alert.parseExpression Nothing
 parseRules ("Modelines", _) = Text.Highlighting.Kate.Syntax.Modelines.parseExpression Nothing
+parseRules ("reStructuredText", _) = Text.Highlighting.Kate.Syntax.Restructuredtext.parseExpression Nothing
 
 parseRules x = parseRules ("CMake","Normal Text") <|> fail ("Unknown context" ++ show x)
diff --git a/Text/Highlighting/Kate/Syntax/Lua.hs b/Text/Highlighting/Kate/Syntax/Lua.hs
--- a/Text/Highlighting/Kate/Syntax/Lua.hs
+++ b/Text/Highlighting/Kate/Syntax/Lua.hs
@@ -130,9 +130,9 @@
    <|>
    ((pRegExpr regex_'5cb'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ0'2d9'5f'5d'2a'28'3f'3d'5cs'2a'28'5b'28'7b'27'22'5d'7c'5c'5b'5c'5b'29'29'5cb >>= withAttribute NormalTok))
    <|>
-   ((pRegExpr regex_'5cb'5bA'2dZ'5f'5d'5bA'2dZ0'2d9'5f'5d'2a'5cb >>= withAttribute KeywordTok))
+   ((pRegExpr regex_'5cb'5bA'2dZ'5f'5d'5bA'2dZ0'2d9'5f'5d'2a'5cb >>= withAttribute NormalTok))
    <|>
-   ((pRegExpr regex_'5cb'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ0'2d9'5f'5d'2a'5cb >>= withAttribute KeywordTok))
+   ((pRegExpr regex_'5cb'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ0'2d9'5f'5d'2a'5cb >>= withAttribute NormalTok))
    <|>
    ((pDetect2Chars False '!' '=' >>= withAttribute ErrorTok))
    <|>
diff --git a/Text/Highlighting/Kate/Syntax/Restructuredtext.hs b/Text/Highlighting/Kate/Syntax/Restructuredtext.hs
new file mode 100644
--- /dev/null
+++ b/Text/Highlighting/Kate/Syntax/Restructuredtext.hs
@@ -0,0 +1,126 @@
+{- This module was generated from data in the Kate syntax
+   highlighting file restructuredtext.xml, version 1.0, by Massimiliano Torromeo (massimiliano.torromeo@gmail.com) -}
+
+module Text.Highlighting.Kate.Syntax.Restructuredtext
+          (highlight, parseExpression, syntaxName, syntaxExtensions)
+where
+import Text.Highlighting.Kate.Types
+import Text.Highlighting.Kate.Common
+import Text.ParserCombinators.Parsec hiding (State)
+import Control.Monad.State
+import Data.Char (isSpace)
+
+-- | Full name of language.
+syntaxName :: String
+syntaxName = "Restructured Text"
+
+-- | Filename extensions for this language.
+syntaxExtensions :: String
+syntaxExtensions = "*.rst"
+
+-- | Highlight source code using this syntax definition.
+highlight :: String -> [SourceLine]
+highlight input = evalState (mapM parseSourceLine $ lines input) startingState
+
+parseSourceLine :: String -> State SyntaxState SourceLine
+parseSourceLine = mkParseSourceLine (parseExpression Nothing)
+
+-- | Parse an expression using appropriate local context.
+parseExpression :: Maybe (String,String)
+                -> KateParser Token
+parseExpression mbcontext = do
+  (lang,cont) <- maybe currentContext return mbcontext
+  result <- parseRules (lang,cont)
+  optional $ do eof
+                updateState $ \st -> st{ synStPrevChar = '\n' }
+                pEndLine
+  return result
+
+startingState = SyntaxState {synStContexts = [("Restructured Text","Normal")], synStLineNumber = 0, synStPrevChar = '\n', synStPrevNonspace = False, synStCaseSensitive = True, synStKeywordCaseSensitive = True, synStCaptures = []}
+
+pEndLine = do
+  updateState $ \st -> st{ synStPrevNonspace = False }
+  context <- currentContext
+  contexts <- synStContexts `fmap` getState
+  if length contexts >= 2
+    then case context of
+      ("Restructured Text","Normal") -> return ()
+      ("Restructured Text","CodeBlock") -> return ()
+      ("Restructured Text","Code") -> return ()
+      ("Restructured Text","Directive") -> (popContext) >> pEndLine
+      ("Restructured Text","Link") -> (popContext) >> pEndLine
+      ("Restructured Text","URL") -> return ()
+      _ -> return ()
+    else return ()
+
+withAttribute attr txt = do
+  when (null txt) $ fail "Parser matched no text"
+  updateState $ \st -> st { synStPrevChar = last txt
+                          , synStPrevNonspace = synStPrevNonspace st || not (all isSpace txt) }
+  return (attr, txt)
+
+
+regex_'5c'2a'5b'5e'2a_'5d'2e'2a'5cS'5c'2a = compileRegex "\\*[^* ].*\\S\\*"
+regex_'5c'2a'5c'2a'5cS'2e'2a'5cS'5c'2a'5c'2a = compileRegex "\\*\\*\\S.*\\S\\*\\*"
+regex_'60'60'5cS'2e'2a'5cS'60'60 = compileRegex "``\\S.*\\S``"
+regex_'5c'2e'5c'2e_ = compileRegex "\\.\\. "
+regex_'28'23'7b3'2c'7d'7c'5c'2a'7b3'2c'7d'7c'3d'7b3'2c'7d'7c'2d'7b3'2c'7d'7c'5c'5e'7b3'2c'7d'7c'22'7b3'2c'7d'7c'27'7b3'2c'7d'7c'7e'7b3'2c'7d'7c'60'7b3'2c'7d'7c'5c'2b'7b3'2c'7d'29'24 = compileRegex "(#{3,}|\\*{3,}|={3,}|-{3,}|\\^{3,}|\"{3,}|'{3,}|~{3,}|`{3,}|\\+{3,})$"
+regex_'5b'230'2d9'5d'5c'2e'5cs = compileRegex "[#0-9]\\.\\s"
+regex_'3a'3a'24 = compileRegex "::$"
+regex_'5cs = compileRegex "\\s"
+regex_'5cS = compileRegex "\\S"
+regex_'5cw'2b = compileRegex "\\w+"
+regex_'5b'5e'3e'5d'2b = compileRegex "[^>]+"
+
+parseRules ("Restructured Text","Normal") =
+  (((pRegExpr regex_'5c'2a'5b'5e'2a_'5d'2e'2a'5cS'5c'2a >>= withAttribute NormalTok))
+   <|>
+   ((pRegExpr regex_'5c'2a'5c'2a'5cS'2e'2a'5cS'5c'2a'5c'2a >>= withAttribute NormalTok))
+   <|>
+   ((pRegExpr regex_'60'60'5cS'2e'2a'5cS'60'60 >>= withAttribute DataTypeTok))
+   <|>
+   ((pColumn 0 >> pRegExpr regex_'5c'2e'5c'2e_ >>= withAttribute DecValTok) >>~ pushContext ("Restructured Text","Directive"))
+   <|>
+   ((pColumn 0 >> pRegExpr regex_'28'23'7b3'2c'7d'7c'5c'2a'7b3'2c'7d'7c'3d'7b3'2c'7d'7c'2d'7b3'2c'7d'7c'5c'5e'7b3'2c'7d'7c'22'7b3'2c'7d'7c'27'7b3'2c'7d'7c'7e'7b3'2c'7d'7c'60'7b3'2c'7d'7c'5c'2b'7b3'2c'7d'29'24 >>= withAttribute KeywordTok))
+   <|>
+   ((pFirstNonSpace >> pRegExpr regex_'5b'230'2d9'5d'5c'2e'5cs >>= withAttribute DecValTok))
+   <|>
+   ((pFirstNonSpace >> pAnyChar "*+-" >>= withAttribute FloatTok))
+   <|>
+   ((pDetectChar False '`' >>= withAttribute StringTok) >>~ pushContext ("Restructured Text","Link"))
+   <|>
+   ((pRegExpr regex_'3a'3a'24 >>= withAttribute DataTypeTok) >>~ pushContext ("Restructured Text","CodeBlock"))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Restructured Text","Normal")) >> pDefault >>= withAttribute NormalTok))
+
+parseRules ("Restructured Text","CodeBlock") =
+  (((pColumn 0 >> pRegExpr regex_'5cs >>= withAttribute DataTypeTok) >>~ pushContext ("Restructured Text","Code"))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Restructured Text","CodeBlock")) >> pDefault >>= withAttribute DataTypeTok))
+
+parseRules ("Restructured Text","Code") =
+  (((pColumn 0 >> lookAhead (pRegExpr regex_'5cS) >> (popContext >> popContext) >> currentContext >>= parseRules))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Restructured Text","Code")) >> pDefault >>= withAttribute DataTypeTok))
+
+parseRules ("Restructured Text","Directive") =
+  (((pRegExpr regex_'5cw'2b >>= withAttribute KeywordTok))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Restructured Text","Directive")) >> pDefault >>= withAttribute DecValTok))
+
+parseRules ("Restructured Text","Link") =
+  (((pDetectChar False '<' >>= withAttribute StringTok) >>~ pushContext ("Restructured Text","URL"))
+   <|>
+   ((pDetect2Chars False '`' '_' >>= withAttribute StringTok) >>~ (popContext))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Restructured Text","Link")) >> pDefault >>= withAttribute StringTok))
+
+parseRules ("Restructured Text","URL") =
+  (((pRegExpr regex_'5b'5e'3e'5d'2b >>= withAttribute StringTok))
+   <|>
+   ((pDetectChar False '>' >>= withAttribute StringTok) >>~ (popContext))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Restructured Text","URL")) >> pDefault >>= withAttribute StringTok))
+
+
+parseRules x = parseRules ("Restructured Text","Normal") <|> fail ("Unknown context" ++ show x)
diff --git a/Text/Highlighting/Kate/Syntax/Rust.hs b/Text/Highlighting/Kate/Syntax/Rust.hs
--- a/Text/Highlighting/Kate/Syntax/Rust.hs
+++ b/Text/Highlighting/Kate/Syntax/Rust.hs
@@ -1,5 +1,5 @@
 {- This module was generated from data in the Kate syntax
-   highlighting file rust.xml, version 0.4.0, by  -}
+   highlighting file rust.xml, version 0.9, by  -}
 
 module Text.Highlighting.Kate.Syntax.Rust
           (highlight, parseExpression, syntaxName, syntaxExtensions)
@@ -46,10 +46,12 @@
   if length contexts >= 2
     then case context of
       ("Rust","Normal") -> return ()
+      ("Rust","Attribute") -> return ()
       ("Rust","Function") -> return ()
       ("Rust","Type") -> return ()
       ("Rust","String") -> return ()
       ("Rust","Character") -> (popContext) >> pEndLine
+      ("Rust","CharEscape") -> (popContext) >> pEndLine
       ("Rust","Commentar 1") -> (popContext) >> pEndLine
       ("Rust","Commentar 2") -> return ()
       _ -> return ()
@@ -63,18 +65,26 @@
 
 list_fn = Set.fromList $ words $ "fn"
 list_type = Set.fromList $ words $ "type"
-list_keywords = Set.fromList $ words $ "as assert break const copy do drop else enum export extern fail for if impl let log loop match mod move mut priv pub pure ref return static struct trait unsafe use while"
-list_types = Set.fromList $ words $ "bool int uint i8 i16 i32 i64 u8 u16 u32 u64 f32 f64 float char str Either Option Result"
+list_keywords = Set.fromList $ words $ "as break continue do drop else enum extern for if impl let loop match mod mut priv pub ref return static struct super trait unsafe use while"
+list_traits = Set.fromList $ words $ "Const Copy Send Owned Sized Eq Ord Num Ptr Drop Add Sub Mul Quot Rem Neg BitAnd BitOr BitXor Shl Shr Index Not"
+list_types = Set.fromList $ words $ "bool int uint i8 i16 i32 i64 u8 u16 u32 u64 f32 f64 float char str Either Option Result Self"
 list_ctypes = Set.fromList $ words $ "c_float c_double c_void FILE fpos_t DIR dirent c_char c_schar c_uchar c_short c_ushort c_int c_uint c_long c_ulong size_t ptrdiff_t clock_t time_t c_longlong c_ulonglong intptr_t uintptr_t off_t dev_t ino_t pid_t mode_t ssize_t"
 list_self = Set.fromList $ words $ "self"
 list_constants = Set.fromList $ words $ "true false Some None Left Right Ok Err Success Failure Cons Nil"
 list_cconstants = Set.fromList $ words $ "EXIT_FAILURE EXIT_SUCCESS RAND_MAX EOF SEEK_SET SEEK_CUR SEEK_END _IOFBF _IONBF _IOLBF BUFSIZ FOPEN_MAX FILENAME_MAX L_tmpnam TMP_MAX O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT O_EXCL O_TRUNC S_IFIFO S_IFCHR S_IFBLK S_IFDIR S_IFREG S_IFMT S_IEXEC S_IWRITE S_IREAD S_IRWXU S_IXUSR S_IWUSR S_IRUSR F_OK R_OK W_OK X_OK STDIN_FILENO STDOUT_FILENO STDERR_FILENO"
 
-regex_0x'5b0'2d9a'2dfA'2dF'5f'5d'2b'28u8'7cu16'7cu32'7cu64'7ci8'7ci16'7ci32'7ci64'7cu'7ci'29'3f = compileRegex "0x[0-9a-fA-F_]+(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?"
-regex_0b'5b0'2d1'5f'5d'2b'28u8'7cu16'7cu32'7cu64'7ci8'7ci16'7ci32'7ci64'7cu'7ci'29'3f = compileRegex "0b[0-1_]+(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?"
+regex_0x'5b0'2d9a'2dfA'2dF'5f'5d'2b'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f = compileRegex "0x[0-9a-fA-F_]+([iu](8|16|32|64)?)?"
+regex_0o'5b0'2d7'5f'5d'2b'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f = compileRegex "0o[0-7_]+([iu](8|16|32|64)?)?"
+regex_0b'5b0'2d1'5f'5d'2b'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f = compileRegex "0b[0-1_]+([iu](8|16|32|64)?)?"
 regex_'5b0'2d9'5d'5b0'2d9'5f'5d'2a'5c'2e'5b0'2d9'5f'5d'2a'28'5beE'5d'5b'2b'2d'5d'3f'5b0'2d9'5f'5d'2b'29'3f'28f32'7cf64'7cf'29'3f = compileRegex "[0-9][0-9_]*\\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?"
-regex_'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28u8'7cu16'7cu32'7cu64'7ci8'7ci16'7ci32'7ci64'7cu'7ci'29'3f = compileRegex "[0-9][0-9_]*(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?"
-regex_'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ0'2d9'5f'5d'2a'3a'3a = compileRegex "[a-zA-Z_][a-zA-Z0-9_]*::"
+regex_'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f = compileRegex "[0-9][0-9_]*([iu](8|16|32|64)?)?"
+regex_'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ'5f0'2d9'5d'2a'3a'3a = compileRegex "[a-zA-Z_][a-zA-Z_0-9]*::"
+regex_'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ'5f0'2d9'5d'2a'21 = compileRegex "[a-zA-Z_][a-zA-Z_0-9]*!"
+regex_'27'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ'5f0'2d9'5d'2a'28'3f'21'27'29 = compileRegex "'[a-zA-Z_][a-zA-Z_0-9]*(?!')"
+regex_x'5b0'2d9a'2dfA'2dF'5d'7b2'7d = compileRegex "x[0-9a-fA-F]{2}"
+regex_u'5b0'2d9a'2dfA'2dF'5d'7b4'7d = compileRegex "u[0-9a-fA-F]{4}"
+regex_U'5b0'2d9a'2dfA'2dF'5d'7b8'7d = compileRegex "U[0-9a-fA-F]{8}"
+regex_'2e = compileRegex "."
 
 parseRules ("Rust","Normal") =
   (((pDetectSpaces >>= withAttribute NormalTok))
@@ -87,6 +97,8 @@
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_types >>= withAttribute KeywordTok))
    <|>
+   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_traits >>= withAttribute KeywordTok))
+   <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_ctypes >>= withAttribute NormalTok))
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_self >>= withAttribute KeywordTok))
@@ -99,16 +111,24 @@
    <|>
    ((pDetect2Chars False '/' '*' >>= withAttribute CommentTok) >>~ pushContext ("Rust","Commentar 2"))
    <|>
-   ((pRegExpr regex_0x'5b0'2d9a'2dfA'2dF'5f'5d'2b'28u8'7cu16'7cu32'7cu64'7ci8'7ci16'7ci32'7ci64'7cu'7ci'29'3f >>= withAttribute DecValTok))
+   ((pRegExpr regex_0x'5b0'2d9a'2dfA'2dF'5f'5d'2b'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f >>= withAttribute DecValTok))
    <|>
-   ((pRegExpr regex_0b'5b0'2d1'5f'5d'2b'28u8'7cu16'7cu32'7cu64'7ci8'7ci16'7ci32'7ci64'7cu'7ci'29'3f >>= withAttribute DecValTok))
+   ((pRegExpr regex_0o'5b0'2d7'5f'5d'2b'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f >>= withAttribute DecValTok))
    <|>
+   ((pRegExpr regex_0b'5b0'2d1'5f'5d'2b'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f >>= withAttribute DecValTok))
+   <|>
    ((pRegExpr regex_'5b0'2d9'5d'5b0'2d9'5f'5d'2a'5c'2e'5b0'2d9'5f'5d'2a'28'5beE'5d'5b'2b'2d'5d'3f'5b0'2d9'5f'5d'2b'29'3f'28f32'7cf64'7cf'29'3f >>= withAttribute DecValTok))
    <|>
-   ((pRegExpr regex_'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28u8'7cu16'7cu32'7cu64'7ci8'7ci16'7ci32'7ci64'7cu'7ci'29'3f >>= withAttribute DecValTok))
+   ((pRegExpr regex_'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5biu'5d'288'7c16'7c32'7c64'29'3f'29'3f >>= withAttribute DecValTok))
    <|>
-   ((pRegExpr regex_'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ0'2d9'5f'5d'2a'3a'3a >>= withAttribute NormalTok))
+   ((pDetect2Chars False '#' '[' >>= withAttribute OtherTok) >>~ pushContext ("Rust","Attribute"))
    <|>
+   ((pRegExpr regex_'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ'5f0'2d9'5d'2a'3a'3a >>= withAttribute NormalTok))
+   <|>
+   ((pRegExpr regex_'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ'5f0'2d9'5d'2a'21 >>= withAttribute OtherTok))
+   <|>
+   ((pRegExpr regex_'27'5ba'2dzA'2dZ'5f'5d'5ba'2dzA'2dZ'5f0'2d9'5d'2a'28'3f'21'27'29 >>= withAttribute OtherTok))
+   <|>
    ((pDetectChar False '{' >>= withAttribute NormalTok))
    <|>
    ((pDetectChar False '}' >>= withAttribute NormalTok))
@@ -117,10 +137,21 @@
    <|>
    ((pDetectChar False '\'' >>= withAttribute CharTok) >>~ pushContext ("Rust","Character"))
    <|>
+   ((pDetectChar False '[' >>= withAttribute NormalTok))
+   <|>
+   ((pDetectChar False ']' >>= withAttribute NormalTok))
+   <|>
    ((pDetectIdentifier >>= withAttribute NormalTok))
    <|>
    (currentContext >>= \x -> guard (x == ("Rust","Normal")) >> pDefault >>= withAttribute NormalTok))
 
+parseRules ("Rust","Attribute") =
+  (((pDetectChar False ']' >>= withAttribute OtherTok) >>~ (popContext))
+   <|>
+   ((parseRules ("Rust","Normal")))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Rust","Attribute")) >> pDefault >>= withAttribute OtherTok))
+
 parseRules ("Rust","Function") =
   (((pDetectSpaces >>= withAttribute NormalTok))
    <|>
@@ -142,18 +173,31 @@
 parseRules ("Rust","String") =
   (((pLineContinue >>= withAttribute StringTok))
    <|>
-   ((pHlCStringChar >>= withAttribute CharTok))
+   ((pDetectChar False '\\' >>= withAttribute CharTok) >>~ pushContext ("Rust","CharEscape"))
    <|>
    ((pDetectChar False '"' >>= withAttribute StringTok) >>~ (popContext))
    <|>
    (currentContext >>= \x -> guard (x == ("Rust","String")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("Rust","Character") =
-  (((pHlCStringChar >>= withAttribute CharTok))
+  (((pDetectChar False '\\' >>= withAttribute CharTok) >>~ pushContext ("Rust","CharEscape"))
    <|>
    ((pDetectChar False '\'' >>= withAttribute CharTok) >>~ (popContext))
    <|>
    (currentContext >>= \x -> guard (x == ("Rust","Character")) >> pDefault >>= withAttribute CharTok))
+
+parseRules ("Rust","CharEscape") =
+  (((pAnyChar "nrt\\'\"" >>= withAttribute CharTok) >>~ (popContext))
+   <|>
+   ((pRegExpr regex_x'5b0'2d9a'2dfA'2dF'5d'7b2'7d >>= withAttribute CharTok) >>~ (popContext))
+   <|>
+   ((pRegExpr regex_u'5b0'2d9a'2dfA'2dF'5d'7b4'7d >>= withAttribute CharTok) >>~ (popContext))
+   <|>
+   ((pRegExpr regex_U'5b0'2d9a'2dfA'2dF'5d'7b8'7d >>= withAttribute CharTok) >>~ (popContext))
+   <|>
+   ((pRegExpr regex_'2e >>= withAttribute ErrorTok) >>~ (popContext))
+   <|>
+   (currentContext >>= \x -> guard (x == ("Rust","CharEscape")) >> pDefault >>= withAttribute CharTok))
 
 parseRules ("Rust","Commentar 1") =
   (currentContext >>= \x -> guard (x == ("Rust","Commentar 1")) >> pDefault >>= withAttribute CommentTok)
diff --git a/Text/Highlighting/Kate/Syntax/Yaml.hs b/Text/Highlighting/Kate/Syntax/Yaml.hs
--- a/Text/Highlighting/Kate/Syntax/Yaml.hs
+++ b/Text/Highlighting/Kate/Syntax/Yaml.hs
@@ -1,11 +1,13 @@
 {- This module was generated from data in the Kate syntax
-   highlighting file yaml.xml, version 1.1, by Dr Orlovsky MA (dr.orlovsky@gmail.com) -}
+   highlighting file yaml.xml, version 1.2, by Dr Orlovsky MA (dr.orlovsky@gmail.com) -}
 
 module Text.Highlighting.Kate.Syntax.Yaml
           (highlight, parseExpression, syntaxName, syntaxExtensions)
 where
 import Text.Highlighting.Kate.Types
 import Text.Highlighting.Kate.Common
+import qualified Text.Highlighting.Kate.Syntax.Alert
+import qualified Text.Highlighting.Kate.Syntax.Modelines
 import Text.ParserCombinators.Parsec hiding (State)
 import Control.Monad.State
 import Data.Char (isSpace)
@@ -117,9 +119,9 @@
    <|>
    ((pRegExpr regex_'5c'3f'3f'5cs'2a'27'5b'5e'27'23'5d'2b'27'5cs'2a'3a >>= withAttribute FunctionTok) >>~ pushContext ("YAML","attribute-pre"))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ pushContext ("YAML","string"))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ pushContext ("YAML","string"))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ pushContext ("YAML","stringx"))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("YAML","stringx"))
    <|>
    (currentContext >>= \x -> guard (x == ("YAML","normal")) >> pDefault >>= withAttribute NormalTok))
 
@@ -178,9 +180,9 @@
    <|>
    ((pDetectChar False '{' >>= withAttribute KeywordTok) >>~ pushContext ("YAML","hash"))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-string"))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-string"))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-stringx"))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-stringx"))
    <|>
    ((pRegExpr regex_'26'5cS'2b >>= withAttribute DataTypeTok) >>~ pushContext ("YAML","attribute"))
    <|>
@@ -203,9 +205,9 @@
    <|>
    ((pDetectChar False '{' >>= withAttribute KeywordTok) >>~ pushContext ("YAML","hash"))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-string-inline"))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-string-inline"))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-stringx-inline"))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-stringx-inline"))
    <|>
    ((pRegExpr regex_'26'5cS'2b >>= withAttribute DataTypeTok) >>~ pushContext ("YAML","attribute-inline"))
    <|>
@@ -244,9 +246,9 @@
    <|>
    ((pRegExpr regex_'5c'2a'5cS'2b >>= withAttribute DataTypeTok))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ pushContext ("YAML","string"))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ pushContext ("YAML","string"))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ pushContext ("YAML","stringx"))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("YAML","stringx"))
    <|>
    ((pDetectChar False ',' >>= withAttribute KeywordTok))
    <|>
@@ -268,32 +270,32 @@
    (currentContext >>= \x -> guard (x == ("YAML","hash")) >> pDefault >>= withAttribute NormalTok))
 
 parseRules ("YAML","attribute-string") =
-  (((pDetectIdentifier >>= withAttribute NormalTok))
+  (((pDetectIdentifier >>= withAttribute StringTok))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-end"))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-end"))
    <|>
-   (currentContext >>= \x -> guard (x == ("YAML","attribute-string")) >> pDefault >>= withAttribute NormalTok))
+   (currentContext >>= \x -> guard (x == ("YAML","attribute-string")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("YAML","attribute-stringx") =
-  (((pDetectIdentifier >>= withAttribute NormalTok))
+  (((pDetectIdentifier >>= withAttribute StringTok))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-end"))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-end"))
    <|>
-   (currentContext >>= \x -> guard (x == ("YAML","attribute-stringx")) >> pDefault >>= withAttribute NormalTok))
+   (currentContext >>= \x -> guard (x == ("YAML","attribute-stringx")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("YAML","attribute-string-inline") =
-  (((pDetectIdentifier >>= withAttribute NormalTok))
+  (((pDetectIdentifier >>= withAttribute StringTok))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-end-inline"))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-end-inline"))
    <|>
-   (currentContext >>= \x -> guard (x == ("YAML","attribute-string-inline")) >> pDefault >>= withAttribute NormalTok))
+   (currentContext >>= \x -> guard (x == ("YAML","attribute-string-inline")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("YAML","attribute-stringx-inline") =
-  (((pDetectIdentifier >>= withAttribute NormalTok))
+  (((pDetectIdentifier >>= withAttribute StringTok))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ pushContext ("YAML","attribute-end-inline"))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("YAML","attribute-end-inline"))
    <|>
-   (currentContext >>= \x -> guard (x == ("YAML","attribute-stringx-inline")) >> pDefault >>= withAttribute NormalTok))
+   (currentContext >>= \x -> guard (x == ("YAML","attribute-stringx-inline")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("YAML","attribute-end") =
   (currentContext >>= \x -> guard (x == ("YAML","attribute-end")) >> pDefault >>= withAttribute ErrorTok)
@@ -308,21 +310,27 @@
    (currentContext >>= \x -> guard (x == ("YAML","attribute-end-inline")) >> pDefault >>= withAttribute ErrorTok))
 
 parseRules ("YAML","string") =
-  (((pDetectIdentifier >>= withAttribute NormalTok))
+  (((pDetectIdentifier >>= withAttribute StringTok))
    <|>
-   ((pDetectChar False '\'' >>= withAttribute NormalTok) >>~ (popContext))
+   ((pDetectChar False '\'' >>= withAttribute StringTok) >>~ (popContext))
    <|>
-   (currentContext >>= \x -> guard (x == ("YAML","string")) >> pDefault >>= withAttribute NormalTok))
+   (currentContext >>= \x -> guard (x == ("YAML","string")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("YAML","stringx") =
-  (((pDetectIdentifier >>= withAttribute NormalTok))
+  (((pDetectIdentifier >>= withAttribute StringTok))
    <|>
-   ((pDetectChar False '"' >>= withAttribute NormalTok) >>~ (popContext))
+   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ (popContext))
    <|>
-   (currentContext >>= \x -> guard (x == ("YAML","stringx")) >> pDefault >>= withAttribute NormalTok))
+   (currentContext >>= \x -> guard (x == ("YAML","stringx")) >> pDefault >>= withAttribute StringTok))
 
 parseRules ("YAML","comment") =
-  (currentContext >>= \x -> guard (x == ("YAML","comment")) >> pDefault >>= withAttribute CommentTok)
+  (((Text.Highlighting.Kate.Syntax.Alert.parseExpression (Just ("Alerts","")) >>= ((withAttribute CommentTok) . snd)))
+   <|>
+   ((Text.Highlighting.Kate.Syntax.Modelines.parseExpression (Just ("Modelines","")) >>= ((withAttribute CommentTok) . snd)))
+   <|>
+   (currentContext >>= \x -> guard (x == ("YAML","comment")) >> pDefault >>= withAttribute CommentTok))
 
+parseRules ("Alerts", _) = Text.Highlighting.Kate.Syntax.Alert.parseExpression Nothing
+parseRules ("Modelines", _) = Text.Highlighting.Kate.Syntax.Modelines.parseExpression Nothing
 
 parseRules x = parseRules ("YAML","normal") <|> fail ("Unknown context" ++ show x)
diff --git a/highlighting-kate.cabal b/highlighting-kate.cabal
--- a/highlighting-kate.cabal
+++ b/highlighting-kate.cabal
@@ -1,5 +1,5 @@
 Name:                highlighting-kate
-Version:             0.5.5.1
+Version:             0.5.6
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 Category:            Text
@@ -105,6 +105,7 @@
                      xml/python.xml
                      xml/r.xml
                      xml/relaxngcompact.xml
+                     xml/restructuredtext.xml
                      xml/rhtml.xml
                      xml/roff.xml
                      xml/ruby.xml
@@ -236,6 +237,7 @@
                      Text.Highlighting.Kate.Syntax.Python
                      Text.Highlighting.Kate.Syntax.R
                      Text.Highlighting.Kate.Syntax.Relaxngcompact
+                     Text.Highlighting.Kate.Syntax.Restructuredtext
                      Text.Highlighting.Kate.Syntax.Rhtml
                      Text.Highlighting.Kate.Syntax.Roff
                      Text.Highlighting.Kate.Syntax.Ruby
diff --git a/xml/cmake.xml b/xml/cmake.xml
--- a/xml/cmake.xml
+++ b/xml/cmake.xml
@@ -26,7 +26,7 @@
  **********************************************************************
  -->
 <!-- generated for "cmake version 2.8.11.1" -->
-<language name="CMake" version="1.22" kateversion="2.4" section="Other" extensions="CMakeLists.txt;*.cmake;" mimetype="" author="Alexander Neundorf (neundorf@kde.org)" license="LGPL">
+<language name="CMake" version="1.23" kateversion="2.4" section="Other" extensions="CMakeLists.txt;*.cmake;" mimetype="" author="Alexander Neundorf (neundorf@kde.org)" license="LGPL">
   <highlighting>
 
     <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
@@ -783,6 +783,7 @@
       <item> TARGET_LINKER_DIR </item>
       <item> TARGET_SONAME_DIR </item>
       <item> TARGET_PROPERTY </item>
+      <item> TARGET_OBJECTS </item>
       <item> TARGET_POLICY </item>
       <item> AND </item>
       <item> OR </item>
@@ -815,6 +816,7 @@
         <keyword attribute="Third-Party Commands" context="#stay" String="itkvtk_commands" insensitive="true"/>
         <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="block" firstNonSpace="true"/>
         <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="block" firstNonSpace="true"/>
+        <RegExpr attribute="DocumentationBracketBlock" context="DocumentationBracketBlock" String="^#\[(=*)\[\.rst:"  />
         <DetectChar attribute="Comment" context="Comment" char="#"/>
         <IncludeRules context="Detect Variables"/>
         <RegExpr attribute="Macros" context="Macro Args" String="\w+\s*(?=\()"/>
@@ -897,9 +899,10 @@
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="Macro Args">
         <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <!-- TODO Hmm... this rule looks strange... being in the Normal context -->
         <StringDetect attribute="Escapes" context="#stay" String="\&quot;"/>
         <DetectChar attribute="Strings" context="String" char="&quot;"/>
-        <RegExpr attribute="Comment" context="#stay" String="#.*$"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
         <IncludeRules context="Detect Builtin Variables"/>
         <IncludeRules context="Detect Variables"/>
         <IncludeRules context="Detect Generator Expressions"/>
@@ -907,6 +910,10 @@
       <context attribute="Comment" lineEndContext="#pop" name="Comment">
         <IncludeRules context="##Alerts" />
         <IncludeRules context="##Modelines" />
+      </context>
+      <context name="DocumentationBracketBlock" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="##reStructuredText" includeAttrib="true"/>
+        <RegExpr attribute="Normal Text" String="\]%1\]" lookAhead="true" context="#pop#pop" dynamic="true" />
       </context>
       <context attribute="Strings" lineEndContext="#stay" name="String">
         <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)" />
diff --git a/xml/lua.xml b/xml/lua.xml
--- a/xml/lua.xml
+++ b/xml/lua.xml
@@ -280,14 +280,14 @@
       <itemData name="Alerts"          defStyleNum="dsAlert" spellChecking="false"/>
       <itemData name="BFunc"           defStyleNum="dsFunction" spellChecking="false"/>
       <itemData name="Comment"         defStyleNum="dsComment"/>
-      <itemData name="Constant"        defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Constant"        defStyleNum="dsNormal" /> <!-- JGM -->
       <itemData name="Control"         defStyleNum="dsKeyword" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false"/>
       <itemData name="Error"           defStyleNum="dsError" spellChecking="false"/>
       <itemData name="Keyword"         defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Numbers"         defStyleNum="dsDecVal" spellChecking="false"/>
       <itemData name="Strings"         defStyleNum="dsString"/>
       <itemData name="Symbols"         defStyleNum="dsOthers" spellChecking="false"/>
-      <itemData name="Variable"        defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="0" italic="0" spellChecking="false"/>
+      <itemData name="Variable"        defStyleNum="dsNormal" /> <!-- JGM -->
     </itemDatas>
   </highlighting>
   <general>
diff --git a/xml/restructuredtext.xml b/xml/restructuredtext.xml
new file mode 100644
--- /dev/null
+++ b/xml/restructuredtext.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Restructured Text" version="1.0" kateversion="2.4" section="Markup" extensions="*.rst" author="Massimiliano Torromeo (massimiliano.torromeo@gmail.com)" license="LGPL">
+
+	<highlighting>
+		<contexts>
+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Emphasys" String="\*[^* ].*\S\*" context="#stay" />
+				<RegExpr attribute="Strong" String="\*\*\S.*\S\*\*" context="#stay" />
+				<RegExpr attribute="Literal" String="``\S.*\S``" context="#stay" />
+				<RegExpr attribute="Directive" String="^\.\. " context="Directive" />
+				<RegExpr attribute="Title" String="^(#{3,}|\*{3,}|={3,}|-{3,}|\^{3,}|&quot;{3,}|&apos;{3,}|~{3,}|`{3,}|\+{3,})$" context="#stay" />
+				<RegExpr attribute="OrderedList" String="[#0-9]\.\s" firstNonSpace="1" context="#stay" />
+				<AnyChar attribute="UnorderedList" String="*+-" firstNonSpace="1" context="#stay" />
+				<DetectChar attribute="Link" char="`" context="Link" />
+				<RegExpr attribute="Code" String="::$" context="CodeBlock" />
+			</context>
+
+			<context name="CodeBlock" attribute="Code" lineEndContext="#stay">
+				<RegExpr attribute="Code" String="^\s" context="Code" />
+			</context>
+
+			<context name="Code" attribute="Code" lineEndContext="#stay">
+				<RegExpr attribute="Normal" String="^\S" lookAhead="true" context="#pop#pop" />
+			</context>
+
+			<context name="Directive" attribute="Directive" lineEndContext="#pop">
+				<RegExpr attribute="Keyword" String="\w+" context="#stay" />
+			</context>
+
+			<context name="Link" attribute="Link" lineEndContext="#pop">
+				<DetectChar attribute="Link" char="&lt;" context="URL" />
+				<Detect2Chars attribute="Link" char="`" char1="_" context="#pop" />
+			</context>
+
+			<context name="URL" attribute="LinkUrl" lineEndContext="#stay">
+				<RegExpr attribute="LinkUrl" String="[^&gt;]+" context="#stay" />
+				<DetectChar attribute="Link" char="&gt;" context="#pop" />
+			</context>
+		</contexts>
+
+		<itemDatas>
+			<itemData name="Normal Text" defStyleNum="dsNormal" />
+			<itemData name="Directive" defStyleNum="dsDecVal" />
+			<itemData name="Emphasys" defStyleNum="dsNormal" italic="1" />
+			<itemData name="Strong" defStyleNum="dsNormal" bold="1" />
+			<itemData name="Literal" defStyleNum="dsDataType" />
+			<itemData name="Keyword" defStyleNum="dsKeyword" />
+			<itemData name="OrderedList" defStyleNum="dsDecVal" />
+			<itemData name="UnorderedList" defStyleNum="dsFloat" />
+			<itemData name="Link" defStyleNum="dsString" />
+			<itemData name="LinkUrl" defStyleNum="dsString" bold="1" />
+			<itemData name="Title" defStyleNum="dsKeyword" bold="1" />
+			<itemData name="Code" defStyleNum="dsDataType" />
+			<itemData name="Error" defStyleNum="dsError" />
+		</itemDatas>
+
+	</highlighting>
+</language>
diff --git a/xml/rust.xml b/xml/rust.xml
--- a/xml/rust.xml
+++ b/xml/rust.xml
@@ -1,6 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="Rust" version="0.4.0" kateversion="2.4" section="Sources" extensions="*.rs;*.rc" mimetype="text/x-rust" priority="15">
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!-- TODO: Kate's regex engine has very limited support for
+	predefined char classes, so making rustIdent consistent with actual
+	Rust identifiers will be a bit difficult -->
+	<!ENTITY rustIdent "[a-zA-Z_][a-zA-Z_0-9]*">
+	<!ENTITY rustIntSuf "([iu](8|16|32|64)?)?">
+]>
+<language name="Rust" version="0.9" kateversion="2.4" section="Sources" extensions="*.rs;*.rc" mimetype="text/x-rust" priority="15">
 <highlighting>
 	<list name="fn">
 		<item> fn </item>
@@ -10,39 +17,58 @@
 	</list>
 	<list name="keywords">
 		<item> as </item>
-		<item> assert </item>
 		<item> break </item>
-		<item> const </item>
-		<item> copy </item>
+		<item> continue </item>
 		<item> do </item>
 		<item> drop </item>
 		<item> else </item>
 		<item> enum </item>
-		<item> export </item>
 		<item> extern </item>
-		<item> fail </item>
 		<item> for </item>
 		<item> if </item>
 		<item> impl </item>
 		<item> let </item>
-		<item> log </item>
 		<item> loop </item>
 		<item> match </item>
 		<item> mod </item>
-		<item> move </item>
 		<item> mut </item>
 		<item> priv </item>
 		<item> pub </item>
-		<item> pure </item>
 		<item> ref </item>
 		<item> return </item>
 		<item> static </item>
 		<item> struct </item>
+		<item> super </item>
 		<item> trait </item>
 		<item> unsafe </item>
 		<item> use </item>
 		<item> while </item>
 	</list>
+	<list name="traits">
+		<item> Const </item>
+		<item> Copy </item>
+		<item> Send </item>
+		<item> Owned </item>
+		<item> Sized </item>
+		<item> Eq </item>
+		<item> Ord </item>
+		<item> Num </item>
+		<item> Ptr </item>
+		<item> Drop </item>
+		<item> Add </item>
+		<item> Sub </item>
+		<item> Mul </item>
+		<item> Quot </item>
+		<item> Rem </item>
+		<item> Neg </item>
+		<item> BitAnd </item>
+		<item> BitOr </item>
+		<item> BitXor </item>
+		<item> Shl </item>
+		<item> Shr </item>
+		<item> Index </item>
+		<item> Not </item>
+	</list>
 	<list name="types">
 		<item> bool </item>
 		<item> int </item>
@@ -63,6 +89,7 @@
 		<item> Either </item>
 		<item> Option </item>
 		<item> Result </item>
+		<item> Self </item>
 	</list>
 	<list name="ctypes">
 		<item> c_float </item>
@@ -164,23 +191,34 @@
 			<keyword String="type" attribute="Keyword" context="Type"/>
 			<keyword String="keywords" attribute="Keyword" context="#stay"/>
 			<keyword String="types" attribute="Type" context="#stay"/>
+			<keyword String="traits" attribute="Trait" context="#stay"/>
 			<keyword String="ctypes" attribute="CType" context="#stay"/>
 			<keyword String="self" attribute="Self" context="#stay"/>
 			<keyword String="constants" attribute="Constant" context="#stay"/>
 			<keyword String="cconstants" attribute="CConstant" context="#stay"/>
 			<Detect2Chars char="/" char1="/" attribute="Comment" context="Commentar 1"/>
 			<Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>
-			<RegExpr String="0x[0-9a-fA-F_]+(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?" attribute="Number" context="#stay"/>
-			<RegExpr String="0b[0-1_]+(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?" attribute="Number" context="#stay"/>
+			<RegExpr String="0x[0-9a-fA-F_]+&rustIntSuf;" attribute="Number" context="#stay"/>
+			<RegExpr String="0o[0-7_]+&rustIntSuf;" attribute="Number" context="#stay"/>
+			<RegExpr String="0b[0-1_]+&rustIntSuf;" attribute="Number" context="#stay"/>
 			<RegExpr String="[0-9][0-9_]*\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?" attribute="Number" context="#stay"/>
-			<RegExpr String="[0-9][0-9_]*(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?" attribute="Number" context="#stay"/>
-			<RegExpr String="[a-zA-Z_][a-zA-Z0-9_]*::" attribute="Scope"/>
+			<RegExpr String="[0-9][0-9_]*&rustIntSuf;" attribute="Number" context="#stay"/>
+			<Detect2Chars char="#" char1="[" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
+			<RegExpr String="&rustIdent;::" attribute="Scope"/>
+			<RegExpr String="&rustIdent;!" attribute="Macro"/>
+			<RegExpr String="&apos;&rustIdent;(?!&apos;)" attribute="Lifetime"/>
 			<DetectChar char="{" attribute="Symbol" context="#stay" beginRegion="Brace" />
 			<DetectChar char="}" attribute="Symbol" context="#stay" endRegion="Brace" />
 			<DetectChar char="&quot;" attribute="String" context="String"/>
 			<DetectChar char="&apos;" attribute="Character" context="Character"/>
+			<DetectChar char="[" attribute="Symbol" context="#stay" beginRegion="Bracket" />
+			<DetectChar char="]" attribute="Symbol" context="#stay" endRegion="Bracket" />
 			<DetectIdentifier/>
 		</context>
+		<context attribute="Attribute" lineEndContext="#stay" name="Attribute">
+			<DetectChar char="]" attribute="Attribute" context="#pop" endRegion="Attribute"/>
+			<IncludeRules context="Normal"/>
+		</context>
 		<context attribute="Definition" lineEndContext="#stay" name="Function">
 			<DetectSpaces/>
 			<DetectChar char="(" attribute="Normal Text" context="#pop"/>
@@ -193,13 +231,20 @@
 		</context>
 		<context attribute="String" lineEndContext="#stay" name="String">
 			<LineContinue attribute="String" context="#stay"/>
-			<HlCStringChar attribute="String Char" context="#stay"/>
+			<DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
 			<DetectChar attribute="String" context="#pop" char="&quot;"/>
 		</context>
 		<context attribute="Character" lineEndContext="#pop" name="Character">
-			<HlCStringChar attribute="Character" context="#stay"/>
+			<DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
 			<DetectChar attribute="Character" context="#pop" char="&apos;"/>
 		</context>
+		<context attribute="CharEscape" lineEndContext="#pop" name="CharEscape">
+			<AnyChar String="nrt\&apos;&quot;" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="x[0-9a-fA-F]{2}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="u[0-9a-fA-F]{4}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="U[0-9a-fA-F]{8}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="." attribute="Error" context="#pop"/>
+		</context>
 		<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
 		<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
 			<DetectSpaces/>
@@ -211,6 +256,7 @@
 		<itemData name="Keyword"      defStyleNum="dsKeyword" color="#770088" bold="1"/>
 		<itemData name="Self"         defStyleNum="dsKeyword" color="#FF0000" bold="1"/>
 		<itemData name="Type"         defStyleNum="dsKeyword" color="#4e9a06" bold="1"/>
+		<itemData name="Trait"        defStyleNum="dsKeyword" color="#4e9a06" bold="1"/>
 		<itemData name="CType"        defStyleNum="dsNormal" color="#4e9a06"/>
 		<itemData name="Constant"     defStyleNum="dsKeyword" color="#116644"/>
 		<itemData name="CConstant"    defStyleNum="dsNormal" color="#116644"/>
@@ -219,8 +265,12 @@
 		<itemData name="Scope"        defStyleNum="dsNormal" color="#0055AA"/>
 		<itemData name="Number"       defStyleNum="dsDecVal" color="#116644"/>
 		<itemData name="String"       defStyleNum="dsString" color="#FF0000"/>
-		<itemData name="String Char"  defStyleNum="dsChar" color="#FF0000"/>
+		<itemData name="CharEscape"   defStyleNum="dsChar" color="#FF0000" bold="1"/>
 		<itemData name="Character"    defStyleNum="dsChar" color="#FF0000"/>
+		<itemData name="Macro"        defStyleNum="dsOthers"/>
+		<itemData name="Attribute"    defStyleNum="dsOthers"/>
+		<itemData name="Lifetime"     defStyleNum="dsOthers" bold="1"/>
+		<itemData name="Error"        defStyleNum="dsError"/>
 	</itemDatas>
 </highlighting>
 <general>
diff --git a/xml/yaml.xml b/xml/yaml.xml
--- a/xml/yaml.xml
+++ b/xml/yaml.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language SYSTEM "language.dtd">
 <!-- Author: Dr Orlovsky MA <maxim@orlovsky.info> //-->
-<language name="YAML" version="1.1" kateversion="2.3" section="Markup"
+<language name="YAML" version="1.2" kateversion="2.3" section="Markup"
           extensions="*.yaml;*.yml" mimetype="text/yaml"
           author="Dr Orlovsky MA (dr.orlovsky@gmail.com)" license="LGPL">
   <highlighting>
@@ -140,13 +140,12 @@
           <DetectIdentifier />
           <DetectChar attribute="String" context="attribute-end-inline" char="'" endRegion="String" />
       </context>
-      
+
       <context attribute="String" lineEndContext="#stay" name="attribute-stringx-inline">
           <DetectIdentifier />
           <DetectChar attribute="String" context="attribute-end-inline" char="&quot;" endRegion="String" />
       </context>
 
-      
       <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end">
       </context>
 
@@ -156,8 +155,6 @@
           <RegExpr attribute="Operator" context="#pop#pop#pop"  String=",\s"/>
       </context>
 
-      
-      
       <context attribute="String" lineEndContext="#stay" name="string">
         <DetectIdentifier />
         <DetectChar attribute="String" context="#pop" char="'" endRegion="String" />
@@ -169,9 +166,12 @@
       </context>
 
       <context attribute="Comment" lineEndContext="#pop" name="comment">
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
       </context>
     </contexts>
-     <itemDatas>
+
+    <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal" />
       <itemData name="List" defStyleNum="dsNormal" />
       <itemData name="Hash" defStyleNum="dsNormal" />
@@ -184,13 +184,14 @@
       <itemData name="Key" defStyleNum="dsFunction" />
       <itemData name="Directive" defStyleNum="dsOthers" />
       <itemData name="Operator" defStyleNum="dsKeyword" />
-      <itemData name="String" defStyleNum="dsNormal" />
+      <itemData name="String" defStyleNum="dsString" />
       <itemData name="Error" defStyleNum="dsError" />
     </itemDatas>
   </highlighting>
+
   <general>
     <comments>
-      <comment name="singleLine" start="#"/>
+      <comment name="singleLine" start="#" position="afterwhitespace" />
     </comments>
     <keywords casesensitive="1"/>
   </general>
