mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	runtime(vim): Improve Vim9 and legacy-script comment highlighting (#13104)
This is a first-pass attempt to limit matching of Vim9 and legacy-script comments to the appropriate syntactic contexts. Vim9-script comments are highlighted at top level in a Vim9-script file, in all :def functions, and in all :autocmd and :commmand command blocks. Legacy-script comments are highlighted at top level in a legacy script file, in all :func functions and in the Vim9-script preamble before the :vim9script marker command. Fixes #13047, #11307 and #9587. Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
		
							
								
								
									
										1
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
								
							| @@ -222,6 +222,7 @@ runtime/ftplugin/typescript.vim		@dkearns | |||||||
| runtime/ftplugin/typescriptreact.vim	@dkearns | runtime/ftplugin/typescriptreact.vim	@dkearns | ||||||
| runtime/ftplugin/unison.vim		@chuwy | runtime/ftplugin/unison.vim		@chuwy | ||||||
| runtime/ftplugin/vdf.vim		@ObserverOfTime | runtime/ftplugin/vdf.vim		@ObserverOfTime | ||||||
|  | runtime/ftplugin/vim.vim		@dkearns | ||||||
| runtime/ftplugin/wast.vim		@rhysd | runtime/ftplugin/wast.vim		@rhysd | ||||||
| runtime/ftplugin/wget.vim		@dkearns | runtime/ftplugin/wget.vim		@dkearns | ||||||
| runtime/ftplugin/wget2.vim		@dkearns | runtime/ftplugin/wget2.vim		@dkearns | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| " Vim filetype plugin | " Vim filetype plugin | ||||||
| " Language:	Vim | " Language:		Vim | ||||||
| " Maintainer:	The Vim Project <https://github.com/vim/vim> | " Maintainer:		Doug Kearns <dougkearns@gmail.com> | ||||||
| " Last Change:	2023 Aug 10 | " Last Change:		2024 Apr 08 | ||||||
| " Former Maintainer:	Bram Moolenaar <Bram@vim.org> | " Former Maintainer:	Bram Moolenaar <Bram@vim.org> | ||||||
|  |  | ||||||
| " Only do this when not done yet for this buffer | " Only do this when not done yet for this buffer | ||||||
| @@ -50,7 +50,7 @@ setlocal isk+=# | |||||||
| setlocal keywordprg=:help | setlocal keywordprg=:help | ||||||
|  |  | ||||||
| " Comments starts with # in Vim9 script.  We have to guess which one to use. | " Comments starts with # in Vim9 script.  We have to guess which one to use. | ||||||
| if "\n" .. getline(1, 10)->join("\n") =~# '\n\s*vim9\%[script]\>' | if "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>' | ||||||
|   setlocal commentstring=#%s |   setlocal commentstring=#%s | ||||||
| else | else | ||||||
|   setlocal commentstring=\"%s |   setlocal commentstring=\"%s | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
| " Maintainer: Hirohito Higashi (h_east) | " Maintainer: Hirohito Higashi (h_east) | ||||||
| " URL: https://github.com/vim-jp/syntax-vim-ex | " URL: https://github.com/vim-jp/syntax-vim-ex | ||||||
| " Last Change: 2024 Apr 07 | " Last Change: 2024 Apr 07 | ||||||
| " Version: 2.1.0 | " Version: 2.1.1 | ||||||
|  |  | ||||||
| let s:keepcpo= &cpo | let s:keepcpo= &cpo | ||||||
| set cpo&vim | set cpo&vim | ||||||
| @@ -286,6 +286,7 @@ function! s:get_vim_command_type(cmd_name) | |||||||
| 	\	'append', 'insert', | 	\	'append', 'insert', | ||||||
| 	\	'Next', 'Print', 'X', | 	\	'Next', 'Print', 'X', | ||||||
| 	\	'new', 'popup', | 	\	'new', 'popup', | ||||||
|  | 	\	'vim9script', | ||||||
| 	\ ] | 	\ ] | ||||||
| 	" Required for original behavior | 	" Required for original behavior | ||||||
| 	" \	'global', 'vglobal' | 	" \	'global', 'vglobal' | ||||||
|   | |||||||
| @@ -19,6 +19,8 @@ endif | |||||||
| let s:keepcpo= &cpo | let s:keepcpo= &cpo | ||||||
| set cpo&vim | set cpo&vim | ||||||
|  |  | ||||||
|  | let s:vim9script = "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>' | ||||||
|  |  | ||||||
| " vimTodo: contains common special-notices for comments {{{2 | " vimTodo: contains common special-notices for comments {{{2 | ||||||
| " Use the vimCommentGroup cluster to add your own. | " Use the vimCommentGroup cluster to add your own. | ||||||
| syn keyword vimTodo contained	COMBAK	FIXME	TODO	XXX | syn keyword vimTodo contained	COMBAK	FIXME	TODO	XXX | ||||||
| @@ -156,13 +158,13 @@ endif | |||||||
| " Numbers {{{2 | " Numbers {{{2 | ||||||
| " ======= | " ======= | ||||||
| syn case ignore | syn case ignore | ||||||
| syn match	vimNumber	'\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\='	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\='	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0b[01]\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0b[01]\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0o\=\o\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0o\=\o\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0x\x\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0x\x\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0z\>'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0z\>'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*'	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*'	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn case match | syn case match | ||||||
|  |  | ||||||
| " All vimCommands are contained by vimIsCommand. {{{2 | " All vimCommands are contained by vimIsCommand. {{{2 | ||||||
| @@ -208,7 +210,7 @@ syn keyword vimFTOption contained	detect indent off on plugin | |||||||
|  |  | ||||||
| " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 | " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 | ||||||
| " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. | " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. | ||||||
| syn cluster vimAugroupList	contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue | syn cluster vimAugroupList	contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,@vimComment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue | ||||||
| syn match   vimAugroup	"\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup | syn match   vimAugroup	"\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup | ||||||
| if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' | if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' | ||||||
|   syn region  vimAugroup  fold	start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd |   syn region  vimAugroup  fold	start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd | ||||||
| @@ -299,15 +301,21 @@ syn match	vimUserType	contained	"\<\u\w*\>" | |||||||
|  |  | ||||||
| syn cluster vimType contains=vimType,vimCompoundType,vimUserType | syn cluster vimType contains=vimType,vimCompoundType,vimUserType | ||||||
|  |  | ||||||
| " Keymaps: (Vim Project Addition) {{{2 | " Keymaps: {{{2 | ||||||
| " ======= | " ======= | ||||||
|  |  | ||||||
| " TODO: handle Vim9 script comments when something like #13104 is merged | syn match  vimKeymapStart	"^"	contained skipwhite nextgroup=vimKeymapLhs,@vimKeymapLineComment | ||||||
| syn match  vimKeymapStart	"^"	contained skipwhite nextgroup=vimKeymapLhs,vimKeymapLineComment |  | ||||||
| syn match  vimKeymapLhs	"\S\+"	contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation | syn match  vimKeymapLhs	"\S\+"	contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation | ||||||
| syn match  vimKeymapRhs	"\S\+"	contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation | syn match  vimKeymapRhs	"\S\+"	contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation | ||||||
| syn match  vimKeymapTailComment	"\S.*"	contained | syn match  vimKeymapTailComment	"\S.*"	contained | ||||||
| syn match  vimKeymapLineComment	+".*+	contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle |  | ||||||
|  | " TODO: remove when :" comment is matched in parts as "ex-colon comment" --djk | ||||||
|  | if s:vim9script | ||||||
|  |   syn match  vim9KeymapLineComment	"#.*"	contained contains=@vimCommentGroup,vimCommentString,vim9CommentTitle | ||||||
|  | else | ||||||
|  |   syn match  vimKeymapLineComment	+".*+	contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle | ||||||
|  | endif | ||||||
|  | syn cluster vimKeymapLineComment contains=vim9\=KeymapLineComment | ||||||
|  |  | ||||||
| syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart | syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart | ||||||
|  |  | ||||||
| @@ -323,9 +331,10 @@ syn match	vimSpecFileMod	"\(:[phtre]\)\+"	contained | |||||||
|  |  | ||||||
| " User-Specified Commands: {{{2 | " User-Specified Commands: {{{2 | ||||||
| " ======================= | " ======================= | ||||||
| syn cluster	vimUserCmdList	contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange | syn cluster	vimUserCmdList	contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange | ||||||
| syn keyword	vimUserCommand	contained	com[mand] | syn keyword	vimUserCommand	contained	com[mand] | ||||||
| syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter | syn match	vimUserCmdName	contained	"\<\u\w*\>" nextgroup=vimUserCmdBlock skipwhite | ||||||
|  | syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter,vimCmdBlock,vimUserCmdName | ||||||
| syn match	vimUserAttrbError	contained	"-\a\+\ze\s" | syn match	vimUserAttrbError	contained	"-\a\+\ze\s" | ||||||
| syn match	vimUserAttrb	contained	"-nargs=[01*?+]"	contains=vimUserAttrbKey,vimOper | syn match	vimUserAttrb	contained	"-nargs=[01*?+]"	contains=vimUserAttrbKey,vimOper | ||||||
| syn match	vimUserAttrb	contained	"-complete="		contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError | syn match	vimUserAttrb	contained	"-complete="		contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError | ||||||
| @@ -347,20 +356,41 @@ syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w* | |||||||
| syn case match | syn case match | ||||||
| syn match	vimUserAttrbCmplt contained	"custom,\u\w*" | syn match	vimUserAttrbCmplt contained	"custom,\u\w*" | ||||||
|  |  | ||||||
|  | syn region	vimUserCmdBlock	contained	matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList | ||||||
|  |  | ||||||
| " Lower Priority Comments: after some vim commands... {{{2 | " Lower Priority Comments: after some vim commands... {{{2 | ||||||
| " ======================= | " ======================= | ||||||
| syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString | syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e end='"' | ||||||
| syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString |  | ||||||
| syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString | if s:vim9script | ||||||
| syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"' |   syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString contained | ||||||
| " Vim9 comments - TODO: might be highlighted while they don't work |   syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString contained | ||||||
| syn match	vim9Comment	excludenl +\s#[^{].*$+lc=1	contains=@vimCommentGroup,vimCommentString |   syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString contained | ||||||
| syn match	vim9Comment	+\<endif\s\+#[^{].*$+lc=5	contains=@vimCommentGroup,vimCommentString |   " Vim9 comments - TODO: might be highlighted while they don't work | ||||||
| syn match	vim9Comment	+\<else\s\+#[^{].*$+lc=4	contains=@vimCommentGroup,vimCommentString |   syn match	vim9Comment	excludenl +\s#[^{].*$+lc=1	contains=@vimCommentGroup,vimCommentString | ||||||
| " Vim9 comment inside expression |   syn match	vim9Comment	+\<endif\s\+#[^{].*$+lc=5	contains=@vimCommentGroup,vimCommentString | ||||||
| syn match	vim9Comment	+\s\zs#[^{].*$+ms=s+1	contains=@vimCommentGroup,vimCommentString |   syn match	vim9Comment	+\<else\s\+#[^{].*$+lc=4	contains=@vimCommentGroup,vimCommentString | ||||||
| syn match	vim9Comment	+^\s*#[^{].*$+	contains=@vimCommentGroup,vimCommentString |   " Vim9 comment inside expression | ||||||
| syn match	vim9Comment	+^\s*#$+	contains=@vimCommentGroup,vimCommentString |   " syn match	vim9Comment	+\s\zs#[^{].*$+ms=s+1	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   " syn match	vim9Comment	+^\s*#[^{].*$+		contains=@vimCommentGroup,vimCommentString | ||||||
|  |   " syn match	vim9Comment	+^\s*#$+		contains=@vimCommentGroup,vimCommentString | ||||||
|  |  | ||||||
|  |   syn cluster vimComment contains=vim9Comment | ||||||
|  | else | ||||||
|  |   syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   " Vim9 comments - TODO: might be highlighted while they don't work | ||||||
|  |   syn match	vim9Comment	excludenl +\s#[^{].*$+lc=1	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+\<endif\s\+#[^{].*$+lc=5	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+\<else\s\+#[^{].*$+lc=4	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   " Vim9 comment inside expression | ||||||
|  |   syn match	vim9Comment	+\s\zs#[^{].*$+ms=s+1	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+^\s*#[^{].*$+		contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+^\s*#$+		contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |  | ||||||
|  |   syn cluster vimComment contains=vimComment | ||||||
|  | endif | ||||||
|  |  | ||||||
| " Environment Variables: {{{2 | " Environment Variables: {{{2 | ||||||
| " ===================== | " ===================== | ||||||
| @@ -450,7 +480,7 @@ syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 | |||||||
| syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' | syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' | ||||||
|  |  | ||||||
| " Set command and associated set-options (vimOptions) with comment {{{2 | " Set command and associated set-options (vimOptions) with comment {{{2 | ||||||
| syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vim9Comment,vimSetString,vimSetMod | syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod | ||||||
| syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$"	contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar | syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$"	contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar | ||||||
| syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+		contains=vimCtrlChar | syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+		contains=vimCtrlChar | ||||||
| syn match	vimSetSep	contained	"[,:]" | syn match	vimSetSep	contained	"[,:]" | ||||||
| @@ -482,9 +512,10 @@ syn keyword	vimFor	for	skipwhite nextgroup=vimVar,vimVarList | |||||||
| " ======= | " ======= | ||||||
| syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace | syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace | ||||||
| syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList | syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList | ||||||
| syn match	vimAutoCmdSfxList	contained	"\S*"	skipwhite nextgroup=vimAutoCmdMod | syn match	vimAutoCmdSfxList	contained	"\S*"	skipwhite nextgroup=vimAutoCmdMod,vimAutoCmdBlock | ||||||
| syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList | syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList | ||||||
| syn match	vimAutoCmdMod	"\(++\)\=\(once\|nested\)" | syn match	vimAutoCmdMod	"\(++\)\=\(once\|nested\)"	skipwhite nextgroup=vimAutoCmdBlock | ||||||
|  | syn region	vimAutoCmdBlock	contained	matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList | ||||||
|  |  | ||||||
| " Echo And Execute: -- prefer strings! {{{2 | " Echo And Execute: -- prefer strings! {{{2 | ||||||
| " ================ | " ================ | ||||||
| @@ -624,7 +655,7 @@ if has("conceal") | |||||||
|  syn match	vimSynCcharValue	contained	"\S" |  syn match	vimSynCcharValue	contained	"\S" | ||||||
| endif | endif | ||||||
|  |  | ||||||
| syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment,vim9Comment | syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,@vimComment | ||||||
| syn cluster vimFuncBodyList add=vimSyntax | syn cluster vimFuncBodyList add=vimSyntax | ||||||
|  |  | ||||||
| " Syntax: case {{{2 | " Syntax: case {{{2 | ||||||
| @@ -713,7 +744,7 @@ syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotatio | |||||||
|  |  | ||||||
| " Highlighting: {{{2 | " Highlighting: {{{2 | ||||||
| " ============ | " ============ | ||||||
| syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment,vim9Comment | syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,@vimComment | ||||||
| if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") | if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") | ||||||
|  syn match	vimHiCtermError	contained	"\D\i*" |  syn match	vimHiCtermError	contained	"\D\i*" | ||||||
| endif | endif | ||||||
| @@ -769,16 +800,21 @@ syn match	vimCtrlChar	"[--]" | |||||||
|  |  | ||||||
| " Beginners - Patterns that involve ^ {{{2 | " Beginners - Patterns that involve ^ {{{2 | ||||||
| " ========= | " ========= | ||||||
| syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle,vimComment | if s:vim9script | ||||||
| syn match	vimLineComment	+^[ \t:]*"\("[^"]*"\|[^"]\)*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle |   syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle contained | ||||||
| syn match	vim9LineComment	+^[ \t:]\+#.*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle |   syn match	vim9LineComment	+^[ \t:]*#.*$+	contains=@vimCommentGroup,vimCommentString,vim9CommentTitle | ||||||
|  | else | ||||||
|  |   syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle | ||||||
|  |   syn match	vim9LineComment	+^[ \t:]*#.*$+	contains=@vimCommentGroup,vimCommentString,vim9CommentTitle contained | ||||||
|  | endif | ||||||
| syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup | syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup | ||||||
| " Note: Look-behind to work around nextgroup skipnl consuming leading whitespace and preventing a match | syn match	vim9CommentTitle	'#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup | ||||||
| syn match	vimContinue		"^\s*\zs\\" | syn match	vimContinue		"^\s*\zs\\" | ||||||
| syn match         vimContinueComment	'^\s*\zs["#]\\ .*' contained | syn match         vimContinueComment	'^\s*\zs["#]\\ .*' contained | ||||||
| syn cluster	vimContinue contains=vimContinue,vimContinueComment | syn cluster	vimContinue contains=vimContinue,vimContinueComment | ||||||
| syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue | syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue | ||||||
| syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained | syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained | ||||||
|  | syn match	vim9CommentTitleLeader	'#\s\+'ms=s+1	contained | ||||||
|  |  | ||||||
| " Searches And Globals: {{{2 | " Searches And Globals: {{{2 | ||||||
| " ==================== | " ==================== | ||||||
| @@ -787,6 +823,17 @@ syn match	vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained | |||||||
| syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/'  skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/'  skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | ||||||
| syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | ||||||
|  |  | ||||||
|  | " Vim9 Script Regions: {{{2 | ||||||
|  | " ================== | ||||||
|  |  | ||||||
|  | if s:vim9script | ||||||
|  |   syn cluster vimLegacyTop contains=TOP,vimPreVim9script,vim9Comment,vim9LineComment | ||||||
|  |   syn region vimPreVim9script start="\%^" end="^\ze\s*vim9s\%[cript]\>" contains=@vimLegacyTop,vimComment,vimLineComment | ||||||
|  |  | ||||||
|  |   syn keyword vim9ScriptArg noclear | ||||||
|  |   syn keyword vimCommand vim9s[cript] nextgroup=vim9ScriptArg skipwhite | ||||||
|  | endif | ||||||
|  |  | ||||||
| " Embedded Scripts:  {{{2 | " Embedded Scripts:  {{{2 | ||||||
| " ================ | " ================ | ||||||
| "   perl,ruby     : Benoit Cerrina | "   perl,ruby     : Benoit Cerrina | ||||||
| @@ -994,6 +1041,7 @@ if !exists("skip_vim_syntax_inits") | |||||||
|   hi def link vimBufnrWarn	vimWarn |   hi def link vimBufnrWarn	vimWarn | ||||||
|  endif |  endif | ||||||
|  |  | ||||||
|  |  hi def link vim9ScriptArg	Special | ||||||
|  hi def link vimAbb	vimCommand |  hi def link vimAbb	vimCommand | ||||||
|  hi def link vimAddress	vimMark |  hi def link vimAddress	vimMark | ||||||
|  hi def link vimAugroupBang	vimBang |  hi def link vimAugroupBang	vimBang | ||||||
| @@ -1013,6 +1061,7 @@ if !exists("skip_vim_syntax_inits") | |||||||
|  hi def link vim9Comment	Comment |  hi def link vim9Comment	Comment | ||||||
|  hi def link vimCommentString	vimString |  hi def link vimCommentString	vimString | ||||||
|  hi def link vimCommentTitle	PreProc |  hi def link vimCommentTitle	PreProc | ||||||
|  |  hi def link vim9CommentTitle	PreProc | ||||||
|  hi def link vimCondHL	vimCommand |  hi def link vimCondHL	vimCommand | ||||||
|  hi def link vimConst	vimCommand |  hi def link vimConst	vimCommand | ||||||
|  hi def link vimContinue	Special |  hi def link vimContinue	Special | ||||||
| @@ -1070,6 +1119,7 @@ if !exists("skip_vim_syntax_inits") | |||||||
|  hi def link vimHLGroup	vimGroup |  hi def link vimHLGroup	vimGroup | ||||||
|  hi def link vimInsert	vimString |  hi def link vimInsert	vimString | ||||||
|  hi def link vimIskSep	Delimiter |  hi def link vimIskSep	Delimiter | ||||||
|  |  hi def link vim9KeymapLineComment	vimKeymapLineComment | ||||||
|  hi def link vimKeymapLineComment	vimComment |  hi def link vimKeymapLineComment	vimComment | ||||||
|  hi def link vimKeymapTailComment	vimComment |  hi def link vimKeymapTailComment	vimComment | ||||||
|  hi def link vimLet	vimCommand |  hi def link vimLet	vimCommand | ||||||
| @@ -1192,5 +1242,5 @@ delc VimFoldP | |||||||
| delc VimFoldr | delc VimFoldr | ||||||
| delc VimFoldt | delc VimFoldt | ||||||
| let &cpo = s:keepcpo | let &cpo = s:keepcpo | ||||||
| unlet s:keepcpo | unlet s:keepcpo s:vim9script | ||||||
| " vim:ts=18 fdm=marker ft=vim | " vim:ts=18 fdm=marker ft=vim | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_keymap_00.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_keymap_00.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | >v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |V|i|m| |K|e|y|m|a|p| |f|i|l|e| |f|o|r| |s|y|n|t|a|x| |t|e|s|t|i|n|g| +0#0000000&@38 | ||||||
|  | @75 | ||||||
|  | |s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&|u|t|f|-+0#af5f00255&|8+0#e000002&| +0#0000000&@54 | ||||||
|  | @75 | ||||||
|  | |l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|:|k|e|y|m|a|p|_|n|a|m|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|s|y|n|t|a|x|-|t|e|s|t|"| +0#0000000&@41 | ||||||
|  | @75 | ||||||
|  | |l+0#af5f00255&|o|a|d|k|e|y|m|a|p| +0#0000000&@64 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |L|i|n|e| |c|o|m@1|e|n|t| +0#0000000&@60 | ||||||
|  | @75 | ||||||
|  | @2|#+0#0000e05&| |A|n|o|t|h|e|r| |l|i|n|e| |c|o|m@1|e|n|t| +0#0000000&@50 | ||||||
|  | @75 | ||||||
|  | |a| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| +0#0000000&@54 | ||||||
|  | |'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| +0#0000000&@33 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| +0#0000000&@56 | ||||||
|  | |<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| +0#0000000&@2 | ||||||
|  | @57|1|,|1| @10|T|o|p|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_keymap_01.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_keymap_01.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@74 | ||||||
|  | |a| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| +0#0000000&@54 | ||||||
|  | |'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| +0#0000000&@33 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| +0#0000000&@56 | ||||||
|  | ><+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| +0#0000000&@2 | ||||||
|  | |c| @13|<+0#e000e06&|c|h|a|r|-|0|1|0|3|>| +0#0000000&@4|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |R|H|S| |-| |o|c|t|a|l| +0#0000000&@4 | ||||||
|  | |<+0#e000e06&|c|h|a|r|-|0|x|0@1|6|4|>| +0#0000000&@1|<+0#e000e06&|c|h|a|r|-|0|x|0@1|4@1|>| +0#0000000&@2|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |a|n|d| |R|H|S| |-| |h|e | ||||||
|  | |x|a|d|e|c|i|m|a|l| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| +0#0000000&@43 | ||||||
|  | |\|#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@14|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | ||||||
|  | |n|t| +0#0000000&@72 | ||||||
|  | |"| |“| @27|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m | ||||||
|  | @1|e|n|t| +0#0000000&@70 | ||||||
|  | |:| |#| @27|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | ||||||
|  | |n|t| +0#0000000&@72 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | | +0#0000000&@56|1|9|,|1| @9|B|o|t|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_keymap_99.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_keymap_99.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@74 | ||||||
|  | @2|#+0#0000e05&| |A|n|o|t|h|e|r| |l|i|n|e| |c|o|m@1|e|n|t| +0#0000000&@50 | ||||||
|  | @75 | ||||||
|  | |a| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| +0#0000000&@54 | ||||||
|  | |'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| +0#0000000&@33 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| +0#0000000&@56 | ||||||
|  | |<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| +0#0000000&@2 | ||||||
|  | |c| @13|<+0#e000e06&|c|h|a|r|-|0|1|0|3|>| +0#0000000&@4|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |R|H|S| |-| |o|c|t|a|l| +0#0000000&@4 | ||||||
|  | |<+0#e000e06&|c|h|a|r|-|0|x|0@1|6|4|>| +0#0000000&@1|<+0#e000e06&|c|h|a|r|-|0|x|0@1|4@1|>| +0#0000000&@2|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |a|n|d| |R|H|S| |-| |h|e | ||||||
|  | |x|a|d|e|c|i|m|a|l| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| +0#0000000&@43 | ||||||
|  | |\|#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@14|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | ||||||
|  | |n|t| +0#0000000&@72 | ||||||
|  | |"| |“| @27|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m | ||||||
|  | @1|e|n|t| +0#0000000&@70 | ||||||
|  | >:| |#| @27|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | ||||||
|  | |n|t| +0#0000000&@72 | ||||||
|  | @57|2|6|,|1| @9|B|o|t|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_legacy_header_00.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_legacy_header_00.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | >"+0#0000e05#ffffff0| |c|o|m@1|e|n|t| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|h+0#00e0e07&|a|s|(+0#e000e06&|'+0#e000002&|v|i|m|9|s|c|r|i|p|t|'|)+0#e000e06&| +0#0000000&@53 | ||||||
|  | @2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 | ||||||
|  | @2|s+0#af5f00255&|o|u|r|c|e| +0#0000000&|f|o@1|.+0#af5f00255&|v|i|m| +0#0000000&@58 | ||||||
|  | @2|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@66 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | |v+0#af5f00255&|i|m|9|s|c|r|i|p|t| +0#0000000&|n+0#e000e06&|o|c|l|e|a|r| +0#0000000&@56 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | | +0#0000e05&|#| |s|t|r|i|n|g| |o|n|l|y| |r|e|c|o|g|n|i|s|e|d| |w|i|t|h| |l|e|a|d|i|n|g| |c|h|a|r| +0#0000000&@31 | ||||||
|  | @1|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&@57 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | | +0#0000000&@56|1|,|1| @10|A|l@1|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_legacy_header_99.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim9_legacy_header_99.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | |"+0#0000e05#ffffff0| |c|o|m@1|e|n|t| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|h+0#00e0e07&|a|s|(+0#e000e06&|'+0#e000002&|v|i|m|9|s|c|r|i|p|t|'|)+0#e000e06&| +0#0000000&@53 | ||||||
|  | @2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 | ||||||
|  | @2|s+0#af5f00255&|o|u|r|c|e| +0#0000000&|f|o@1|.+0#af5f00255&|v|i|m| +0#0000000&@58 | ||||||
|  | @2|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@66 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | |v+0#af5f00255&|i|m|9|s|c|r|i|p|t| +0#0000000&|n+0#e000e06&|o|c|l|e|a|r| +0#0000000&@56 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 | ||||||
|  | @75 | ||||||
|  | | +0#0000e05&|#| |s|t|r|i|n|g| |o|n|l|y| |r|e|c|o|g|n|i|s|e|d| |w|i|t|h| |l|e|a|d|i|n|g| |c|h|a|r| +0#0000000&@31 | ||||||
|  | @1>"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&@57 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | | +0#0000000&@56|1|6|,|2| @9|A|l@1|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_00.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_00.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | >"+0#0000e05#ffffff0| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51 | ||||||
|  | @2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| ||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|#| ||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1 | ||||||
|  | | +0#e000e06&@17|\| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |"+0#0000000&|i|n|p|u|t|/|v|i|m|.|v|i|m|"| |1@1|L|,| |2|0|9|B| @31|1|,|1| @10|A|l@1|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_99.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_99.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | |"+0#0000e05#ffffff0| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51 | ||||||
|  | @2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| ||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|#| ||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1 | ||||||
|  | | +0#e000e06&@17|\| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48 | ||||||
|  | @75 | ||||||
|  | >"+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |"+0#0000000&|i|n|p|u|t|/|v|i|m|.|v|i|m|"| |1@1|L|,| |2|0|9|B| @31|1@1|,|1| @9|A|l@1|  | ||||||
| @@ -5,7 +5,7 @@ | |||||||
| |:|v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@66 | |:|v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@66 | ||||||
| >:|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65 | >:|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65 | ||||||
| |:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66 | |:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66 | ||||||
| |:|v+0#af5f00255&|i|m|9|s|c|r|i|p|t| +0#0000000&@63 | |"+0#0000e05&| |:|v|i|m|9|s|c|r|i|p|t| +0#0000000&@61 | ||||||
| |:|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66 | |:|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66 | ||||||
| |:|v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@63 | |:|v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@63 | ||||||
| |:|v+0#af5f00255&|i|s|u|a|l| +0#0000000&@67 | |:|v+0#af5f00255&|i|s|u|a|l| +0#0000000&@67 | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@54 | |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@54 | ||||||
| >c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@53 | >c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@53 | ||||||
| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@54 | |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@54 | ||||||
| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|9|s|c|r|i|p|t| +0#0000000&@51 | |"+0#0000e05&| |c|a|l@1| |F|o@1|(|)| ||| |v|i|m|9|s|c|r|i|p|t| +0#0000000&@49 | ||||||
| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@54 | |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@54 | ||||||
| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@51 | |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@51 | ||||||
| |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|s|u|a|l| +0#0000000&@55 | |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|s|u|a|l| +0#0000000&@55 | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_00.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_00.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | >v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |V|i|m| |c|o|m@1|e|n|t|s| +0#0000000&@60 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@53 | ||||||
|  | @75 | ||||||
|  | | +0#0000e05&|#| |s|t|r|i|n|g| |o|n|l|y| |r|e|c|o|g|n|i|s|e|d| |w|i|t|h| |l|e|a|d|i|n|g| |c|h|a|r| +0#0000000&@31 | ||||||
|  | @1|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&@57 | ||||||
|  | @75 | ||||||
|  | |f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@59 | ||||||
|  | | +0#0000e05&@1|"| |L|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@49 | ||||||
|  | @2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 | ||||||
|  | |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 | ||||||
|  | @75 | ||||||
|  | |d+0#af5f00255&|e|f|!| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@64 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 | ||||||
|  | @75 | ||||||
|  | @57|1|,|1| @10|T|o|p|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_01.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_01.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@74 | ||||||
|  | |d+0#af5f00255&|e|f|!| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@64 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 | ||||||
|  | > @74 | ||||||
|  | |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#af5f00255&|c+0#e000e06&|o|u|n|t| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@47 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |}+0#e000e06&| +0#0000000&@73 | ||||||
|  | @75 | ||||||
|  | |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*| |{+0#e000e06&| +0#0000000&@52 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |}+0#e000e06&| +0#0000000&@73 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | @57|1|9|,|0|-|1| @7|5|9|%|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_02.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_02.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@74 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51 | ||||||
|  | @2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| ||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|%+0#af5f00255&@1| +0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000& | ||||||
|  | @18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | > @74 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | | +0#0000000&@56|3|7|,|0|-|1| @7|B|o|t|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_99.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment-vim9_99.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | |}+0#e000e06#ffffff0| +0#0000000&@73 | ||||||
|  | @75 | ||||||
|  | |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*| |{+0#e000e06&| +0#0000000&@52 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |}+0#e000e06&| +0#0000000&@73 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51 | ||||||
|  | @2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| ||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|%+0#af5f00255&@1| +0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000& | ||||||
|  | @18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48 | ||||||
|  | @75 | ||||||
|  | >#+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45 | ||||||
|  | @57|4|1|,|1| @9|B|o|t|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_00.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_00.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | >"+0#0000e05#ffffff0| |V|i|m| |c|o|m@1|e|n|t|s| +0#0000000&@60 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |L|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @75 | ||||||
|  | |#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@60 | ||||||
|  | @75 | ||||||
|  | |f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@59 | ||||||
|  | | +0#0000e05&@1|"| |L|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@49 | ||||||
|  | @2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 | ||||||
|  | |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 | ||||||
|  | @75 | ||||||
|  | |d+0#af5f00255&|e|f|!| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@64 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 | ||||||
|  | @75 | ||||||
|  | |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#af5f00255&|n+0#e000e06&|a|r|g|s|=+0#af5f00255&|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | @57|1|,|1| @10|T|o|p|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_01.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_01.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@1|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 | ||||||
|  | @75 | ||||||
|  | |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#af5f00255&|n+0#e000e06&|a|r|g|s|=+0#af5f00255&|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2>"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |}+0#e000e06&| +0#0000000&@73 | ||||||
|  | @75 | ||||||
|  | |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*| |{+0#e000e06&| +0#0000000&@52 | ||||||
|  | | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 | ||||||
|  | @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46 | ||||||
|  | |}+0#e000e06&| +0#0000000&@73 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51 | ||||||
|  | @2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| ||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|#| ||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1 | ||||||
|  | @18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | @57|1|9|,|3| @9|5|0|%|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_02.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_02.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@17|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48 | ||||||
|  | > @74 | ||||||
|  | |"+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |I|s@1|u|e| |#| |#|9|5|8|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |d+0#af5f00255&|e|f| +0#0000000&|C|o|m@1|e|n|t|T|i|t|l|e|(+0#e000e06&|)| +0#0000000&@56 | ||||||
|  | | +0#0000e05&@1|#| +0#0000000&|T+0#e000e06&|i|t|l|e|:| +0#0000e05&|.@2| +0#0000000&@60 | ||||||
|  | |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 | ||||||
|  | |~+0#4040ff13&| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | |~| @73 | ||||||
|  | | +0#0000000&@56|3|7|,|0|-|1| @7|B|o|t|  | ||||||
							
								
								
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_99.dump
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runtime/syntax/testdir/dumps/vim_ex_comment_99.dump
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | | +0&#ffffff0@74 | ||||||
|  | |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51 | ||||||
|  | @2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#0000000&|n|o|f|i|l|e| ||+0#af5f00255&| +0#0000000&|r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e|d|i|t| +0#0000000&|#| ||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1 | ||||||
|  | @18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33 | ||||||
|  | |e+0#af5f00255&|n|d|i|f| +0#0000000&@69 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45 | ||||||
|  | @75 | ||||||
|  | @75 | ||||||
|  | |"+0#0000e05&| |I|s@1|u|e| |#| |#|9|5|8|7| +0#0000000&@59 | ||||||
|  | @75 | ||||||
|  | |d+0#af5f00255&|e|f| +0#0000000&|C|o|m@1|e|n|t|T|i|t|l|e|(+0#e000e06&|)| +0#0000000&@56 | ||||||
|  | | +0#0000e05&@1|#| +0#0000000&|T+0#e000e06&|i|t|l|e|:| +0#0000e05&|.@2| +0#0000000&@60 | ||||||
|  | >e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 | ||||||
|  | @57|4|5|,|1| @9|B|o|t|  | ||||||
| @@ -17,4 +17,4 @@ | |||||||
| |"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12 | |"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12 | ||||||
| |#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | |#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | ||||||
| |n|t| +0#0000000&@72 | |n|t| +0#0000000&@72 | ||||||
| @57|1|9|,|1| @9|9|3|%|  | @57|1|9|,|1| @9|8|7|%|  | ||||||
|   | |||||||
| @@ -1,6 +1,4 @@ | |||||||
| |a+0&#ffffff0| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| @38| +0#0000000&@15 | | +0&#ffffff0@74 | ||||||
| |'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| @10| +0#0000000&@22 |  | ||||||
| @75 |  | ||||||
| |"+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| @56 | |"+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| @56 | ||||||
| @60| +0#0000000&@14 | @60| +0#0000000&@14 | ||||||
| |<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| @2 | |<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| @2 | ||||||
| @@ -15,6 +13,8 @@ | |||||||
| |"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12 | |"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12 | ||||||
| |#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | |#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e | ||||||
| |n|t| +0#0000000&@72 | |n|t| +0#0000000&@72 | ||||||
| >\|"| |“| @18|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| | +0#0000000&@2 | |\|"| |“| @26|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m | ||||||
| |~+0#4040ff13&| @73 | @1|e|n|t| | +0#0000000&@69 | ||||||
| | +0#0000000&@56|2|6|,|1| @9|B|o|t|  | >:| |"| @27|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m | ||||||
|  | @1|e|n|t| +0#0000000&@70 | ||||||
|  | @57|2|7|,|1| @9|B|o|t|  | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								runtime/syntax/testdir/input/vim9_keymap.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								runtime/syntax/testdir/input/vim9_keymap.vim
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | vim9script | ||||||
|  |  | ||||||
|  | # Vim Keymap file for syntax testing | ||||||
|  |  | ||||||
|  | scriptencoding utf-8 | ||||||
|  |  | ||||||
|  | let b:keymap_name = "syntax-test" | ||||||
|  |  | ||||||
|  | loadkeymap | ||||||
|  |  | ||||||
|  | # Line comment | ||||||
|  |  | ||||||
|  |   # Another line comment | ||||||
|  |  | ||||||
|  | a A    Basic mapping | ||||||
|  | 'a á   More than one char in first column | ||||||
|  |  | ||||||
|  | # Special notation | ||||||
|  | <char-62>      B               Special notation allowed in LHS - decimal | ||||||
|  | c              <char-0103>     Special notation allowed in RHS - octal | ||||||
|  | <char-0x0064>  <char-0x0044>   Special notation allowed in LHS and RHS - hexadecimal | ||||||
|  |  | ||||||
|  | # Vim-script comment characters | ||||||
|  | \# <char-0x00a3>               Line should not match as a Vim9-script comment | ||||||
|  | " “                            Line should not match as a legacy-script comment | ||||||
|  | : #                            Line should not match as a Vim9-script comment | ||||||
							
								
								
									
										16
									
								
								runtime/syntax/testdir/input/vim9_legacy_header.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								runtime/syntax/testdir/input/vim9_legacy_header.vim
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | " comment | ||||||
|  |  | ||||||
|  | if !has('vim9script') | ||||||
|  |   # 42 " comment | ||||||
|  |   source foo.vim | ||||||
|  |   finish | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | " comment | ||||||
|  |  | ||||||
|  | vim9script noclear | ||||||
|  |  | ||||||
|  | # comment | ||||||
|  |  | ||||||
|  |  # string only recognised with leading char | ||||||
|  |  "useless string" | ||||||
| @@ -558,7 +558,7 @@ | |||||||
| :verbose | :verbose | ||||||
| :vertical | :vertical | ||||||
| :vim9cmd | :vim9cmd | ||||||
| :vim9script | " :vim9script | ||||||
| :vimgrep | :vimgrep | ||||||
| :vimgrepadd | :vimgrepadd | ||||||
| :visual | :visual | ||||||
| @@ -1152,7 +1152,7 @@ call Foo() | version | |||||||
| call Foo() | verbose | call Foo() | verbose | ||||||
| call Foo() | vertical | call Foo() | vertical | ||||||
| call Foo() | vim9cmd | call Foo() | vim9cmd | ||||||
| call Foo() | vim9script | " call Foo() | vim9script | ||||||
| call Foo() | vimgrep | call Foo() | vimgrep | ||||||
| call Foo() | vimgrepadd | call Foo() | vimgrepadd | ||||||
| call Foo() | visual | call Foo() | visual | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								runtime/syntax/testdir/input/vim_ex_comment-vim9.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								runtime/syntax/testdir/input/vim_ex_comment-vim9.vim
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | vim9script | ||||||
|  |  | ||||||
|  | # Vim comments | ||||||
|  |  | ||||||
|  | # Vim9-script comment | ||||||
|  |  | ||||||
|  |  # string only recognised with leading char | ||||||
|  |  "useless string" | ||||||
|  |  | ||||||
|  | function! Foo() | ||||||
|  |   " Legacy-script comment | ||||||
|  |   # 42 " comment | ||||||
|  | endfunction | ||||||
|  |  | ||||||
|  | def! Bar() | ||||||
|  |   # Vim9-script comment | ||||||
|  |   "useless string" # comment | ||||||
|  | enddef | ||||||
|  |  | ||||||
|  | command -count FooCommand { | ||||||
|  |   # Vim9-script comment | ||||||
|  |   "useless string" # comment | ||||||
|  | } | ||||||
|  |  | ||||||
|  | autocmd BufNewFile * { | ||||||
|  |   # Vim9-script comment | ||||||
|  |   "useless string" # comment | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Issue: #13047 | ||||||
|  |  | ||||||
|  | if !exists(":DiffOrig") | ||||||
|  |   command DiffOrig vert new | set bt=nofile | r ++edit %% | 0d_ | diffthis | ||||||
|  | 		  \ | wincmd p | diffthis | ||||||
|  | endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Issue: #11307 and #11560 | ||||||
|  |  | ||||||
|  | # This is what we call " blah | ||||||
							
								
								
									
										45
									
								
								runtime/syntax/testdir/input/vim_ex_comment.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								runtime/syntax/testdir/input/vim_ex_comment.vim
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | " Vim comments | ||||||
|  |  | ||||||
|  | " Legacy-script comment | ||||||
|  |  | ||||||
|  | # 42 " comment | ||||||
|  |  | ||||||
|  | function! Foo() | ||||||
|  |   " Legacy-script comment | ||||||
|  |   # 42 " comment | ||||||
|  | endfunction | ||||||
|  |  | ||||||
|  | def! Bar() | ||||||
|  |   # Vim9-script comment | ||||||
|  |   "useless string" # comment | ||||||
|  | enddef | ||||||
|  |  | ||||||
|  | command -nargs=1 FooCommand { | ||||||
|  |   # Vim9-script comment | ||||||
|  |   "useless string" # comment | ||||||
|  | } | ||||||
|  |  | ||||||
|  | autocmd BufNewFile * { | ||||||
|  |   # Vim9-script comment | ||||||
|  |   "useless string" # comment | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | " Issue: #13047 | ||||||
|  |  | ||||||
|  | if !exists(":DiffOrig") | ||||||
|  |   command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis | ||||||
|  | 		  \ | wincmd p | diffthis | ||||||
|  | endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | " Issue: #11307 and #11560 | ||||||
|  |  | ||||||
|  | " This is what we call " blah | ||||||
|  |  | ||||||
|  |  | ||||||
|  | " Issue # #9587 | ||||||
|  |  | ||||||
|  | def CommentTitle() | ||||||
|  |   # Title: ... | ||||||
|  | enddef | ||||||
| @@ -23,4 +23,5 @@ c              <char-0103>     Special notation allowed in RHS - octal | |||||||
|                                           |                                           | ||||||
| " Vim-script comment characters                                | " Vim-script comment characters                                | ||||||
| # <char-0x00a3>                Line should not match as a Vim9-script comment | # <char-0x00a3>                Line should not match as a Vim9-script comment | ||||||
| \" “                   Line should not match as a legacy-script comment  | \" “                           Line should not match as a legacy-script comment  | ||||||
|  | : "                            Line should not match as a legacy-script comment | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
| " Maintainer:	   Hirohito Higashi <h.east.727 ATMARK gmail.com> | " Maintainer:	   Hirohito Higashi <h.east.727 ATMARK gmail.com> | ||||||
| "	   Doug Kearns <dougkearns@gmail.com> | "	   Doug Kearns <dougkearns@gmail.com> | ||||||
| " URL:	   https://github.com/vim-jp/syntax-vim-ex | " URL:	   https://github.com/vim-jp/syntax-vim-ex | ||||||
| " Last Change:	   2024 Apr 09 | " Last Change:	   2024 Apr 11 | ||||||
| " Former Maintainer: Charles E. Campbell | " Former Maintainer: Charles E. Campbell | ||||||
|  |  | ||||||
| " DO NOT CHANGE DIRECTLY. | " DO NOT CHANGE DIRECTLY. | ||||||
| @@ -19,6 +19,8 @@ endif | |||||||
| let s:keepcpo= &cpo | let s:keepcpo= &cpo | ||||||
| set cpo&vim | set cpo&vim | ||||||
|  |  | ||||||
|  | let s:vim9script = "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>' | ||||||
|  |  | ||||||
| " vimTodo: contains common special-notices for comments {{{2 | " vimTodo: contains common special-notices for comments {{{2 | ||||||
| " Use the vimCommentGroup cluster to add your own. | " Use the vimCommentGroup cluster to add your own. | ||||||
| syn keyword vimTodo contained	COMBAK	FIXME	TODO	XXX | syn keyword vimTodo contained	COMBAK	FIXME	TODO	XXX | ||||||
| @@ -31,7 +33,7 @@ syn keyword vimCommand contained comp[iler] con[tinue] conf[irm] cons[t] cope[n] | |||||||
| syn keyword vimCommand contained helpg[rep] helpt[ags] ha[rdcopy] hi[ghlight] hid[e] his[tory] ho[rizontal] if ij[ump] il[ist] imp[ort] int[ro] inte[rface] is[earch] isp[lit] j[oin] ju[mps] k kee[pmarks] keepj[umps] keepp[atterns] keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] let lex[pr] leg[acy] lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] lh[elpgrep] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] loadk[eymap] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lua luad[o] luaf[ile] lv[imgrep] lvimgrepa[dd] lw[indow] | syn keyword vimCommand contained helpg[rep] helpt[ags] ha[rdcopy] hi[ghlight] hid[e] his[tory] ho[rizontal] if ij[ump] il[ist] imp[ort] int[ro] inte[rface] is[earch] isp[lit] j[oin] ju[mps] k kee[pmarks] keepj[umps] keepp[atterns] keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] let lex[pr] leg[acy] lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] lh[elpgrep] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] loadk[eymap] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lua luad[o] luaf[ile] lv[imgrep] lvimgrepa[dd] lw[indow] | ||||||
| syn keyword vimCommand contained ls m[ove] ma[rk] mak[e] marks mat[ch] menut[ranslate] mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] mz[scheme] mzf[ile] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pc[lose] pe[rl] perld[o] ped[it] po[p] pp[op] pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pub[lic] pw[d] py[thon] pyd[o] pyf[ile] py3 py3d[o] python3 py3f[ile] pyx pyxd[o] pythonx pyxf[ile] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redi[r] redr[aw] redraws[tatus] redrawt[abline] reg[isters] res[ize] | syn keyword vimCommand contained ls m[ove] ma[rk] mak[e] marks mat[ch] menut[ranslate] mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] mz[scheme] mzf[ile] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pc[lose] pe[rl] perld[o] ped[it] po[p] pp[op] pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pub[lic] pw[d] py[thon] pyd[o] pyf[ile] py3 py3d[o] python3 py3f[ile] pyx pyxd[o] pythonx pyxf[ile] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redi[r] redr[aw] redraws[tatus] redrawt[abline] reg[isters] res[ize] | ||||||
| syn keyword vimCommand contained ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] ru[ntime] rub[y] rubyd[o] rubyf[ile] rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] san[dbox] sav[eas] sb[uffer] sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] sc[riptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] si[malt] sig[n] sil[ent] sl[eep] sla[st] sn[ext] so[urce] sor[t] sp[lit] spe[llgood] spelld[ump] spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sr[ewind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stat[ic] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sw[apname] synti[me] sync[bind] smi[le] t tN[ext] ta[g] tags tab tabc[lose] tabd[o] tabe[dit] | syn keyword vimCommand contained ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] ru[ntime] rub[y] rubyd[o] rubyf[ile] rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] san[dbox] sav[eas] sb[uffer] sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] sc[riptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] si[malt] sig[n] sil[ent] sl[eep] sla[st] sn[ext] so[urce] sor[t] sp[lit] spe[llgood] spelld[ump] spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sr[ewind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stat[ic] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sw[apname] synti[me] sync[bind] smi[le] t tN[ext] ta[g] tags tab tabc[lose] tabd[o] tabe[dit] | ||||||
| syn keyword vimCommand contained tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] tcl tcld[o] tclf[ile] te[aroff] ter[minal] tf[irst] th[row] thi[s] tj[ump] tl[ast] tn[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] ty[pe] u[ndo] undoj[oin] undol[ist] unh[ide] unl[et] unlo[ckvar] uns[ilent] up[date] v[global] ve[rsion] verb[ose] vert[ical] vi[sual] vie[w] vim[grep] vimgrepa[dd] vim9[cmd] vim9s[cript] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wh[ile] wi[nsize] winc[md] wind[o] winp[os] wn[ext] wp[revious] wq wqa[ll] wu[ndo] wv[iminfo] x[it] xa[ll] xr[estore] y[ank] z dl dell delel deletl deletel dp dep delp delep deletp deletep a i | syn keyword vimCommand contained tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] tcl tcld[o] tclf[ile] te[aroff] ter[minal] tf[irst] th[row] thi[s] tj[ump] tl[ast] tn[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] ty[pe] u[ndo] undoj[oin] undol[ist] unh[ide] unl[et] unlo[ckvar] uns[ilent] up[date] v[global] ve[rsion] verb[ose] vert[ical] vi[sual] vie[w] vim[grep] vimgrepa[dd] vim9[cmd] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wh[ile] wi[nsize] winc[md] wind[o] winp[os] wn[ext] wp[revious] wq wqa[ll] wu[ndo] wv[iminfo] x[it] xa[ll] xr[estore] y[ank] z dl dell delel deletl deletel dp dep delp delep deletp deletep a i | ||||||
|  |  | ||||||
| syn keyword vimCommand contained	2mat[ch] 3mat[ch] | syn keyword vimCommand contained	2mat[ch] 3mat[ch] | ||||||
|  |  | ||||||
| @@ -193,13 +195,13 @@ endif | |||||||
| " Numbers {{{2 | " Numbers {{{2 | ||||||
| " ======= | " ======= | ||||||
| syn case ignore | syn case ignore | ||||||
| syn match	vimNumber	'\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\='	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\='	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0b[01]\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0b[01]\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0o\=\o\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0o\=\o\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0x\x\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0x\x\+'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0z\>'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0z\>'			skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*'	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*'	skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment | syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment | ||||||
| syn case match | syn case match | ||||||
|  |  | ||||||
| " All vimCommands are contained by vimIsCommand. {{{2 | " All vimCommands are contained by vimIsCommand. {{{2 | ||||||
| @@ -245,7 +247,7 @@ syn keyword vimFTOption contained	detect indent off on plugin | |||||||
|  |  | ||||||
| " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 | " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 | ||||||
| " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. | " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. | ||||||
| syn cluster vimAugroupList	contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue | syn cluster vimAugroupList	contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,@vimComment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue | ||||||
| syn match   vimAugroup	"\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup | syn match   vimAugroup	"\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup | ||||||
| if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' | if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' | ||||||
|   syn region  vimAugroup  fold	start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd |   syn region  vimAugroup  fold	start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd | ||||||
| @@ -336,15 +338,21 @@ syn match	vimUserType	contained	"\<\u\w*\>" | |||||||
|  |  | ||||||
| syn cluster vimType contains=vimType,vimCompoundType,vimUserType | syn cluster vimType contains=vimType,vimCompoundType,vimUserType | ||||||
|  |  | ||||||
| " Keymaps: (Vim Project Addition) {{{2 | " Keymaps: {{{2 | ||||||
| " ======= | " ======= | ||||||
|  |  | ||||||
| " TODO: handle Vim9 script comments when something like #13104 is merged | syn match  vimKeymapStart	"^"	contained skipwhite nextgroup=vimKeymapLhs,@vimKeymapLineComment | ||||||
| syn match  vimKeymapStart	"^"	contained skipwhite nextgroup=vimKeymapLhs,vimKeymapLineComment |  | ||||||
| syn match  vimKeymapLhs	"\S\+"	contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation | syn match  vimKeymapLhs	"\S\+"	contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation | ||||||
| syn match  vimKeymapRhs	"\S\+"	contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation | syn match  vimKeymapRhs	"\S\+"	contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation | ||||||
| syn match  vimKeymapTailComment	"\S.*"	contained | syn match  vimKeymapTailComment	"\S.*"	contained | ||||||
| syn match  vimKeymapLineComment	+".*+	contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle |  | ||||||
|  | " TODO: remove when :" comment is matched in parts as "ex-colon comment" --djk | ||||||
|  | if s:vim9script | ||||||
|  |   syn match  vim9KeymapLineComment	"#.*"	contained contains=@vimCommentGroup,vimCommentString,vim9CommentTitle | ||||||
|  | else | ||||||
|  |   syn match  vimKeymapLineComment	+".*+	contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle | ||||||
|  | endif | ||||||
|  | syn cluster vimKeymapLineComment contains=vim9\=KeymapLineComment | ||||||
|  |  | ||||||
| syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart | syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart | ||||||
|  |  | ||||||
| @@ -360,9 +368,10 @@ syn match	vimSpecFileMod	"\(:[phtre]\)\+"	contained | |||||||
|  |  | ||||||
| " User-Specified Commands: {{{2 | " User-Specified Commands: {{{2 | ||||||
| " ======================= | " ======================= | ||||||
| syn cluster	vimUserCmdList	contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange | syn cluster	vimUserCmdList	contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange | ||||||
| syn keyword	vimUserCommand	contained	com[mand] | syn keyword	vimUserCommand	contained	com[mand] | ||||||
| syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter | syn match	vimUserCmdName	contained	"\<\u\w*\>" nextgroup=vimUserCmdBlock skipwhite | ||||||
|  | syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter,vimCmdBlock,vimUserCmdName | ||||||
| syn match	vimUserAttrbError	contained	"-\a\+\ze\s" | syn match	vimUserAttrbError	contained	"-\a\+\ze\s" | ||||||
| syn match	vimUserAttrb	contained	"-nargs=[01*?+]"	contains=vimUserAttrbKey,vimOper | syn match	vimUserAttrb	contained	"-nargs=[01*?+]"	contains=vimUserAttrbKey,vimOper | ||||||
| syn match	vimUserAttrb	contained	"-complete="		contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError | syn match	vimUserAttrb	contained	"-complete="		contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError | ||||||
| @@ -385,20 +394,41 @@ syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w* | |||||||
| syn case match | syn case match | ||||||
| syn match	vimUserAttrbCmplt contained	"custom,\u\w*" | syn match	vimUserAttrbCmplt contained	"custom,\u\w*" | ||||||
|  |  | ||||||
|  | syn region	vimUserCmdBlock	contained	matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList | ||||||
|  |  | ||||||
| " Lower Priority Comments: after some vim commands... {{{2 | " Lower Priority Comments: after some vim commands... {{{2 | ||||||
| " ======================= | " ======================= | ||||||
| syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString | syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e end='"' | ||||||
| syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString |  | ||||||
| syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString | if s:vim9script | ||||||
| syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"' |   syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString contained | ||||||
| " Vim9 comments - TODO: might be highlighted while they don't work |   syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString contained | ||||||
| syn match	vim9Comment	excludenl +\s#[^{].*$+lc=1	contains=@vimCommentGroup,vimCommentString |   syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString contained | ||||||
| syn match	vim9Comment	+\<endif\s\+#[^{].*$+lc=5	contains=@vimCommentGroup,vimCommentString |   " Vim9 comments - TODO: might be highlighted while they don't work | ||||||
| syn match	vim9Comment	+\<else\s\+#[^{].*$+lc=4	contains=@vimCommentGroup,vimCommentString |   syn match	vim9Comment	excludenl +\s#[^{].*$+lc=1	contains=@vimCommentGroup,vimCommentString | ||||||
| " Vim9 comment inside expression |   syn match	vim9Comment	+\<endif\s\+#[^{].*$+lc=5	contains=@vimCommentGroup,vimCommentString | ||||||
| syn match	vim9Comment	+\s\zs#[^{].*$+ms=s+1	contains=@vimCommentGroup,vimCommentString |   syn match	vim9Comment	+\<else\s\+#[^{].*$+lc=4	contains=@vimCommentGroup,vimCommentString | ||||||
| syn match	vim9Comment	+^\s*#[^{].*$+	contains=@vimCommentGroup,vimCommentString |   " Vim9 comment inside expression | ||||||
| syn match	vim9Comment	+^\s*#$+	contains=@vimCommentGroup,vimCommentString |   " syn match	vim9Comment	+\s\zs#[^{].*$+ms=s+1	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   " syn match	vim9Comment	+^\s*#[^{].*$+		contains=@vimCommentGroup,vimCommentString | ||||||
|  |   " syn match	vim9Comment	+^\s*#$+		contains=@vimCommentGroup,vimCommentString | ||||||
|  |  | ||||||
|  |   syn cluster vimComment contains=vim9Comment | ||||||
|  | else | ||||||
|  |   syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString | ||||||
|  |   " Vim9 comments - TODO: might be highlighted while they don't work | ||||||
|  |   syn match	vim9Comment	excludenl +\s#[^{].*$+lc=1	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+\<endif\s\+#[^{].*$+lc=5	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+\<else\s\+#[^{].*$+lc=4	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   " Vim9 comment inside expression | ||||||
|  |   syn match	vim9Comment	+\s\zs#[^{].*$+ms=s+1	contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+^\s*#[^{].*$+		contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |   syn match	vim9Comment	+^\s*#$+		contains=@vimCommentGroup,vimCommentString contained | ||||||
|  |  | ||||||
|  |   syn cluster vimComment contains=vimComment | ||||||
|  | endif | ||||||
|  |  | ||||||
| " Environment Variables: {{{2 | " Environment Variables: {{{2 | ||||||
| " ===================== | " ===================== | ||||||
| @@ -488,7 +518,7 @@ syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 | |||||||
| syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' | syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' | ||||||
|  |  | ||||||
| " Set command and associated set-options (vimOptions) with comment {{{2 | " Set command and associated set-options (vimOptions) with comment {{{2 | ||||||
| syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vim9Comment,vimSetString,vimSetMod | syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod | ||||||
| syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$"	contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar | syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$"	contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar | ||||||
| syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+		contains=vimCtrlChar | syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+		contains=vimCtrlChar | ||||||
| syn match	vimSetSep	contained	"[,:]" | syn match	vimSetSep	contained	"[,:]" | ||||||
| @@ -522,9 +552,10 @@ syn keyword vimAbb abc[lear] cabc[lear] iabc[lear] skipwhite nextgroup=vimMapMod | |||||||
| " ======= | " ======= | ||||||
| syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace | syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace | ||||||
| syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList | syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList | ||||||
| syn match	vimAutoCmdSfxList	contained	"\S*"	skipwhite nextgroup=vimAutoCmdMod | syn match	vimAutoCmdSfxList	contained	"\S*"	skipwhite nextgroup=vimAutoCmdMod,vimAutoCmdBlock | ||||||
| syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList | syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList | ||||||
| syn match	vimAutoCmdMod	"\(++\)\=\(once\|nested\)" | syn match	vimAutoCmdMod	"\(++\)\=\(once\|nested\)"	skipwhite nextgroup=vimAutoCmdBlock | ||||||
|  | syn region	vimAutoCmdBlock	contained	matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList | ||||||
|  |  | ||||||
| " Echo And Execute: -- prefer strings! {{{2 | " Echo And Execute: -- prefer strings! {{{2 | ||||||
| " ================ | " ================ | ||||||
| @@ -668,7 +699,7 @@ if has("conceal") | |||||||
|  syn match	vimSynCcharValue	contained	"\S" |  syn match	vimSynCcharValue	contained	"\S" | ||||||
| endif | endif | ||||||
|  |  | ||||||
| syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment,vim9Comment | syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,@vimComment | ||||||
| syn cluster vimFuncBodyList add=vimSyntax | syn cluster vimFuncBodyList add=vimSyntax | ||||||
|  |  | ||||||
| " Syntax: case {{{2 | " Syntax: case {{{2 | ||||||
| @@ -757,7 +788,7 @@ syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotatio | |||||||
|  |  | ||||||
| " Highlighting: {{{2 | " Highlighting: {{{2 | ||||||
| " ============ | " ============ | ||||||
| syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment,vim9Comment | syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,@vimComment | ||||||
| if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") | if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") | ||||||
|  syn match	vimHiCtermError	contained	"\D\i*" |  syn match	vimHiCtermError	contained	"\D\i*" | ||||||
| endif | endif | ||||||
| @@ -813,16 +844,21 @@ syn match	vimCtrlChar	"[--]" | |||||||
|  |  | ||||||
| " Beginners - Patterns that involve ^ {{{2 | " Beginners - Patterns that involve ^ {{{2 | ||||||
| " ========= | " ========= | ||||||
| syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle,vimComment | if s:vim9script | ||||||
| syn match	vimLineComment	+^[ \t:]*"\("[^"]*"\|[^"]\)*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle |   syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle contained | ||||||
| syn match	vim9LineComment	+^[ \t:]\+#.*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle |   syn match	vim9LineComment	+^[ \t:]*#.*$+	contains=@vimCommentGroup,vimCommentString,vim9CommentTitle | ||||||
|  | else | ||||||
|  |   syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle | ||||||
|  |   syn match	vim9LineComment	+^[ \t:]*#.*$+	contains=@vimCommentGroup,vimCommentString,vim9CommentTitle contained | ||||||
|  | endif | ||||||
| syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup | syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup | ||||||
| " Note: Look-behind to work around nextgroup skipnl consuming leading whitespace and preventing a match | syn match	vim9CommentTitle	'#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup | ||||||
| syn match	vimContinue		"^\s*\zs\\" | syn match	vimContinue		"^\s*\zs\\" | ||||||
| syn match         vimContinueComment	'^\s*\zs["#]\\ .*' contained | syn match         vimContinueComment	'^\s*\zs["#]\\ .*' contained | ||||||
| syn cluster	vimContinue contains=vimContinue,vimContinueComment | syn cluster	vimContinue contains=vimContinue,vimContinueComment | ||||||
| syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue | syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue | ||||||
| syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained | syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained | ||||||
|  | syn match	vim9CommentTitleLeader	'#\s\+'ms=s+1	contained | ||||||
|  |  | ||||||
| " Searches And Globals: {{{2 | " Searches And Globals: {{{2 | ||||||
| " ==================== | " ==================== | ||||||
| @@ -831,6 +867,17 @@ syn match	vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained | |||||||
| syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/'  skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/'  skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | ||||||
| syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'	skipwhite nextgroup=vimSubst1 | ||||||
|  |  | ||||||
|  | " Vim9 Script Regions: {{{2 | ||||||
|  | " ================== | ||||||
|  |  | ||||||
|  | if s:vim9script | ||||||
|  |   syn cluster vimLegacyTop contains=TOP,vimPreVim9script,vim9Comment,vim9LineComment | ||||||
|  |   syn region vimPreVim9script start="\%^" end="^\ze\s*vim9s\%[cript]\>" contains=@vimLegacyTop,vimComment,vimLineComment | ||||||
|  |  | ||||||
|  |   syn keyword vim9ScriptArg noclear | ||||||
|  |   syn keyword vimCommand vim9s[cript] nextgroup=vim9ScriptArg skipwhite | ||||||
|  | endif | ||||||
|  |  | ||||||
| " Embedded Scripts:  {{{2 | " Embedded Scripts:  {{{2 | ||||||
| " ================ | " ================ | ||||||
| "   perl,ruby     : Benoit Cerrina | "   perl,ruby     : Benoit Cerrina | ||||||
| @@ -1038,6 +1085,7 @@ if !exists("skip_vim_syntax_inits") | |||||||
|   hi def link vimBufnrWarn	vimWarn |   hi def link vimBufnrWarn	vimWarn | ||||||
|  endif |  endif | ||||||
|  |  | ||||||
|  |  hi def link vim9ScriptArg	Special | ||||||
|  hi def link vimAbb	vimCommand |  hi def link vimAbb	vimCommand | ||||||
|  hi def link vimAddress	vimMark |  hi def link vimAddress	vimMark | ||||||
|  hi def link vimAugroupBang	vimBang |  hi def link vimAugroupBang	vimBang | ||||||
| @@ -1057,6 +1105,7 @@ if !exists("skip_vim_syntax_inits") | |||||||
|  hi def link vim9Comment	Comment |  hi def link vim9Comment	Comment | ||||||
|  hi def link vimCommentString	vimString |  hi def link vimCommentString	vimString | ||||||
|  hi def link vimCommentTitle	PreProc |  hi def link vimCommentTitle	PreProc | ||||||
|  |  hi def link vim9CommentTitle	PreProc | ||||||
|  hi def link vimCondHL	vimCommand |  hi def link vimCondHL	vimCommand | ||||||
|  hi def link vimConst	vimCommand |  hi def link vimConst	vimCommand | ||||||
|  hi def link vimContinue	Special |  hi def link vimContinue	Special | ||||||
| @@ -1114,6 +1163,7 @@ if !exists("skip_vim_syntax_inits") | |||||||
|  hi def link vimHLGroup	vimGroup |  hi def link vimHLGroup	vimGroup | ||||||
|  hi def link vimInsert	vimString |  hi def link vimInsert	vimString | ||||||
|  hi def link vimIskSep	Delimiter |  hi def link vimIskSep	Delimiter | ||||||
|  |  hi def link vim9KeymapLineComment	vimKeymapLineComment | ||||||
|  hi def link vimKeymapLineComment	vimComment |  hi def link vimKeymapLineComment	vimComment | ||||||
|  hi def link vimKeymapTailComment	vimComment |  hi def link vimKeymapTailComment	vimComment | ||||||
|  hi def link vimLet	vimCommand |  hi def link vimLet	vimCommand | ||||||
| @@ -1236,5 +1286,5 @@ delc VimFoldP | |||||||
| delc VimFoldr | delc VimFoldr | ||||||
| delc VimFoldt | delc VimFoldt | ||||||
| let &cpo = s:keepcpo | let &cpo = s:keepcpo | ||||||
| unlet s:keepcpo | unlet s:keepcpo s:vim9script | ||||||
| " vim:ts=18 fdm=marker ft=vim | " vim:ts=18 fdm=marker ft=vim | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user