Fix :syn-include usage of Vim filetype.
Here’s what the Vim manual says in *:syn-include*: :sy[ntax] include [@{grouplist-name}] {file-name} All syntax items declared in the included file will have the "contained" flag added. In addition, if a group list is specified, all top-level syntax items in the included file will be added to that list. We had two rules for `rustModPath`, one `contained` and the other not. The effect was that the second (now renamed to `rustModPathInUse`) was being included in the group list, and thus that all identifiers were being highlighted as `Include`, which is definitely not what we wanted.
This commit is contained in:
parent
ca6ffac4e4
commit
0a0c6da564
1 changed files with 5 additions and 3 deletions
|
@ -3,7 +3,7 @@
|
|||
" Maintainer: Patrick Walton <pcwalton@mozilla.com>
|
||||
" Maintainer: Ben Blum <bblum@cs.cmu.edu>
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Last Change: July 06, 2014
|
||||
" Last Change: July 18, 2014
|
||||
|
||||
if version < 600
|
||||
syntax clear
|
||||
|
@ -38,7 +38,7 @@ syn keyword rustKeyword for in if impl let
|
|||
syn keyword rustKeyword loop once proc pub
|
||||
syn keyword rustKeyword return super
|
||||
syn keyword rustKeyword unsafe virtual while
|
||||
syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
|
||||
syn keyword rustKeyword use nextgroup=rustModPath,rustModPathInUse skipwhite skipempty
|
||||
" FIXME: Scoped impl's name is also fallen in this category
|
||||
syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite skipempty
|
||||
syn keyword rustStorage mut ref static const
|
||||
|
@ -142,8 +142,9 @@ syn keyword rustBoolean true false
|
|||
" If foo::bar changes to foo.bar, change this ("::" to "\.").
|
||||
" If foo::bar changes to Foo::bar, change this (first "\w" to "\u").
|
||||
syn match rustModPath "\w\(\w\)*::[^<]"he=e-3,me=e-3
|
||||
syn match rustModPath "\w\(\w\)*" contained " only for 'use path;'
|
||||
syn match rustModPathInUse "\w\(\w\)*" contained " only for 'use path;'
|
||||
syn match rustModPathSep "::"
|
||||
" rustModPathInUse is split out from rustModPath so that :syn-include can get the group list right.
|
||||
|
||||
syn match rustFuncCall "\w\(\w\)*("he=e-1,me=e-1
|
||||
syn match rustFuncCall "\w\(\w\)*::<"he=e-3,me=e-3 " foo::<T>();
|
||||
|
@ -262,6 +263,7 @@ hi def link rustReservedKeyword Error
|
|||
hi def link rustConditional Conditional
|
||||
hi def link rustIdentifier Identifier
|
||||
hi def link rustCapsIdent rustIdentifier
|
||||
hi def link rustModPathInUse rustModPath
|
||||
hi def link rustModPath Include
|
||||
hi def link rustModPathSep Delimiter
|
||||
hi def link rustFunction Function
|
||||
|
|
Loading…
Reference in a new issue