33" Maintainer: Patrick Walton <[email protected] >44" Maintainer: Ben Blum <[email protected] >55" Maintainer: Chris Morgan <[email protected] >6- " Last Change: July 06 , 2014
6+ " Last Change: July 18 , 2014
77
88if version < 600
99 syntax clear
@@ -38,7 +38,7 @@ syn keyword rustKeyword for in if impl let
3838syn keyword rustKeyword loop once proc pub
3939syn keyword rustKeyword return super
4040syn keyword rustKeyword unsafe virtual while
41- syn keyword rustKeyword use nextgroup =rustModPath skipwhite skipempty
41+ syn keyword rustKeyword use nextgroup =rustModPath,rustModPathInUse skipwhite skipempty
4242" FIXME: Scoped impl's name is also fallen in this category
4343syn keyword rustKeyword mod trait struct enum type nextgroup =rustIdentifier skipwhite skipempty
4444syn keyword rustStorage mut ref static const
@@ -60,6 +60,10 @@ syn region rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlace
6060syn region rustBoxPlacementBalance start =" \[ " end =" \] " containedin =rustBoxPlacement transparent
6161" {} are handled by rustFoldBraces
6262
63+ syn region rustMacroRepeat matchgroup =rustMacroRepeatDelimiters start =" $(" end =" )" contains =TOP nextgroup =rustMacroRepeatCount
64+ syn match rustMacroRepeatCount " .\? [*+]" contained
65+ syn match rustMacroVariable " $\w\+ "
66+
6367" Reserved (but not yet used) keywords {{{2
6468syn keyword rustReservedKeyword alignof be do offsetof priv pure sizeof typeof unsized yield
6569
@@ -138,8 +142,9 @@ syn keyword rustBoolean true false
138142" If foo::bar changes to foo.bar, change this ("::" to "\.").
139143" If foo::bar changes to Foo::bar, change this (first "\w" to "\u").
140144syn match rustModPath " \w\(\w\) *::[^<]" he =e - 3 ,me =e - 3
141- syn match rustModPath " \w\(\w\) *" contained " only for 'use path;'
145+ syn match rustModPathInUse " \w\(\w\) *" contained " only for 'use path;'
142146syn match rustModPathSep " ::"
147+ " rustModPathInUse is split out from rustModPath so that :syn-include can get the group list right.
143148
144149syn match rustFuncCall " \w\(\w\) *(" he =e - 1 ,me =e - 1
145150syn match rustFuncCall " \w\(\w\) *::<" he =e - 3 ,me =e - 3 " foo::<T>();
@@ -233,6 +238,9 @@ hi def link rustBinNumber rustNumber
233238hi def link rustIdentifierPrime rustIdentifier
234239hi def link rustTrait rustType
235240
241+ hi def link rustMacroRepeatCount rustMacroRepeatDelimiters
242+ hi def link rustMacroRepeatDelimiters Macro
243+ hi def link rustMacroVariable Define
236244hi def link rustSigil StorageClass
237245hi def link rustEscape Special
238246hi def link rustEscapeUnicode rustEscape
@@ -255,6 +263,7 @@ hi def link rustReservedKeyword Error
255263hi def link rustConditional Conditional
256264hi def link rustIdentifier Identifier
257265hi def link rustCapsIdent rustIdentifier
266+ hi def link rustModPathInUse rustModPath
258267hi def link rustModPath Include
259268hi def link rustModPathSep Delimiter
260269hi def link rustFunction Function
0 commit comments