blob: 1f02bbef7809558c860fe20a02bb4285f56f771c [file] [log] [blame]
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001" Language : Netrw Listing Syntax
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002" Maintainer : Charles E. Campbell
Bram Moolenaar5ef1c6a2019-11-10 22:09:11 +01003" Last change: Nov 07, 2019
4" Version : 20
Bram Moolenaard4755bb2004-09-02 19:12:26 +00005" ---------------------------------------------------------------------
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02006if exists("b:current_syntax")
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00007 finish
8endif
9
Bram Moolenaard4755bb2004-09-02 19:12:26 +000010" ---------------------------------------------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000011" Directory List Syntax Highlighting: {{{1
Bram Moolenaara7241f52008-06-24 20:39:31 +000012syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
13syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
Bram Moolenaar578b49e2005-09-10 19:22:57 +000014
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010015syn match netrwPlain "\(\S\+ \)*\S\+" contains=netrwLink,@NoSpell
Bram Moolenaar5c736222010-01-06 20:54:52 +010016syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
17syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
Bram Moolenaar8d043172014-01-23 14:24:41 +010018syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
Bram Moolenaar5c736222010-01-06 20:54:52 +010019syn 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
Bram Moolenaar15146672011-10-20 22:22:38 +020021syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010022if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
Bram Moolenaar8d043172014-01-23 14:24:41 +010023syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010024else
25syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
26endif
Bram Moolenaar5c736222010-01-06 20:54:52 +010027syn match netrwTreeBarSpace " " contained
Bram Moolenaar578b49e2005-09-10 19:22:57 +000028
Bram Moolenaar5c736222010-01-06 20:54:52 +010029syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
30syn match netrwDateSep "/" contained
31syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
Bram Moolenaar9964e462007-05-05 17:54:07 +000032syn match netrwTimeSep ":"
Bram Moolenaar578b49e2005-09-10 19:22:57 +000033
Bram Moolenaar5c736222010-01-06 20:54:52 +010034syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
35syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
Bram Moolenaar578b49e2005-09-10 19:22:57 +000036syn match netrwSlash "/" contained
Bram Moolenaar5c736222010-01-06 20:54:52 +010037syn 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
Bram Moolenaar578b49e2005-09-10 19:22:57 +000043syn match netrwComma "," contained
Bram Moolenaara6878372014-03-22 21:02:50 +010044syn 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
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010046syn match netrwQHTopic "([a-zA-Z &]\+)" contained skipwhite
Bram Moolenaar578b49e2005-09-10 19:22:57 +000047syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
Bram Moolenaar5c736222010-01-06 20:54:52 +010048syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
49syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010050syn match netrwLink "-->" contained skipwhite
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000051
Bram Moolenaara7241f52008-06-24 20:39:31 +000052" -----------------------------
53" Special filetype highlighting {{{1
54" -----------------------------
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010055if 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"
Bram Moolenaar5c736222010-01-06 20:54:52 +010060 endif
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010061 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
Bram Moolenaara7241f52008-06-24 20:39:31 +000079endif
80
Bram Moolenaard4755bb2004-09-02 19:12:26 +000081" ---------------------------------------------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000082" Highlighting Links: {{{1
Bram Moolenaara7241f52008-06-24 20:39:31 +000083if !exists("did_drchip_netrwlist_syntax")
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000084 let did_drchip_netrwlist_syntax= 1
Bram Moolenaar5c736222010-01-06 20:54:52 +010085 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
Bram Moolenaara6878372014-03-22 21:02:50 +010090 hi default link netrwQHTopic Number
Bram Moolenaar5c736222010-01-06 20:54:52 +010091 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
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000098
Bram Moolenaar5c736222010-01-06 20:54:52 +010099 hi default link netrwTreeBar Special
100 hi default link netrwTimeSep netrwDateSep
101 hi default link netrwComma netrwComment
102 hi default link netrwHide netrwComment
Bram Moolenaar251e1912011-06-19 05:09:16 +0200103 hi default link netrwMarkFile TabLineSel
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100104 hi default link netrwLink Special
Bram Moolenaara7241f52008-06-24 20:39:31 +0000105
106 " special syntax highlighting (see :he g:netrw_special_syntax)
Bram Moolenaar5c736222010-01-06 20:54:52 +0100107 hi default link netrwCoreDump WarningMsg
Bram Moolenaar1d59aa12020-09-19 18:50:13 +0200108 hi default link netrwData Folded
Bram Moolenaarff034192013-04-24 18:51:19 +0200109 hi default link netrwHdr netrwPlain
110 hi default link netrwLex netrwPlain
Bram Moolenaar5c736222010-01-06 20:54:52 +0100111 hi default link netrwLib DiffChange
112 hi default link netrwMakefile DiffChange
Bram Moolenaarff034192013-04-24 18:51:19 +0200113 hi default link netrwYacc netrwPlain
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100114 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
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000123endif
124
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100125 " 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
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000143" Current Syntax: {{{1
144let b:current_syntax = "netrwlist"
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000145" ---------------------------------------------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000146" vim: ts=8 fdm=marker