netrw.vim 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. " Language : Netrw Listing Syntax
  2. " Maintainer : Charles E. Campbell
  3. " Last change: Nov 07, 2019
  4. " Version : 20
  5. " ---------------------------------------------------------------------
  6. if exists("b:current_syntax")
  7. finish
  8. endif
  9. " ---------------------------------------------------------------------
  10. " Directory List Syntax Highlighting: {{{1
  11. syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
  12. syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
  13. syn match netrwPlain "\(\S\+ \)*\S\+" contains=netrwLink,@NoSpell
  14. syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
  15. syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
  16. syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
  17. syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
  18. syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
  19. syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
  20. if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
  21. syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
  22. else
  23. syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
  24. endif
  25. syn match netrwTreeBarSpace " " contained
  26. syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
  27. syn match netrwDateSep "/" contained
  28. syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
  29. syn match netrwTimeSep ":"
  30. syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
  31. syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
  32. syn match netrwSlash "/" contained
  33. syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep
  34. syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat
  35. syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
  36. syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
  37. syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
  38. syn match netrwList ".*$" contained contains=netrwComma,@NoSpell
  39. syn match netrwComma "," contained
  40. syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,netrwQHTopic,@NoSpell keepend contained
  41. syn match netrwHelpCmd "\S\+\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep
  42. syn match netrwQHTopic "([a-zA-Z &]\+)" contained skipwhite
  43. syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
  44. syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
  45. syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
  46. syn match netrwLink "-->" contained skipwhite
  47. " -----------------------------
  48. " Special filetype highlighting {{{1
  49. " -----------------------------
  50. if exists("g:netrw_special_syntax") && g:netrw_special_syntax
  51. if exists("+suffixes") && &suffixes != ""
  52. let suflist= join(split(&suffixes,','))
  53. let suflist= escape(substitute(suflist," ",'\\|','g'),'.~')
  54. exe "syn match netrwSpecFile '\\(\\S\\+ \\)*\\S*\\(".suflist."\\)\\>' contains=netrwTreeBar,@NoSpell"
  55. endif
  56. syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell
  57. syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell
  58. if has("unix")
  59. syn match netrwCoreDump "\<core\%(\.\d\+\)\=\>" contains=netrwTreeBar,@NoSpell
  60. endif
  61. syn match netrwLex "\(\S\+ \)*\S\+\.\%(l\|lex\)\>" contains=netrwTreeBar,@NoSpell
  62. syn match netrwYacc "\(\S\+ \)*\S\+\.y\>" contains=netrwTreeBar,@NoSpell
  63. syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell
  64. syn match netrwDoc "\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\|docx\)\>" contains=netrwTreeBar,@NoSpell
  65. syn match netrwHdr "\(\S\+ \)*\S\+\.\%(h\|hpp\)\>" contains=netrwTreeBar,@NoSpell
  66. syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell
  67. syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell
  68. syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
  69. syn match netrwPix "\c\(\S\+ \)*\S*\.\%(bmp\|fits\=\|gif\|je\=pg\|pcx\|ppc\|pgm\|png\|ppm\|psd\|rgb\|tif\|xbm\|xcf\)\>" contains=netrwTreeBar,@NoSpell
  70. syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
  71. syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
  72. syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
  73. syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
  74. endif
  75. " ---------------------------------------------------------------------
  76. " Highlighting Links: {{{1
  77. if !exists("did_drchip_netrwlist_syntax")
  78. let did_drchip_netrwlist_syntax= 1
  79. hi default link netrwClassify Function
  80. hi default link netrwCmdSep Delimiter
  81. hi default link netrwComment Comment
  82. hi default link netrwDir Directory
  83. hi default link netrwHelpCmd Function
  84. hi default link netrwQHTopic Number
  85. hi default link netrwHidePat Statement
  86. hi default link netrwHideSep netrwComment
  87. hi default link netrwList Statement
  88. hi default link netrwVersion Identifier
  89. hi default link netrwSymLink Question
  90. hi default link netrwExe PreProc
  91. hi default link netrwDateSep Delimiter
  92. hi default link netrwTreeBar Special
  93. hi default link netrwTimeSep netrwDateSep
  94. hi default link netrwComma netrwComment
  95. hi default link netrwHide netrwComment
  96. hi default link netrwMarkFile TabLineSel
  97. hi default link netrwLink Special
  98. " special syntax highlighting (see :he g:netrw_special_syntax)
  99. hi default link netrwCoreDump WarningMsg
  100. hi default link netrwData Folded
  101. hi default link netrwHdr netrwPlain
  102. hi default link netrwLex netrwPlain
  103. hi default link netrwLib DiffChange
  104. hi default link netrwMakefile DiffChange
  105. hi default link netrwYacc netrwPlain
  106. hi default link netrwPix Special
  107. hi default link netrwBak netrwGray
  108. hi default link netrwCompress netrwGray
  109. hi default link netrwSpecFile netrwGray
  110. hi default link netrwObj netrwGray
  111. hi default link netrwTags netrwGray
  112. hi default link netrwTilde netrwGray
  113. hi default link netrwTmp netrwGray
  114. endif
  115. " set up netrwGray to be understated (but not Ignore'd or Conceal'd, as those
  116. " can be hard/impossible to read). Users may override this in a colorscheme by
  117. " specifying netrwGray highlighting.
  118. redir => s:netrwgray
  119. sil hi netrwGray
  120. redir END
  121. if s:netrwgray !~ 'guifg'
  122. if has("gui") && has("gui_running")
  123. if &bg == "dark"
  124. exe "hi netrwGray gui=NONE guifg=gray30"
  125. else
  126. exe "hi netrwGray gui=NONE guifg=gray70"
  127. endif
  128. else
  129. hi link netrwGray Folded
  130. endif
  131. endif
  132. " Current Syntax: {{{1
  133. let b:current_syntax = "netrwlist"
  134. " ---------------------------------------------------------------------
  135. " vim: ts=8 fdm=marker