X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=runtime%2Fsyntax%2Frust.yaml;h=f24bcfb95b40211cef7231f07394cb3787cc7dfd;hb=120cd02b309c32a6f9ce7893b4000c9b29dcb9ac;hp=53e97d1213e5f2c412c1a26f5d9430eb29cb4e65;hpb=b977bf5cca84f7dc762fe8d9967831502ee5cc87;p=micro.git diff --git a/runtime/syntax/rust.yaml b/runtime/syntax/rust.yaml index 53e97d12..f24bcfb9 100644 --- a/runtime/syntax/rust.yaml +++ b/runtime/syntax/rust.yaml @@ -1,35 +1,52 @@ filetype: rust -detect: - filename: "\\.rs" +detect: + filename: "\\.rs$" rules: - - identifier.class: "fn [a-z0-9_]+" - - statement: "\\b(abstract|alignof|as|become|box|break|const|continue|crate|do|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" - - identifier.macro: "[a-z_]+!" - - constant: "[A-Z][A-Z_]+" + # 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" + # macros + - special: "[a-z_]+!" + # Constants + - constant: "\\b[A-Z][A-Z_0-9]+\\b" + # Numbers - constant.number: "\\b[0-9]+\\b" - - type: "[A-Z][a-z]+" - - constant.string: "\\\".*\\\"" + # Booleans + - constant: "\\b(true|false)\\b" + # Traits/Enums/Structs/Types/etc. + - type: "\\b[A-Z]+[a-zA-Z_0-9]*[a-z]+[a-zA-Z_0-9]*\\b" + # Builtin types that start with lowercase. + - type: "\\b(bool|str|isize|usize|((i|u)(8|16|32|64))|f32|f64)\\b" + - constant.string: - start: "\\\".*\\\\$" - end: ".*\\\"" - rules: [] + start: "\"" + end: "\"" + skip: "\\\\." + rules: + - constant.specialChar: "\\\\." - - special: - start: "r#+\\\"" - end: "\\\"#+" + - constant.string: + start: "r#+\"" + end: "\"#+" rules: [] - - comment: "//.*" + - comment: + start: "//" + end: "$" + rules: + - todo: "(TODO|XXX|FIXME):?" + - comment: start: "/\\*" end: "\\*/" - rules: [] + rules: + - todo: "(TODO|XXX|FIXME):?" - special: start: "#!\\[" end: "\\]" rules: [] - - todo: "(XXX|TODO|FIXME|\\?\\?\\?)"