xref: /vim-8.2.3635/runtime/syntax/netrw.vim (revision 5f1920ad)
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