;; TODO very WIP (define-syntax "rust" :styles ("keyword" :fg 'red) ("symbol" :fg 'cyan) ("comment" :fg 'white :bold) ("string" :fg 'yellow) ("number" :fg 'cyan :bold) ("constant" :fg 'cyan :bold) :rules ;; Keywords (:keyword "use" "pub" "mod" "enum" "struct" "impl" "for" "=>" "->" "match" "for" "while" "loop" "if" "fn" "&mut" "&" "let" "where" "?" :category "keyword" ) ;; Identifiers (:keyword "Rc" "RefCell" "Clone" "Copy" "PartialEq" "Eq" "PartialOrd" "Ord" "Debug" "Result" "Option" "bool" "i8" "i16" "i32" "i64" "i128" "u8" "u16" "u32" "u64" "u128" "str" "&str" "Self" "self" "&self" "&mut self" "Ok" "Err" :category "symbol" ) (:keyword "true" "false" :category "constant") ;; strings (:regex "." "string" :prev-state 1) (:regex "[^\\\\]*\"" "string" :prev-state 1 :next-state 0) (:regex "\"" "string" :next-state 1) ;; numbers (:regex "(0x|0o|0b)?\\d+" "number") ;; Comments (:regex "//.*$" "comment") )