neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim
Log | Files | Refs

neomuttrc.vim (65537B)


      1 " Vim syntax file
      2 " Language:	NeoMutt setup files
      3 " Maintainer:	Richard Russon <rich@flatcap.org>
      4 " Previous Maintainer:	Guillaume Brogi <gui-gui@netcourrier.com>
      5 " Last Change:	2020-06-21
      6 " Original version based on syntax/muttrc.vim
      7 
      8 " This file covers NeoMutt 2020-06-19
      9 
     10 " quit when a syntax file was already loaded
     11 if exists("b:current_syntax")
     12   finish
     13 endif
     14 
     15 let s:cpo_save = &cpo
     16 set cpo&vim
     17 
     18 " Set the keyword characters
     19 setlocal isk=@,48-57,_,-
     20 
     21 " handling optional variables
     22 syntax match muttrcComment	"^# .*$" contains=@Spell
     23 syntax match muttrcComment	"^#[^ ].*$"
     24 syntax match muttrcComment	"^#$"
     25 syntax match muttrcComment	"[^\\]#.*$"lc=1
     26 
     27 " Escape sequences (back-tick and pipe goes here too)
     28 syntax match muttrcEscape	+\\[#tnr"'Cc ]+
     29 syntax match muttrcEscape	+[`|]+
     30 syntax match muttrcEscape	+\\$+
     31 
     32 " The variables takes the following arguments
     33 syntax region muttrcString	contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
     34 syntax region muttrcString	contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
     35 syntax match muttrcStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
     36 
     37 syntax region muttrcShellString	matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand
     38 
     39 syntax match  muttrcRXChars	contained /[^\\][][.*?+]\+/hs=s+1
     40 syntax match  muttrcRXChars	contained /[][|()][.*?+]*/
     41 syntax match  muttrcRXChars	contained /['"]^/ms=s+1
     42 syntax match  muttrcRXChars	contained /$['"]/me=e-1
     43 syntax match  muttrcRXChars	contained /\\/
     44 " Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
     45 syntax region muttrcRXString	contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
     46 syntax region muttrcRXString	contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
     47 syntax region muttrcRXString	contained skipwhite start=+[^	 "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
     48 " For some reason, skip refuses to match backslashes here...
     49 syntax region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
     50 syntax region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
     51 syntax region muttrcRXString2	contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
     52 syntax region muttrcRXString2	contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
     53 
     54 " these must be kept synchronized with muttrcRXString, but are intended for muttrcRXHooks
     55 syntax region muttrcRXHookString	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
     56 syntax region muttrcRXHookString	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
     57 syntax region muttrcRXHookString	contained keepend skipwhite start=+[^	 "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
     58 syntax region muttrcRXHookString	contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
     59 syntax region muttrcRXHookString	contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
     60 syntax match muttrcRXHookStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
     61 
     62 " these are exclusively for args lists (e.g. -rx pat pat pat ...)
     63 syntax region muttrcRXPat	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
     64 syntax region muttrcRXPat	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
     65 syntax match muttrcRXPat	contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
     66 syntax match muttrcRXDef	contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
     67 
     68 syntax match muttrcSpecial	+\(['"]\)!\1+
     69 
     70 syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
     71 syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
     72 syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
     73 syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
     74 syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     75 syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     76 syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     77 syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
     78 syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     79 syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     80 syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     81 syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
     82 syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     83 syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     84 syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
     85 
     86 " Now catch some email addresses and headers (purified version from mail.vim)
     87 syntax match muttrcEmail	"[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
     88 syntax match muttrcHeader	"\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
     89 
     90 syntax match   muttrcKeySpecial	contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
     91 syntax match   muttrcKey	contained "\S\+"			contains=muttrcKeySpecial,muttrcKeyName
     92 syntax region  muttrcKey	contained start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=muttrcKeySpecial,muttrcKeyName
     93 syntax region  muttrcKey	contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
     94 syntax match   muttrcKeyName	contained "\\[trne]"
     95 syntax match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|Next\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
     96 syntax match   muttrcKeyName	contained "\c<F\d\+>"
     97 
     98 syntax match muttrcFormatErrors contained /%./
     99 
    100 syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
    101 syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/
    102 syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
    103 
    104 syntax region muttrcAliasFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    105 syntax region muttrcAliasFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    106 syntax region muttrcAttachFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    107 syntax region muttrcAttachFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    108 syntax region muttrcComposeFormatStr    contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors                         nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    109 syntax region muttrcComposeFormatStr    contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors                         nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    110 syntax region muttrcFolderFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    111 syntax region muttrcFolderFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    112 syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    113 syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    114 syntax region muttrcIndexFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    115 syntax region muttrcIndexFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    116 syntax region muttrcMixFormatStr        contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors                                 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    117 syntax region muttrcMixFormatStr        contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors                                 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    118 syntax region muttrcPGPCmdFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    119 syntax region muttrcPGPCmdFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    120 syntax region muttrcPGPFormatStr        contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    121 syntax region muttrcPGPFormatStr        contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    122 syntax region muttrcQueryFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    123 syntax region muttrcQueryFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    124 syntax region muttrcSidebarFormatStr    contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes       nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    125 syntax region muttrcSidebarFormatStr    contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes       nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    126 syntax region muttrcSmimeFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    127 syntax region muttrcSmimeFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    128 syntax region muttrcStatusFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    129 syntax region muttrcStatusFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    130 syntax region muttrcStrftimeFormatStr   contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors                                                              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    131 syntax region muttrcStrftimeFormatStr   contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors                                                              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    132 
    133 " Format escapes and conditionals
    134 syntax match muttrcFormatConditionals2 contained /[^?]*?/
    135 function! s:escapesConditionals(baseName, sequence, padding, conditional)
    136 	exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/'
    137 	if a:padding
    138 		exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./'
    139 	endif
    140 	if a:conditional
    141 		exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/ nextgroup=muttrcFormatConditionals2'
    142 	else
    143 		exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/'
    144 	endif
    145 endfunction
    146 
    147 " CHECKED 2020-06-21
    148 " Ref: alias_format_str() in alias/dlgalias.c
    149 call s:escapesConditionals('AliasFormat', '[acfnrt]', 1, 0)
    150 " Ref: attach_format_str() in recvattach.c
    151 call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1)
    152 " Ref: compose_format_str() in compose.c
    153 call s:escapesConditionals('ComposeFormat', '[ahlv]', 1, 1)
    154 " Ref: folder_format_str() in browser.c
    155 call s:escapesConditionals('FolderFormat', '[CDdFfgilmNnstu]', 1, 0)
    156 " Ref: group_index_format_str() in browser.c
    157 call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1)
    158 " Ref: index_format_str() in hdrline.c
    159 call s:escapesConditionals('IndexFormat', '[AaBbCDdEefgHIiJKLlMmNnOPqRrSsTtuvWXxYyZ(<[{]\|@\i\+@\|G[a-zA-Z]\+\|Fp\=\|z[cst]\|cr\=', 1, 1)
    160 " Ref: mix_format_str() in remailer.c
    161 call s:escapesConditionals('MixFormat', '[acns]', 1, 0)
    162 " Ref: pgp_command_format_str() in ncrypt/pgpinvoke.c
    163 call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1)
    164 " Ref: crypt_format_str() in ncrypt/crypt_gpgme.c
    165 " Ref: pgp_entry_format_str() in ncrypt/pgpkey.c
    166 " Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not
    167 call s:escapesConditionals('PGPFormat', '[AaCcFfKkLlnptu[]', 0, 0)
    168 " Ref: query_format_str() in alias/dlgquery.c
    169 call s:escapesConditionals('QueryFormat', '[acent]', 1, 1)
    170 " Ref: sidebar_format_str() in sidebar.c
    171 call s:escapesConditionals('SidebarFormat', '[!BDdFLNnorStZ]', 1, 1)
    172 " Ref: smime_command_format_str() in ncrypt/smime.c
    173 call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1)
    174 " Ref: status_format_str() in status.c
    175 call s:escapesConditionals('StatusFormat', '[bDdFfhLlMmnoPpRrSstuVv]', 1, 1)
    176 
    177 syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
    178 syntax region muttrcTimeEscapes    contained start=+%(+  end=+)+  contains=muttrcStrftimeEscapes
    179 syntax region muttrcTimeEscapes    contained start=+%<+  end=+>+  contains=muttrcStrftimeEscapes
    180 syntax region muttrcTimeEscapes    contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
    181 syntax region muttrcTimeEscapes    contained start=+%{+  end=+}+  contains=muttrcStrftimeEscapes
    182 
    183 syntax match muttrcVarEqualsAliasFmt      contained skipwhite "=" nextgroup=muttrcAliasFormatStr
    184 syntax match muttrcVarEqualsAttachFmt     contained skipwhite "=" nextgroup=muttrcAttachFormatStr
    185 syntax match muttrcVarEqualsComposeFmt    contained skipwhite "=" nextgroup=muttrcComposeFormatStr
    186 syntax match muttrcVarEqualsFolderFmt     contained skipwhite "=" nextgroup=muttrcFolderFormatStr
    187 syntax match muttrcVarEqualsGrpIdxFmt     contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr
    188 syntax match muttrcVarEqualsIdxFmt        contained skipwhite "=" nextgroup=muttrcIndexFormatStr
    189 syntax match muttrcVarEqualsMixFmt        contained skipwhite "=" nextgroup=muttrcMixFormatStr
    190 syntax match muttrcVarEqualsPGPCmdFmt     contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
    191 syntax match muttrcVarEqualsPGPFmt        contained skipwhite "=" nextgroup=muttrcPGPFormatStr
    192 syntax match muttrcVarEqualsQueryFmt      contained skipwhite "=" nextgroup=muttrcQueryFormatStr
    193 syntax match muttrcVarEqualsSdbFmt        contained skipwhite "=" nextgroup=muttrcSidebarFormatStr
    194 syntax match muttrcVarEqualsSmimeFmt      contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
    195 syntax match muttrcVarEqualsStatusFmt     contained skipwhite "=" nextgroup=muttrcStatusFormatStr
    196 syntax match muttrcVarEqualsStrftimeFmt   contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
    197 
    198 syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    199 
    200 " CHECKED 2020-06-21
    201 " List of the different screens in mutt (see Menus in keymap.c)
    202 syntax keyword muttrcMenu contained alias attach browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime
    203 syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu
    204 syntax match muttrcMenuCommas /,/ contained
    205 
    206 syntax region muttrcSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
    207 syntax region muttrcSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
    208 
    209 syntax region muttrcNoSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
    210 syntax region muttrcNoSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
    211 
    212 syntax match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
    213 syntax match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
    214 syntax match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
    215 
    216 syntax match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
    217 
    218 syntax keyword muttrcAsterisk	contained *
    219 
    220 syntax keyword muttrcListsKeyword	lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
    221 syntax keyword muttrcListsKeyword	unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
    222 
    223 syntax keyword muttrcSubscribeKeyword	subscribe skipwhite nextgroup=muttrcGroupDef,muttrcComment
    224 syntax keyword muttrcSubscribeKeyword	unsubscribe skipwhite nextgroup=muttrcAsterisk,muttrcComment
    225 
    226 syntax keyword muttrcAlternateKeyword contained alternates unalternates
    227 syntax region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
    228 
    229 " muttrcVariable includes a prefix because partial strings are considered valid.
    230 syntax match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
    231 syntax match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
    232 syntax match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"
    233 
    234 syntax match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
    235 syntax match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
    236 
    237 " CHECKED 2020-06-21
    238 " First, functions that take regular expressions:
    239 syntax match  muttrcRXHookNot	contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
    240 syntax match  muttrcRXHooks	/\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
    241 
    242 " Now, functions that take patterns
    243 syntax match muttrcPatHookNot	contained /!\s*/ skipwhite nextgroup=muttrcPattern
    244 syntax match muttrcPatHooks	/\<\%(charset\|iconv\|index-format\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
    245 syntax match muttrcPatHooks	/\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
    246 
    247 " Global hooks that take a command
    248 syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand
    249 
    250 syntax match muttrcBindFunction	contained /\S\+\>/ skipwhite contains=muttrcFunction
    251 syntax match muttrcBindFunctionNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
    252 syntax match muttrcBindKey		contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
    253 syntax match muttrcBindKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
    254 syntax match muttrcBindMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
    255 syntax match muttrcBindMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
    256 
    257 syntax region muttrcMacroDescr	contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
    258 syntax region muttrcMacroDescr	contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
    259 syntax region muttrcMacroDescr	contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
    260 syntax match muttrcMacroDescrNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
    261 syntax region muttrcMacroBody	contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
    262 syntax region muttrcMacroBody	matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
    263 syntax region muttrcMacroBody	matchgroup=Type contained skipwhite start=+"+ms=e skip=+\\"+ end=+"\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
    264 syntax match muttrcMacroBodyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
    265 syntax match muttrcMacroKey	contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
    266 syntax match muttrcMacroKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
    267 syntax match muttrcMacroMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
    268 syntax match muttrcMacroMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
    269 
    270 syntax match muttrcAddrContent	contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
    271 syntax region muttrcAddrContent	contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
    272 syntax region muttrcAddrContent	contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
    273 syntax match muttrcAddrDef	contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
    274 
    275 syntax match muttrcGroupFlag	contained "-group"
    276 syntax region muttrcGroupDef	contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
    277 
    278 syntax keyword muttrcGroupKeyword	contained group ungroup
    279 syntax region muttrcGroupLine	keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
    280 
    281 syntax match muttrcAliasGroupName	contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
    282 syntax match muttrcAliasGroupDefNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
    283 syntax match muttrcAliasGroupDef	contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
    284 syntax match muttrcAliasComma	contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
    285 syntax match muttrcAliasEmail	contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
    286 syntax match muttrcAliasEncEmail	contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
    287 syntax match muttrcAliasEncEmailNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
    288 syntax match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
    289 syntax region muttrcAliasName	contained matchgroup=Type start=/(/ end=/)/ skipwhite
    290 syntax match muttrcAliasNameNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
    291 syntax match muttrcAliasENNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
    292 syntax match muttrcAliasKey	contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
    293 syntax match muttrcAliasNL		contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
    294 
    295 syntax match muttrcUnAliasKey	contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
    296 syntax match muttrcUnAliasNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
    297 
    298 " CHECKED 2020-06-21
    299 " List of letters in Flags in pattern.c
    300 " Parameter: none
    301 syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFGgklNOPpQRSTuUvV#$=]"
    302 " Parameter: range
    303 syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
    304 " Parameter: date
    305 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
    306 " Parameter: regex
    307 syntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer
    308 " Parameter: pattern
    309 syntax match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
    310 " Parameter: pattern
    311 syntax match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
    312 syntax region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
    313 
    314 "syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
    315 syntax region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
    316 syntax region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
    317 syntax region muttrcSimplePatString contained keepend start=+[^	 "']+ skip=+\\ + end=+\s+re=e-1
    318 syntax region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
    319 syntax region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
    320 syntax region muttrcSimplePatRXContainer contained keepend start=+[^	 "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
    321 syntax match muttrcSimplePatMetas contained /[(|)]/
    322 
    323 syntax match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
    324 syntax match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
    325 syntax region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
    326 syntax region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
    327 syntax region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
    328 syntax match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
    329 syntax match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
    330 " Keep muttrcPattern and muttrcOptPattern synchronized
    331 syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
    332 syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
    333 syntax region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
    334 syntax match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
    335 syntax match muttrcPattern contained skipwhite /[.]/
    336 syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
    337 syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
    338 
    339 " Colour definitions takes object, foreground and background arguments (regexps excluded).
    340 syntax match muttrcColorMatchCount	contained "[0-9]\+"
    341 syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
    342 syntax region muttrcColorRXPat	contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
    343 syntax region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
    344 syntax keyword muttrcColor	contained black blue cyan default green magenta red white yellow
    345 syntax keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
    346 syntax match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
    347 " Now for the structure of the color line
    348 syntax match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
    349 syntax match muttrcColorBG	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
    350 syntax match muttrcColorBGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
    351 syntax match muttrcColorFG	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
    352 syntax match muttrcColorFGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
    353 syntax match muttrcColorContext	contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL
    354 syntax match muttrcColorNL	contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
    355 syntax match muttrcColorKeyword	contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
    356 " And now color's brother:
    357 syntax region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
    358 syntax region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
    359 syntax match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
    360 syntax match muttrcUnColorPatNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
    361 syntax match muttrcUnColorAll	contained skipwhite /[*]/
    362 syntax match muttrcUnColorAPNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
    363 syntax match muttrcUnColorIndex	contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
    364 syntax match muttrcUnColorIndexNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
    365 syntax match muttrcUnColorKeyword	contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
    366 syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
    367 
    368 syntax keyword muttrcMonoAttrib	contained bold none normal reverse standout underline
    369 syntax keyword muttrcMono	contained mono		skipwhite nextgroup=muttrcColorField,muttrcColorCompose
    370 syntax match   muttrcMonoLine	"^\s*mono\s\+\S\+"	skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
    371 
    372 " CHECKED 2020-06-21
    373 " List of fields in Fields in color.c
    374 syntax keyword muttrcColorField skipwhite contained
    375 	\ attachment attach_headers body bold error hdrdefault header index index_author
    376 	\ index_collapsed index_date index_flags index_label index_number index_size index_subject
    377 	\ index_tag index_tags indicator markers message normal options progress prompt quoted
    378 	\ search sidebar_divider sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new
    379 	\ sidebar_ordinary sidebar_spoolfile sidebar_unread signature status tilde tree underline
    380 	\ warning nextgroup=muttrcColor
    381 
    382 syntax match   muttrcColorField	contained "\<quoted\d\=\>"
    383 
    384 syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField
    385 
    386 " CHECKED 2020-06-21
    387 " List of fields in ComposeFields in color.c
    388 syntax keyword muttrcColorComposeField skipwhite contained
    389 	\ header security_both security_encrypt security_none security_sign
    390 	\ nextgroup=muttrcColorFG,muttrcColorFGNL
    391 syntax region muttrcColorLine keepend start=/^\s*color\s\+/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
    392 
    393 function! s:boolQuadGen(type, vars, deprecated)
    394 	let l:novars = copy(a:vars)
    395 	call map(l:novars, '"no" . v:val')
    396 	let l:invvars = copy(a:vars)
    397 	call map(l:invvars, '"inv" . v:val')
    398 
    399 	let l:orig_type = copy(a:type)
    400 	if a:deprecated
    401 		let l:type = 'Deprecated' . a:type
    402 		exec 'syntax keyword muttrcVar' . l:type . ' ' . join(a:vars)
    403 		exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:novars)
    404 		exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:invvars)
    405 	else
    406 		let l:type = a:type
    407 		exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr'
    408 		exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr'
    409 		exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr'
    410 	endif
    411 
    412 endfunction
    413 
    414 " CHECKED 2020-06-21
    415 " List of DT_BOOL in MuttVars in mutt_config.c
    416 call s:boolQuadGen('Bool', [
    417 	\ 'abort_backspace', 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'askbcc',
    418 	\ 'askcc', 'ask_follow_up', 'ask_x_comment_to', 'attach_save_without_prompting',
    419 	\ 'attach_split', 'autocrypt', 'autocrypt_reply', 'autoedit', 'auto_subscribe', 'auto_tag',
    420 	\ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly',
    421 	\ 'browser_abbreviate_mailboxes', 'change_folder_next', 'check_mbox_size', 'check_new',
    422 	\ 'collapse_all', 'collapse_flagged', 'collapse_unread', 'confirmappend', 'confirmcreate',
    423 	\ 'crypt_autoencrypt', 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime',
    424 	\ 'crypt_confirmhook', 'crypt_opportunistic_encrypt',
    425 	\ 'crypt_opportunistic_encrypt_strong_keys', 'crypt_protected_headers_read',
    426 	\ 'crypt_protected_headers_save', 'crypt_protected_headers_write', 'crypt_replyencrypt',
    427 	\ 'crypt_replysign', 'crypt_replysignencrypted', 'crypt_timestamp', 'crypt_use_gpgme',
    428 	\ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers',
    429 	\ 'encode_from', 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to',
    430 	\ 'force_name', 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references',
    431 	\ 'hdrs', 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited',
    432 	\ 'hide_missing', 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing',
    433 	\ 'history_remove_dups', 'honor_disposition', 'idn_decode', 'idn_encode',
    434 	\ 'ignore_list_reply_to', 'imap_check_subscribed', 'imap_condstore', 'imap_deflate',
    435 	\ 'imap_idle', 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync',
    436 	\ 'imap_rfc5161', 'imap_servernoise', 'implicit_autoview', 'include_encrypted',
    437 	\ 'include_onlyfirst', 'keep_flagged', 'mailcap_sanitize', 'maildir_check_cur',
    438 	\ 'maildir_header_cache_verify', 'maildir_trash', 'mail_check_recent', 'mail_check_stats',
    439 	\ 'markers', 'mark_old', 'menu_move_off', 'menu_scroll', 'message_cache_clean', 'meta_key',
    440 	\ 'metoo', 'mh_purge', 'mime_forward_decode', 'mime_subject', 'mime_type_query_first',
    441 	\ 'narrow_tree', 'nm_record', 'nntp_listgroup', 'nntp_load_description', 'pager_stop',
    442 	\ 'pgp_autoinline', 'pgp_auto_decode', 'pgp_check_exit', 'pgp_check_gpg_decrypt_status_fd',
    443 	\ 'pgp_ignore_subkeys', 'pgp_long_ids', 'pgp_replyinline', 'pgp_retainable_sigs',
    444 	\ 'pgp_self_encrypt', 'pgp_show_unusable', 'pgp_strict_enc', 'pgp_use_gpg_agent',
    445 	\ 'pipe_decode', 'pipe_split', 'pop_auth_try_all', 'pop_last', 'postpone_encrypt',
    446 	\ 'print_decode', 'print_split', 'prompt_after', 'read_only', 'reflow_space_quotes',
    447 	\ 'reflow_text', 'reply_self', 'reply_with_xorig', 'resolve', 'resume_draft_files',
    448 	\ 'resume_edited_draft_files', 'reverse_alias', 'reverse_name', 'reverse_realname',
    449 	\ 'rfc2047_parameters', 'save_address', 'save_empty', 'save_name', 'save_unsubscribed',
    450 	\ 'score', 'show_new_news', 'show_only_unread', 'sidebar_folder_indent',
    451 	\ 'sidebar_new_mail_only', 'sidebar_next_new_wrap', 'sidebar_non_empty_mailbox_only',
    452 	\ 'sidebar_on_right', 'sidebar_short_path', 'sidebar_visible', 'sig_dashes', 'sig_on_top',
    453 	\ 'size_show_bytes', 'size_show_fractions', 'size_show_mb', 'size_units_on_left',
    454 	\ 'smart_wrap', 'smime_ask_cert_label', 'smime_decrypt_use_default_key', 'smime_is_default',
    455 	\ 'smime_self_encrypt', 'sort_re', 'ssl_force_tls', 'ssl_usesystemcerts', 'ssl_use_sslv2',
    456 	\ 'ssl_use_sslv3', 'ssl_use_tlsv1', 'ssl_use_tlsv1_1', 'ssl_use_tlsv1_2', 'ssl_use_tlsv1_3',
    457 	\ 'ssl_verify_dates', 'ssl_verify_host', 'ssl_verify_partial_chains', 'status_on_top',
    458 	\ 'strict_threads', 'suspend', 'text_flowed', 'thorough_search', 'thread_received', 'tilde',
    459 	\ 'ts_enabled', 'uncollapse_jump', 'uncollapse_new', 'user_agent', 'use_8bitmime',
    460 	\ 'use_domain', 'use_envelope_from', 'use_from', 'use_ipv6', 'virtual_spoolfile',
    461 	\ 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to'
    462 	\ ], 0)
    463 
    464 " CHECKED 2020-06-21
    465 " Deprecated Bools
    466 " List of DT_SYNONYM or DT_DEPRECATED Bools in MuttVars in mutt_config.c
    467 call s:boolQuadGen('Bool', [
    468 	\ 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote',
    469 	\ 'header_cache_compress', 'ignore_linear_white_space', 'pgp_autoencrypt', 'pgp_autosign',
    470 	\ 'pgp_auto_traditional', 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replysign',
    471 	\ 'pgp_replysignencrypted', 'xterm_set_titles'
    472 	\ ], 1)
    473 
    474 " CHECKED 2020-06-21
    475 " List of DT_QUAD in MuttVars in mutt_config.c
    476 call s:boolQuadGen('Quad', [
    477 	\ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce', 'catchup_newsgroup',
    478 	\ 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach', 'followup_to_poster',
    479 	\ 'forward_attachments', 'forward_edit', 'honor_followup_to', 'include', 'mime_forward',
    480 	\ 'mime_forward_rest', 'move', 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'postpone',
    481 	\ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls', 
    482 	\ ], 0)
    483 
    484 " CHECKED 2020-06-21
    485 " Deprecated Quads
    486 " List of DT_SYNONYM or DT_DEPRECATED Quads in MuttVars in mutt_config.c
    487 call s:boolQuadGen('Quad', [
    488 	\ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self'
    489 	\ ], 1)
    490 
    491 " CHECKED 2020-06-21
    492 " List of DT_NUMBER or DT_LONG in MuttVars in mutt_config.c
    493 syntax keyword muttrcVarNum	skipwhite contained
    494 	\ connect_timeout debug_level header_cache_compress_level history
    495 	\ imap_fetch_chunk_size imap_keepalive imap_pipeline_depth imap_poll_timeout mail_check
    496 	\ mail_check_stats_interval menu_context net_inc nm_db_limit nm_open_timeout
    497 	\ nm_query_window_current_position nm_query_window_duration nntp_context nntp_poll
    498 	\ pager_context pager_index_lines pgp_timeout pop_checkinterval read_inc reflow_wrap
    499 	\ save_history score_threshold_delete score_threshold_flag score_threshold_read
    500 	\ search_context sendmail_wait sidebar_component_depth sidebar_width skip_quoted_offset
    501 	\ sleep_time smime_timeout ssl_min_dh_prime_bits timeout time_inc toggle_quoted_show_levels
    502 	\ wrap wrap_headers write_inc
    503 	\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    504 syntax keyword muttrcVarDeprecatedNum	contained skipwhite
    505 	\ header_cache_pagesize wrapmargin
    506 	\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    507 
    508 " CHECKED 2020-06-21
    509 " List of DT_STRING in MuttVars in mutt_config.c
    510 " Special cases first, and all the rest at the end
    511 " Formats themselves must be updated in their respective groups
    512 " See s:escapesConditionals
    513 syntax match muttrcVarStr	contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    514 syntax keyword muttrcVarStr	contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
    515 syntax keyword muttrcVarStr	contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
    516 syntax keyword muttrcVarStr	contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
    517 syntax keyword muttrcVarStr	contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt
    518 syntax keyword muttrcVarStr	contained skipwhite attribution forward_format index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
    519 syntax keyword muttrcVarStr	contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
    520 syntax keyword muttrcVarStr	contained skipwhite
    521 	\ pgp_clearsign_command pgp_decode_command pgp_decrypt_command
    522 	\ pgp_encrypt_only_command pgp_encrypt_sign_command pgp_export_command pgp_getkeys_command
    523 	\ pgp_import_command pgp_list_pubring_command pgp_list_secring_command
    524 	\ pgp_sign_command pgp_verify_command pgp_verify_key_command
    525 	\ nextgroup=muttrcVarEqualsPGPCmdFmt
    526 syntax keyword muttrcVarStr	contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
    527 syntax keyword muttrcVarStr	contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
    528 syntax keyword muttrcVarStr	contained skipwhite
    529 	\ smime_decrypt_command smime_encrypt_command smime_get_cert_command
    530 	\ smime_get_cert_email_command smime_get_signer_cert_command
    531 	\ smime_import_cert_command smime_pk7out_command smime_sign_command
    532 	\ smime_verify_command smime_verify_opaque_command
    533 	\ nextgroup=muttrcVarEqualsSmimeFmt
    534 syntax keyword muttrcVarStr	contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFmt
    535 syntax keyword muttrcVarStr	contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
    536 syntax keyword muttrcVarStr	contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt
    537 syntax keyword muttrcVarStr	contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt
    538 syntax keyword muttrcVarStr	contained skipwhite
    539 	\ abort_key arrow_string assumed_charset attach_charset attach_sep attribution_locale
    540 	\ autocrypt_acct_format charset config_charset content_type crypt_protected_headers_subject
    541 	\ default_hook dsn_notify dsn_return empty_subject escape forward_attribution_intro
    542 	\ forward_attribution_trailer header_cache_backend header_cache_compress_method hidden_tags
    543 	\ hostname imap_authenticators imap_delim_chars imap_headers imap_login imap_pass imap_user
    544 	\ indent_string mailcap_path mark_macro_prefix mh_seq_flagged mh_seq_replied mh_seq_unseen
    545 	\ newsgroups_charset news_server nm_default_url nm_exclude_tags nm_flagged_tag nm_query_type
    546 	\ nm_query_window_current_search nm_query_window_timebase nm_record_tags nm_replied_tag
    547 	\ nm_unread_tag nntp_authenticators nntp_pass nntp_user pgp_default_key pgp_sign_as pipe_sep
    548 	\ pop_authenticators pop_host pop_pass pop_user postpone_encrypt_as post_indent_string
    549 	\ preconnect preferred_languages realname send_charset show_multipart_alternative
    550 	\ sidebar_delim_chars sidebar_divider_char sidebar_indent_string simple_search
    551 	\ smime_default_key smime_encrypt_with smime_sign_as smime_sign_digest_alg
    552 	\ smtp_authenticators smtp_pass smtp_url smtp_user spam_separator ssl_ciphers
    553 	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    554 
    555 " Deprecated strings
    556 syntax keyword muttrcVarDeprecatedStr
    557 	\ abort_noattach_regexp attach_keyword forw_format hdr_format indent_str msg_format
    558 	\ nm_default_uri pgp_self_encrypt_as post_indent_str print_cmd quote_regexp reply_regexp
    559 	\ smime_self_encrypt_as xterm_icon xterm_title
    560 
    561 " CHECKED 2020-06-21
    562 " List of DT_ADDRESS
    563 syntax keyword muttrcVarStr	contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    564 " List of DT_ENUM
    565 syntax keyword muttrcVarStr	contained skipwhite mbox_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    566 " List of DT_MBTABLE
    567 syntax keyword muttrcVarStr	contained skipwhite crypt_chars flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    568 
    569 " CHECKED 2020-06-21
    570 " List of DT_PATH
    571 syntax keyword muttrcVarStr	contained skipwhite
    572 	\ alias_file attach_save_dir autocrypt_dir certificate_file debug_file
    573 	\ entropy_file folder header_cache history_file mbox message_cachedir newsrc
    574 	\ news_cache_dir postponed record signature smime_ca_location
    575 	\ smime_certificates smime_keys spoolfile ssl_ca_certificates_file
    576 	\ ssl_client_cert tmpdir trash
    577 	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    578 " List of DT_COMMAND (excluding pgp_*_command and smime_*_command)
    579 syntax keyword muttrcVarStr	contained skipwhite
    580 	\ display_filter editor inews ispell mixmaster new_mail_command pager
    581 	\ print_command query_command sendmail shell visual external_search_command
    582 	\ imap_oauth_refresh_command pop_oauth_refresh_command
    583 	\ mime_type_query_command smtp_oauth_refresh_command tunnel
    584 	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    585 
    586 " CHECKED 2020-06-21
    587 " List of DT_REGEX
    588 syntax keyword muttrcVarStr	contained skipwhite
    589 	\ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign
    590 	\ quote_regex reply_regex smileys
    591 	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    592 " List of DT_SORT
    593 syntax keyword muttrcVarStr	contained skipwhite
    594 	\ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser
    595 	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    596 
    597 " CHECKED 2020-06-21
    598 " List of commands in Commands in mutt_config.c
    599 " Remember to remove hooks, they have already been dealt with
    600 syntax keyword muttrcCommand	skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
    601 syntax keyword muttrcCommand	skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
    602 syntax keyword muttrcCommand	skipwhite exec nextgroup=muttrcFunction
    603 syntax keyword muttrcCommand	skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
    604 syntax keyword muttrcCommand	skipwhite nospam nextgroup=muttrcNoSpamPattern
    605 syntax keyword muttrcCommand	skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
    606 syntax keyword muttrcCommand	skipwhite spam nextgroup=muttrcSpamPattern
    607 syntax keyword muttrcCommand	skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
    608 syntax keyword muttrcCommand	skipwhite unhook nextgroup=muttrcHooks
    609 syntax keyword muttrcCommand	skipwhite
    610 	\ alternative_order attachments auto_view finish hdr_order ifdef ifndef
    611 	\ ignore lua lua-source mailboxes mailto_allow mime_lookup my_hdr push score
    612 	\ setenv sidebar_whitelist source subjectrx subscribe-to tag-formats
    613 	\ tag-transforms unalternative_order unattachments unauto_view uncolor
    614 	\ unhdr_order unignore unmailboxes unmailto_allow unmime_lookup unmono
    615 	\ unmy_hdr unscore unsetenv unsidebar_whitelist unsubjectrx unsubscribe-from
    616 	\ unvirtual-mailboxes virtual-mailboxes named-mailboxes
    617 	\ echo unbind unmacro
    618 
    619 function! s:genFunctions(functions)
    620 	for f in a:functions
    621 		exec 'syntax match muttrcFunction contained "\<' . l:f . '\>"'
    622 	endfor
    623 endfunction
    624 
    625 " CHECKED 2020-06-21
    626 " List of functions in functions.c
    627 " Note: 'noop' is included but is elsewhere in the source
    628 call s:genFunctions(['noop',
    629 	\ 'accept', 'append', 'attach-file', 'attach-key', 'attach-message', 'attach-news-message',
    630 	\ 'autocrypt-acct-menu', 'autocrypt-menu', 'backspace', 'backward-char', 'backward-word',
    631 	\ 'bol', 'bottom-page', 'bottom', 'bounce-message', 'break-thread', 'buffy-cycle',
    632 	\ 'buffy-list', 'capitalize-word', 'catchup', 'chain-next', 'chain-prev', 'change-dir',
    633 	\ 'change-folder-readonly', 'change-folder', 'change-newsgroup-readonly',
    634 	\ 'change-newsgroup', 'change-vfolder', 'check-new', 'check-stats',
    635 	\ 'check-traditional-pgp', 'clear-flag', 'collapse-all', 'collapse-parts',
    636 	\ 'collapse-thread', 'complete-query', 'complete', 'compose-to-sender', 'copy-file',
    637 	\ 'copy-message', 'create-account', 'create-alias', 'create-mailbox', 'current-bottom',
    638 	\ 'current-middle', 'current-top', 'decode-copy', 'decode-save', 'decrypt-copy',
    639 	\ 'decrypt-save', 'delete-account', 'delete-char', 'delete-entry', 'delete-mailbox',
    640 	\ 'delete-message', 'delete-pattern', 'delete-subthread', 'delete-thread', 'delete',
    641 	\ 'descend-directory', 'detach-file', 'display-address', 'display-filename',
    642 	\ 'display-message', 'display-toggle-weed', 'downcase-word', 'edit-bcc', 'edit-cc',
    643 	\ 'edit-description', 'edit-encoding', 'edit-fcc', 'edit-file', 'edit-followup-to',
    644 	\ 'edit-from', 'edit-headers', 'edit-label', 'edit-language', 'edit-message', 'edit-mime',
    645 	\ 'edit-newsgroups', 'edit-or-view-raw-message', 'edit-raw-message', 'edit-reply-to',
    646 	\ 'edit-subject', 'edit-to', 'edit-type', 'edit-x-comment-to', 'edit', 'end-cond',
    647 	\ 'enter-command', 'enter-mask', 'entire-thread', 'eol', 'exit', 'extract-keys',
    648 	\ 'fetch-mail', 'filter-entry', 'first-entry', 'flag-message', 'followup-message',
    649 	\ 'forget-passphrase', 'forward-char', 'forward-message', 'forward-to-group',
    650 	\ 'forward-word', 'get-attachment', 'get-children', 'get-message', 'get-parent',
    651 	\ 'goto-folder', 'goto-parent', 'group-alternatives', 'group-chat-reply',
    652 	\ 'group-multilingual', 'group-reply', 'half-down', 'half-up', 'help', 'history-down',
    653 	\ 'history-search', 'history-up', 'imap-fetch-mail', 'imap-logout-all', 'insert', 'ispell',
    654 	\ 'jump', 'kill-eol', 'kill-eow', 'kill-line', 'kill-word', 'last-entry',
    655 	\ 'limit-current-thread', 'limit', 'link-threads', 'list-reply', 'mail-key',
    656 	\ 'mailbox-cycle', 'mailbox-list', 'mail', 'mark-as-new', 'mark-message', 'middle-page',
    657 	\ 'mix', 'modify-labels-then-hide', 'modify-labels', 'modify-tags-then-hide',
    658 	\ 'modify-tags', 'move-down', 'move-up', 'new-mime', 'next-entry', 'next-line',
    659 	\ 'next-new-then-unread', 'next-new', 'next-page', 'next-subthread', 'next-thread',
    660 	\ 'next-undeleted', 'next-unread-mailbox', 'next-unread', 'parent-message', 'pgp-menu',
    661 	\ 'pipe-entry', 'pipe-message', 'post-message', 'postpone-message', 'previous-entry',
    662 	\ 'previous-line', 'previous-new-then-unread', 'previous-new', 'previous-page',
    663 	\ 'previous-subthread', 'previous-thread', 'previous-undeleted', 'previous-unread',
    664 	\ 'print-entry', 'print-message', 'purge-message', 'purge-thread', 'quasi-delete',
    665 	\ 'query-append', 'query', 'quit', 'quote-char', 'read-subthread', 'read-thread',
    666 	\ 'recall-message', 'reconstruct-thread', 'redraw-screen', 'refresh', 'reload-active',
    667 	\ 'rename-attachment', 'rename-file', 'rename-mailbox', 'reply', 'resend-message',
    668 	\ 'root-message', 'save-entry', 'save-message', 'search-next', 'search-opposite',
    669 	\ 'search-reverse', 'search-toggle', 'search', 'select-entry', 'select-new',
    670 	\ 'send-message', 'set-flag', 'shell-escape', 'show-limit', 'show-log-messages',
    671 	\ 'show-version', 'sidebar-next-new', 'sidebar-first', 'sidebar-last', 'sidebar-next',
    672 	\ 'sidebar-open', 'sidebar-page-down', 'sidebar-page-up', 'sidebar-prev-new',
    673 	\ 'sidebar-prev', 'sidebar-toggle-virtual', 'sidebar-toggle-visible', 'skip-quoted',
    674 	\ 'smime-menu', 'sort-mailbox', 'sort-reverse', 'sort', 'subscribe-pattern',
    675 	\ 'sync-mailbox', 'tag-entry', 'tag-message', 'tag-pattern', 'tag-prefix-cond',
    676 	\ 'tag-prefix', 'tag-subthread', 'tag-thread', 'toggle-active', 'toggle-disposition',
    677 	\ 'toggle-mailboxes', 'toggle-new', 'toggle-prefer-encrypt', 'toggle-quoted',
    678 	\ 'toggle-read', 'toggle-recode', 'toggle-subscribed', 'toggle-unlink', 'toggle-write',
    679 	\ 'top-page', 'top', 'transpose-chars', 'uncatchup', 'undelete-entry', 'undelete-message',
    680 	\ 'undelete-pattern', 'undelete-subthread', 'undelete-thread', 'unsubscribe-pattern',
    681 	\ 'untag-pattern', 'upcase-word', 'update-encoding', 'verify-key',
    682 	\ 'vfolder-from-query-readonly', 'vfolder-from-query', 'vfolder-window-backward',
    683 	\ 'vfolder-window-forward', 'view-attachments', 'view-attach', 'view-file', 'view-mailcap',
    684 	\ 'view-name', 'view-raw-message', 'view-text', 'what-key', 'write-fcc'
    685 	\ ])
    686 
    687 " Define the default highlighting.
    688 " Only when an item doesn't have highlighting yet
    689 
    690 highlight def link muttrcSetBoolAssignment		Boolean
    691 highlight def link muttrcSetQuadAssignment		Boolean
    692 
    693 highlight def link muttrcComment			Comment
    694 
    695 highlight def link muttrcAlternatesLine			Error
    696 highlight def link muttrcBadAction			Error
    697 highlight def link muttrcBindFunction			Error
    698 highlight def link muttrcBindMenuList			Error
    699 highlight def link muttrcColorBG			Error
    700 highlight def link muttrcColorBGH			Error
    701 highlight def link muttrcColorBGI			Error
    702 highlight def link muttrcColorContext			Error
    703 highlight def link muttrcColorFG			Error
    704 highlight def link muttrcColorFGH			Error
    705 highlight def link muttrcColorFGI			Error
    706 highlight def link muttrcColorLine			Error
    707 highlight def link muttrcFormatErrors			Error
    708 highlight def link muttrcGroupLine			Error
    709 highlight def link muttrcListsLine			Error
    710 highlight def link muttrcPattern			Error
    711 highlight def link muttrcSubscribeLine			Error
    712 highlight def link muttrcUnColorLine			Error
    713 highlight def link muttrcVarDeprecatedBool		Error
    714 highlight def link muttrcVarDeprecatedQuad		Error
    715 highlight def link muttrcVarDeprecatedStr		Error
    716 
    717 highlight def link muttrcAliasEncEmail			Identifier
    718 highlight def link muttrcAliasKey			Identifier
    719 highlight def link muttrcColorCompose			Identifier
    720 highlight def link muttrcColorComposeField		Identifier
    721 highlight def link muttrcColorContextH			Identifier
    722 highlight def link muttrcColorContextI			Identifier
    723 highlight def link muttrcColorField			Identifier
    724 highlight def link muttrcMenu				Identifier
    725 highlight def link muttrcSimplePat			Identifier
    726 highlight def link muttrcUnAliasKey			Identifier
    727 highlight def link muttrcUnColorIndex			Identifier
    728 highlight def link muttrcVarBool			Identifier
    729 highlight def link muttrcVarNum				Identifier
    730 highlight def link muttrcVarQuad			Identifier
    731 highlight def link muttrcVarStr				Identifier
    732 
    733 highlight def link muttrcCommand			Keyword
    734 
    735 highlight def link muttrcAction				Macro
    736 highlight def link muttrcAliasGroupName			Macro
    737 highlight def link muttrcFunction			Macro
    738 highlight def link muttrcGroupDef			Macro
    739 highlight def link muttrcSimplePatString		Macro
    740 
    741 highlight def link muttrcMonoAttrib			muttrcColor
    742 
    743 highlight def link muttrcAlternateKeyword		muttrcCommand
    744 highlight def link muttrcAttachmentsLine		muttrcCommand
    745 highlight def link muttrcColorKeyword			muttrcCommand
    746 highlight def link muttrcGroupKeyword			muttrcCommand
    747 highlight def link muttrcListsKeyword			muttrcCommand
    748 highlight def link muttrcMono				muttrcCommand
    749 highlight def link muttrcPatHooks			muttrcCommand
    750 highlight def link muttrcRXHooks			muttrcCommand
    751 highlight def link muttrcSubscribeKeyword		muttrcCommand
    752 highlight def link muttrcUnColorKeyword			muttrcCommand
    753 
    754 highlight def link muttrcAliasFormatEscapes		muttrcEscape
    755 highlight def link muttrcAttachFormatEscapes		muttrcEscape
    756 highlight def link muttrcComposeFormatEscapes		muttrcEscape
    757 highlight def link muttrcFolderFormatEscapes		muttrcEscape
    758 highlight def link muttrcGroupIndexFormatEscapes	muttrcEscape
    759 highlight def link muttrcIndexFormatEscapes		muttrcEscape
    760 highlight def link muttrcMixFormatEscapes		muttrcEscape
    761 highlight def link muttrcPGPCmdFormatEscapes		muttrcEscape
    762 highlight def link muttrcPGPFormatEscapes		muttrcEscape
    763 highlight def link muttrcPGPTimeEscapes			muttrcEscape
    764 highlight def link muttrcQueryFormatEscapes		muttrcEscape
    765 highlight def link muttrcShellString			muttrcEscape
    766 highlight def link muttrcSidebarFormatEscapes		muttrcEscape
    767 highlight def link muttrcSmimeFormatEscapes		muttrcEscape
    768 highlight def link muttrcStatusFormatEscapes		muttrcEscape
    769 highlight def link muttrcTimeEscapes			muttrcEscape
    770 
    771 highlight def link muttrcAliasFormatConditionals	muttrcFormatConditionals2
    772 highlight def link muttrcAttachFormatConditionals	muttrcFormatConditionals2
    773 highlight def link muttrcComposeFormatConditionals	muttrcFormatConditionals2
    774 highlight def link muttrcFolderFormatConditionals	muttrcFormatConditionals2
    775 highlight def link muttrcIndexFormatConditionals	muttrcFormatConditionals2
    776 highlight def link muttrcMixFormatConditionals		muttrcFormatConditionals2
    777 highlight def link muttrcPGPCmdFormatConditionals	muttrcFormatConditionals2
    778 highlight def link muttrcPGPFormatConditionals		muttrcFormatConditionals2
    779 highlight def link muttrcSmimeFormatConditionals	muttrcFormatConditionals2
    780 highlight def link muttrcStatusFormatConditionals	muttrcFormatConditionals2
    781 
    782 highlight def link muttrcAddrDef			muttrcGroupFlag
    783 highlight def link muttrcRXDef				muttrcGroupFlag
    784 
    785 highlight def link muttrcAliasFormatStr			muttrcString
    786 highlight def link muttrcAttachFormatStr		muttrcString
    787 highlight def link muttrcComposeFormatStr		muttrcString
    788 highlight def link muttrcFolderFormatStr		muttrcString
    789 highlight def link muttrcGroupIndexFormatStr            muttrcString
    790 highlight def link muttrcIndexFormatStr			muttrcString
    791 highlight def link muttrcMixFormatStr			muttrcString
    792 highlight def link muttrcPGPCmdFormatStr		muttrcString
    793 highlight def link muttrcPGPFormatStr			muttrcString
    794 highlight def link muttrcQueryFormatStr			muttrcString
    795 highlight def link muttrcSidebarFormatStr		muttrcString
    796 highlight def link muttrcSmimeFormatStr			muttrcString
    797 highlight def link muttrcStatusFormatStr		muttrcString
    798 highlight def link muttrcStrftimeFormatStr		muttrcString
    799 
    800 highlight def link muttrcSetNumAssignment		Number
    801 
    802 highlight def link muttrcEmail				Special
    803 highlight def link muttrcSimplePatMetas			Special
    804 highlight def link muttrcSpecial			Special
    805 highlight def link muttrcVariableInner			Special
    806 
    807 highlight def link muttrcAliasEncEmailNL		SpecialChar
    808 highlight def link muttrcAliasENNL			SpecialChar
    809 highlight def link muttrcAliasGroupDefNL		SpecialChar
    810 highlight def link muttrcAliasNameNL			SpecialChar
    811 highlight def link muttrcAliasNL			SpecialChar
    812 highlight def link muttrcBindFunctionNL			SpecialChar
    813 highlight def link muttrcBindKeyNL			SpecialChar
    814 highlight def link muttrcBindMenuListNL			SpecialChar
    815 highlight def link muttrcColorBGNL			SpecialChar
    816 highlight def link muttrcColorFGNL			SpecialChar
    817 highlight def link muttrcColorMatchCountNL		SpecialChar
    818 highlight def link muttrcColorNL			SpecialChar
    819 highlight def link muttrcColorRXNL			SpecialChar
    820 highlight def link muttrcEscape				SpecialChar
    821 highlight def link muttrcKeyName			SpecialChar
    822 highlight def link muttrcKeySpecial			SpecialChar
    823 highlight def link muttrcMacroBodyNL			SpecialChar
    824 highlight def link muttrcMacroDescrNL			SpecialChar
    825 highlight def link muttrcMacroKeyNL			SpecialChar
    826 highlight def link muttrcMacroMenuListNL		SpecialChar
    827 highlight def link muttrcPatternNL			SpecialChar
    828 highlight def link muttrcRXChars			SpecialChar
    829 highlight def link muttrcStringNL			SpecialChar
    830 highlight def link muttrcUnAliasNL			SpecialChar
    831 highlight def link muttrcUnColorAPNL			SpecialChar
    832 highlight def link muttrcUnColorIndexNL			SpecialChar
    833 highlight def link muttrcUnColorPatNL			SpecialChar
    834 
    835 highlight def link muttrcAttachmentsMimeType		String
    836 highlight def link muttrcEscapedVariable		String
    837 highlight def link muttrcMacroDescr			String
    838 highlight def link muttrcRXPat				String
    839 highlight def link muttrcRXString			String
    840 highlight def link muttrcRXString2			String
    841 highlight def link muttrcSetStrAssignment		String
    842 highlight def link muttrcString				String
    843 
    844 highlight def link muttrcAliasParens			Type
    845 highlight def link muttrcAttachmentsFlag		Type
    846 highlight def link muttrcColor				Type
    847 highlight def link muttrcFormatConditionals2		Type
    848 highlight def link muttrcGroupFlag			Type
    849 highlight def link muttrcHeader				Type
    850 highlight def link muttrcHooks				Type
    851 highlight def link muttrcKey				Type
    852 highlight def link muttrcPatHookNot			Type
    853 highlight def link muttrcRXHookNot			Type
    854 highlight def link muttrcStrftimeEscapes		Type
    855 
    856 let b:current_syntax = "neomuttrc"
    857 
    858 let &cpo = s:cpo_save
    859 unlet s:cpo_save
    860 
    861 " vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim isk+=-