From d04d7bf65de8e77a8ea3aea59506abc328d77cd1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 13 Oct 2024 19:43:04 +0200 Subject: vim-patch:9.1.0779: filetype: neomuttlog files are not recognized Problem: filetype: neomuttlog files are not recognized Solution: detect '*.neomuttdebug' file as neomuttlog filetype, include neomuttlog syntax script (Richard Russon) closes: vim/vim#15858 https://github.com/vim/vim/commit/a2aa921f767da17d4b619f41b7a1210c762c91e2 Co-authored-by: Richard Russon Co-authored-by: AvidSeeker --- runtime/doc/syntax.txt | 6 + runtime/lua/vim/filetype.lua | 1 + runtime/syntax/neomuttlog.vim | 69 +++++ runtime/syntax/neomuttrc.vim | 701 ++++++++++++++++++++++-------------------- 4 files changed, 442 insertions(+), 335 deletions(-) create mode 100644 runtime/syntax/neomuttlog.vim (limited to 'runtime') diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 19991f0761..c1b762a52f 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -2065,6 +2065,12 @@ set "msql_minlines" to the value you desire. Example: > :let msql_minlines = 200 +NEOMUTT *neomutt.vim* *ft-neomuttrc-syntax* *ft-neomuttlog-syntax* + +To disable the default NeoMutt log colors > + + :let g:neolog_disable_default_colors = 1 + N1QL *n1ql.vim* *ft-n1ql-syntax* N1QL is a SQL-like declarative language for manipulating JSON documents in diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 3b641898a3..a166397bfd 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -2264,6 +2264,7 @@ local pattern = { ['^%.?neomuttrc'] = detect_neomuttrc, ['/%.neomutt/neomuttrc'] = detect_neomuttrc, ['^Neomuttrc'] = detect_neomuttrc, + ['%.neomuttdebug'] = 'neomuttlog', }, ['^%.'] = { ['^%.cshrc'] = detect.csh, diff --git a/runtime/syntax/neomuttlog.vim b/runtime/syntax/neomuttlog.vim new file mode 100644 index 0000000000..27f73493bd --- /dev/null +++ b/runtime/syntax/neomuttlog.vim @@ -0,0 +1,69 @@ +" Vim syntax file +" Language: NeoMutt log files +" Maintainer: Richard Russon +" Last Change: 2024 Oct 12 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax match neolog_date "\v^\[\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\] *" conceal +syntax match neolog_version "\v" +syntax match neolog_banner "\v^\[\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\] .*" contains=neolog_date,neolog_version +syntax match neolog_function "\v%26v\i+\(\)" + +syntax match neolog_perror_key "\v%22v\ " conceal transparent +syntax match neolog_error_key "\v%22v\ " conceal transparent +syntax match neolog_warning_key "\v%22v\ " conceal transparent +syntax match neolog_message_key "\v%22v\ " conceal transparent +syntax match neolog_debug1_key "\v%22v\<1\> " conceal transparent +syntax match neolog_debug2_key "\v%22v\<2\> " conceal transparent +syntax match neolog_debug3_key "\v%22v\<3\> " conceal transparent +syntax match neolog_debug4_key "\v%22v\<4\> " conceal transparent +syntax match neolog_debug5_key "\v%22v\<5\> " conceal transparent +syntax match neolog_notify_key "\v%22v\ " conceal transparent + +syntax match neolog_perror "\v%22v\ .*" contains=neolog_perror_key,neolog_function +syntax match neolog_error "\v%22v\ .*" contains=neolog_error_key,neolog_function +syntax match neolog_warning "\v%22v\ .*" contains=neolog_warning_key,neolog_function +syntax match neolog_message "\v%22v\ .*" contains=neolog_message_key,neolog_function +syntax match neolog_debug1 "\v%22v\<1\> .*" contains=neolog_debug1_key,neolog_function +syntax match neolog_debug2 "\v%22v\<2\> .*" contains=neolog_debug2_key,neolog_function +syntax match neolog_debug3 "\v%22v\<3\> .*" contains=neolog_debug3_key,neolog_function +syntax match neolog_debug4 "\v%22v\<4\> .*" contains=neolog_debug4_key,neolog_function +syntax match neolog_debug5 "\v%22v\<5\> .*" contains=neolog_debug5_key,neolog_function +syntax match neolog_notify "\v%22v\ .*" contains=neolog_notify_key,neolog_function + +if !exists('g:neolog_disable_default_colors') + highlight neolog_date ctermfg=cyan guifg=#40ffff + highlight neolog_banner ctermfg=magenta guifg=#ff00ff + highlight neolog_version cterm=reverse gui=reverse + highlight neolog_function guibg=#282828 + + highlight neolog_perror ctermfg=red guifg=#ff8080 + highlight neolog_error ctermfg=red guifg=#ff8080 + highlight neolog_warning ctermfg=yellow guifg=#ffff80 + highlight neolog_message ctermfg=green guifg=#80ff80 + highlight neolog_debug1 ctermfg=white guifg=#ffffff + highlight neolog_debug2 ctermfg=white guifg=#ffffff + highlight neolog_debug3 ctermfg=grey guifg=#c0c0c0 + highlight neolog_debug4 ctermfg=grey guifg=#c0c0c0 + highlight neolog_debug5 ctermfg=grey guifg=#c0c0c0 + highlight neolog_notify ctermfg=grey guifg=#c0c0c0 +endif + +highlight link neolog_perror_key neolog_perror +highlight link neolog_error_key neolog_error +highlight link neolog_warning_key neolog_warning +highlight link neolog_message_key neolog_message +highlight link neolog_debug1_key neolog_debug1 +highlight link neolog_debug2_key neolog_debug2 +highlight link neolog_debug3_key neolog_debug3 +highlight link neolog_debug4_key neolog_debug4 +highlight link neolog_debug5_key neolog_debug5 +highlight link neolog_notify_key neolog_notify + +let b:current_syntax = "neomuttlog" + +" vim: ts=2 et tw=100 sw=2 sts=0 ft=vim diff --git a/runtime/syntax/neomuttrc.vim b/runtime/syntax/neomuttrc.vim index 421b11ffa3..815e160bbb 100644 --- a/runtime/syntax/neomuttrc.vim +++ b/runtime/syntax/neomuttrc.vim @@ -2,10 +2,10 @@ " Language: NeoMutt setup files " Maintainer: Richard Russon " Previous Maintainer: Guillaume Brogi -" Last Change: 2022-04-08 +" Last Change: 2024 Oct 12 " Original version based on syntax/muttrc.vim -" This file covers NeoMutt 2022-04-08 +" This file covers NeoMutt 2024-10-02 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -22,7 +22,7 @@ setlocal isk=@,48-57,_,- syntax match muttrcComment "^# .*$" contains=@Spell syntax match muttrcComment "^#[^ ].*$" syntax match muttrcComment "^#$" -syntax match muttrcComment "[^\\]#.*$"lc=1 +syntax match muttrcComment "[^\\]#.*$"lc=1 contains=@Spell " Escape sequences (back-tick and pipe goes here too) syntax match muttrcEscape +\\[#tnr"'Cc ]+ @@ -34,7 +34,7 @@ syntax region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ co syntax region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction syntax match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL -syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand +syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarString,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand syntax match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1 syntax match muttrcRXChars contained /[][|()][.*?+]*/ @@ -67,21 +67,21 @@ syntax match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat syntax match muttrcSpecial +\(['"]\)!\1+ -syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString -syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcString +syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " Now catch some email addresses and headers (purified version from mail.vim) syntax match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+" @@ -101,38 +101,9 @@ syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVv syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/ syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/ -syntax region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPatternFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPatternFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcQueryFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr - -" Format escapes and conditionals +" Defines syntax matches for muttrc[baseName]Escapes, muttrc[baseName]Conditionals +" If padding==1, also match `%>` `%|` `%*` expandos +" If conditional==1, some expandos support %X? format syntax match muttrcFormatConditionals2 contained /[^?]*?/ function! s:escapesConditionals(baseName, sequence, padding, conditional) exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/' @@ -146,65 +117,107 @@ function! s:escapesConditionals(baseName, sequence, padding, conditional) endif endfunction -" CHECKED 2022-04-08 -" Ref: alias_format_str() in alias/dlg_alias.c -call s:escapesConditionals('AliasFormat', '[acfnrt]', 1, 0) -" Ref: attach_format_str() in attach/dlg_attach.c +" CHECKED 2024 Oct 12 +" Ref: AliasFormatDef in alias/config.c +call s:escapesConditionals('AliasFormat', '[acfnrtY]', 1, 0) +" Ref: AttachFormatDef in mutt_config.c call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1) -" Ref: compose_format_str() in compose/cbar.c +" Ref: AutocryptFormatDef in autocrypt/config.c +call s:escapesConditionals('AutocryptFormat', '[aknps]', 1, 0) +" Ref: ComposeFormatDef in compose/config.c call s:escapesConditionals('ComposeFormat', '[ahlv]', 1, 1) -" Ref: folder_format_str() in browser/browser.c -call s:escapesConditionals('FolderFormat', '[CDdFfgilmNnstu]', 1, 0) -" Ref: group_index_format_str() in nntp/browse.c -call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1) -" Ref: index_format_str() in hdrline.c +" Ref: FolderFormatDef in browser/config.c +call s:escapesConditionals('FolderFormat', '[aCDdFfgilmNnpstu[]', 1, 1) +" Ref: GreetingFormatDef in send/config.c +call s:escapesConditionals('GreetingFormat', '[nuv]', 0, 0) +" Ref: GroupIndexFormatDef in browser/config.c +call s:escapesConditionals('GroupIndexFormat', '[aCdfMNnps]', 1, 0) +" Ref: HistoryFormatDef in history/config.c +call s:escapesConditionals('HistoryFormat', '[Cs]', 1, 0) +" Ref: IndexFormatDef in mutt_config.c call s:escapesConditionals('IndexFormat', '[AaBbCDdEefgHIiJKLlMmNnOPqRrSsTtuvWXxYyZ(<[{]\|@\i\+@\|G[a-zA-Z]\+\|Fp\=\|z[cst]\|cr\=', 1, 1) -" Ref: mix_format_str() in remailer.c -call s:escapesConditionals('MixFormat', '[acns]', 1, 0) -" Ref: pattern_format_str() in pattern/dlg_pattern.c +" Ref: PatternFormatDef in pattern/config.c call s:escapesConditionals('PatternFormat', '[den]', 1, 0) -" Ref: pgp_command_format_str() in ncrypt/pgpinvoke.c -call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1) -" Ref: crypt_format_str() in ncrypt/dlg_gpgme.c -" Ref: pgp_entry_format_str() in ncrypt/dlg_pgp.c -" Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not -call s:escapesConditionals('PGPFormat', '[AaCcFfKkLlnptu[]', 0, 0) -" Ref: query_format_str() in alias/dlg_query.c -call s:escapesConditionals('QueryFormat', '[acent]', 1, 1) -" Ref: sidebar_format_str() in sidebar/window.c -call s:escapesConditionals('SidebarFormat', '[!BDdFLNnorStZ]', 1, 1) -" Ref: smime_command_format_str() in ncrypt/smime.c -call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1) -" Ref: status_format_str() in status.c +" Ref: PgpCommandFormatDef in ncrypt/config.c +call s:escapesConditionals('PgpCommandFormat', '[afprs]', 0, 1) +" Ref: PgpEntryFormatDef in ncrypt/config.c +call s:escapesConditionals('PgpEntryFormat', '[AaCcFfIiKkLlnptu[]', 1, 1) +" Ref: QueryFormatDef in alias/config.c +call s:escapesConditionals('QueryFormat', '[acentY]', 1, 1) +" Ref: SidebarFormatDef in sidebar/config.c +call s:escapesConditionals('SidebarFormat', '[!aBDdFLNnoprStZ]', 1, 1) +" Ref: SmimeCommandFormatDef in ncrypt/config.c +call s:escapesConditionals('SmimeCommandFormat', '[aCcdfiks]', 0, 1) +" Ref: StatusFormatDef in mutt_config.c call s:escapesConditionals('StatusFormat', '[bDdFfhLlMmnoPpRrSsTtuVv]', 1, 1) -syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes +syntax region muttrcAliasFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAliasFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAttachFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAttachFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAutocryptFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAutocryptFormatEscapes,muttrcAutocryptFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAutocryptFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAutocryptFormatEscapes,muttrcAutocryptFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcComposeFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcComposeFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcFolderFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcFolderFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGreetingFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGreetingFormatEscapes,muttrcGreetingFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGreetingFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGreetingFormatEscapes,muttrcGreetingFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGroupIndexFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGroupIndexFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcHistoryFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcHistoryFormatEscapes,muttrcHistoryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcHistoryFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcHistoryFormatEscapes,muttrcHistoryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcIndexFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcIndexFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPatternFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPatternFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpCommandFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPgpCommandFormatEscapes,muttrcPgpCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpCommandFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPgpCommandFormatEscapes,muttrcPgpCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpEntryFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPgpEntryFormatEscapes,muttrcPgpEntryFormatConditionals,muttrcFormatErrors,muttrcPgpTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpEntryFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPgpEntryFormatEscapes,muttrcPgpEntryFormatConditionals,muttrcFormatErrors,muttrcPgpTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcQueryFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcQueryFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSidebarFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSidebarFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSmimeCommandFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeCommandFormatEscapes,muttrcSmimeCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSmimeCommandFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeCommandFormatEscapes,muttrcSmimeCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStatusFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStatusFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStrftimeFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStrftimeFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString + +" Format escapes and conditionals +syntax match muttrcFormatConditionals2 contained /[^?]*?/ + +syntax region muttrcPgpTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes -syntax match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr -syntax match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr -syntax match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr -syntax match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr -syntax match muttrcVarEqualsGrpIdxFmt contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr -syntax match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr -syntax match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr -syntax match muttrcVarEqualsPatternFmt contained skipwhite "=" nextgroup=muttrcPatternFormatStr -syntax match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr -syntax match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr -syntax match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr -syntax match muttrcVarEqualsSdbFmt contained skipwhite "=" nextgroup=muttrcSidebarFormatStr -syntax match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr -syntax match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr -syntax match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr - -syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr - -" CHECKED 2022-04-08 +syntax match muttrcVarEqualsAliasFormat contained skipwhite "=" nextgroup=muttrcAliasFormatString +syntax match muttrcVarEqualsAttachFormat contained skipwhite "=" nextgroup=muttrcAttachFormatString +syntax match muttrcVarEqualsAutocryptFormat contained skipwhite "=" nextgroup=muttrcAutocryptFormatString +syntax match muttrcVarEqualsComposeFormat contained skipwhite "=" nextgroup=muttrcComposeFormatString +syntax match muttrcVarEqualsFolderFormat contained skipwhite "=" nextgroup=muttrcFolderFormatString +syntax match muttrcVarEqualsGreetingFormat contained skipwhite "=" nextgroup=muttrcGreetingFormatString +syntax match muttrcVarEqualsGroupIndexFormat contained skipwhite "=" nextgroup=muttrcGroupIndexFormatString +syntax match muttrcVarEqualsHistoryFormat contained skipwhite "=" nextgroup=muttrcHistoryFormatString +syntax match muttrcVarEqualsIndexFormat contained skipwhite "=" nextgroup=muttrcIndexFormatString +syntax match muttrcVarEqualsPatternFormat contained skipwhite "=" nextgroup=muttrcPatternFormatString +syntax match muttrcVarEqualsPgpCommandFormat contained skipwhite "=" nextgroup=muttrcPgpCommandFormatString +syntax match muttrcVarEqualsPgpEntryFormat contained skipwhite "=" nextgroup=muttrcPgpEntryFormatString +syntax match muttrcVarEqualsQueryFormat contained skipwhite "=" nextgroup=muttrcQueryFormatString +syntax match muttrcVarEqualsSidebarFormat contained skipwhite "=" nextgroup=muttrcSidebarFormatString +syntax match muttrcVarEqualsSmimeCommandFormat contained skipwhite "=" nextgroup=muttrcSmimeCommandFormatString +syntax match muttrcVarEqualsStatusFormat contained skipwhite "=" nextgroup=muttrcStatusFormatString +syntax match muttrcVarEqualsStrftimeFormat contained skipwhite "=" nextgroup=muttrcStrftimeFormatString + +syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString + +" CHECKED 2024 Oct 12 " List of the different screens in NeoMutt (see MenuNames in menu/type.c) -syntax keyword muttrcMenu contained alias attach autocrypt browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime +syntax keyword muttrcMenu contained alias attach autocrypt browser compose dialog editor generic index key_select_pgp key_select_smime pager pgp postpone query smime syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu syntax match muttrcMenuCommas /,/ contained @@ -239,10 +252,12 @@ syntax match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+" syntax match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail syntax match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " First, hooks that take regular expressions: -syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL -syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHookNoRegex contained /-noregex/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|open\|pgp\|shutdown\|startup\|timeout\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHooks /\<\%(folder\|mbox\)-hook\>/ skipwhite nextgroup=muttrcRXHookNoRegex,muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL " Now, hooks that take patterns syntax match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern @@ -252,11 +267,11 @@ syntax match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-sa " Global hooks that take a command syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand -syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction +syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction syntax match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL -syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL -syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL -syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL +syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL +syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL +syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL syntax match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL syntax region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s @@ -300,7 +315,7 @@ syntax match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrc syntax match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL syntax match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of letters in Flags in pattern/flags.c " Parameter: none syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFGgklNOPpQRSTUuVv#$=]" @@ -309,7 +324,7 @@ syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\? " Parameter: date syntax match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable " Parameter: regex -syntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer +syntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiKLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer " Parameter: pattern syntax match muttrcSimplePat contained "!\?\^\?[%][BbCcefHhiLstxy]\s*" nextgroup=muttrcSimplePatString " Parameter: pattern @@ -341,21 +356,25 @@ syntax match muttrcPattern contained skipwhite /[.]/ syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas -" Colour definitions takes object, foreground and background arguments (regexps excluded). +" Colour definitions takes object, foreground and background arguments (regexes excluded). syntax match muttrcColorMatchCount contained "[0-9]\+" syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL syntax region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL syntax region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL syntax keyword muttrcColor contained black blue cyan default green magenta red white yellow syntax keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow +syntax keyword muttrcColor contained lightblack lightblue lightcyan lightdefault lightgreen lightmagenta lightred lightwhite lightyellow +syntax keyword muttrcColor contained alertblack alertblue alertcyan alertdefault alertgreen alertmagenta alertred alertwhite alertyellow syntax match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>" +syntax match muttrcColor contained "#[0-9a-fA-F]\{6}\>" + " Now for the structure of the color line syntax match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL -syntax match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL +syntax match muttrcColorBG contained /\s*[#$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL syntax match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL -syntax match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL +syntax match muttrcColorFG contained /\s*[#$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL syntax match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL -syntax match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL +syntax match muttrcColorContext contained /\s*[#$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL syntax match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose syntax match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose " And now color's brother: @@ -370,25 +389,26 @@ syntax match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup= syntax match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace -syntax keyword muttrcMonoAttrib contained bold none normal reverse standout underline +syntax keyword muttrcMonoAttrib contained bold italic none normal reverse standout underline syntax keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField,muttrcColorCompose syntax match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono -" CHECKED 2022-04-08 -" List of fields in ColorFields in color/commmand.c +" CHECKED 2024 Oct 12 +" List of fields in ColorFields in color/command.c syntax keyword muttrcColorField skipwhite contained \ attachment attach_headers body bold error hdrdefault header index index_author \ index_collapsed index_date index_flags index_label index_number index_size index_subject - \ index_tag index_tags indicator markers message normal options progress prompt quoted - \ search sidebar_divider sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new - \ sidebar_ordinary sidebar_spoolfile sidebar_unread signature status tilde tree underline - \ warning nextgroup=muttrcColor + \ index_tag index_tags indicator italic markers message normal options progress prompt + \ search sidebar_background sidebar_divider sidebar_flagged sidebar_highlight + \ sidebar_indicator sidebar_new sidebar_ordinary sidebar_spool_file sidebar_unread signature + \ status stripe_even stripe_odd tilde tree underline warning + \ nextgroup=muttrcColor syntax match muttrcColorField contained "\" syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of fields in ComposeColorFields in color/command.c syntax keyword muttrcColorComposeField skipwhite contained \ header security_both security_encrypt security_none security_sign @@ -409,37 +429,39 @@ function! s:boolQuadGen(type, vars, deprecated) exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:invvars) else let l:type = a:type - exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' - exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' - exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString' endif endfunction -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_BOOL in MuttVars in mutt_config.c call s:boolQuadGen('Bool', [ \ 'abort_backspace', 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'ask_bcc', - \ 'ask_cc', 'ask_follow_up', 'ask_x_comment_to', 'attach_save_without_prompting', + \ 'ask_cc', 'ask_followup_to', 'ask_x_comment_to', 'attach_save_without_prompting', \ 'attach_split', 'autocrypt', 'autocrypt_reply', 'auto_edit', 'auto_subscribe', 'auto_tag', \ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly', - \ 'browser_abbreviate_mailboxes', 'change_folder_next', 'check_mbox_size', 'check_new', - \ 'collapse_all', 'collapse_flagged', 'collapse_unread', 'compose_show_user_headers', + \ 'browser_abbreviate_mailboxes', 'browser_sort_dirs_first', 'change_folder_next', + \ 'check_mbox_size', 'check_new', 'collapse_all', 'collapse_flagged', 'collapse_unread', + \ 'color_directcolor', 'compose_confirm_detach_first', 'compose_show_user_headers', \ 'confirm_append', 'confirm_create', 'copy_decode_weed', 'count_alternatives', \ 'crypt_auto_encrypt', 'crypt_auto_pgp', 'crypt_auto_sign', 'crypt_auto_smime', - \ 'crypt_confirm_hook', 'crypt_opportunistic_encrypt', + \ 'crypt_confirm_hook', 'crypt_encryption_info', 'crypt_opportunistic_encrypt', \ 'crypt_opportunistic_encrypt_strong_keys', 'crypt_protected_headers_read', - \ 'crypt_protected_headers_save', 'crypt_protected_headers_write', 'crypt_reply_encrypt', - \ 'crypt_reply_sign', 'crypt_reply_sign_encrypted', 'crypt_timestamp', 'crypt_use_gpgme', - \ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers', - \ 'encode_from', 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to', - \ 'force_name', 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references', - \ 'hdrs', 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited', - \ 'hide_missing', 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing', - \ 'history_remove_dups', 'honor_disposition', 'idn_decode', 'idn_encode', - \ 'ignore_list_reply_to', 'imap_check_subscribed', 'imap_condstore', 'imap_deflate', - \ 'imap_idle', 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync', - \ 'imap_rfc5161', 'imap_server_noise', 'implicit_autoview', 'include_encrypted', + \ 'crypt_protected_headers_save', 'crypt_protected_headers_weed', + \ 'crypt_protected_headers_write', 'crypt_reply_encrypt', 'crypt_reply_sign', + \ 'crypt_reply_sign_encrypted', 'crypt_timestamp', 'crypt_use_gpgme', 'crypt_use_pka', + \ 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers', 'encode_from', + \ 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to', 'force_name', + \ 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references', 'hdrs', + \ 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited', 'hide_missing', + \ 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing', 'history_remove_dups', + \ 'honor_disposition', 'idn_decode', 'idn_encode', 'ignore_list_reply_to', + \ 'imap_check_subscribed', 'imap_condstore', 'imap_deflate', 'imap_idle', + \ 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync', 'imap_rfc5161', + \ 'imap_send_id', 'imap_server_noise', 'implicit_auto_view', 'include_encrypted', \ 'include_only_first', 'keep_flagged', 'local_date_header', 'mailcap_sanitize', \ 'maildir_check_cur', 'maildir_header_cache_verify', 'maildir_trash', 'mail_check_recent', \ 'mail_check_stats', 'markers', 'mark_old', 'menu_move_off', 'menu_scroll', @@ -469,166 +491,175 @@ call s:boolQuadGen('Bool', [ \ 'virtual_spool_file', 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to' \ ], 0) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " Deprecated Bools " List of DT_SYNONYM or DT_DEPRECATED Bools in MuttVars in mutt_config.c call s:boolQuadGen('Bool', [ - \ 'askbcc', 'askcc', 'autoedit', 'confirmappend', 'confirmcreate', 'crypt_autoencrypt', - \ 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime', 'crypt_confirmhook', - \ 'crypt_replyencrypt', 'crypt_replysign', 'crypt_replysignencrypted', 'edit_hdrs', - \ 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote', 'header_cache_compress', - \ 'ignore_linear_white_space', 'imap_servernoise', 'include_onlyfirst', 'metoo', - \ 'mime_subject', 'pgp_autoencrypt', 'pgp_autoinline', 'pgp_autosign', - \ 'pgp_auto_traditional', 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replyinline', - \ 'pgp_replysign', 'pgp_replysignencrypted', 'reverse_realname', 'ssl_usesystemcerts', + \ 'askbcc', 'askcc', 'ask_follow_up', 'autoedit', 'confirmappend', 'confirmcreate', + \ 'crypt_autoencrypt', 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime', + \ 'crypt_confirmhook', 'crypt_replyencrypt', 'crypt_replysign', 'crypt_replysignencrypted', + \ 'cursor_overlay', 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt', + \ 'forw_quote', 'header_cache_compress', 'ignore_linear_white_space', 'imap_servernoise', + \ 'implicit_autoview', 'include_onlyfirst', 'metoo', 'mime_subject', 'pgp_autoencrypt', + \ 'pgp_autoinline', 'pgp_autosign', 'pgp_auto_traditional', 'pgp_create_traditional', + \ 'pgp_replyencrypt', 'pgp_replyinline', 'pgp_replysign', 'pgp_replysignencrypted', + \ 'pgp_self_encrypt_as', 'reverse_realname', 'smime_self_encrypt_as', 'ssl_usesystemcerts', \ 'use_8bitmime', 'virtual_spoolfile', 'xterm_set_titles' \ ], 1) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_QUAD in MuttVars in mutt_config.c call s:boolQuadGen('Quad', [ \ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce', 'catchup_newsgroup', \ 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach', 'followup_to_poster', \ 'forward_attachments', 'forward_edit', 'honor_followup_to', 'include', 'mime_forward', \ 'mime_forward_rest', 'move', 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'postpone', - \ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls', + \ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls' \ ], 0) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " Deprecated Quads " List of DT_SYNONYM or DT_DEPRECATED Quads in MuttVars in mutt_config.c call s:boolQuadGen('Quad', [ \ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self' \ ], 1) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_NUMBER or DT_LONG in MuttVars in mutt_config.c syntax keyword muttrcVarNum skipwhite contained - \ connect_timeout debug_level header_cache_compress_level history imap_fetch_chunk_size - \ imap_keepalive imap_pipeline_depth imap_poll_timeout mail_check mail_check_stats_interval - \ menu_context net_inc nm_db_limit nm_open_timeout nm_query_window_current_position + \ debug_level header_cache_compress_level history imap_fetch_chunk_size imap_keep_alive + \ imap_pipeline_depth imap_poll_timeout mail_check mail_check_stats_interval menu_context + \ net_inc nm_db_limit nm_open_timeout nm_query_window_current_position \ nm_query_window_duration nntp_context nntp_poll pager_context pager_index_lines \ pager_read_delay pager_skip_quoted_context pgp_timeout pop_check_interval read_inc \ reflow_wrap save_history score_threshold_delete score_threshold_flag score_threshold_read \ search_context sendmail_wait sidebar_component_depth sidebar_width sleep_time - \ smime_timeout ssl_min_dh_prime_bits timeout time_inc toggle_quoted_show_levels wrap - \ wrap_headers write_inc - \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -" CHECKED 2022-04-08 + \ smime_timeout socket_timeout ssl_min_dh_prime_bits timeout time_inc + \ toggle_quoted_show_levels wrap wrap_headers write_inc + \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +" CHECKED 2024 Oct 12 " Deprecated Numbers -syntax keyword muttrcVarDeprecatedNum contained skipwhite - \ header_cache_pagesize pop_checkinterval skip_quoted_offset +syntax keyword muttrcVarDeprecatedNum + \ connect_timeout header_cache_pagesize imap_keepalive pop_checkinterval skip_quoted_offset -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_STRING in MuttVars in mutt_config.c " Special cases first, and all the rest at the end " Formats themselves must be updated in their respective groups " See s:escapesConditionals -syntax match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt -syntax keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt -syntax keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt -syntax keyword muttrcVarStr contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt -syntax keyword muttrcVarStr contained skipwhite attribution forward_format index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt -syntax keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt -syntax keyword muttrcVarStr contained skipwhite pattern_format nextgroup=muttrcVarEqualsPatternFmt -syntax keyword muttrcVarStr contained skipwhite +syntax match muttrcVarString contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax keyword muttrcVarString contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFormat +syntax keyword muttrcVarString contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFormat +syntax keyword muttrcVarString contained skipwhite autocrypt_acct_format nextgroup=muttrcVarEqualsAutocryptFormat +syntax keyword muttrcVarString contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFormat +syntax keyword muttrcVarString contained skipwhite folder_format mailbox_folder_format nextgroup=muttrcVarEqualsFolderFormat +syntax keyword muttrcVarString contained skipwhite greeting nextgroup=muttrcVarEqualsGreetingFormat +syntax keyword muttrcVarString contained skipwhite history_format nextgroup=muttrcVarEqualsHistoryFormat +syntax keyword muttrcVarString contained skipwhite + \ attribution_intro attribution_trailer forward_attribution_intro forward_attribution_trailer + \ forward_format indent_string index_format message_format pager_format + \ nextgroup=muttrcVarEqualsIndexFormat +syntax keyword muttrcVarString contained skipwhite pattern_format nextgroup=muttrcVarEqualsPatternFormat +syntax keyword muttrcVarString contained skipwhite \ pgp_clear_sign_command pgp_decode_command pgp_decrypt_command pgp_encrypt_only_command \ pgp_encrypt_sign_command pgp_export_command pgp_get_keys_command pgp_import_command \ pgp_list_pubring_command pgp_list_secring_command pgp_sign_command pgp_verify_command \ pgp_verify_key_command - \ nextgroup=muttrcVarEqualsPGPCmdFmt -syntax keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt -syntax keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt -syntax keyword muttrcVarStr contained skipwhite + \ nextgroup=muttrcVarEqualsPgpCommandFormat +syntax keyword muttrcVarString contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPgpEntryFormat +syntax keyword muttrcVarString contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFormat +syntax keyword muttrcVarString contained skipwhite \ smime_decrypt_command smime_encrypt_command smime_get_cert_command \ smime_get_cert_email_command smime_get_signer_cert_command smime_import_cert_command \ smime_pk7out_command smime_sign_command smime_verify_command smime_verify_opaque_command - \ nextgroup=muttrcVarEqualsSmimeFmt -syntax keyword muttrcVarStr contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFmt -syntax keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt -syntax keyword muttrcVarStr contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt -syntax keyword muttrcVarStr contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt -syntax keyword muttrcVarStr contained skipwhite + \ nextgroup=muttrcVarEqualsSmimeCommandFormat +syntax keyword muttrcVarString contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFormat +syntax keyword muttrcVarString contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFormat +syntax keyword muttrcVar