Skip to content

Commit

Permalink
vim: Update syntax for number/float literals
Browse files Browse the repository at this point in the history
  • Loading branch information
tychosci committed May 3, 2012
1 parent 94b0edc commit 1e44e04
Showing 1 changed file with 23 additions and 14 deletions.
37 changes: 23 additions & 14 deletions src/etc/vim/syntax/rust.vim
Expand Up @@ -39,20 +39,25 @@ syn match rustItemPath "\(\w\|::\)\+"

syn region rustString start=+L\="+ skip=+\\\\\|\\"+ end=+"+

"integer number, or floating point number without a dot and with "f".
syn case ignore
syn match rustNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
"hex number
syn match rustNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
syn match rustFloat display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match rustFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match rustFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match rustFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"

syn case match
" Number/Float literals
syn match rustNumber display "\<\d\>"
syn match rustNumber display "\<[1-9]\d\+\>"
syn match rustNumber display "\<\d\+\(u\|u8\|u16\|u32\|u64\)\>"
syn match rustNumber display "\<\d\+\(i8\|i16\|i32\|i64\)\>"

syn match rustHexNumber display "\<0[xX]\x\+\>"
syn match rustHexNumber display "\<0[xX]\x\+_\(u\|u8\|u16\|u32\|u64\)\>"
syn match rustHexNumber display "\<0[xX]\x\+_\(i8\|i16\|i32\|i64\)\>"
syn match rustOctNumber display "\<0\o\+\>"
syn match rustOctNumber display "\<0\o\+_\(u\|u8\|u16\|u32\|u64\)\>"
syn match rustOctNumber display "\<0\o\+_\(i8\|i16\|i32\|i64\)\>"
syn match rustBinNumber display "\<0[bB][01]\+\>"
syn match rustBinNumber display "\<0[bB][01]\+_\(u\|u8\|u16\|u32\|u64\)\>"
syn match rustBinNumber display "\<0[bB][01]\+_\(i8\|i16\|i32\|i64\)\>"

syn match rustFloat display "\.\d\+\%([eE][+-]\=\d\+\)\=\>"
syn match rustFloat display "\<\d\+[eE][+-]\=\d\+\>"
syn match rustFloat display "\<\d\+\.\d*\%([eE][+-]\=\d\+\)\="

syn match rustCharacter "'\([^'\\]\|\\\(['nrt\\\"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'"

Expand All @@ -61,6 +66,10 @@ syn region rustComment start="//" skip="\\$" end="$" contains=rustTodo ke

syn keyword rustTodo TODO FIXME XXX NB

hi def link rustHexNumber rustNumber
hi def link rustOctNumber rustNumber
hi def link rustBinNumber rustNumber

hi def link rustString String
hi def link rustCharacter Character
hi def link rustNumber Number
Expand Down

0 comments on commit 1e44e04

Please sign in to comment.