Bram Moolenaar | b0d45e7 | 2017-11-05 18:19:24 +0100 | [diff] [blame] | 1 | " Language : Netrw Listing Syntax |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 2 | " Maintainer : Charles E. Campbell |
Bram Moolenaar | 5ef1c6a | 2019-11-10 22:09:11 +0100 | [diff] [blame] | 3 | " Last change: Nov 07, 2019 |
| 4 | " Version : 20 |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 5 | " --------------------------------------------------------------------- |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 6 | if exists("b:current_syntax") |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 7 | finish |
| 8 | endif |
| 9 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 10 | " --------------------------------------------------------------------- |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 11 | " Directory List Syntax Highlighting: {{{1 |
Bram Moolenaar | a7241f5 | 2008-06-24 20:39:31 +0000 | [diff] [blame] | 12 | syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt |
| 13 | syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe |
Bram Moolenaar | 578b49e | 2005-09-10 19:22:57 +0000 | [diff] [blame] | 14 | |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 15 | syn match netrwPlain "\(\S\+ \)*\S\+" contains=netrwLink,@NoSpell |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 16 | syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell |
| 17 | syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 18 | syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 19 | syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime |
| 20 | syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell |
Bram Moolenaar | 1514667 | 2011-10-20 22:22:38 +0200 | [diff] [blame] | 21 | syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 22 | if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4') |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 23 | syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 24 | else |
| 25 | syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup |
| 26 | endif |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 27 | syn match netrwTreeBarSpace " " contained |
Bram Moolenaar | 578b49e | 2005-09-10 19:22:57 +0000 | [diff] [blame] | 28 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 29 | syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained |
| 30 | syn match netrwDateSep "/" contained |
| 31 | syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 32 | syn match netrwTimeSep ":" |
Bram Moolenaar | 578b49e | 2005-09-10 19:22:57 +0000 | [diff] [blame] | 33 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 34 | syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell |
| 35 | syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat |
Bram Moolenaar | 578b49e | 2005-09-10 19:22:57 +0000 | [diff] [blame] | 36 | syn match netrwSlash "/" contained |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 37 | syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep |
| 38 | syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat |
| 39 | syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList |
| 40 | syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList |
| 41 | syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList |
| 42 | syn match netrwList ".*$" contained contains=netrwComma,@NoSpell |
Bram Moolenaar | 578b49e | 2005-09-10 19:22:57 +0000 | [diff] [blame] | 43 | syn match netrwComma "," contained |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 44 | syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,netrwQHTopic,@NoSpell keepend contained |
| 45 | syn match netrwHelpCmd "\S\+\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 46 | syn match netrwQHTopic "([a-zA-Z &]\+)" contained skipwhite |
Bram Moolenaar | 578b49e | 2005-09-10 19:22:57 +0000 | [diff] [blame] | 47 | syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 48 | syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell |
| 49 | syn match netrwVersion "(netrw.*)" contained contains=@NoSpell |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 50 | syn match netrwLink "-->" contained skipwhite |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 51 | |
Bram Moolenaar | a7241f5 | 2008-06-24 20:39:31 +0000 | [diff] [blame] | 52 | " ----------------------------- |
| 53 | " Special filetype highlighting {{{1 |
| 54 | " ----------------------------- |
Bram Moolenaar | b0d45e7 | 2017-11-05 18:19:24 +0100 | [diff] [blame] | 55 | if 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 Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 60 | endif |
Bram Moolenaar | b0d45e7 | 2017-11-05 18:19:24 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | a7241f5 | 2008-06-24 20:39:31 +0000 | [diff] [blame] | 79 | endif |
| 80 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 81 | " --------------------------------------------------------------------- |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 82 | " Highlighting Links: {{{1 |
Bram Moolenaar | a7241f5 | 2008-06-24 20:39:31 +0000 | [diff] [blame] | 83 | if !exists("did_drchip_netrwlist_syntax") |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 84 | let did_drchip_netrwlist_syntax= 1 |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 90 | hi default link netrwQHTopic Number |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 98 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 99 | hi default link netrwTreeBar Special |
| 100 | hi default link netrwTimeSep netrwDateSep |
| 101 | hi default link netrwComma netrwComment |
| 102 | hi default link netrwHide netrwComment |
Bram Moolenaar | 251e191 | 2011-06-19 05:09:16 +0200 | [diff] [blame] | 103 | hi default link netrwMarkFile TabLineSel |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 104 | hi default link netrwLink Special |
Bram Moolenaar | a7241f5 | 2008-06-24 20:39:31 +0000 | [diff] [blame] | 105 | |
| 106 | " special syntax highlighting (see :he g:netrw_special_syntax) |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 107 | hi default link netrwCoreDump WarningMsg |
Bram Moolenaar | 1d59aa1 | 2020-09-19 18:50:13 +0200 | [diff] [blame] | 108 | hi default link netrwData Folded |
Bram Moolenaar | ff03419 | 2013-04-24 18:51:19 +0200 | [diff] [blame] | 109 | hi default link netrwHdr netrwPlain |
| 110 | hi default link netrwLex netrwPlain |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 111 | hi default link netrwLib DiffChange |
| 112 | hi default link netrwMakefile DiffChange |
Bram Moolenaar | ff03419 | 2013-04-24 18:51:19 +0200 | [diff] [blame] | 113 | hi default link netrwYacc netrwPlain |
Bram Moolenaar | b0d45e7 | 2017-11-05 18:19:24 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 123 | endif |
| 124 | |
Bram Moolenaar | b0d45e7 | 2017-11-05 18:19:24 +0100 | [diff] [blame] | 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 | |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 143 | " Current Syntax: {{{1 |
| 144 | let b:current_syntax = "netrwlist" |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 145 | " --------------------------------------------------------------------- |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 146 | " vim: ts=8 fdm=marker |