diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2014-06-08 13:18:33 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2014-06-08 13:18:33 +0200 |
commit | 45273d44d4b1bd9a1be431c1a98f9046ed3a5c79 (patch) | |
tree | 7b8fa566b3da949b422804c3bb9eaf9c51b9b69e /syntax/rust.vim | |
parent | e961fa80374369c9e299b333639db0dc43d1f126 (diff) | |
download | vim-polyglot-45273d44d4b1bd9a1be431c1a98f9046ed3a5c79.tar.gz vim-polyglot-45273d44d4b1bd9a1be431c1a98f9046ed3a5c79.zip |
Major update
Diffstat (limited to 'syntax/rust.vim')
-rw-r--r-- | syntax/rust.vim | 66 |
1 files changed, 42 insertions, 24 deletions
diff --git a/syntax/rust.vim b/syntax/rust.vim index dd631b19..77348335 100644 --- a/syntax/rust.vim +++ b/syntax/rust.vim @@ -18,30 +18,40 @@ syn keyword rustOperator as syn match rustAssert "\<assert\(\w\)*!" contained syn match rustFail "\<fail\(\w\)*!" contained -syn keyword rustKeyword break continue -syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite +syn keyword rustKeyword break +syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty +syn keyword rustKeyword continue +syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty +syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite skipempty syn keyword rustKeyword for in if impl let -syn keyword rustKeyword loop once priv pub -syn keyword rustKeyword return -syn keyword rustKeyword unsafe while -syn keyword rustKeyword use nextgroup=rustModPath skipwhite +syn keyword rustKeyword loop once proc pub +syn keyword rustKeyword return super +syn keyword rustKeyword unsafe virtual while +syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty " FIXME: Scoped impl's name is also fallen in this category -syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite -syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite -syn keyword rustKeyword proc +syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite skipempty syn keyword rustStorage mut ref static syn keyword rustObsoleteStorage const syn keyword rustInvalidBareKeyword crate -syn keyword rustExternCrate crate contained nextgroup=rustIdentifier skipwhite -syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite +syn keyword rustExternCrate crate contained nextgroup=rustIdentifier skipwhite skipempty +syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite skipempty syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained +syn region rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained +syn keyword rustBoxPlacementExpr GC containedin=rustBoxPlacement +" Ideally we'd have syntax rules set up to match arbitrary expressions. Since +" we don't, we'll just define temporary contained rules to handle balancing +" delimiters. +syn region rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlacement transparent +syn region rustBoxPlacementBalance start="\[" end="\]" containedin=rustBoxPlacement transparent +" {} are handled by rustFoldBraces + " Reserved (but not yet used) keywords {{{2 -syn keyword rustReservedKeyword alignof be do offsetof pure sizeof typeof yield +syn keyword rustReservedKeyword alignof be do offsetof priv pure sizeof typeof unsized yield " Built-in types {{{2 syn keyword rustType int uint float char bool u8 u16 u32 u64 f32 @@ -52,10 +62,10 @@ syn keyword rustType f64 i8 i16 i32 i64 str Self " to make it easy to update. " Core operators {{{3 -syn keyword rustTrait Share Copy Send Sized +syn keyword rustTrait Copy Send Sized Share syn keyword rustTrait Add Sub Mul Div Rem Neg Not syn keyword rustTrait BitAnd BitOr BitXor -syn keyword rustTrait Drop +syn keyword rustTrait Drop Deref DerefMut syn keyword rustTrait Shl Shr Index syn keyword rustEnum Option syn keyword rustEnumVariant Some None @@ -68,7 +78,6 @@ syn keyword rustEnumVariant Ok Err "syn keyword rustFunction drop " Types and traits {{{3 -syn keyword rustTrait Any AnyOwnExt AnyRefExt AnyMutRefExt syn keyword rustTrait Ascii AsciiCast OwnedAsciiCast AsciiStr IntoBytes syn keyword rustTrait ToCStr syn keyword rustTrait Char @@ -80,25 +89,32 @@ syn keyword rustTrait FromIterator Extendable syn keyword rustTrait Iterator DoubleEndedIterator RandomAccessIterator CloneableIterator syn keyword rustTrait OrdIterator MutableDoubleEndedIterator ExactSize syn keyword rustTrait Num NumCast CheckedAdd CheckedSub CheckedMul -syn keyword rustTrait Signed Unsigned Round -syn keyword rustTrait Primitive Int Float ToPrimitive FromPrimitive +syn keyword rustTrait Signed Unsigned +syn keyword rustTrait Primitive Int Float FloatMath ToPrimitive FromPrimitive +"syn keyword rustTrait Expect +syn keyword rustTrait Box syn keyword rustTrait GenericPath Path PosixPath WindowsPath syn keyword rustTrait RawPtr syn keyword rustTrait Buffer Writer Reader Seek syn keyword rustTrait Str StrVector StrSlice OwnedStr IntoMaybeOwned +syn keyword rustTrait StrAllocating syn keyword rustTrait ToStr IntoStr syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4 syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8 syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12 -syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector ImmutableCloneableVector -syn keyword rustTrait OwnedVector OwnedCloneableVector OwnedEqVector -syn keyword rustTrait MutableVector MutableTotalOrdVector -syn keyword rustTrait Vector VectorVector CloneableVector ImmutableVector - -"syn keyword rustFunction stream -syn keyword rustTrait Sender Receiver +syn keyword rustTrait CloneableVector ImmutableCloneableVector MutableCloneableVector +syn keyword rustTrait ImmutableVector MutableVector +syn keyword rustTrait ImmutableEqVector ImmutableTotalOrdVector MutableTotalOrdVector +syn keyword rustTrait Vector VectorVector OwnedVector MutableVectorAllocating +syn keyword rustTrait String +syn keyword rustTrait Vec + +"syn keyword rustFunction sync_channel channel +syn keyword rustTrait SyncSender Sender Receiver "syn keyword rustFunction spawn +"syn keyword rustConstant GC + syn keyword rustSelf self syn keyword rustBoolean true false @@ -239,6 +255,8 @@ hi def link rustLifetime Special hi def link rustInvalidBareKeyword Error hi def link rustExternCrate rustKeyword hi def link rustObsoleteExternMod Error +hi def link rustBoxPlacementParens Delimiter +hi def link rustBoxPlacementExpr rustKeyword " Other Suggestions: " hi rustAttribute ctermfg=cyan |