runtime(vim): Update base-syntax, improve :set highlighting
Commit:
https://github.com/vim/vim/commit/ddbb6fe2d0344e93436c5602b7a06169f49a9b52
Author: Doug Kearns <[email protected]>
Date: Wed Jul 24 20:21:22 2024 +0200
runtime(vim): Update base-syntax, improve :set highlighting
- Match bang, "all" and "termcap" options, and trailing command
separator "|".
- Highlight set assignment operators.
- Match multiline :set and multiline option values.
- Mention the newer "0o" octal prefix at :help :set=.
closes: #15329
Signed-off-by: Doug Kearns <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 30214014d..52714da2d 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 9.1. Last change: 2024 Jul 16
+*options.txt* For Vim version 9.1. Last change: 2024 Jul 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -76,7 +76,8 @@ achieve special effects. These options come in three forms:
:se[t] {option}:{value}
Set string or number option to {value}.
For numeric options the value can be given in decimal,
- hex (preceded with 0x) or octal (preceded with '0').
+ hex (preceded with 0x) or octal (preceded with '0' or
+ '0o').
The old value can be inserted by typing 'wildchar' (by
default this is a <Tab> or CTRL-E if 'compatible' is
set). Many string options with fixed syntax and names
diff --git a/runtime/syntax/generator/vim.vim.base
b/runtime/syntax/generator/vim.vim.base
index 75e451d43..4666d7158 100644
--- a/runtime/syntax/generator/vim.vim.base
+++ b/runtime/syntax/generator/vim.vim.base
@@ -35,7 +35,7 @@ syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear
Continue DiffOrig Evaluate Finish Gdb Lfilter Man Over Program Run S Source
Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
" vimOptions are caught only when contained in a vimSet {{{2
-" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained',
END_STR=''
+" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained',
END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
" vimOptions: These are the turn-off setting variants {{{2
" GEN_SYN_VIM: vimOption turn-off, START_STR='syn keyword vimOption
contained', END_STR=''
@@ -44,7 +44,7 @@ syn keyword vimStdPlugin contained Arguments Asm Break
Cfilter Clear Continue Di
" GEN_SYN_VIM: vimOption invertible, START_STR='syn keyword vimOption
contained', END_STR=''
" termcap codes (which can also be set) {{{2
-" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption
contained', END_STR=''
+" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption
contained', END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
" term key codes
syn keyword vimOption contained t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8
t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8
t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI
t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku
syn match vimOption contained "t_%1"
@@ -505,11 +505,15 @@ syn match vimCmplxRepeat
'[^a-zA-Z_/\()]q[0-9a-zA-Z"]\>'lc=1
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
" Set command and associated set-options (vimOptions) with comment {{{2
-syn region vimSet matchgroup=vimCommand
start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\)*\.
\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend
contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod
-syn region vimSetEqual contained start="[=:]\|[-+^]="
skip="\\\|\\s" end="[| ]"me=e-1 end="$"
contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar
-syn region vimSetString contained start=+="+hs=s+1
skip=+\\\|\"+ end=+"+ contains=vimCtrlChar
+syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>"
skipwhite nextgroup=vimSetBang,vimSetRegion
+syn region vimSetRegion contained start="\S" skip=+\\\|\|\|
\s*\\|
\s*["#]\ + matchgroup=vimCmdSep end="|" end="$" matchgroup=vimNotation
end="<[cC][rR]>" keepend
contains=@vimComment,@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
+syn region vimSetEqual contained matchgroup=vimOper
start="[=:]\|[-+^]=" skip=+\\\|\|\|\\s\|
\s*\\|
\s*["#]\ \|^\s*\\|^\s*["#]\ + matchgroup=vimCmdSep end="|" end="\ze\s" end="$"
contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep
+syn match vimSetBang contained " \@1<=!" skipwhite
nextgroup=vimSetAll,vimSetTermcap
+syn keyword vimSetAll contained all nextgroup=vimSetMod
+syn keyword vimSetTermcap contained termcap
+syn region vimSetString contained start=+="+hs=s+1
skip=+\\\|\"+ end=+"+ contains=vimCtrlChar
syn match vimSetSep contained "[,:]"
-syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
+syn match vimSetMod contained " \@1<=\%(&vim\=\|[!&?<]\)"
" Variable Declarations: {{{2
" =====================
@@ -1228,9 +1232,13 @@ if !exists("skip_vim_syntax_inits")
hi def link vimSearchDelim Statement
hi def link vimSearch vimString
hi def link vimSep Delimiter
+ hi def link vimSet vimCommand
+ hi def link vimSetAll vimOption
+ hi def link vimSetBang vimBang
hi def link vimSetMod vimOption
- hi def link vimSetSep Statement
+ hi def link vimSetSep vimSep
hi def link vimSetString vimString
+ hi def link vimSetTermcap vimOption
hi def link vimShebang PreProc
hi def link vimSleep vimCommand
hi def link vimSleepArg Constant
diff --git a/runtime/syntax/testdir/dumps/vim9_comment_03.dump
b/runtime/syntax/testdir/dumps/vim9_comment_03.dump
index 0e424aba3..8a0fda883 100644
--- a/runtime/syntax/testdir/dumps/vim9_comment_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_comment_03.dump
@@ -5,7 +5,7 @@
|#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7|
+0#0000000&@59
> @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&
+@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#af5f00255&|n+0#0000000&|o|f|i|l|e| |||
|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
diff --git a/runtime/syntax/testdir/dumps/vim_comment_03.dump
b/runtime/syntax/testdir/dumps/vim_comment_03.dump
index 2d40f6cc9..70c951979 100644
--- a/runtime/syntax/testdir/dumps/vim_comment_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_comment_03.dump
@@ -2,7 +2,7 @@
|"+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
+@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#af5f00255&|n+0#0000000&|o|f|i|l|e| |||
|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
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
b/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
new file mode 100644
index 000000000..3f0471b62
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_00.dump
@@ -0,0 +1,20 @@
+>"+0#0000e05#ffffff0| |V|i|m| |:|s|e|t| |c|o|m@1|a|n|d| +0#0000000&@56
+@75
+|s+0#af5f00255&|e|t| +0#0000000&@71
+|s+0#af5f00255&|e|t|!| +0#0000000&@70
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1| +0#0000000&@67
+|s+0#af5f00255&|e|t|!| +0#0000000&|a+0#e000e06&|l@1| +0#0000000&@66
+|s+0#af5f00255&|e|t| +0#0000000&|t+0#e000e06&|e|r|m|c|a|p| +0#0000000&@63
+|s+0#af5f00255&|e|t|!| +0#0000000&|t+0#e000e06&|e|r|m|c|a|p| +0#0000000&@62
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|?| +0#0000000&@64
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h| +0#0000000&@65
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|n+0#e000e06&|o|a|l@1|o|w|r|e|v|i|n|s|
+0#0000000&@57
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1|o|w|r|e|v|i|n|s|!|
+0#0000000&@58
+|s+0#af5f00255&|e|t| +0#0000000&|i+0#e000e06&|n|v|a|l@1|o|w|r|e|v|i|n|s|
+0#0000000&@56
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&| +0#0000000&@64
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&|v|i| +0#0000000&@62
+@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
b/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
new file mode 100644
index 000000000..012170ecc
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_01.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1|o|w|r|e|v|i|n|s|!|
+0#0000000&@58
+|s+0#af5f00255&|e|t| +0#0000000&|i+0#e000e06&|n|v|a|l@1|o|w|r|e|v|i|n|s|
+0#0000000&@56
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&| +0#0000000&@64
+>s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&|v|i| +0#0000000&@62
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|&|v|i|m| +0#0000000&@61
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l@1|&| +0#0000000&@66
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|a+0#e000e06&|l|e|p|h|=+0#af5f00255&|1+0#0000000&|2|8| @61
+|s+0#af5f00255&|e|t|
+0#0000000&|a+0#e000e06&|l|e|p|h|:+0#af5f00255&|1+0#0000000&|2|8| @61
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|
+0#0000000&|=+0#af5f00255&|1+0#0000000&|2|8| @60
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|l|e|p|h|
+0#0000000&|:+0#af5f00255&|1+0#0000000&|2|8| @60
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|a+0#e000e06&|l|e|p|h|++0#af5f00255&|=|9+0#0000000&|6| @61
+|s+0#af5f00255&|e|t|
+0#0000000&|a+0#e000e06&|l|e|p|h|^+0#af5f00255&|=|2+0#0000000&| @62
+|s+0#af5f00255&|e|t|
+0#0000000&|a+0#e000e06&|l|e|p|h|-+0#af5f00255&|=|9+0#0000000&|6| @61
+@57|1|9|,|1| @9|1|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
b/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
new file mode 100644
index 000000000..d6328d2db
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_02.dump
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|e|t|
+0#0000000&|a+0#e000e06&|l|e|p|h|-+0#af5f00255&|=|9+0#0000000&|6| @61
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|b+0#e000e06&|a|c|k|s|p|a|c|e|++0#af5f00255&|=|n+0#0000000&|o|s|t|o|p|
@53
+|s+0#af5f00255&|e|t|
+0#0000000&|b+0#e000e06&|a|c|k|s|p|a|c|e|^+0#af5f00255&|=|n+0#0000000&|o|s|t|o|p|
@53
+|s+0#af5f00255&|e|t|
+0#0000000&|b+0#e000e06&|a|c|k|s|p|a|c|e|-+0#af5f00255&|=|n+0#0000000&|o|s|t|o|p|
@53
+> @74
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|i|
+0#0000000&|n+0#e000e06&|o|s|i|
+0#0000000&|s+0#e000e06&|w|=+0#af5f00255&|3+0#0000000&|
|t+0#e000e06&|w|=+0#af5f00255&|3+0#0000000&| @53
+@75
+|s+0#af5f00255&|e|t| +0#0000000&|<|t+0#e000e06&|_|#|4|>+0#0000000&|=|^|[|O|t|
|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@51
+|s+0#af5f00255&|e|t| +0#0000000&|<|M|-|b|>|=|^|[|b| @2|"+0#0000e05&|
|F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@51
+@75
+|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&|a+0#e000e06&|u|t|o|r|e|a|d|
+0#0000000&@57
+|s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&|n+0#e000e06&|o|a|u|t|o|r|e|a|d|
+0#0000000&@54
+|s+0#af5f00255&|e|t| +0#0000000&|a+0#e000e06&|u|t|o|r|e|a|d|<| +0#0000000&@61
+@75
+@75
+|"+0#0000e05&| |:|h|e|l|p| |o|p|t|i|o|n|-|b|a|c|k|s|l|a|s|h| +0#0000000&@50
+@75
+|"+0#0000e05&| |W|h|e|n| |s|e|t@1|i|n|g| |o|p|t|i|o|n|s| |u|s|i|n|g|
|||:|l|e|t||| |a|n|d| |||l|i|t|e|r|a|l|-|s|t|r|i|n|g|||,| |y|o|u| |n|e@1|d|
|t|o| |u|s|@+0#4040ff13&@2
+| +0#0000000&@56|3|7|,|0|-|1| @7|4|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
b/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
new file mode 100644
index 000000000..fb013bc99
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_03.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |W|h|e|n| |s|e|t@1|i|n|g| |o|p|t|i|o|n|s| |u|s|i|n|g|
|||:|l|e|t||| |a|n|d| |||l|i|t|e|r|a|l|-|s|t|r|i|n|g|||,| |y|o|u| |n|e@1|d|
|t|o| |u|s|e| |o
+|n|e| +0#0000000&@72
+|"+0#0000e05&| |f|e|w|e|r| |l|a|y|e|r| |o|f| |b|a|c|k|s|l|a|s|h|.| |A| |f|e|w|
|e|x|a|m|p|l|e|s|:| +0#0000000&@31
+|s+0#af5f00255&|e|t|
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|\|
|f|i|l|e| @5|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|
|f|i|l|e|"| +0#0000000&@22
+|l+0#af5f00255&|e|t|
+0#0000000&|&+0#00e0e07&|m|a|k|e|p|r|g|=+0#af5f00255&|'+0#e000002&|m|a|k|e|
|f|i|l|e|'| +0#0000000&@3|"+0#0000e05&| |(|s|a|m|e| |a|s| |a|b|o|v|e|)|
+0#0000000&@29
+>s+0#af5f00255&|e|t|
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|\@2|
|f|i|l|e| @3|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|\|
|f|i|l|e|"| +0#0000000&@21
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|\|
|/|u|s|r|/|t|a|g|s| @3|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n|
|"+0#e000002&|t|a|g|s|"| +0#0000e05&|a|n|d| |"+0#e000002&|/|u|s|r|/|t|a|g|s|"|
+0#0000000&@11
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|\@2| |f|i|l|e|
@6|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|t|a|g|s| |f|i|l|e|"|
+0#0000000&@22
+|l+0#af5f00255&|e|t|
+0#0000000&|&+0#00e0e07&|t|a|g|s|=+0#af5f00255&|'+0#e000002&|t|a|g|s|\|
|f|i|l|e|'| +0#0000000&@5|"+0#0000e05&| |(|s|a|m|e| |a|s| |a|b|o|v|e|)|
+0#0000000&@29
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|,+0#e000e06&|f+0#0000000&|i|l|e|
@6|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|,|f|i|l|e|"|
+0#0000000&@22
+|s+0#af5f00255&|e|t|
+0#0000000&|m+0#e000e06&|a|k|e|p|r|g|=+0#af5f00255&|m+0#0000000&|a|k|e|\@1|,+0#e000e06&|f+0#0000000&|i|l|e|
@4|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|m|a|k|e|\|,|f|i|l|e|"|
+0#0000000&@21
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|,+0#e000e06&|f+0#0000000&|i|l|e|
@9|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|t|a|g|s|"|
+0#0000e05&|a|n|d| |"+0#e000002&|f|i|l|e|"| +0#0000000&@16
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|a|g|s|=+0#af5f00255&|t+0#0000000&|a|g|s|\@1|,+0#e000e06&|f+0#0000000&|i|l|e|
@7|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|t|a|g|s|,|f|i|l|e|"|
+0#0000000&@22
+|l+0#af5f00255&|e|t|
+0#0000000&|&+0#00e0e07&|t|a|g|s|=+0#af5f00255&|'+0#e000002&|t|a|g|s|\|,|f|i|l|e|'|
+0#0000000&@5|"+0#0000e05&| |(|s|a|m|e| |a|s| |a|b|o|v|e|)| +0#0000000&@29
+@75
+|"+0#0000e05&| |T|h|i|s| |e|x|a|m|p|l|e| |s|e|t|s| |t|h|e|
|'|t|i|t|l|e|s|t|r|i|n|g|'| |o|p|t|i|o|n| |t|o|
|"+0#e000002&|h|i|||t|h|e|r|e|"|:+0#0000e05&| +0#0000000&@15
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|i|t|l|e|s|t|r|i|n|g|=+0#af5f00255&|h+0#0000000&|i|\|||t|h|e|r|e|
@49
+|"+0#0000e05&| |T|h|i|s| |s|e|t|s| |t|h|e| |'|t|i|t|l|e|s|t|r|i|n|g|'|
|o|p|t|i|o|n| |t|o| |"+0#e000002&|h|i|"| +0#0000e05&|a|n|d|
|'|i|c|o|n|s|t|r|i|n|g|'| |t|o| |"+0#e000002&|t|h|e|r|e|"|:+0#0000e05&|
+0#0000000&@1
+@57|5|4|,|1| @9|6|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
b/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
new file mode 100644
index 000000000..6280f6af4
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_04.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |T|h|i|s| |s|e|t|s| |t|h|e| |'|t|i|t|l|e|s|t|r|i|n|g|'|
|o|p|t|i|o|n| |t|o| |"+0#e000002&|h|i|"| +0#0000e05&|a|n|d|
|'|i|c|o|n|s|t|r|i|n|g|'| |t|o| |"+0#e000002&|t|h|e|r|e|"|:+0#0000e05&|
+0#0000000&@1
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|i|t|l|e|s|t|r|i|n|g|=+0#af5f00255&|h+0#0000000&|i|||s+0#af5f00255&|e|t|
+0#0000000&|i+0#e000e06&|c|o|n|s|t|r|i|n|g|=+0#af5f00255&|t+0#0000000&|h|e|r|e|
@35
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|d+0#e000e06&|i|r|=+0#af5f00255&|\+0#0000000&@1|m|a|c|h|i|n|e|\|p|a|t|h|
@5|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n|
|"+0#e000002&|\@1|m|a|c|h|i|n|e|\|p|a|t|h|"| +0#0000000&@17
+|s+0#af5f00255&|e|t|
+0#0000000&|d+0#e000e06&|i|r|=+0#af5f00255&|\+0#0000000&@3|m|a|c|h|i|n|e|\@1|p|a|t|h|
@2|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n|
|"+0#e000002&|\@1|m|a|c|h|i|n|e|\|p|a|t|h|"| +0#0000000&@17
+>s+0#af5f00255&|e|t|
+0#0000000&|d+0#e000e06&|i|r|=+0#af5f00255&|\+0#0000000&@1|p|a|t|h|\@1|f|i|l|e|
@7|"+0#0000e05&| |r|e|s|u|l|t|s| |i|n| |"+0#e000002&|\@1|p|a|t|h|\|f|i|l|e|"|
+0#0000e05&|(|w|r|o|n|g|!|)| +0#0000000&@11
+@75
+@75
+|"+0#0000e05&| |:|h|e|l|p| |:|s|e|t|_|e|n|v| +0#0000000&@58
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|t+0#e000e06&|e|r|m|=+0#af5f00255&|$+0#e000e06&|T|E|R|M|.+0#0000000&|n|e|w|
@56
+|s+0#af5f00255&|e|t|
+0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|/+0#0000000&|u|s|r|/|$+0#e000e06&|I|N|C|L|U|D|E|,|$|H|O|M|E|/+0#0000000&|i|n|c|l|u|d|e|,+0#e000e06&|.+0#0000000&|
@36
+@75
+@75
+|"+0#0000e05&| |M|u|l|t|i|l|i|n|e| |:|s|e|t| |a|n|d| |o|p|t|i|o|n|
|v|a|l|u|e|s| +0#0000000&@40
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i|
@54
+@6|"+0#0000e05&|\| |d|e|f| |i|s| |t|h|e| |'|d|e|f|i|n|e|'| |o|p|t|i|o|n|
+0#0000000&@39
+@6|\+0#e000e06&|
+0#0000000&|d+0#e000e06&|e|f|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i|
@51
+@57|7|2|,|1| @9|8|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
b/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
new file mode 100644
index 000000000..3f675294e
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_set_05.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@5|\+0#e000e06&|
+0#0000000&|d+0#e000e06&|e|f|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i|
@51
+@75
+|s+0#af5f00255&|e|t|
+0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|a+0#0000000&|b|c|,+0#e000e06&|
+0#0000000&@61
+@6|"+0#0000e05&|\| |d|e|f| |i|s| |a| |'|p|a|t|h|'| |d|i|r|e|c|t|o|r|y|
|v|a|l|u|e| +0#0000000&@34
+@6|\+0#e000e06&|d+0#0000000&|e|f|,+0#e000e06&|g+0#0000000&|h|i| @60
+> @74
+|s+0#af5f00255&|e|t| +0#0000000&|p+0#e000e06&|a|t|h|=+0#af5f00255&|
+0#0000000&@65
+@6|"+0#0000e05&|\| |d|e|f| |i|s| |a| |'|p|a|t|h|'| |d|i|r|e|c|t|o|r|y|
|v|a|l|u|e| +0#0000000&@34
+@6|\+0#e000e06&|a+0#0000000&|b|c|,+0#e000e06&|d+0#0000000&|e|f| @60
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|9|0|,|0|-|1| @7|B|o|t|
diff --git a/runtime/syntax/testdir/input/vim_ex_set.vim
b/runtime/syntax/testdir/input/vim_ex_set.vim
new file mode 100644
index 000000000..00e53a0d3
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim_ex_set.vim
@@ -0,0 +1,93 @@
+" Vim :set command
+
+set
+set!
+set all
+set! all
+set termcap
+set! termcap
+
+set aleph?
+set aleph
+
+set noallowrevins
+
+set allowrevins!
+set invallowrevins
+
+set aleph&
+set aleph&vi
+set aleph&vim
+
+set all&
+
+set aleph=128
+set aleph:128
+
+set aleph =128
+set aleph :128
+
+set aleph+=96
+set aleph^=2
+set aleph-=96
+
+set backspace+=nostop
+set backspace^=nostop
+set backspace-=nostop
+
+set ai nosi sw=3 tw=3
+
+set <t_#4>=^[Ot " FIXME
+set <M-b>=^[b " FIXME
+
+setlocal autoread
+setglobal noautoread
+set autoread<
+
+
+" :help option-backslash
+
+" When setting options using |:let| and |literal-string|, you need to use one
+" fewer layer of backslash. A few examples:
+set makeprg=make\ file " results in "make file"
+let &makeprg='make file' " (same as above)
+set makeprg=make\\ file " results in "make\ file"
+set tags=tags\ /usr/tags " results in "tags" and "/usr/tags"
+set tags=tags\\ file " results in "tags file"
+let &tags='tags\ file' " (same as above)
+
+set makeprg=make,file " results in "make,file"
+set makeprg=make\,file " results in "make\,file"
+set tags=tags,file " results in "tags" and "file"
+set tags=tags\,file " results in "tags,file"
+let &tags='tags\,file' " (same as above)
+
+" This example sets the 'titlestring' option to "hi|there":
+set titlestring=hi\|there
+" This sets the 'titlestring' option to "hi" and 'iconstring' to "there":
+set titlestring=hi|set iconstring=there
+
+set dir=\machine\path " results in "\machine\path"
+set dir=\\machine\path " results in "\machine\path"
+set dir=\path\file " results in "\path ile" (wrong!)
+
+
+" :help :set_env
+
+set term=$TERM.new
+set path=/usr/$INCLUDE,$HOME/include,.
+
+
+" Multiline :set and option values
+
+set path=abc,def,ghi
+ "\ def is the 'define' option
+ \ def=abc,def,ghi
+
+set path=abc,
+ "\ def is a 'path' directory value
+ \def,ghi
+
+set path=
+ "\ def is a 'path' directory value
+ bc,def
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 1be549895..8492463f5 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -3,7 +3,7 @@
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <[email protected]>
" URL: https://github.com/vim-jp/syntax-vim-ex
-" Last Change: 2024 Jul 18
+" Last Change: 2024 Jul 23
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -41,15 +41,15 @@ syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear
Continue DiffOrig Evaluate Finish Gdb Lfilter Man Over Program Run S Source
Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
" vimOptions are caught only when contained in a vimSet {{{2
-" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained',
END_STR=''
-syn keyword vimOption contained al aleph ari allowrevins ambw ambiwidth arab
arabic arshape arabicshape acd autochdir ai autoindent ar autoread asd
autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup
bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay
beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin
binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir
bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv
charconvert cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw
cinwords cb clipboard ch cmdheight cwh cmdwinheight cc colorcolumn co columns
com comments cms commentstring cp compatible cpt complete cfu completefunc
-syn keyword vimOption contained cot completeopt cpp completepopup csl
completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo
cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf
cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb
cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt
cursorlineopt debug def define deco delcombine dict dictionary diff dex
diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed
edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways
ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys ei
eventignore et expandtab ex exrc fenc fileencoding fencs fileencodings ff
fileformat ffs fileformats fic fileignorecase
-syn keyword vimOption contained ft filetype fcs fillchars fixeol fixendofline
fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl
foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines
fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo
formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr
guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli
guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile
hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp
hkmapp hls hlsearch icon iconstring ic ignorecase imaf imactivatefunc imak
imactivatekey imc imcmdline imd imdisable imi iminsert ims imsearch imsf
imstatusfunc
-syn keyword vimOption contained imst imstyle inc include inex includeexpr is
incsearch inde indentexpr indk indentkeys inf infercase im insertmode isf
isfname isi isident isk iskeyword isp isprint js joinspaces jop jumpoptions key
kmp keymap km keymodel kpc keyprotocol kp keywordprg lmap langmap lm langmenu
lnr langnoremap lrm langremap ls laststatus lz lazyredraw lbr linebreak lines
lsp linespace lisp lop lispoptions lw lispwords list lcs listchars lpl
loadplugins luadll magic mef makeef menc makeencoding mp makeprg mps matchpairs
mat matchtime mco maxcombine mfd maxfuncdepth mmd maxmapdepth mm maxmem mmp
maxmempattern mmt maxmemtot mis menuitems msm mkspellmem ml modeline mle
modelineexpr mls modelines ma modifiable mod modified more mouse mousef
mousefocus
-syn keyword vimOption contained mh mousehide mousem mousemodel mousemev
mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll
mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev
opendevice opfunc operatorfunc pp packpath para paragraphs paste pt pastetoggle
pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight
pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr
printexpr pfn printfont pheader printheader pmbcs printmbcharset pmbfn
printmbfont popt printoptions prompt ph pumheight pw pumwidth pythondll
pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc
qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber
remap rop renderoptions
-syn keyword vimOption contained report rs restorescreen ri revins rl rightleft
rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll
scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect
sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf
shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp
shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw
shiftwidth shm shortmess sn shortname sbr showbreak sc showcmd sloc showcmdloc
sft showfulltag sm showmatch smd showmode stal showtabline ss sidescroll siso
sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms
smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang
-syn keyword vimOption contained spo spelloptions sps spellsuggest sb
splitbelow spk splitkeep spr splitright sol startofline stl statusline su
suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol
syn syntax tcl tabclose tal tabline tpm tabpagemax ts tabstop tbs tagbsearch tc
tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll
term tbidi termbidi tenc termencoding tgc termguicolors twk termwinkey twsl
termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw
textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm
timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize
ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll
tty ttytype
-syn keyword vimOption contained udir undodir udf undofile ul undolevels ur
undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs
verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif
viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc
wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim
wildmode wop wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf
wfh winfixheight wfw winfixwidth wh winheight wmh winminheight wmw winminwidth
winptydll wiw winwidth wrap wm wrapmargin ws wrapscan write wa writeany wb
writebackup wd writedelay xtermcodes
+" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained',
END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
+syn keyword vimOption contained al aleph ari allowrevins ambw ambiwidth arab
arabic arshape arabicshape acd autochdir ai autoindent ar autoread asd
autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup
bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay
beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin
binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir
bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv
charconvert cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw
cinwords cb clipboard ch cmdheight cwh cmdwinheight cc colorcolumn co columns
com comments cms commentstring cp compatible cpt complete cfu completefunc
skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained cot completeopt cpp completepopup csl
completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo
cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf
cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb
cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt
cursorlineopt debug def define deco delcombine dict dictionary diff dex
diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed
edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways
ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys ei
eventignore et expandtab ex exrc fenc fileencoding fencs fileencodings ff
fileformat ffs fileformats fic fileignorecase skipwhite
nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained ft filetype fcs fillchars fixeol fixendofline
fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl
foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines
fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo
formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr
guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli
guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile
hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp
hkmapp hls hlsearch icon iconstring ic ignorecase imaf imactivatefunc imak
imactivatekey imc imcmdline imd imdisable imi iminsert ims imsearch imsf
imstatusfunc skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained imst imstyle inc include inex includeexpr is
incsearch inde indentexpr indk indentkeys inf infercase im insertmode isf
isfname isi isident isk iskeyword isp isprint js joinspaces jop jumpoptions key
kmp keymap km keymodel kpc keyprotocol kp keywordprg lmap langmap lm langmenu
lnr langnoremap lrm langremap ls laststatus lz lazyredraw lbr linebreak lines
lsp linespace lisp lop lispoptions lw lispwords list lcs listchars lpl
loadplugins luadll magic mef makeef menc makeencoding mp makeprg mps matchpairs
mat matchtime mco maxcombine mfd maxfuncdepth mmd maxmapdepth mm maxmem mmp
maxmempattern mmt maxmemtot mis menuitems msm mkspellmem ml modeline mle
modelineexpr mls modelines ma modifiable mod modified more mouse mousef
mousefocus skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained mh mousehide mousem mousemodel mousemev
mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll
mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev
opendevice opfunc operatorfunc pp packpath para paragraphs paste pt pastetoggle
pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight
pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr
printexpr pfn printfont pheader printheader pmbcs printmbcharset pmbfn
printmbfont popt printoptions prompt ph pumheight pw pumwidth pythondll
pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc
qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber
remap rop renderoptions skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained report rs restorescreen ri revins rl rightleft
rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll
scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect
sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf
shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp
shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw
shiftwidth shm shortmess sn shortname sbr showbreak sc showcmd sloc showcmdloc
sft showfulltag sm showmatch smd showmode stal showtabline ss sidescroll siso
sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms
smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl
spelllang skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained spo spelloptions sps spellsuggest sb
splitbelow spk splitkeep spr splitright sol startofline stl statusline su
suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol
syn syntax tcl tabclose tal tabline tpm tabpagemax ts tabstop tbs tagbsearch tc
tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll
term tbidi termbidi tenc termencoding tgc termguicolors twk termwinkey twsl
termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw
textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm
timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize
ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll
tty ttytype skipwhite nextgroup=vimSetEqual,vimSetMod
+syn keyword vimOption contained udir undodir udf undofile ul undolevels ur
undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs
verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif
viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc
wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim
wildmode wop wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf
wfh winfixheight wfw winfixwidth wh winheight wmh winminheight wmw winminwidth
winptydll wiw winwidth wrap wm wrapmargin ws wrapscan write wa writeany wb
writebackup wd writedelay xtermcodes skipwhite nextgroup=vimSetEqual,vimSetMod
" vimOptions: These are the turn-off setting variants {{{2
" GEN_SYN_VIM: vimOption turn-off, START_STR='syn keyword vimOption
contained', END_STR=''
@@ -66,8 +66,8 @@ syn keyword vimOption contained invprompt invro invreadonly
invrnu invrelativenu
syn keyword vimOption contained invtf invttyfast invudf invundofile invvb
invvisualbell invwarn invwiv invweirdinvert invwic invwildignorecase invwmnu
invwildmenu invwfb invwinfixbuf invwfh invwinfixheight invwfw invwinfixwidth
invwrap invws invwrapscan invwrite invwa invwriteany invwb invwritebackup
invxtermcodes
" termcap codes (which can also be set) {{{2
-" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption
contained', END_STR=''
-syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd
t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds
t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms
t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH
t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us
t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b
t_8u t_xo
+" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption
contained', END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
+syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd
t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds
t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms
t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH
t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us
t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b
t_8u t_xo skipwhite nextgroup=vimSetEqual,vimSetMod
" term key codes
syn keyword vimOption contained t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8
t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8
t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI
t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku
syn match vimOption contained "t_%1"
@@ -544,11 +544,15 @@ syn match vimCmplxRepeat
'[^a-zA-Z_/\()]q[0-9a-zA-Z"]\>'lc=1
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
" Set command and associated set-options (vimOptions) with comment {{{2
-syn region vimSet matchgroup=vimCommand
start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\)*\.
\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend
contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod
-syn region vimSetEqual contained start="[=:]\|[-+^]="
skip="\\\|\\s" end="[| ]"me=e-1 end="$"
contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar
-syn region vimSetString contained start=+="+hs=s+1
skip=+\\\|\"+ end=+"+ contains=vimCtrlChar
+syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>"
skipwhite nextgroup=vimSetBang,vimSetRegion
+syn region vimSetRegion contained start="\S" skip=+\\\|\|\|
\s*\\|
\s*["#]\ + matchgroup=vimCmdSep end="|" end="$" matchgroup=vimNotation
end="<[cC][rR]>" keepend
contains=@vimComment,@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
+syn region vimSetEqual contained matchgroup=vimOper
start="[=:]\|[-+^]=" skip=+\\\|\|\|\\s\|
\s*\\|
\s*["#]\ \|^\s*\\|^\s*["#]\ + matchgroup=vimCmdSep end="|" end="\ze\s" end="$"
contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep
+syn match vimSetBang contained " \@1<=!" skipwhite
nextgroup=vimSetAll,vimSetTermcap
+syn keyword vimSetAll contained all nextgroup=vimSetMod
+syn keyword vimSetTermcap contained termcap
+syn region vimSetString contained start=+="+hs=s+1
skip=+\\\|\"+ end=+"+ contains=vimCtrlChar
syn match vimSetSep contained "[,:]"
-syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
+syn match vimSetMod contained " \@1<=\%(&vim\=\|[!&?<]\)"
" Variable Declarations: {{{2
" =====================
@@ -1273,9 +1277,13 @@ if !exists("skip_vim_syntax_inits")
hi def link vimSearchDelim Statement
hi def link vimSearch vimString
hi def link vimSep Delimiter
+ hi def link vimSet vimCommand
+ hi def link vimSetAll vimOption
+ hi def link vimSetBang vimBang
hi def link vimSetMod vimOption
- hi def link vimSetSep Statement
+ hi def link vimSetSep vimSep
hi def link vimSetString vimString
+ hi def link vimSetTermcap vimOption
hi def link vimShebang PreProc
hi def link vimSleep vimCommand
hi def link vimSleepArg Constant
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/E1sWgkX-008Frn-Qo%40256bit.org.