runtime(vim): Update base-syntax and generator, match all default highlight groups
Commit: https://github.com/vim/vim/commit/c233c2e6a54778e034d62473e48421f25b2f5069 Author: Doug Kearns <dougkea...@gmail.com> Date: Thu Jul 3 20:57:03 2025 +0200 runtime(vim): Update base-syntax and generator, match all default highlight groups - Match Conceal, ComplMatchIns, MsgArea, Terminal, and User[1-9] highlight groups. - Generate the vimGroup syntax group from runtime/syncolor.vim. - Match :SynColor and :SynLink as special user commands. fixes #17467 closes: #17556 Signed-off-by: Doug Kearns <dougkea...@gmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/syntax/generator/gen_syntax_vim.vim b/runtime/syntax/generator/gen_syntax_vim.vim index af1b9b492..78c71057e 100644 --- a/runtime/syntax/generator/gen_syntax_vim.vim +++ b/runtime/syntax/generator/gen_syntax_vim.vim @@ -1,7 +1,7 @@ " Vim syntax file generator " Language: Vim script " Maintainer: Hirohito Higashi (h_east) -" Last Change: 2025 Jun 24 +" Last Change: 2025 Jul 03 let s:keepcpo= &cpo set cpo&vim @@ -517,6 +517,33 @@ function s:parse_vim_function(li) endtry endfunc +" ------------------------------------------------------------------------------ +function s:parse_vim_group(li) + try + let file_name = $VIM_SRCDIR . '/../runtime/syntax/syncolor.vim' + let item = {} + + new + exec 'read ' . file_name + g!/^\s*Syn\%(Color\|Link\)/d + %s/^\s*Syn\%(Color\|Link\)\s\+\(\w\+\).*/ / + + for group in getline(1, line('$'))->sort()->uniq() + let item.name = group + call add(a:li, copy(item)) + endfor + + quit! + + if empty(a:li) + throw 'group is empty' + endif + catch /.*/ + call s:err_gen('') + throw 'exit' + endtry +endfunc + " ------------------------------------------------------------------------------ function s:parse_vim_hlgroup(li) try @@ -568,15 +595,19 @@ function s:parse_vim_hlgroup(li) " The following highlight groups cannot be extracted from highlight.c " (TODO: extract from HIGHLIGHT_INIT ?) - let item.name = 'LineNrAbove' - let item.type = 'both' - call add(a:li, copy(item)) + for group in ['ComplMatchIns', 'LineNrAbove', 'LineNrBelow', 'MsgArea', 'Terminal'] + let item.name = group + let item.type = 'both' + call add(a:li, copy(item)) + endfor - let item.name = 'LineNrBelow' - let item.type = 'both' - call add(a:li, copy(item)) + for n in range(1, 9) + let item.name = 'User' .. n + let item.type = 'both' + call add(a:li, copy(item)) + endfor - " "Conceal" is an option and cannot be used as keyword, so remove it. + " "Conceal" is a :syn option and cannot be used as keyword, so remove it. " (Separately specified as 'syn match' in vim.vim.base). call filter(a:li, {idx, val -> val.name !=# 'Conceal'}) @@ -799,6 +830,11 @@ function s:update_syntax_vim_file(vim_info) let lnum = s:search_and_check('vimAutoEvent', base_fname, str_info) let lnum = s:append_syn_any(lnum, str_info, li) + " vimGroup + let li = a:vim_info.group + let lnum = s:search_and_check('vimGroup', base_fname, str_info) + let lnum = s:append_syn_any(lnum, str_info, li) + " vimHLGroup let li = a:vim_info.hlgroup let lnum = s:search_and_check('vimHLGroup', base_fname, str_info) @@ -1001,6 +1037,7 @@ try let s:vim_info.cmd = [] let s:vim_info.event = [] let s:vim_info.func = [] + let s:vim_info.group = [] let s:vim_info.hlgroup = [] let s:vim_info.compl_name = [] let s:vim_info.addr_name = [] @@ -1013,6 +1050,7 @@ try silent call s:parse_vim_command(s:vim_info.cmd) silent call s:parse_vim_event(s:vim_info.event) silent call s:parse_vim_function(s:vim_info.func) + silent call s:parse_vim_group(s:vim_info.group) silent call s:parse_vim_hlgroup(s:vim_info.hlgroup) silent call s:parse_vim_complete_name(s:vim_info.compl_name) silent call s:parse_vim_addr_name(s:vim_info.addr_name) diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base index e01e5f9d0..08ddd1161 100644 --- a/runtime/syntax/generator/vim.vim.base +++ b/runtime/syntax/generator/vim.vim.base @@ -88,7 +88,7 @@ syn keyword vimAutoEvent contained User skipwhite nextgroup=vimUserAutoEvent syn match vimUserAutoEvent contained "\<\h\w*\>" skipwhite nextgroup=vimUserAutoEventSep,vimAutocmdMod,vimAutocmdBlock " Highlight commonly used Groupnames {{{2 -syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo +" GEN_SYN_VIM: vimGroup, START_STR='syn keyword vimGroup contained', END_STR='' " Default highlighting groups {{{2 " GEN_SYN_VIM: vimHLGroup, START_STR='syn keyword vimHLGroup contained', END_STR='' @@ -230,7 +230,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSynColor,vimSynLink,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var syn match vimCmdSep "\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1 @@ -1423,7 +1423,13 @@ syn match vimSynMenuPath contained ".*\ze:" nextgroup=vimSynMenuColon contains=v syn match vimSynMenuColon contained ":" nextgroup=vimSynMenuName syn match vimSynMenuName contained "\w\+" -syn cluster vimExUserCmdList contains=vimCompilerSet,vimSynMenu +" runtime/syntax/syncolor.vim +syn match vimSynColor "\<SynColor\>" skipwhite nextgroup=vimSynColorGroup +syn match vimSynColorGroup contained "\<\h\w*\>" skipwhite nextgroup=vimHiKeyList contains=vimGroup +syn match vimSynLink "\<SynLink\>" skipwhite nextgroup=vimSynLinkGroup +syn match vimSynLinkGroup contained "\<\h\w*\>" skipwhite nextgroup=vimGroup contains=vimGroup + +syn cluster vimExUserCmdList contains=vimCompilerSet,vimSynColor,vimSynLink,vimSynMenu " Errors And Warnings: {{{2 " ==================== @@ -1671,8 +1677,9 @@ endif syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster syn match vimHiBang contained " \@1<=!" skipwhite nextgroup=@vimHighlightCluster -syn match vimHiGroup contained "\i\+" syn case ignore +" Conceal is a generated low-priority match +syn match vimHiGroup contained "\%(\<Conceal\>\)\@!\i\+" syn keyword vimHiNone contained NONE syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl underdashed underdotted underdouble syn keyword vimFgBgAttrib contained none bg background fg foreground @@ -2499,6 +2506,8 @@ if !exists("skip_vim_syntax_inits") hi def link vim9Vim9Script vimCommand hi def link vimCompilerSet vimCommand + hi def link vimSynColor vimCommand + hi def link vimSynLink vimCommand hi def link vimSynMenu vimCommand hi def link vimSynMenuPath vimMenuName endif diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_00.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_00.dump index fb3331452..e58e4b0c8 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_highlight_00.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_00.dump @@ -1,20 +1,20 @@ >"+0#0000e05#ffffff0| |V|i|m| |:|h|i|g|h|l|i|g|h|t| |c|o|m@1|a|n|d| >+0#0000000&@50 +|"+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|H|i|G|r|o|u|p| |T|o|d|o| +0#0000000&@34 +@75 @75 |"+0#0000e05&| |l|i|s|t| +0#0000000&@68 +@75 |h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&@65 |h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@57 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|n|c|e|a|l| +0#0000000&@57 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@56 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@61 +@75 @75 |"+0#0000e05&| |r|e|s|e|t| +0#0000000&@67 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&@59 @75 -|"+0#0000e05&| |d|i|s|a|b|l|e| +0#0000000&@65 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@51 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@50 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|N+0#00e0003&|O|N|E| +0#0000000&@52 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&@59 @75 -|"+0#0000e05&| |a|d@1|/|m|o|d|i|f|y| +0#0000000&@62 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|c+0#00e0003&|t|e|r|m|=+0#0000000&|u+0#e000e06&|n|d|e|r|l|i|n|e| +0#0000000&@41 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@39 @75 -|"+0#0000e05&| |l|i|n|k| +0#0000000&@68 +|"+0#0000e05&| |d|i|s|a|b|l|e| +0#0000000&@65 @57|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_01.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_01.dump index 6454f5561..6a593e774 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_highlight_01.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_01.dump @@ -1,20 +1,20 @@ -| +0&#ffffff0@74 -|"+0#0000e05&| |a|d@1|/|m|o|d|i|f|y| +0#0000000&@62 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|c+0#00e0003&|t|e|r|m|=+0#0000000&|u+0#e000e06&|n|d|e|r|l|i|n|e| +0#0000000&@41 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@39 +|"+0#0000e05#ffffff0| |r|e|s|e|t| +0#0000000&@67 +@75 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&@59 +@75 +@75 +>"+0#0000e05&| |d|i|s|a|b|l|e| +0#0000000&@65 @75 ->"+0#0000e05&| |l|i|n|k| +0#0000000&@68 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F|o@1| |C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@48 -|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F|o@1| |C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@47 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F|o@1| |N+0#00e0003&|O|N|E| +0#0000000&@51 -|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F|o@1| |N+0#00e0003&|O|N|E| +0#0000000&@50 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F|o@1| |E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@47 -|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F|o@1| |E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@46 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@51 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|C+0#00e0003&|o|n|c|e|a|l| +0#0000000&@51 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@50 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@55 @75 -|"+0#0000e05&| |d|e|f|a|u|l|t| |l|i|n|k| +0#0000000&@60 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@40 -|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@39 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |N+0#00e0003&|O|N|E| +0#0000000&@43 -|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |N+0#00e0003&|O|N|E| +0#0000000&@42 -|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@39 -@57|1|9|,|1| @9|3|1|%| +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|N+0#00e0003&|O|N|E| +0#0000000&@52 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|n|c|e|a|l| +0#0000000&|N+0#00e0003&|O|N|E| +0#0000000&@52 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&|N+0#00e0003&|O|N|E| +0#0000000&@51 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|N+0#00e0003&|O|N|E| +0#0000000&@56 +@75 +@75 +|"+0#0000e05&| |a|d@1|/|m|o|d|i|f|y| +0#0000000&@62 +@57|1|9|,|1| @9|1|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_02.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_02.dump index 3c71c7c6e..a06876473 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_highlight_02.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_02.dump @@ -1,20 +1,20 @@ -|h+0#af5f00255#ffffff0|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@39 -|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F|o@1| |E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@38 +|"+0#0000e05#ffffff0| |a|d@1|/|m|o|d|i|f|y| +0#0000000&@62 @75 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|c+0#00e0003&|t|e|r|m|=+0#0000000&|u+0#e000e06&|n|d|e|r|l|i|n|e| +0#0000000&@41 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|C+0#00e0003&|o|n|c|e|a|l| +0#0000000&|c+0#00e0003&|t|e|r|m|=+0#0000000&|u+0#e000e06&|n|d|e|r|l|i|n|e| +0#0000000&@41 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&|c+0#00e0003&|t|e|r|m|=+0#0000000&|u+0#e000e06&|n|d|e|r|l|i|n|e| +0#0000000&@40 +>h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|c+0#00e0003&|t|e|r|m|=+0#0000000&|u+0#e000e06&|n|d|e|r|l|i|n|e| +0#0000000&@45 @75 -|"+0#0000e05&| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |a|n|d| |c|o|m@1|a|n|d| |s|e|p|a|r|a|t|o|r| +0#0000000&@33 -> @74 -|h+0#af5f00255&|i| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@64 -@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 -@6|\+0#e000e06&| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@57 -@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 -@6|\+0#e000e06&| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|C+0#e000002&|y|a|n| +0#0000000&@54 -@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|f|g|=+0#0000000&|#+0#e000002&|8|0|a|0|f@1| +0#0000000&@53 -@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@58 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@39 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|C+0#00e0003&|o|n|c|e|a|l| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@39 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@38 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@42 @75 -|h+0#af5f00255&|i| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@64 -@6|\+0#e000e06&| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@57 -@6|\+0#e000e06&| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|C+0#e000002&|y|a|n| +0#0000000&@54 -@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|f|g|=+0#0000000&|#+0#e000002&|8|0|a|0|f@1| +0#0000000&@53 -@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@45 -@57|3|7|,|0|-|1| @7|7|5|%| +@75 +|"+0#0000e05&| |l|i|n|k| +0#0000000&@68 +@75 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@48 +|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@47 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|N+0#00e0003&|O|N|E| +0#0000000&@51 +|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|N+0#00e0003&|O|N|E| +0#0000000&@50 +@57|3|7|,|1| @9|3|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_03.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_03.dump index e30644389..d82e771d6 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_highlight_03.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_03.dump @@ -1,20 +1,20 @@ -| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@45 +|h+0#af5f00255#ffffff0|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|N+0#00e0003&|O|N|E| +0#0000000&@50 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@47 +|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|l+0#00e0003&|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@46 @75 -|h+0#af5f00255&|i| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|C+0#e000002&|y|a|n| +0#0000000&|g+0#00e0003&|u|i|f|g|=+0#0000000&|#+0#e000002&|8|0|a|0|f@1| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@5 @75 -|h+0#af5f00255&|i| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&@59 -@6>\+0#e000e06&| +0#0000000&|F|o@1| @63 -@6|\+0#e000e06&| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@59 +>"+0#0000e05&| |d|e|f|a|u|l|t| |l|i|n|k| +0#0000000&@60 @75 -|h+0#af5f00255&|i| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&@59 -@6|\+0#e000e06&| +0#0000000&|F|o@1| @63 -@6|\+0#e000e06&| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@46 -|~+0#4040ff13&| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -| +0#0000000&@56|5@1|,|7| @9|B|o|t| +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@40 +|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@39 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|N+0#00e0003&|O|N|E| +0#0000000&@43 +|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|N+0#00e0003&|O|N|E| +0#0000000&@42 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@39 +|h+0#af5f00255&|i|g|h|l|i|g|h|t|!| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|E+0#00e0003&|r@1|o|r|M|s|g| +0#0000000&@38 +@75 +@75 +|"+0#0000e05&| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |a|n|d| |c|o|m@1|a|n|d| |s|e|p|a|r|a|t|o|r| +0#0000000&@33 +@75 +|h+0#af5f00255&|i| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@64 +@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 +@57|5@1|,|1| @9|5@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_04.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_04.dump new file mode 100644 index 000000000..72ff60d6c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_04.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 +@6|\+0#e000e06&| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@57 +@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 +@6|\+0#e000e06&| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|C+0#e000002&|y|a|n| +0#0000000&@54 +@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|f|g|=+0#0000000&|#+0#e000002&|8|0|a|0|f@1| +0#0000000&@53 +@6>\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@58 +@75 +|h+0#af5f00255&|i| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@64 +@6|\+0#e000e06&| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|C+0#e000002&|y|a|n| +0#0000000&@54 +@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|f|g|=+0#0000000&|#+0#e000002&|8|0|a|0|f@1| +0#0000000&@53 +@6|\+0#e000e06&| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@45 +@75 +|h+0#af5f00255&|i| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&|t+0#00e0003&|e|r|m|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|C+0#e000002&|y|a|n| +0#0000000&|g+0#00e0003&|u|i|f|g|=+0#0000000&|#+0#e000002&|8|0|a|0|f@1| +0#0000000&|g+0#00e0003&|u|i|=+0#0000000&|b+0#e000e06&|o|l|d| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@5 +@75 +|h+0#af5f00255&|i| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63 +@6|\+0#e000e06&| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&@59 +@75 +@57|7|3|,|7| @9|7|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_05.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_05.dump new file mode 100644 index 000000000..50c41e16b --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_05.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|h+0#af5f00255&|i| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| |l|i|n|k| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63 +@6|\+0#e000e06&| +0#0000000&|C+0#00e0003&|o|m@1|e|n|t| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@46 +@75 +> @74 +|"+0#0000e05&| |'|s|t|a|t|u|s|l|i|n|e|'| |u|s|e|r| |g|r|o|u|p|s| +0#0000000&@48 +@75 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|1| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|b+0#e000002&|l|a|c|k| +0#0000000&@45 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|2| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|b|l|u|e| +0#0000000&@42 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|3| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|g|r|e@1|n| +0#0000000&@41 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|4| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|c|y|a|n| +0#0000000&@42 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|5| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|r|e|d| +0#0000000&@43 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|6| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|m|a|g|e|n|t|a| +0#0000000&@39 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|7| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|y|e|l@1|o|w| +0#0000000&@40 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|8| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|l+0#e000002&|i|g|h|t|g|r|a|y| +0#0000000&@41 +|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&|U+0#00e0003&|s|e|r|9| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|d+0#e000002&|a|r|k|g|r|a|y| +0#0000000&@42 +@75 +@75 +@57|9|1|,|0|-|1| @7|9|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_highlight_06.dump b/runtime/syntax/testdir/dumps/vim_ex_highlight_06.dump new file mode 100644 index 000000000..5f6791da0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_highlight_06.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|"+0#0000e05&| |:|t|e|r|m|i|n|a|l| |g|r|o|u|p| +0#0000000&@57 +@75 +|h+0#af5f00255&|i| +0#0000000&|T+0#00e0003&|e|r|m|i|n|a|l| +0#0000000&|c+0#00e0003&|t|e|r|m|b|g|=+0#0000000&|r+0#e000002&|e|d| +0#0000000&|c+0#00e0003&|t|e|r|m|f|g|=+0#0000000&|b+0#e000002&|l|u|e| +0#0000000&@38 +> @74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|0|8|,|0|-|1| @6|B|o|t| diff --git a/runtime/syntax/testdir/input/vim_ex_highlight.vim b/runtime/syntax/testdir/input/vim_ex_highlight.vim index ecfea4adc..51a618df4 100644 --- a/runtime/syntax/testdir/input/vim_ex_highlight.vim +++ b/runtime/syntax/testdir/input/vim_ex_highlight.vim @@ -1,22 +1,49 @@ " Vim :highlight command +" VIM_TEST_SETUP hi link vimHiGroup Todo + " list + highlight highlight Comment +highlight Conceal +highlight ErrorMsg +highlight Foo + " reset + highlight clear + " disable + highlight clear Comment +highlight clear Conceal highlight clear ErrorMsg +highlight clear Foo + highlight Comment NONE +highlight Conceal NONE +highlight ErrorMsg NONE +highlight Foo NONE + " add/modify + highlight Comment cterm=underline +highlight Conceal cterm=underline +highlight ErrorMsg cterm=underline +highlight Foo cterm=underline + highlight default Comment term=bold +highlight default Conceal term=bold +highlight default ErrorMsg term=bold +highlight Foo ErrorMsg term=bold + " link + highlight link Foo Comment highlight! link Foo Comment highlight link Foo NONE @@ -24,7 +51,9 @@ highlight! link Foo NONE highlight link Foo ErrorMsg highlight! link Foo ErrorMsg + " default link + highlight default link Foo Comment highlight! default link Foo Comment highlight default link Foo NONE @@ -58,3 +87,22 @@ hi default link hi default link \ Foo \ Comment | echo "Foo" + + +" 'statusline' user groups + +highlight User1 ctermfg=black +highlight User2 ctermfg=darkblue +highlight User3 ctermfg=darkgreen +highlight User4 ctermfg=darkcyan +highlight User5 ctermfg=darkred +highlight User6 ctermfg=darkmagenta +highlight User7 ctermfg=darkyellow +highlight User8 ctermfg=lightgray +highlight User9 ctermfg=darkgray + + +" :terminal group + +hi Terminal ctermbg=red ctermfg=blue + diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 78cf018a5..38dc61a2e 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -128,12 +128,13 @@ syn keyword vimAutoEvent contained User skipwhite nextgroup=vimUserAutoEvent syn match vimUserAutoEvent contained "\<\h\w*\>" skipwhite nextgroup=vimUserAutoEventSep,vimAutocmdMod,vimAutocmdBlock " Highlight commonly used Groupnames {{{2 -syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo +" GEN_SYN_VIM: vimGroup, START_STR='syn keyword vimGroup contained', END_STR='' +syn keyword vimGroup contained Added Boolean Changed Character Comment Conditional Constant Debug Define Delimiter Error Exception Float Function Identifier Ignore Include Keyword Label Macro Number Operator PreCondit PreProc Removed Repeat Special SpecialChar SpecialComment Statement StorageClass String Structure Tag Todo Type Typedef Underlined " Default highlighting groups {{{2 " GEN_SYN_VIM: vimHLGroup, START_STR='syn keyword vimHLGroup contained', END_STR='' syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine StatusLineNC EndOfBuffer VertSplit VisualNOS DiffText DiffTextAdd PmenuSbar TabLineSel TabLineFill TabPanel TabPanelSel TabPanelFill Cursor lCursor QuickFixLine CursorLineSign CursorLineFold CurSearch PmenuKind PmenuKindSel PmenuMatch PmenuMatchSel PmenuExtra PmenuExtraSel PopupSelected MessageWindow PopupNotification Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap SpellRare SpellLocal PmenuThumb Pmenu PmenuSel SpecialKey Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn MatchParen StatusLineTerm StatusLineTermNC ToolbarLine ToolbarButton Menu Tooltip Scrollbar CursorIM -syn keyword vimHLGroup contained LineNrAbove LineNrBelow +syn keyword vimHLGroup contained ComplMatchIns LineNrAbove LineNrBelow MsgArea Terminal User1 User2 User3 User4 User5 User6 User7 User8 User9 syn match vimHLGroup contained "\<Conceal\>" syn case match @@ -283,7 +284,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSynColor,vimSynLink,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var syn match vimCmdSep "\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1 @@ -1484,7 +1485,13 @@ syn match vimSynMenuPath contained ".*\ze:" nextgroup=vimSynMenuColon contains=v syn match vimSynMenuColon contained ":" nextgroup=vimSynMenuName syn match vimSynMenuName contained "\w\+" -syn cluster vimExUserCmdList contains=vimCompilerSet,vimSynMenu +" runtime/syntax/syncolor.vim +syn match vimSynColor "\<SynColor\>" skipwhite nextgroup=vimSynColorGroup +syn match vimSynColorGroup contained "\<\h\w*\>" skipwhite nextgroup=vimHiKeyList contains=vimGroup +syn match vimSynLink "\<SynLink\>" skipwhite nextgroup=vimSynLinkGroup +syn match vimSynLinkGroup contained "\<\h\w*\>" skipwhite nextgroup=vimGroup contains=vimGroup + +syn cluster vimExUserCmdList contains=vimCompilerSet,vimSynColor,vimSynLink,vimSynMenu " Errors And Warnings: {{{2 " ==================== @@ -1732,8 +1739,9 @@ endif syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster syn match vimHiBang contained " \@1<=!" skipwhite nextgroup=@vimHighlightCluster -syn match vimHiGroup contained "\i\+" syn case ignore +" Conceal is a generated low-priority match +syn match vimHiGroup contained "\%(\<Conceal\>\)\@!\i\+" syn keyword vimHiNone contained NONE syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl underdashed underdotted underdouble syn keyword vimFgBgAttrib contained none bg background fg foreground @@ -2560,6 +2568,8 @@ if !exists("skip_vim_syntax_inits") hi def link vim9Vim9Script vimCommand hi def link vimCompilerSet vimCommand + hi def link vimSynColor vimCommand + hi def link vimSynLink vimCommand hi def link vimSynMenu vimCommand hi def link vimSynMenuPath vimMenuName endif -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1uXPAH-001Hmh-NQ%40256bit.org.