nerdtree.vim 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. let s:tree_up_dir_line = '.. (up a dir)'
  2. syn match NERDTreeIgnore #\~#
  3. exec 'syn match NERDTreeIgnore #\['.g:NERDTreeGlyphReadOnly.'\]#'
  4. "highlighting for the .. (up dir) line at the top of the tree
  5. execute "syn match NERDTreeUp #\\V". s:tree_up_dir_line .'#'
  6. "quickhelp syntax elements
  7. syn match NERDTreeHelpKey #" \{1,2\}[^ ]*:#ms=s+2,me=e-1
  8. syn match NERDTreeHelpKey #" \{1,2\}[^ ]*,#ms=s+2,me=e-1
  9. syn match NERDTreeHelpTitle #" .*\~$#ms=s+2,me=e-1
  10. syn match NERDTreeToggleOn #(on)#ms=s+1,he=e-1
  11. syn match NERDTreeToggleOff #(off)#ms=e-3,me=e-1
  12. syn match NERDTreeHelpCommand #" :.\{-}\>#hs=s+3
  13. syn match NERDTreeHelp #^".*# contains=NERDTreeHelpKey,NERDTreeHelpTitle,NERDTreeIgnore,NERDTreeToggleOff,NERDTreeToggleOn,NERDTreeHelpCommand
  14. "highlighting for sym links
  15. syn match NERDTreeLinkTarget #->.*# containedin=NERDTreeDir,NERDTreeFile
  16. syn match NERDTreeLinkFile #.* ->#me=e-3 containedin=NERDTreeFile
  17. syn match NERDTreeLinkDir #.*/ ->#me=e-3 containedin=NERDTreeDir
  18. "highlighting to conceal the delimiter around the file/dir name
  19. if has('conceal')
  20. exec 'syn match NERDTreeNodeDelimiters #\%d' . char2nr(g:NERDTreeNodeDelimiter) . '# conceal containedin=ALL'
  21. setlocal conceallevel=2 concealcursor=nvic
  22. else
  23. exec 'syn match NERDTreeNodeDelimiters #\%d' . char2nr(g:NERDTreeNodeDelimiter) . '# containedin=ALL'
  24. hi! link NERDTreeNodeDelimiters Ignore
  25. endif
  26. "highlighing for directory nodes and file nodes
  27. syn match NERDTreeDirSlash #/# containedin=NERDTreeDir
  28. if g:NERDTreeDirArrowExpandable !=# ''
  29. exec 'syn match NERDTreeClosable #' . escape(g:NERDTreeDirArrowCollapsible, '~') . '\ze .*/# containedin=NERDTreeDir,NERDTreeFile'
  30. exec 'syn match NERDTreeOpenable #' . escape(g:NERDTreeDirArrowExpandable, '~') . '\ze .*/# containedin=NERDTreeDir,NERDTreeFile'
  31. let s:dirArrows = escape(g:NERDTreeDirArrowCollapsible, '~]\-').escape(g:NERDTreeDirArrowExpandable, '~]\-')
  32. exec 'syn match NERDTreeDir #[^'.s:dirArrows.' ].*/#'
  33. exec 'syn match NERDTreeExecFile #^.*'.g:NERDTreeNodeDelimiter.'\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmarkName'
  34. exec 'syn match NERDTreeFile #^[^"\.'.s:dirArrows.'] *[^'.s:dirArrows.']*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmarkName,NERDTreeExecFile'
  35. else
  36. exec 'syn match NERDTreeDir #[^'.g:NERDTreeNodeDelimiter.']\{-}/\ze\($\|'.g:NERDTreeNodeDelimiter.'\)#'
  37. exec 'syn match NERDTreeExecFile #[^'.g:NERDTreeNodeDelimiter.']\{-}'.g:NERDTreeNodeDelimiter.'\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmarkName'
  38. exec 'syn match NERDTreeFile #^.*'.g:NERDTreeNodeDelimiter.'.*[^\/]\($\|'.g:NERDTreeNodeDelimiter.'.*\)# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmarkName,NERDTreeExecFile'
  39. endif
  40. "highlighting for readonly files
  41. exec 'syn match NERDTreeRO #.*'.g:NERDTreeNodeDelimiter.'\zs.*\ze'.g:NERDTreeNodeDelimiter.'.*\['.g:NERDTreeGlyphReadOnly.'\]# contains=NERDTreeIgnore,NERDTreeBookmarkName,NERDTreeFile'
  42. exec 'syn match NERDTreeFlags #\[[^\]]*\]\ze'.g:NERDTreeNodeDelimiter.'# containedin=NERDTreeFile,NERDTreeExecFile,NERDTreeLinkFile,NERDTreeRO,NERDTreeDir'
  43. syn match NERDTreeCWD #^[</].*$#
  44. "highlighting for bookmarks
  45. syn match NERDTreeBookmarkName # {.*}#hs=s+2,he=e-1
  46. "highlighting for the bookmarks table
  47. syn match NERDTreeBookmarksLeader #^>#
  48. syn match NERDTreeBookmarksHeader #^>-\+Bookmarks-\+$# contains=NERDTreeBookmarksLeader
  49. syn match NERDTreeBookmarkName #^>.\{-} #he=e-1 contains=NERDTreeBookmarksLeader
  50. syn match NERDTreeBookmark #^>.*$# contains=NERDTreeBookmarksLeader,NERDTreeBookmarkName,NERDTreeBookmarksHeader
  51. hi def link NERDTreePart Special
  52. hi def link NERDTreePartFile Type
  53. hi def link NERDTreeExecFile Title
  54. hi def link NERDTreeDirSlash Identifier
  55. hi def link NERDTreeBookmarksHeader statement
  56. hi def link NERDTreeBookmarksLeader ignore
  57. hi def link NERDTreeBookmarkName Identifier
  58. hi def link NERDTreeBookmark normal
  59. hi def link NERDTreeHelp String
  60. hi def link NERDTreeHelpKey Identifier
  61. hi def link NERDTreeHelpCommand Identifier
  62. hi def link NERDTreeHelpTitle Macro
  63. hi def link NERDTreeToggleOn Question
  64. hi def link NERDTreeToggleOff WarningMsg
  65. hi def link NERDTreeLinkTarget Type
  66. hi def link NERDTreeLinkFile Macro
  67. hi def link NERDTreeLinkDir Macro
  68. hi def link NERDTreeDir Directory
  69. hi def link NERDTreeUp Directory
  70. hi def link NERDTreeFile Normal
  71. hi def link NERDTreeCWD Statement
  72. hi def link NERDTreeOpenable Directory
  73. hi def link NERDTreeClosable Directory
  74. hi def link NERDTreeIgnore ignore
  75. hi def link NERDTreeRO WarningMsg
  76. hi def link NERDTreeBookmark Statement
  77. hi def link NERDTreeFlags Number
  78. hi def link NERDTreeCurrentNode Search
  79. hi NERDTreeFile ctermbg=NONE guibg=NONE