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