about summary refs log tree commit diff
path: root/src/etc
diff options
context:
space:
mode:
authorTycho Sci <tychosci@gmail.com>2012-05-03 17:12:46 +0900
committerTycho Sci <tychosci@gmail.com>2012-05-03 17:12:46 +0900
commit1e44e04a9dc0f801492ea1630d6a42e9df07af99 (patch)
tree7bcf64095600e51cc7b6211830f64b21eb808dd3 /src/etc
parent94b0edc606112ddc71283bdcb5cb826dcbc3d167 (diff)
downloadrust-1e44e04a9dc0f801492ea1630d6a42e9df07af99.tar.gz
rust-1e44e04a9dc0f801492ea1630d6a42e9df07af99.zip
vim: Update syntax for number/float literals
Diffstat (limited to 'src/etc')
-rw-r--r--src/etc/vim/syntax/rust.vim37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/etc/vim/syntax/rust.vim b/src/etc/vim/syntax/rust.vim
index e89ad554c99..81936b29d08 100644
--- a/src/etc/vim/syntax/rust.vim
+++ b/src/etc/vim/syntax/rust.vim
@@ -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}\)\)'"
 
@@ -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