forked from duckworth/vim-settings
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added rust, updated bundles, passable rspec stuff
- Loading branch information
Showing
3 changed files
with
163 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
" Vim syntax file | ||
" Language: Rust | ||
" Maintainer: Patrick Walton <pcwalton@mozilla.com> | ||
" Maintainer: Ben Blum <bblum@cs.cmu.edu> | ||
" Last Change: 2012 Dec 14 | ||
|
||
if version < 600 | ||
syntax clear | ||
elseif exists("b:current_syntax") | ||
finish | ||
endif | ||
|
||
syn match rustAssert "\<assert\(\w\)*" | ||
syn keyword rustKeyword as break | ||
syn keyword rustKeyword const copy do drop else export extern fail | ||
syn keyword rustKeyword for if impl let log | ||
syn keyword rustKeyword loop match mod move mut once priv pure | ||
syn match rustKeyword "\<pub\>" | ||
syn keyword rustKeyword ref return static | ||
syn match rustKeyword "\<unsafe\>" " Allows also matching unsafe::foo() | ||
syn keyword rustKeyword use while | ||
" 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 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 | ||
|
||
" Reserved words | ||
syn keyword rustKeyword m32 m64 m128 f80 f16 f128 | ||
|
||
syn keyword rustType int uint float char bool u8 u16 u32 u64 f32 | ||
syn keyword rustType f64 i8 i16 i32 i64 str | ||
syn keyword rustType Option Either | ||
|
||
" Types from libc | ||
syn keyword rustType c_float c_double c_void FILE fpos_t | ||
syn keyword rustType DIR dirent | ||
syn keyword rustType c_char c_schar c_uchar | ||
syn keyword rustType c_short c_ushort c_int c_uint c_long c_ulong | ||
syn keyword rustType size_t ptrdiff_t clock_t time_t | ||
syn keyword rustType c_longlong c_ulonglong intptr_t uintptr_t | ||
syn keyword rustType off_t dev_t ino_t pid_t mode_t ssize_t | ||
|
||
syn keyword rustTrait Const Copy Send Owned " inherent traits | ||
syn keyword rustTrait Eq Ord Num Ptr | ||
syn keyword rustTrait Add Sub Mul Div Modulo Neg BitAnd BitOr BitXor | ||
syn keyword rustTrait Shl Shr Index | ||
|
||
syn keyword rustSelf self | ||
syn keyword rustBoolean true false | ||
|
||
syn keyword rustConstant Some None " option | ||
syn keyword rustConstant Left Right " either | ||
syn keyword rustConstant Ok Err " result | ||
syn keyword rustConstant Success Failure " task | ||
syn keyword rustConstant Cons Nil " list | ||
" syn keyword rustConstant empty node " tree | ||
|
||
" Constants from libc | ||
syn keyword rustConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX | ||
syn keyword rustConstant EOF SEEK_SET SEEK_CUR SEEK_END _IOFBF _IONBF | ||
syn keyword rustConstant _IOLBF BUFSIZ FOPEN_MAX FILENAME_MAX L_tmpnam | ||
syn keyword rustConstant TMP_MAX O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT | ||
syn keyword rustConstant O_EXCL O_TRUNC S_IFIFO S_IFCHR S_IFBLK S_IFDIR | ||
syn keyword rustConstant S_IFREG S_IFMT S_IEXEC S_IWRITE S_IREAD S_IRWXU | ||
syn keyword rustConstant S_IXUSR S_IWUSR S_IRUSR F_OK R_OK W_OK X_OK | ||
syn keyword rustConstant STDIN_FILENO STDOUT_FILENO STDERR_FILENO | ||
|
||
" If foo::bar changes to foo.bar, change this ("::" to "\."). | ||
" If foo::bar changes to Foo::bar, change this (first "\w" to "\u"). | ||
syn match rustModPath "\w\(\w\)*::[^<]"he=e-3,me=e-3 | ||
syn match rustModPathSep "::" | ||
|
||
syn match rustFuncCall "\w\(\w\)*("he=e-1,me=e-1 contains=rustAssert | ||
syn match rustFuncCall "\w\(\w\)*::<"he=e-3,me=e-3 contains=rustAssert " foo::<T>(); | ||
|
||
syn match rustMacro '\w\(\w\)*!' | ||
syn match rustMacro '#\w\(\w\)*' | ||
|
||
syn match rustFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn?]\|\[\^\=.[^]]*\]\)" contained | ||
syn match rustFormat display "%%" contained | ||
syn region rustString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=rustTodo,rustFormat | ||
|
||
syn region rustAttribute start="#\[" end="\]" contains=rustString | ||
|
||
" Number literals | ||
syn match rustNumber display "\<[0-9][0-9_]*\>" | ||
syn match rustNumber display "\<[0-9][0-9_]*\(u\|u8\|u16\|u32\|u64\)\>" | ||
syn match rustNumber display "\<[0-9][0-9_]*\(i8\|i16\|i32\|i64\)\>" | ||
|
||
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\>" | ||
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\(u\|u8\|u16\|u32\|u64\)\>" | ||
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\(i8\|i16\|i32\|i64\)\>" | ||
syn match rustBinNumber display "\<0b[01_]\+\>" | ||
syn match rustBinNumber display "\<0b[01_]\+\(u\|u8\|u16\|u32\|u64\)\>" | ||
syn match rustBinNumber display "\<0b[01_]\+\(i8\|i16\|i32\|i64\)\>" | ||
|
||
syn match rustFloat display "\<[0-9][0-9_]*\(f\|f32\|f64\)\>" | ||
syn match rustFloat display "\<[0-9][0-9_]*\([eE][+-]\=[0-9_]\+\)\>" | ||
syn match rustFloat display "\<[0-9][0-9_]*\([eE][+-]\=[0-9_]\+\)\(f\|f32\|f64\)\>" | ||
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\>" | ||
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\(f\|f32\|f64\)\>" | ||
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9_]\+\)\>" | ||
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9_]\+\)\(f\|f32\|f64\)\>" | ||
|
||
syn match rustCharacter "'\([^'\\]\|\\\(['nrt\\\"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'" | ||
|
||
syn region rustComment start="/\*" end="\*/" contains=rustComment,rustTodo | ||
syn region rustComment start="//" skip="\\$" end="$" contains=rustTodo keepend | ||
|
||
syn keyword rustTodo TODO FIXME XXX NB | ||
|
||
hi def link rustHexNumber rustNumber | ||
hi def link rustBinNumber rustNumber | ||
hi def link rustIdentifierPrime rustIdentifier | ||
hi def link rustTrait rustType | ||
|
||
hi def link rustFormat Special | ||
hi def link rustString String | ||
hi def link rustCharacter Character | ||
hi def link rustNumber Number | ||
hi def link rustBoolean Boolean | ||
hi def link rustConstant Constant | ||
hi def link rustSelf Constant | ||
hi def link rustFloat Float | ||
hi def link rustAssert Keyword | ||
hi def link rustKeyword Keyword | ||
hi def link rustIdentifier Identifier | ||
hi def link rustModPath Include | ||
hi def link rustFuncName Function | ||
hi def link rustComment Comment | ||
hi def link rustMacro Macro | ||
hi def link rustType Type | ||
hi def link rustTodo Todo | ||
hi def link rustAttribute PreProc | ||
|
||
" Other Suggestions: | ||
" hi rustAssert ctermfg=yellow | ||
" hi rustMacro ctermfg=magenta | ||
|
||
syn sync minlines=200 | ||
syn sync maxlines=500 | ||
|
||
let b:current_syntax = "rust" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters