Skip to content

Commit 16848be

Browse files
committed
vim: Fix syntax of number literals
To follow [3.5.2.2 Number literals] in the reference manual.
1 parent bbf73bd commit 16848be

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

src/etc/vim/syntax/rust.vim

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,25 +39,25 @@ syn match rustItemPath "\(\w\|::\)\+"
3939

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

42-
" Number/Float literals
43-
syn match rustNumber display "\<\d\>"
44-
syn match rustNumber display "\<[1-9]\d\+\>"
45-
syn match rustNumber display "\<\d\+\(u\|u8\|u16\|u32\|u64\)\>"
46-
syn match rustNumber display "\<\d\+\(i8\|i16\|i32\|i64\)\>"
47-
48-
syn match rustHexNumber display "\<0[xX]\x\+\>"
49-
syn match rustHexNumber display "\<0[xX]\x\+_\(u\|u8\|u16\|u32\|u64\)\>"
50-
syn match rustHexNumber display "\<0[xX]\x\+_\(i8\|i16\|i32\|i64\)\>"
51-
syn match rustOctNumber display "\<0\o\+\>"
52-
syn match rustOctNumber display "\<0\o\+_\(u\|u8\|u16\|u32\|u64\)\>"
53-
syn match rustOctNumber display "\<0\o\+_\(i8\|i16\|i32\|i64\)\>"
54-
syn match rustBinNumber display "\<0[bB][01]\+\>"
55-
syn match rustBinNumber display "\<0[bB][01]\+_\(u\|u8\|u16\|u32\|u64\)\>"
56-
syn match rustBinNumber display "\<0[bB][01]\+_\(i8\|i16\|i32\|i64\)\>"
57-
58-
syn match rustFloat display "\.\d\+\%([eE][+-]\=\d\+\)\=\>"
59-
syn match rustFloat display "\<\d\+[eE][+-]\=\d\+\>"
60-
syn match rustFloat display "\<\d\+\.\d*\%([eE][+-]\=\d\+\)\="
42+
" Number literals
43+
syn match rustNumber display "\<[0-9][0-9_]*\>"
44+
syn match rustNumber display "\<[0-9][0-9_]*\(u\|u8\|u16\|u32\|u64\)\>"
45+
syn match rustNumber display "\<[0-9][0-9_]*\(i8\|i16\|i32\|i64\)\>"
46+
47+
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\>"
48+
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\(u\|u8\|u16\|u32\|u64\)\>"
49+
syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\(i8\|i16\|i32\|i64\)\>"
50+
syn match rustBinNumber display "\<0b[01_]\+\>"
51+
syn match rustBinNumber display "\<0b[01_]\+\(u\|u8\|u16\|u32\|u64\)\>"
52+
syn match rustBinNumber display "\<0b[01_]\+\(i8\|i16\|i32\|i64\)\>"
53+
54+
syn match rustFloat display "\<[0-9][0-9_]*\(f\|f32\|f64\)\>"
55+
syn match rustFloat display "\<[0-9][0-9_]*\([eE][+-]\=[0-9_]\+\)\>"
56+
syn match rustFloat display "\<[0-9][0-9_]*\([eE][+-]\=[0-9_]\+\)\(f\|f32\|f64\)\>"
57+
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\>"
58+
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\(f\|f32\|f64\)\>"
59+
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9_]\+\)\>"
60+
syn match rustFloat display "\<[0-9][0-9_]*\.[0-9_]\+\%([eE][+-]\=[0-9_]\+\)\(f\|f32\|f64\)\>"
6161

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

@@ -67,7 +67,6 @@ syn region rustComment start="//" skip="\\$" end="$" contains=rustTodo ke
6767
syn keyword rustTodo TODO FIXME XXX NB
6868

6969
hi def link rustHexNumber rustNumber
70-
hi def link rustOctNumber rustNumber
7170
hi def link rustBinNumber rustNumber
7271

7372
hi def link rustString String

0 commit comments

Comments
 (0)