]> git.lizzy.rs Git - micro.git/blobdiff - runtime/syntax/rust.yaml
Add support for rust async/await keywords
[micro.git] / runtime / syntax / rust.yaml
index 3e13f388f8ceeb7d5f8909944f4106c7606e6ae8..e6ed639562ccfb4f11424a4e302f472ad3c19a8e 100644 (file)
@@ -7,7 +7,7 @@ rules:
     # function definition
     - identifier: "fn [a-z0-9_]+"
       # Reserved words
-    - statement: "\\b(abstract|alignof|as|become|box|break|const|continue|crate|do|dyn|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\b"
+    - statement: "\\b(abstract|alignof|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\b"
       # macros
     - special: "[a-z_]+!"
       # Constants
@@ -34,12 +34,16 @@ rules:
         rules: []
 
     # Character literals
+    # NOTE: This is an ugly hack to work around the fact that rust uses
+    # single quotes both for character literals and lifetimes.
+    # Match all character literals.
+    - constant.string: "'(\\\\.|.)'"
+    # Match the '"' literal which would otherwise match
+    # as a double quoted string and destroy the highlighting.
     - constant.string:
-        start: "'"
+        start: "'\""
         end: "'"
-        skip: '\\.'
-        rules:
-            - constant.specialChar: '\\.'
+        rules: []
 
     - comment:
         start: "//"