" Vim syntax file " Language: cff if exists("b:current_syntax") finish endif syn keyword Statement return break continue case defer syn keyword Repeat for while do if else switch syn keyword StorageClass typedef fn static def let extern const syn keyword Include import syn keyword Macro defmacro syn keyword Type i8 u8 i16 u16 i32 u32 i64 u64 syn keyword Type int uint isize usize iptrint uptrint syn keyword Type c_char c_long c_ulong c_llong c_ullong syn keyword Type bool intbool void f32 f64 typeof syn keyword Structure struct enum union bitfield syn keyword Operator alignof sizeof as and or offsetof syn match PreProc "#\i*\>" syn match PreProc "#?\>" syn match PreProc "#'\k\+\>" syn region PreProc start="#\[" end="\]" extend syn case ignore syn match Number display transparent "\<\d\|\.\d" contains=cNumber,cFloat syn match cNumber display contained "\d\+\%(\vu|u8|i8|u16|i32|u32|i64|u64|z|zs|p|ps\V\)\?\>" syn match cNumber display contained "0x\x\+\%(\vu|u8|i8|u16|i32|u32|i64|u64|z|zs|p|ps\V\)\?\>" syn match cFloat display contained "\d\+\.\d*\%(f\|f32\|f64\)\?\>" syn region String start=+"+ skip=+\\\\\|\\"+ end=+"+ extend syn match mCommentLabel contained "#'\k\+\>" syn region Character start=+'+ skip=+\\\\\|\\'+ end=+'+ syn region Comment start="//" end="$" syn region mComment start="#{" end="}" contains=mComment,mCommentBraces,String,mCommentLabel,Character syn region mCommentBraces contained start=+[^'"#]{+ end="}" contains=mCommentBraces,String hi link mComment Comment hi link mCommentBraces Comment hi link mCommentLabel Comment