@@ -39,20 +39,25 @@ syn match rustItemPath "\(\w\|::\)\+"
39
39
40
40
syn region rustString start =+ L\= "+ skip =+ \\\\\|\\ "+ end =+ "+
41
41
42
- " integer number, or floating point number without a dot and with "f".
43
- syn case ignore
44
- syn match rustNumber display contained " \d\+\( u\= l\{ 0,2}\| ll\= u\)\> "
45
- " hex number
46
- syn match rustNumber display contained " 0x\x\+\( u\= l\{ 0,2}\| ll\= u\)\> "
47
- syn match rustFloat display contained " \d\+ f"
48
- " floating point number, with dot, optional exponent
49
- syn match rustFloat display contained " \d\+\.\d *\( e[-+]\=\d\+\)\= [fl]\= "
50
- " floating point number, starting with a dot, optional exponent
51
- syn match rustFloat display contained " \.\d\+\( e[-+]\=\d\+\)\= [fl]\=\> "
52
- " floating point number, without dot, with exponent
53
- syn match rustFloat display contained " \d\+ e[-+]\=\d\+ [fl]\=\> "
54
-
55
- syn case match
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\+\)\= "
56
61
57
62
syn match rustCharacter " '\( [^'\\ ]\|\\\( ['nrt\\\" ]\| x\x\{ 2}\| u\x\{ 4}\| U\x\{ 8}\)\) '"
58
63
@@ -61,6 +66,10 @@ syn region rustComment start="//" skip="\\$" end="$" contains=rustTodo ke
61
66
62
67
syn keyword rustTodo TODO FIXME XXX NB
63
68
69
+ hi def link rustHexNumber rustNumber
70
+ hi def link rustOctNumber rustNumber
71
+ hi def link rustBinNumber rustNumber
72
+
64
73
hi def link rustString String
65
74
hi def link rustCharacter Character
66
75
hi def link rustNumber Number
0 commit comments