xref: /vim-8.2.3635/runtime/syntax/netrw.vim (revision bb76f24a)
1" Language   : Netrw Remote-Directory Listing Syntax
2" Maintainer : Charles E. Campbell
3" Last change: Oct 06, 2014
4" Version    : 19
5" ---------------------------------------------------------------------
6
7" Syntax Clearing: {{{1
8" quit when a syntax file was already loaded
9if exists("b:current_syntax")
10 finish
11endif
12
13" ---------------------------------------------------------------------
14" Directory List Syntax Highlighting: {{{1
15syn cluster NetrwGroup		contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
16syn cluster NetrwTreeGroup	contains=netrwDir,netrwSymLink,netrwExe
17
18syn match  netrwPlain		"\(\S\+ \)*\S\+"					contains=netrwLink,@NoSpell
19syn match  netrwSpecial		"\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)"		contains=netrwClassify,@NoSpell
20syn match  netrwDir		"\.\{1,2}/"						contains=netrwClassify,@NoSpell
21syn match  netrwDir		"\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)"			contains=netrwClassify,@NoSpell
22syn match  netrwSizeDate	"\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s"	skipwhite	contains=netrwDateSep,@NoSpell	nextgroup=netrwTime
23syn match  netrwSymLink		"\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)"  			contains=netrwClassify,@NoSpell
24syn match  netrwExe		"\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" 		contains=netrwClassify,@NoSpell
25if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
26syn match  netrwTreeBar		"^\%([-+|│] \)\+"					contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
27else
28syn match  netrwTreeBar		"^\%([-+|] \)\+"					contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
29endif
30syn match  netrwTreeBarSpace	" "					contained
31
32syn match  netrwClassify	"[*=|@/]\ze\%(\s\{2,}\|$\)"		contained
33syn match  netrwDateSep		"/"					contained
34syn match  netrwTime		"\d\{1,2}:\d\{2}:\d\{2}"		contained	contains=netrwTimeSep
35syn match  netrwTimeSep		":"
36
37syn match  netrwComment		'".*\%(\t\|$\)'						contains=@NetrwGroup,@NoSpell
38syn match  netrwHide		'^"\s*\(Hid\|Show\)ing:'	skipwhite		contains=@NoSpell		nextgroup=netrwHidePat
39syn match  netrwSlash		"/"				contained
40syn match  netrwHidePat		"[^,]\+"			contained skipwhite	contains=@NoSpell		nextgroup=netrwHideSep
41syn match  netrwHideSep		","				contained skipwhite					nextgroup=netrwHidePat
42syn match  netrwSortBy		"Sorted by"			contained transparent skipwhite				nextgroup=netrwList
43syn match  netrwSortSeq		"Sort sequence:"		contained transparent skipwhite			 	nextgroup=netrwList
44syn match  netrwCopyTgt		"Copy/Move Tgt:"		contained transparent skipwhite				nextgroup=netrwList
45syn match  netrwList		".*$"				contained		contains=netrwComma,@NoSpell
46syn match  netrwComma		","				contained
47syn region netrwQuickHelp	matchgroup=Comment start="Quick Help:\s\+" end="$"	contains=netrwHelpCmd,netrwQHTopic,@NoSpell	keepend contained
48syn match  netrwHelpCmd		"\S\+\ze:"			contained skipwhite	contains=@NoSpell		nextgroup=netrwCmdSep
49syn match  netrwQHTopic		"([a-zA-Z &]\+)"		contained skipwhite
50syn match  netrwCmdSep		":"				contained nextgroup=netrwCmdNote
51syn match  netrwCmdNote		".\{-}\ze  "			contained		contains=@NoSpell
52syn match  netrwVersion		"(netrw.*)"			contained		contains=@NoSpell
53syn match  netrwLink		"-->"				contained skipwhite
54
55" -----------------------------
56" Special filetype highlighting {{{1
57" -----------------------------
58if exists("g:netrw_special_syntax") && netrw_special_syntax
59 syn match netrwBak		"\(\S\+ \)*\S\+\.bak\>"				contains=netrwTreeBar,@NoSpell
60 syn match netrwCompress	"\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>"	contains=netrwTreeBar,@NoSpell
61 if has("unix")
62  syn match netrwCoreDump	"\<core\%(\.\d\+\)\=\>"				contains=netrwTreeBar,@NoSpell
63 endif
64 syn match netrwLex		"\(\S\+ \)*\S\+\.\%(l\|lex\)\>"			contains=netrwTreeBar,@NoSpell
65 syn match netrwYacc		"\(\S\+ \)*\S\+\.y\>"				contains=netrwTreeBar,@NoSpell
66 syn match netrwData		"\(\S\+ \)*\S\+\.dat\>"				contains=netrwTreeBar,@NoSpell
67 syn match netrwDoc		"\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\)"	contains=netrwTreeBar,@NoSpell
68 syn match netrwHdr		"\(\S\+ \)*\S\+\.\%(h\|hpp\)\>"			contains=netrwTreeBar,@NoSpell
69 syn match netrwLib		"\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>"		contains=netrwTreeBar,@NoSpell
70 syn match netrwMakeFile	"\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>"	contains=netrwTreeBar,@NoSpell
71 syn match netrwObj		"\(\S\+ \)*\S*\.\%(o\|obj\)\>"			contains=netrwTreeBar,@NoSpell
72 syn match netrwTags		"\<\(ANmenu\|ANtags\)\>"			contains=netrwTreeBar,@NoSpell
73 syn match netrwTags    	"\<tags\>"					contains=netrwTreeBar,@NoSpell
74 syn match netrwTilde		"\(\S\+ \)*\S\+\~\*\=\>"			contains=netrwTreeBar,@NoSpell
75 syn match netrwTmp		"\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>"	contains=netrwTreeBar,@NoSpell
76endif
77
78" ---------------------------------------------------------------------
79" Highlighting Links: {{{1
80if !exists("did_drchip_netrwlist_syntax")
81 let did_drchip_netrwlist_syntax= 1
82 hi default link netrwClassify	Function
83 hi default link netrwCmdSep	Delimiter
84 hi default link netrwComment	Comment
85 hi default link netrwDir	Directory
86 hi default link netrwHelpCmd	Function
87 hi default link netrwQHTopic	Number
88 hi default link netrwHidePat	Statement
89 hi default link netrwHideSep	netrwComment
90 hi default link netrwList	Statement
91 hi default link netrwVersion	Identifier
92 hi default link netrwSymLink	Question
93 hi default link netrwExe	PreProc
94 hi default link netrwDateSep	Delimiter
95
96 hi default link netrwTreeBar	Special
97 hi default link netrwTimeSep	netrwDateSep
98 hi default link netrwComma	netrwComment
99 hi default link netrwHide	netrwComment
100 hi default link netrwMarkFile	TabLineSel
101 hi default link netrwLink	Special
102
103 " special syntax highlighting (see :he g:netrw_special_syntax)
104 hi default link netrwBak	NonText
105 hi default link netrwCompress	Folded
106 hi default link netrwCoreDump	WarningMsg
107 hi default link netrwData	DiffChange
108 hi default link netrwHdr	netrwPlain
109 hi default link netrwLex	netrwPlain
110 hi default link netrwLib	DiffChange
111 hi default link netrwMakefile	DiffChange
112 hi default link netrwObj	Folded
113 hi default link netrwTilde	Folded
114 hi default link netrwTmp	Folded
115 hi default link netrwTags	Folded
116 hi default link netrwYacc	netrwPlain
117endif
118
119" Current Syntax: {{{1
120let   b:current_syntax = "netrwlist"
121" ---------------------------------------------------------------------
122" vim: ts=8 fdm=marker
123