separate syntax file for better combacibility with plugins that reloads

vimrc files(such as perdirvimrc) after BufRead.
This commit is contained in:
George Ang 2011-06-18 23:56:31 +08:00
parent 1cd50482d2
commit 70ba0d60ec
2 changed files with 169 additions and 81 deletions

View File

@ -2688,9 +2688,9 @@ function! s:initNerdTreeInPlace(dir)
call s:bindMappings() call s:bindMappings()
setfiletype nerdtree setfiletype nerdtree
" syntax highlighting " syntax highlighting
if has("syntax") && exists("g:syntax_on") "if has("syntax") && exists("g:syntax_on")
call s:setupSyntaxHighlighting() "call s:setupSyntaxHighlighting()
endif "endif
call s:renderView() call s:renderView()
endfunction endfunction
@ -2919,9 +2919,9 @@ function! s:createTreeWin()
call s:bindMappings() call s:bindMappings()
setfiletype nerdtree setfiletype nerdtree
" syntax highlighting " syntax highlighting
if has("syntax") && exists("g:syntax_on") "if has("syntax") && exists("g:syntax_on")
call s:setupSyntaxHighlighting() "call s:setupSyntaxHighlighting()
endif "endif
endfunction endfunction
"FUNCTION: s:dumpHelp {{{2 "FUNCTION: s:dumpHelp {{{2
@ -3407,95 +3407,95 @@ function! s:setupStatusline()
endif endif
endfunction endfunction
"FUNCTION: s:setupSyntaxHighlighting() {{{2 "FUNCTION: s:setupSyntaxHighlighting() {{{2
function! s:setupSyntaxHighlighting() "function! s:setupSyntaxHighlighting()
"NERDTreeFlags are syntax items that should be invisible, but give clues as to ""NERDTreeFlags are syntax items that should be invisible, but give clues as to
"how things should be highlighted ""how things should be highlighted
syn match NERDTreeFlag #\~# "syn match NERDTreeFlag #\~#
syn match NERDTreeFlag #\[RO\]# "syn match NERDTreeFlag #\[RO\]#
"highlighting for the .. (up dir) line at the top of the tree ""highlighting for the .. (up dir) line at the top of the tree
execute "syn match NERDTreeUp #\\V". s:tree_up_dir_line ."#" "execute "syn match NERDTreeUp #\\V". s:tree_up_dir_line ."#"
"highlighting for the ~/+ symbols for the directory nodes ""highlighting for the ~/+ symbols for the directory nodes
syn match NERDTreeClosable #\~\<# "syn match NERDTreeClosable #\~\<#
syn match NERDTreeClosable #\~\.# "syn match NERDTreeClosable #\~\.#
syn match NERDTreeOpenable #+\<# "syn match NERDTreeOpenable #+\<#
syn match NERDTreeOpenable #+\.#he=e-1 "syn match NERDTreeOpenable #+\.#he=e-1
"highlighting for the tree structural parts ""highlighting for the tree structural parts
syn match NERDTreePart #|# "syn match NERDTreePart #|#
syn match NERDTreePart #`# "syn match NERDTreePart #`#
syn match NERDTreePartFile #[|`]-#hs=s+1 contains=NERDTreePart "syn match NERDTreePartFile #[|`]-#hs=s+1 contains=NERDTreePart
"quickhelp syntax elements ""quickhelp syntax elements
syn match NERDTreeHelpKey #" \{1,2\}[^ ]*:#hs=s+2,he=e-1 "syn match NERDTreeHelpKey #" \{1,2\}[^ ]*:#hs=s+2,he=e-1
syn match NERDTreeHelpKey #" \{1,2\}[^ ]*,#hs=s+2,he=e-1 "syn match NERDTreeHelpKey #" \{1,2\}[^ ]*,#hs=s+2,he=e-1
syn match NERDTreeHelpTitle #" .*\~#hs=s+2,he=e-1 contains=NERDTreeFlag "syn match NERDTreeHelpTitle #" .*\~#hs=s+2,he=e-1 contains=NERDTreeFlag
syn match NERDTreeToggleOn #".*(on)#hs=e-2,he=e-1 contains=NERDTreeHelpKey "syn match NERDTreeToggleOn #".*(on)#hs=e-2,he=e-1 contains=NERDTreeHelpKey
syn match NERDTreeToggleOff #".*(off)#hs=e-3,he=e-1 contains=NERDTreeHelpKey "syn match NERDTreeToggleOff #".*(off)#hs=e-3,he=e-1 contains=NERDTreeHelpKey
syn match NERDTreeHelpCommand #" :.\{-}\>#hs=s+3 "syn match NERDTreeHelpCommand #" :.\{-}\>#hs=s+3
syn match NERDTreeHelp #^".*# contains=NERDTreeHelpKey,NERDTreeHelpTitle,NERDTreeFlag,NERDTreeToggleOff,NERDTreeToggleOn,NERDTreeHelpCommand "syn match NERDTreeHelp #^".*# contains=NERDTreeHelpKey,NERDTreeHelpTitle,NERDTreeFlag,NERDTreeToggleOff,NERDTreeToggleOn,NERDTreeHelpCommand
"highlighting for readonly files ""highlighting for readonly files
syn match NERDTreeRO #.*\[RO\]#hs=s+2 contains=NERDTreeFlag,NERDTreeBookmark,NERDTreePart,NERDTreePartFile "syn match NERDTreeRO #.*\[RO\]#hs=s+2 contains=NERDTreeFlag,NERDTreeBookmark,NERDTreePart,NERDTreePartFile
"highlighting for sym links ""highlighting for sym links
syn match NERDTreeLink #[^-| `].* -> # contains=NERDTreeBookmark,NERDTreeOpenable,NERDTreeClosable,NERDTreeDirSlash "syn match NERDTreeLink #[^-| `].* -> # contains=NERDTreeBookmark,NERDTreeOpenable,NERDTreeClosable,NERDTreeDirSlash
"highlighing for directory nodes and file nodes ""highlighing for directory nodes and file nodes
syn match NERDTreeDirSlash #/# "syn match NERDTreeDirSlash #/#
syn match NERDTreeDir #[^-| `].*/# contains=NERDTreeLink,NERDTreeDirSlash,NERDTreeOpenable,NERDTreeClosable "syn match NERDTreeDir #[^-| `].*/# contains=NERDTreeLink,NERDTreeDirSlash,NERDTreeOpenable,NERDTreeClosable
syn match NERDTreeExecFile #[|` ].*\*\($\| \)# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark "syn match NERDTreeExecFile #[|` ].*\*\($\| \)# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark
syn match NERDTreeFile #|-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile "syn match NERDTreeFile #|-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile
syn match NERDTreeFile #`-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile "syn match NERDTreeFile #`-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile
syn match NERDTreeCWD #^[</].*$# "syn match NERDTreeCWD #^[</].*$#
"highlighting for bookmarks ""highlighting for bookmarks
syn match NERDTreeBookmark # {.*}#hs=s+1 "syn match NERDTreeBookmark # {.*}#hs=s+1
"highlighting for the bookmarks table ""highlighting for the bookmarks table
syn match NERDTreeBookmarksLeader #^># "syn match NERDTreeBookmarksLeader #^>#
syn match NERDTreeBookmarksHeader #^>-\+Bookmarks-\+$# contains=NERDTreeBookmarksLeader "syn match NERDTreeBookmarksHeader #^>-\+Bookmarks-\+$# contains=NERDTreeBookmarksLeader
syn match NERDTreeBookmarkName #^>.\{-} #he=e-1 contains=NERDTreeBookmarksLeader "syn match NERDTreeBookmarkName #^>.\{-} #he=e-1 contains=NERDTreeBookmarksLeader
syn match NERDTreeBookmark #^>.*$# contains=NERDTreeBookmarksLeader,NERDTreeBookmarkName,NERDTreeBookmarksHeader "syn match NERDTreeBookmark #^>.*$# contains=NERDTreeBookmarksLeader,NERDTreeBookmarkName,NERDTreeBookmarksHeader
if g:NERDChristmasTree "if g:NERDChristmasTree
hi def link NERDTreePart Special "hi def link NERDTreePart Special
hi def link NERDTreePartFile Type "hi def link NERDTreePartFile Type
hi def link NERDTreeFile Normal "hi def link NERDTreeFile Normal
hi def link NERDTreeExecFile Title "hi def link NERDTreeExecFile Title
hi def link NERDTreeDirSlash Identifier "hi def link NERDTreeDirSlash Identifier
hi def link NERDTreeClosable Type "hi def link NERDTreeClosable Type
else "else
hi def link NERDTreePart Normal "hi def link NERDTreePart Normal
hi def link NERDTreePartFile Normal "hi def link NERDTreePartFile Normal
hi def link NERDTreeFile Normal "hi def link NERDTreeFile Normal
hi def link NERDTreeClosable Title "hi def link NERDTreeClosable Title
endif "endif
hi def link NERDTreeBookmarksHeader statement "hi def link NERDTreeBookmarksHeader statement
hi def link NERDTreeBookmarksLeader ignore "hi def link NERDTreeBookmarksLeader ignore
hi def link NERDTreeBookmarkName Identifier "hi def link NERDTreeBookmarkName Identifier
hi def link NERDTreeBookmark normal "hi def link NERDTreeBookmark normal
hi def link NERDTreeHelp String "hi def link NERDTreeHelp String
hi def link NERDTreeHelpKey Identifier "hi def link NERDTreeHelpKey Identifier
hi def link NERDTreeHelpCommand Identifier "hi def link NERDTreeHelpCommand Identifier
hi def link NERDTreeHelpTitle Macro "hi def link NERDTreeHelpTitle Macro
hi def link NERDTreeToggleOn Question "hi def link NERDTreeToggleOn Question
hi def link NERDTreeToggleOff WarningMsg "hi def link NERDTreeToggleOff WarningMsg
hi def link NERDTreeDir Directory "hi def link NERDTreeDir Directory
hi def link NERDTreeUp Directory "hi def link NERDTreeUp Directory
hi def link NERDTreeCWD Statement "hi def link NERDTreeCWD Statement
hi def link NERDTreeLink Macro "hi def link NERDTreeLink Macro
hi def link NERDTreeOpenable Title "hi def link NERDTreeOpenable Title
hi def link NERDTreeFlag ignore "hi def link NERDTreeFlag ignore
hi def link NERDTreeRO WarningMsg "hi def link NERDTreeRO WarningMsg
hi def link NERDTreeBookmark Statement "hi def link NERDTreeBookmark Statement
hi def link NERDTreeCurrentNode Search "hi def link NERDTreeCurrentNode Search
endfunction "endfunction
"FUNCTION: s:stripMarkupFromLine(line, removeLeadingSpaces){{{2 "FUNCTION: s:stripMarkupFromLine(line, removeLeadingSpaces){{{2
"returns the given line with all the tree parts stripped off "returns the given line with all the tree parts stripped off

88
syntax/nerdtree.vim Normal file
View File

@ -0,0 +1,88 @@
let s:tree_up_dir_line = '.. (up a dir)'
"NERDTreeFlags are syntax items that should be invisible, but give clues as to
"how things should be highlighted
syn match NERDTreeFlag #\~#
syn match NERDTreeFlag #\[RO\]#
"highlighting for the .. (up dir) line at the top of the tree
execute "syn match NERDTreeUp #\\V". s:tree_up_dir_line ."#"
"highlighting for the ~/+ symbols for the directory nodes
syn match NERDTreeClosable #\~\<#
syn match NERDTreeClosable #\~\.#
syn match NERDTreeOpenable #+\<#
syn match NERDTreeOpenable #+\.#he=e-1
"highlighting for the tree structural parts
syn match NERDTreePart #|#
syn match NERDTreePart #`#
syn match NERDTreePartFile #[|`]-#hs=s+1 contains=NERDTreePart
"quickhelp syntax elements
syn match NERDTreeHelpKey #" \{1,2\}[^ ]*:#hs=s+2,he=e-1
syn match NERDTreeHelpKey #" \{1,2\}[^ ]*,#hs=s+2,he=e-1
syn match NERDTreeHelpTitle #" .*\~#hs=s+2,he=e-1 contains=NERDTreeFlag
syn match NERDTreeToggleOn #".*(on)#hs=e-2,he=e-1 contains=NERDTreeHelpKey
syn match NERDTreeToggleOff #".*(off)#hs=e-3,he=e-1 contains=NERDTreeHelpKey
syn match NERDTreeHelpCommand #" :.\{-}\>#hs=s+3
syn match NERDTreeHelp #^".*# contains=NERDTreeHelpKey,NERDTreeHelpTitle,NERDTreeFlag,NERDTreeToggleOff,NERDTreeToggleOn,NERDTreeHelpCommand
"highlighting for readonly files
syn match NERDTreeRO #.*\[RO\]#hs=s+2 contains=NERDTreeFlag,NERDTreeBookmark,NERDTreePart,NERDTreePartFile
"highlighting for sym links
syn match NERDTreeLink #[^-| `].* -> # contains=NERDTreeBookmark,NERDTreeOpenable,NERDTreeClosable,NERDTreeDirSlash
"highlighing for directory nodes and file nodes
syn match NERDTreeDirSlash #/#
syn match NERDTreeDir #[^-| `].*/# contains=NERDTreeLink,NERDTreeDirSlash,NERDTreeOpenable,NERDTreeClosable
syn match NERDTreeExecFile #[|` ].*\*\($\| \)# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark
syn match NERDTreeFile #|-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile
syn match NERDTreeFile #`-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile
syn match NERDTreeCWD #^[</].*$#
"highlighting for bookmarks
syn match NERDTreeBookmark # {.*}#hs=s+1
"highlighting for the bookmarks table
syn match NERDTreeBookmarksLeader #^>#
syn match NERDTreeBookmarksHeader #^>-\+Bookmarks-\+$# contains=NERDTreeBookmarksLeader
syn match NERDTreeBookmarkName #^>.\{-} #he=e-1 contains=NERDTreeBookmarksLeader
syn match NERDTreeBookmark #^>.*$# contains=NERDTreeBookmarksLeader,NERDTreeBookmarkName,NERDTreeBookmarksHeader
if exists("g:NERDChristmasTree") && g:NERDChristmasTree
hi def link NERDTreePart Special
hi def link NERDTreePartFile Type
hi def link NERDTreeFile Normal
hi def link NERDTreeExecFile Title
hi def link NERDTreeDirSlash Identifier
hi def link NERDTreeClosable Type
else
hi def link NERDTreePart Normal
hi def link NERDTreePartFile Normal
hi def link NERDTreeFile Normal
hi def link NERDTreeClosable Title
endif
hi def link NERDTreeBookmarksHeader statement
hi def link NERDTreeBookmarksLeader ignore
hi def link NERDTreeBookmarkName Identifier
hi def link NERDTreeBookmark normal
hi def link NERDTreeHelp String
hi def link NERDTreeHelpKey Identifier
hi def link NERDTreeHelpCommand Identifier
hi def link NERDTreeHelpTitle Macro
hi def link NERDTreeToggleOn Question
hi def link NERDTreeToggleOff WarningMsg
hi def link NERDTreeDir Directory
hi def link NERDTreeUp Directory
hi def link NERDTreeCWD Statement
hi def link NERDTreeLink Macro
hi def link NERDTreeOpenable Title
hi def link NERDTreeFlag ignore
hi def link NERDTreeRO WarningMsg
hi def link NERDTreeBookmark Statement
hi def link NERDTreeCurrentNode Search