blob: f5b7fdc2c6e4a366839dbc535e4359113146589d [file] [log] [blame]
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001" Language : Netrw Listing Syntax
Christian Brabandtf9ca1392024-02-19 20:37:11 +01002" Maintainer: This runtime file is looking for a new maintainer.
3" Former Maintainer: Charles E. Campbell
4" Last Change: Nov 07, 2019
5" 2024 Feb 19 by Vim Project (announce adoption)
Bram Moolenaar5ef1c6a2019-11-10 22:09:11 +01006" Version : 20
Bram Moolenaard4755bb2004-09-02 19:12:26 +00007" ---------------------------------------------------------------------
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02008if exists("b:current_syntax")
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00009 finish
10endif
11
Bram Moolenaard4755bb2004-09-02 19:12:26 +000012" ---------------------------------------------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000013" Directory List Syntax Highlighting: {{{1
Bram Moolenaara7241f52008-06-24 20:39:31 +000014syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
15syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
Bram Moolenaar578b49e2005-09-10 19:22:57 +000016
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010017syn match netrwPlain "\(\S\+ \)*\S\+" contains=netrwLink,@NoSpell
Bram Moolenaar5c736222010-01-06 20:54:52 +010018syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
19syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
Bram Moolenaar8d043172014-01-23 14:24:41 +010020syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
Bram Moolenaar5c736222010-01-06 20:54:52 +010021syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
22syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
Bram Moolenaar15146672011-10-20 22:22:38 +020023syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010024if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4')
Bram Moolenaar8d043172014-01-23 14:24:41 +010025syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010026else
27syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
28endif
Bram Moolenaar5c736222010-01-06 20:54:52 +010029syn match netrwTreeBarSpace " " contained
Bram Moolenaar578b49e2005-09-10 19:22:57 +000030
Bram Moolenaar5c736222010-01-06 20:54:52 +010031syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
32syn match netrwDateSep "/" contained
33syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
Bram Moolenaar9964e462007-05-05 17:54:07 +000034syn match netrwTimeSep ":"
Bram Moolenaar578b49e2005-09-10 19:22:57 +000035
Bram Moolenaar5c736222010-01-06 20:54:52 +010036syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
37syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
Bram Moolenaar578b49e2005-09-10 19:22:57 +000038syn match netrwSlash "/" contained
Bram Moolenaar5c736222010-01-06 20:54:52 +010039syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep
40syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat
41syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
42syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
43syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
44syn match netrwList ".*$" contained contains=netrwComma,@NoSpell
Bram Moolenaar578b49e2005-09-10 19:22:57 +000045syn match netrwComma "," contained
Bram Moolenaara6878372014-03-22 21:02:50 +010046syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,netrwQHTopic,@NoSpell keepend contained
47syn match netrwHelpCmd "\S\+\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010048syn match netrwQHTopic "([a-zA-Z &]\+)" contained skipwhite
Bram Moolenaar578b49e2005-09-10 19:22:57 +000049syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
Bram Moolenaar5c736222010-01-06 20:54:52 +010050syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
51syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010052syn match netrwLink "-->" contained skipwhite
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000053
Bram Moolenaara7241f52008-06-24 20:39:31 +000054" -----------------------------
55" Special filetype highlighting {{{1
56" -----------------------------
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010057if exists("g:netrw_special_syntax") && g:netrw_special_syntax
58 if exists("+suffixes") && &suffixes != ""
59 let suflist= join(split(&suffixes,','))
60 let suflist= escape(substitute(suflist," ",'\\|','g'),'.~')
61 exe "syn match netrwSpecFile '\\(\\S\\+ \\)*\\S*\\(".suflist."\\)\\>' contains=netrwTreeBar,@NoSpell"
Bram Moolenaar5c736222010-01-06 20:54:52 +010062 endif
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010063 syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell
64 syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell
65 if has("unix")
66 syn match netrwCoreDump "\<core\%(\.\d\+\)\=\>" contains=netrwTreeBar,@NoSpell
67 endif
68 syn match netrwLex "\(\S\+ \)*\S\+\.\%(l\|lex\)\>" contains=netrwTreeBar,@NoSpell
69 syn match netrwYacc "\(\S\+ \)*\S\+\.y\>" contains=netrwTreeBar,@NoSpell
70 syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell
71 syn match netrwDoc "\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\|docx\)\>" contains=netrwTreeBar,@NoSpell
72 syn match netrwHdr "\(\S\+ \)*\S\+\.\%(h\|hpp\)\>" contains=netrwTreeBar,@NoSpell
73 syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell
74 syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell
75 syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
76 syn match netrwPix "\c\(\S\+ \)*\S*\.\%(bmp\|fits\=\|gif\|je\=pg\|pcx\|ppc\|pgm\|png\|ppm\|psd\|rgb\|tif\|xbm\|xcf\)\>" contains=netrwTreeBar,@NoSpell
77 syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
78 syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
79 syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
80 syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
Bram Moolenaara7241f52008-06-24 20:39:31 +000081endif
82
Bram Moolenaard4755bb2004-09-02 19:12:26 +000083" ---------------------------------------------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000084" Highlighting Links: {{{1
Bram Moolenaara7241f52008-06-24 20:39:31 +000085if !exists("did_drchip_netrwlist_syntax")
Bram Moolenaar69a7cb42004-06-20 12:51:53 +000086 let did_drchip_netrwlist_syntax= 1
Bram Moolenaar5c736222010-01-06 20:54:52 +010087 hi default link netrwClassify Function
88 hi default link netrwCmdSep Delimiter
89 hi default link netrwComment Comment
90 hi default link netrwDir Directory
91 hi default link netrwHelpCmd Function
Bram Moolenaara6878372014-03-22 21:02:50 +010092 hi default link netrwQHTopic Number
Bram Moolenaar5c736222010-01-06 20:54:52 +010093 hi default link netrwHidePat Statement
94 hi default link netrwHideSep netrwComment
95 hi default link netrwList Statement
96 hi default link netrwVersion Identifier
97 hi default link netrwSymLink Question
98 hi default link netrwExe PreProc
99 hi default link netrwDateSep Delimiter
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000100
Bram Moolenaar5c736222010-01-06 20:54:52 +0100101 hi default link netrwTreeBar Special
102 hi default link netrwTimeSep netrwDateSep
103 hi default link netrwComma netrwComment
104 hi default link netrwHide netrwComment
Bram Moolenaar251e1912011-06-19 05:09:16 +0200105 hi default link netrwMarkFile TabLineSel
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100106 hi default link netrwLink Special
Bram Moolenaara7241f52008-06-24 20:39:31 +0000107
108 " special syntax highlighting (see :he g:netrw_special_syntax)
Bram Moolenaar5c736222010-01-06 20:54:52 +0100109 hi default link netrwCoreDump WarningMsg
Bram Moolenaar1d59aa12020-09-19 18:50:13 +0200110 hi default link netrwData Folded
Bram Moolenaarff034192013-04-24 18:51:19 +0200111 hi default link netrwHdr netrwPlain
112 hi default link netrwLex netrwPlain
Bram Moolenaar5c736222010-01-06 20:54:52 +0100113 hi default link netrwLib DiffChange
114 hi default link netrwMakefile DiffChange
Bram Moolenaarff034192013-04-24 18:51:19 +0200115 hi default link netrwYacc netrwPlain
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100116 hi default link netrwPix Special
117
118 hi default link netrwBak netrwGray
119 hi default link netrwCompress netrwGray
120 hi default link netrwSpecFile netrwGray
121 hi default link netrwObj netrwGray
122 hi default link netrwTags netrwGray
123 hi default link netrwTilde netrwGray
124 hi default link netrwTmp netrwGray
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000125endif
126
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100127 " set up netrwGray to be understated (but not Ignore'd or Conceal'd, as those
128 " can be hard/impossible to read). Users may override this in a colorscheme by
129 " specifying netrwGray highlighting.
130 redir => s:netrwgray
131 sil hi netrwGray
132 redir END
133 if s:netrwgray !~ 'guifg'
134 if has("gui") && has("gui_running")
135 if &bg == "dark"
136 exe "hi netrwGray gui=NONE guifg=gray30"
137 else
138 exe "hi netrwGray gui=NONE guifg=gray70"
139 endif
140 else
141 hi link netrwGray Folded
142 endif
143 endif
144
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000145" Current Syntax: {{{1
146let b:current_syntax = "netrwlist"
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000147" ---------------------------------------------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000148" vim: ts=8 fdm=marker