xref: /vim-8.2.3635/runtime/syntax/neomuttrc.vim (revision e46a4405)
101164a65SBram Moolenaar" Vim syntax file
201164a65SBram Moolenaar" Language:	NeoMutt setup files
3403f3eb4SBram Moolenaar" Maintainer:	Richard Russon <[email protected]>
4403f3eb4SBram Moolenaar" Previous Maintainer:	Guillaume Brogi <[email protected]>
5*e46a4405SBram Moolenaar" Last Change:	2020-06-21
601164a65SBram Moolenaar" Original version based on syntax/muttrc.vim
701164a65SBram Moolenaar
8*e46a4405SBram Moolenaar" This file covers NeoMutt 2020-06-19
901164a65SBram Moolenaar
1001164a65SBram Moolenaar" quit when a syntax file was already loaded
1101164a65SBram Moolenaarif exists("b:current_syntax")
1201164a65SBram Moolenaar  finish
1301164a65SBram Moolenaarendif
1401164a65SBram Moolenaar
1501164a65SBram Moolenaarlet s:cpo_save = &cpo
1601164a65SBram Moolenaarset cpo&vim
1701164a65SBram Moolenaar
1801164a65SBram Moolenaar" Set the keyword characters
1901164a65SBram Moolenaarsetlocal isk=@,48-57,_,-
2001164a65SBram Moolenaar
2101164a65SBram Moolenaar" handling optional variables
2201164a65SBram Moolenaarsyntax match muttrcComment	"^# .*$" contains=@Spell
2301164a65SBram Moolenaarsyntax match muttrcComment	"^#[^ ].*$"
2401164a65SBram Moolenaarsyntax match muttrcComment	"^#$"
2501164a65SBram Moolenaarsyntax match muttrcComment	"[^\\]#.*$"lc=1
2601164a65SBram Moolenaar
2701164a65SBram Moolenaar" Escape sequences (back-tick and pipe goes here too)
2801164a65SBram Moolenaarsyntax match muttrcEscape	+\\[#tnr"'Cc ]+
2901164a65SBram Moolenaarsyntax match muttrcEscape	+[`|]+
3001164a65SBram Moolenaarsyntax match muttrcEscape	+\\$+
3101164a65SBram Moolenaar
3201164a65SBram Moolenaar" The variables takes the following arguments
3301164a65SBram Moolenaarsyntax region muttrcString	contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
3401164a65SBram Moolenaarsyntax region muttrcString	contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
3501164a65SBram Moolenaarsyntax match muttrcStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
3601164a65SBram Moolenaar
37*e46a4405SBram Moolenaarsyntax region muttrcShellString	matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand
3801164a65SBram Moolenaar
3901164a65SBram Moolenaarsyntax match  muttrcRXChars	contained /[^\\][][.*?+]\+/hs=s+1
4001164a65SBram Moolenaarsyntax match  muttrcRXChars	contained /[][|()][.*?+]*/
4101164a65SBram Moolenaarsyntax match  muttrcRXChars	contained /['"]^/ms=s+1
4201164a65SBram Moolenaarsyntax match  muttrcRXChars	contained /$['"]/me=e-1
4301164a65SBram Moolenaarsyntax match  muttrcRXChars	contained /\\/
4401164a65SBram Moolenaar" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
4501164a65SBram Moolenaarsyntax region muttrcRXString	contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
4601164a65SBram Moolenaarsyntax region muttrcRXString	contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
4701164a65SBram Moolenaarsyntax region muttrcRXString	contained skipwhite start=+[^	 "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
4801164a65SBram Moolenaar" For some reason, skip refuses to match backslashes here...
4901164a65SBram Moolenaarsyntax region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
5001164a65SBram Moolenaarsyntax region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
5101164a65SBram Moolenaarsyntax region muttrcRXString2	contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
5201164a65SBram Moolenaarsyntax region muttrcRXString2	contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
5301164a65SBram Moolenaar
54*e46a4405SBram Moolenaar" these must be kept synchronized with muttrcRXString, but are intended for muttrcRXHooks
5501164a65SBram Moolenaarsyntax region muttrcRXHookString	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
5601164a65SBram Moolenaarsyntax region muttrcRXHookString	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
5701164a65SBram Moolenaarsyntax region muttrcRXHookString	contained keepend skipwhite start=+[^	 "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
5801164a65SBram Moolenaarsyntax region muttrcRXHookString	contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
5901164a65SBram Moolenaarsyntax region muttrcRXHookString	contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
6001164a65SBram Moolenaarsyntax match muttrcRXHookStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
6101164a65SBram Moolenaar
6201164a65SBram Moolenaar" these are exclusively for args lists (e.g. -rx pat pat pat ...)
6301164a65SBram Moolenaarsyntax region muttrcRXPat	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
6401164a65SBram Moolenaarsyntax region muttrcRXPat	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
6501164a65SBram Moolenaarsyntax match muttrcRXPat	contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
6601164a65SBram Moolenaarsyntax match muttrcRXDef	contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
6701164a65SBram Moolenaar
6801164a65SBram Moolenaarsyntax match muttrcSpecial	+\(['"]\)!\1+
6901164a65SBram Moolenaar
70*e46a4405SBram Moolenaarsyntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
71*e46a4405SBram Moolenaarsyntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
72*e46a4405SBram Moolenaarsyntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
73*e46a4405SBram Moolenaarsyntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
74*e46a4405SBram Moolenaarsyntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
75*e46a4405SBram Moolenaarsyntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
76*e46a4405SBram Moolenaarsyntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
77*e46a4405SBram Moolenaarsyntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
78*e46a4405SBram Moolenaarsyntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
79*e46a4405SBram Moolenaarsyntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
80*e46a4405SBram Moolenaarsyntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
81*e46a4405SBram Moolenaarsyntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
82*e46a4405SBram Moolenaarsyntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
83*e46a4405SBram Moolenaarsyntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
84*e46a4405SBram Moolenaarsyntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
8501164a65SBram Moolenaar
8601164a65SBram Moolenaar" Now catch some email addresses and headers (purified version from mail.vim)
8701164a65SBram Moolenaarsyntax match muttrcEmail	"[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
8801164a65SBram Moolenaarsyntax match muttrcHeader	"\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
8901164a65SBram Moolenaar
9001164a65SBram Moolenaarsyntax match   muttrcKeySpecial	contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
9101164a65SBram Moolenaarsyntax match   muttrcKey	contained "\S\+"			contains=muttrcKeySpecial,muttrcKeyName
9201164a65SBram Moolenaarsyntax region  muttrcKey	contained start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=muttrcKeySpecial,muttrcKeyName
9301164a65SBram Moolenaarsyntax region  muttrcKey	contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
9401164a65SBram Moolenaarsyntax match   muttrcKeyName	contained "\\[trne]"
9501164a65SBram Moolenaarsyntax match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|Next\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
9601164a65SBram Moolenaarsyntax match   muttrcKeyName	contained "\c<F\d\+>"
9701164a65SBram Moolenaar
9801164a65SBram Moolenaarsyntax match muttrcFormatErrors contained /%./
9901164a65SBram Moolenaar
10001164a65SBram Moolenaarsyntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
10101164a65SBram Moolenaarsyntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/
10201164a65SBram Moolenaarsyntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
10301164a65SBram Moolenaar
104*e46a4405SBram Moolenaarsyntax region muttrcAliasFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
105*e46a4405SBram Moolenaarsyntax region muttrcAliasFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
106*e46a4405SBram Moolenaarsyntax region muttrcAttachFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
107*e46a4405SBram Moolenaarsyntax region muttrcAttachFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
108*e46a4405SBram Moolenaarsyntax region muttrcComposeFormatStr    contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors                         nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
109*e46a4405SBram Moolenaarsyntax region muttrcComposeFormatStr    contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors                         nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
110*e46a4405SBram Moolenaarsyntax region muttrcFolderFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
111*e46a4405SBram Moolenaarsyntax region muttrcFolderFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
112*e46a4405SBram Moolenaarsyntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
113*e46a4405SBram Moolenaarsyntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
114*e46a4405SBram Moolenaarsyntax region muttrcIndexFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
115*e46a4405SBram Moolenaarsyntax region muttrcIndexFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
116*e46a4405SBram Moolenaarsyntax region muttrcMixFormatStr        contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors                                 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
117*e46a4405SBram Moolenaarsyntax region muttrcMixFormatStr        contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors                                 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
118*e46a4405SBram Moolenaarsyntax region muttrcPGPCmdFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
119*e46a4405SBram Moolenaarsyntax region muttrcPGPCmdFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
120*e46a4405SBram Moolenaarsyntax region muttrcPGPFormatStr        contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
121*e46a4405SBram Moolenaarsyntax region muttrcPGPFormatStr        contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes            nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
122*e46a4405SBram Moolenaarsyntax region muttrcQueryFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
123*e46a4405SBram Moolenaarsyntax region muttrcQueryFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors                             nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
124*e46a4405SBram Moolenaarsyntax region muttrcSidebarFormatStr    contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes       nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
125*e46a4405SBram Moolenaarsyntax region muttrcSidebarFormatStr    contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes       nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
126*e46a4405SBram Moolenaarsyntax region muttrcSmimeFormatStr      contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
127*e46a4405SBram Moolenaarsyntax region muttrcSmimeFormatStr      contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
128*e46a4405SBram Moolenaarsyntax region muttrcStatusFormatStr     contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
129*e46a4405SBram Moolenaarsyntax region muttrcStatusFormatStr     contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors                           nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
130*e46a4405SBram Moolenaarsyntax region muttrcStrftimeFormatStr   contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors                                                              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
131*e46a4405SBram Moolenaarsyntax region muttrcStrftimeFormatStr   contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors                                                              nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
13201164a65SBram Moolenaar
13301164a65SBram Moolenaar" Format escapes and conditionals
13401164a65SBram Moolenaarsyntax match muttrcFormatConditionals2 contained /[^?]*?/
135*e46a4405SBram Moolenaarfunction! s:escapesConditionals(baseName, sequence, padding, conditional)
13601164a65SBram Moolenaar	exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/'
137*e46a4405SBram Moolenaar	if a:padding
13801164a65SBram Moolenaar		exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./'
13901164a65SBram Moolenaar	endif
140*e46a4405SBram Moolenaar	if a:conditional
14101164a65SBram Moolenaar		exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/ nextgroup=muttrcFormatConditionals2'
14201164a65SBram Moolenaar	else
14301164a65SBram Moolenaar		exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/'
14401164a65SBram Moolenaar	endif
14501164a65SBram Moolenaarendfunction
14601164a65SBram Moolenaar
147*e46a4405SBram Moolenaar" CHECKED 2020-06-21
148*e46a4405SBram Moolenaar" Ref: alias_format_str() in alias/dlgalias.c
149*e46a4405SBram Moolenaarcall s:escapesConditionals('AliasFormat', '[acfnrt]', 1, 0)
1507dda86f2SBram Moolenaar" Ref: attach_format_str() in recvattach.c
15101164a65SBram Moolenaarcall s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1)
1527dda86f2SBram Moolenaar" Ref: compose_format_str() in compose.c
153*e46a4405SBram Moolenaarcall s:escapesConditionals('ComposeFormat', '[ahlv]', 1, 1)
1547dda86f2SBram Moolenaar" Ref: folder_format_str() in browser.c
155403f3eb4SBram Moolenaarcall s:escapesConditionals('FolderFormat', '[CDdFfgilmNnstu]', 1, 0)
156*e46a4405SBram Moolenaar" Ref: group_index_format_str() in browser.c
157*e46a4405SBram Moolenaarcall s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1)
158*e46a4405SBram Moolenaar" Ref: index_format_str() in hdrline.c
159*e46a4405SBram Moolenaarcall s:escapesConditionals('IndexFormat', '[AaBbCDdEefgHIiJKLlMmNnOPqRrSsTtuvWXxYyZ(<[{]\|@\i\+@\|G[a-zA-Z]\+\|Fp\=\|z[cst]\|cr\=', 1, 1)
1607dda86f2SBram Moolenaar" Ref: mix_format_str() in remailer.c
161*e46a4405SBram Moolenaarcall s:escapesConditionals('MixFormat', '[acns]', 1, 0)
162*e46a4405SBram Moolenaar" Ref: pgp_command_format_str() in ncrypt/pgpinvoke.c
163*e46a4405SBram Moolenaarcall s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1)
1647dda86f2SBram Moolenaar" Ref: crypt_format_str() in ncrypt/crypt_gpgme.c
165*e46a4405SBram Moolenaar" Ref: pgp_entry_format_str() in ncrypt/pgpkey.c
1667dda86f2SBram Moolenaar" Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not
167403f3eb4SBram Moolenaarcall s:escapesConditionals('PGPFormat', '[AaCcFfKkLlnptu[]', 0, 0)
168*e46a4405SBram Moolenaar" Ref: query_format_str() in alias/dlgquery.c
169*e46a4405SBram Moolenaarcall s:escapesConditionals('QueryFormat', '[acent]', 1, 1)
170*e46a4405SBram Moolenaar" Ref: sidebar_format_str() in sidebar.c
171*e46a4405SBram Moolenaarcall s:escapesConditionals('SidebarFormat', '[!BDdFLNnorStZ]', 1, 1)
172*e46a4405SBram Moolenaar" Ref: smime_command_format_str() in ncrypt/smime.c
173*e46a4405SBram Moolenaarcall s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1)
174*e46a4405SBram Moolenaar" Ref: status_format_str() in status.c
175*e46a4405SBram Moolenaarcall s:escapesConditionals('StatusFormat', '[bDdFfhLlMmnoPpRrSstuVv]', 1, 1)
1767dda86f2SBram Moolenaar
177*e46a4405SBram Moolenaarsyntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
17801164a65SBram Moolenaarsyntax region muttrcTimeEscapes    contained start=+%(+  end=+)+  contains=muttrcStrftimeEscapes
17901164a65SBram Moolenaarsyntax region muttrcTimeEscapes    contained start=+%<+  end=+>+  contains=muttrcStrftimeEscapes
180*e46a4405SBram Moolenaarsyntax region muttrcTimeEscapes    contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
181*e46a4405SBram Moolenaarsyntax region muttrcTimeEscapes    contained start=+%{+  end=+}+  contains=muttrcStrftimeEscapes
18201164a65SBram Moolenaar
18301164a65SBram Moolenaarsyntax match muttrcVarEqualsAliasFmt      contained skipwhite "=" nextgroup=muttrcAliasFormatStr
18401164a65SBram Moolenaarsyntax match muttrcVarEqualsAttachFmt     contained skipwhite "=" nextgroup=muttrcAttachFormatStr
18501164a65SBram Moolenaarsyntax match muttrcVarEqualsComposeFmt    contained skipwhite "=" nextgroup=muttrcComposeFormatStr
18601164a65SBram Moolenaarsyntax match muttrcVarEqualsFolderFmt     contained skipwhite "=" nextgroup=muttrcFolderFormatStr
18701164a65SBram Moolenaarsyntax match muttrcVarEqualsGrpIdxFmt     contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr
1887dda86f2SBram Moolenaarsyntax match muttrcVarEqualsIdxFmt        contained skipwhite "=" nextgroup=muttrcIndexFormatStr
18901164a65SBram Moolenaarsyntax match muttrcVarEqualsMixFmt        contained skipwhite "=" nextgroup=muttrcMixFormatStr
19001164a65SBram Moolenaarsyntax match muttrcVarEqualsPGPCmdFmt     contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
1917dda86f2SBram Moolenaarsyntax match muttrcVarEqualsPGPFmt        contained skipwhite "=" nextgroup=muttrcPGPFormatStr
1927dda86f2SBram Moolenaarsyntax match muttrcVarEqualsQueryFmt      contained skipwhite "=" nextgroup=muttrcQueryFormatStr
1937dda86f2SBram Moolenaarsyntax match muttrcVarEqualsSdbFmt        contained skipwhite "=" nextgroup=muttrcSidebarFormatStr
19401164a65SBram Moolenaarsyntax match muttrcVarEqualsSmimeFmt      contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
1957dda86f2SBram Moolenaarsyntax match muttrcVarEqualsStatusFmt     contained skipwhite "=" nextgroup=muttrcStatusFormatStr
19601164a65SBram Moolenaarsyntax match muttrcVarEqualsStrftimeFmt   contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
19701164a65SBram Moolenaar
198*e46a4405SBram Moolenaarsyntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
19901164a65SBram Moolenaar
200*e46a4405SBram Moolenaar" CHECKED 2020-06-21
201403f3eb4SBram Moolenaar" List of the different screens in mutt (see Menus in keymap.c)
2027dda86f2SBram Moolenaarsyntax keyword muttrcMenu contained alias attach browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime
20301164a65SBram Moolenaarsyntax match muttrcMenuList "\S\+" contained contains=muttrcMenu
20401164a65SBram Moolenaarsyntax match muttrcMenuCommas /,/ contained
20501164a65SBram Moolenaar
20601164a65SBram Moolenaarsyntax region muttrcSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
20701164a65SBram Moolenaarsyntax region muttrcSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
20801164a65SBram Moolenaar
20901164a65SBram Moolenaarsyntax region muttrcNoSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
21001164a65SBram Moolenaarsyntax region muttrcNoSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
21101164a65SBram Moolenaar
21201164a65SBram Moolenaarsyntax match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
21301164a65SBram Moolenaarsyntax match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
21401164a65SBram Moolenaarsyntax match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
21501164a65SBram Moolenaar
21601164a65SBram Moolenaarsyntax match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
21701164a65SBram Moolenaar
21801164a65SBram Moolenaarsyntax keyword muttrcAsterisk	contained *
219403f3eb4SBram Moolenaar
22001164a65SBram Moolenaarsyntax keyword muttrcListsKeyword	lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
22101164a65SBram Moolenaarsyntax keyword muttrcListsKeyword	unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
22201164a65SBram Moolenaar
223403f3eb4SBram Moolenaarsyntax keyword muttrcSubscribeKeyword	subscribe skipwhite nextgroup=muttrcGroupDef,muttrcComment
224403f3eb4SBram Moolenaarsyntax keyword muttrcSubscribeKeyword	unsubscribe skipwhite nextgroup=muttrcAsterisk,muttrcComment
22501164a65SBram Moolenaar
22601164a65SBram Moolenaarsyntax keyword muttrcAlternateKeyword contained alternates unalternates
22701164a65SBram Moolenaarsyntax region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
22801164a65SBram Moolenaar
229403f3eb4SBram Moolenaar" muttrcVariable includes a prefix because partial strings are considered valid.
23001164a65SBram Moolenaarsyntax match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
23101164a65SBram Moolenaarsyntax match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
23201164a65SBram Moolenaarsyntax match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"
23301164a65SBram Moolenaar
23401164a65SBram Moolenaarsyntax match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
23501164a65SBram Moolenaarsyntax match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
23601164a65SBram Moolenaar
237*e46a4405SBram Moolenaar" CHECKED 2020-06-21
23801164a65SBram Moolenaar" First, functions that take regular expressions:
23901164a65SBram Moolenaarsyntax match  muttrcRXHookNot	contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
24001164a65SBram Moolenaarsyntax match  muttrcRXHooks	/\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
24101164a65SBram Moolenaar
24201164a65SBram Moolenaar" Now, functions that take patterns
24301164a65SBram Moolenaarsyntax match muttrcPatHookNot	contained /!\s*/ skipwhite nextgroup=muttrcPattern
244*e46a4405SBram Moolenaarsyntax match muttrcPatHooks	/\<\%(charset\|iconv\|index-format\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
24501164a65SBram Moolenaarsyntax match muttrcPatHooks	/\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
24601164a65SBram Moolenaar
247*e46a4405SBram Moolenaar" Global hooks that take a command
248*e46a4405SBram Moolenaarsyntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand
249*e46a4405SBram Moolenaar
25001164a65SBram Moolenaarsyntax match muttrcBindFunction	contained /\S\+\>/ skipwhite contains=muttrcFunction
25101164a65SBram Moolenaarsyntax match muttrcBindFunctionNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
25201164a65SBram Moolenaarsyntax match muttrcBindKey		contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
25301164a65SBram Moolenaarsyntax match muttrcBindKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
25401164a65SBram Moolenaarsyntax match muttrcBindMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
25501164a65SBram Moolenaarsyntax match muttrcBindMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
25601164a65SBram Moolenaar
25701164a65SBram Moolenaarsyntax region muttrcMacroDescr	contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
25801164a65SBram Moolenaarsyntax region muttrcMacroDescr	contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
25901164a65SBram Moolenaarsyntax region muttrcMacroDescr	contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
26001164a65SBram Moolenaarsyntax match muttrcMacroDescrNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
26101164a65SBram Moolenaarsyntax region muttrcMacroBody	contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
26201164a65SBram Moolenaarsyntax 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
26301164a65SBram Moolenaarsyntax 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
26401164a65SBram Moolenaarsyntax match muttrcMacroBodyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
26501164a65SBram Moolenaarsyntax match muttrcMacroKey	contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
26601164a65SBram Moolenaarsyntax match muttrcMacroKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
26701164a65SBram Moolenaarsyntax match muttrcMacroMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
26801164a65SBram Moolenaarsyntax match muttrcMacroMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
26901164a65SBram Moolenaar
27001164a65SBram Moolenaarsyntax match muttrcAddrContent	contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
27101164a65SBram Moolenaarsyntax region muttrcAddrContent	contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
27201164a65SBram Moolenaarsyntax region muttrcAddrContent	contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
27301164a65SBram Moolenaarsyntax match muttrcAddrDef	contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
27401164a65SBram Moolenaar
27501164a65SBram Moolenaarsyntax match muttrcGroupFlag	contained "-group"
27601164a65SBram Moolenaarsyntax region muttrcGroupDef	contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
27701164a65SBram Moolenaar
27801164a65SBram Moolenaarsyntax keyword muttrcGroupKeyword	contained group ungroup
27901164a65SBram Moolenaarsyntax region muttrcGroupLine	keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
28001164a65SBram Moolenaar
28101164a65SBram Moolenaarsyntax match muttrcAliasGroupName	contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
28201164a65SBram Moolenaarsyntax match muttrcAliasGroupDefNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
28301164a65SBram Moolenaarsyntax match muttrcAliasGroupDef	contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
28401164a65SBram Moolenaarsyntax match muttrcAliasComma	contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
28501164a65SBram Moolenaarsyntax match muttrcAliasEmail	contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
28601164a65SBram Moolenaarsyntax match muttrcAliasEncEmail	contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
28701164a65SBram Moolenaarsyntax match muttrcAliasEncEmailNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
28801164a65SBram Moolenaarsyntax match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
28901164a65SBram Moolenaarsyntax region muttrcAliasName	contained matchgroup=Type start=/(/ end=/)/ skipwhite
29001164a65SBram Moolenaarsyntax match muttrcAliasNameNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
29101164a65SBram Moolenaarsyntax match muttrcAliasENNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
29201164a65SBram Moolenaarsyntax match muttrcAliasKey	contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
29301164a65SBram Moolenaarsyntax match muttrcAliasNL		contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
29401164a65SBram Moolenaar
29501164a65SBram Moolenaarsyntax match muttrcUnAliasKey	contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
29601164a65SBram Moolenaarsyntax match muttrcUnAliasNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
29701164a65SBram Moolenaar
298*e46a4405SBram Moolenaar" CHECKED 2020-06-21
299*e46a4405SBram Moolenaar" List of letters in Flags in pattern.c
300*e46a4405SBram Moolenaar" Parameter: none
301*e46a4405SBram Moolenaarsyntax match muttrcSimplePat contained "!\?\^\?[~][ADEFGgklNOPpQRSTuUvV#$=]"
302*e46a4405SBram Moolenaar" Parameter: range
30301164a65SBram Moolenaarsyntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
304*e46a4405SBram Moolenaar" Parameter: date
30501164a65SBram Moolenaarsyntax 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*e46a4405SBram Moolenaar" Parameter: regex
307*e46a4405SBram Moolenaarsyntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer
308*e46a4405SBram Moolenaar" Parameter: pattern
30901164a65SBram Moolenaarsyntax match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
310*e46a4405SBram Moolenaar" Parameter: pattern
31101164a65SBram Moolenaarsyntax match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
31201164a65SBram Moolenaarsyntax region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
313*e46a4405SBram Moolenaar
31401164a65SBram Moolenaar"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
31501164a65SBram Moolenaarsyntax region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
31601164a65SBram Moolenaarsyntax region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
31701164a65SBram Moolenaarsyntax region muttrcSimplePatString contained keepend start=+[^	 "']+ skip=+\\ + end=+\s+re=e-1
31801164a65SBram Moolenaarsyntax region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
31901164a65SBram Moolenaarsyntax region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
32001164a65SBram Moolenaarsyntax region muttrcSimplePatRXContainer contained keepend start=+[^	 "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
32101164a65SBram Moolenaarsyntax match muttrcSimplePatMetas contained /[(|)]/
32201164a65SBram Moolenaar
32301164a65SBram Moolenaarsyntax match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
32401164a65SBram Moolenaarsyntax match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
32501164a65SBram Moolenaarsyntax region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
32601164a65SBram Moolenaarsyntax region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
32701164a65SBram Moolenaarsyntax region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
32801164a65SBram Moolenaarsyntax match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
32901164a65SBram Moolenaarsyntax match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
33001164a65SBram Moolenaar" Keep muttrcPattern and muttrcOptPattern synchronized
33101164a65SBram Moolenaarsyntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
33201164a65SBram Moolenaarsyntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
33301164a65SBram Moolenaarsyntax region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
33401164a65SBram Moolenaarsyntax match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
33501164a65SBram Moolenaarsyntax match muttrcPattern contained skipwhite /[.]/
33601164a65SBram Moolenaarsyntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
33701164a65SBram Moolenaarsyntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
33801164a65SBram Moolenaar
33901164a65SBram Moolenaar" Colour definitions takes object, foreground and background arguments (regexps excluded).
34001164a65SBram Moolenaarsyntax match muttrcColorMatchCount	contained "[0-9]\+"
34101164a65SBram Moolenaarsyntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
34201164a65SBram Moolenaarsyntax region muttrcColorRXPat	contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
34301164a65SBram Moolenaarsyntax region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
34401164a65SBram Moolenaarsyntax keyword muttrcColor	contained black blue cyan default green magenta red white yellow
34501164a65SBram Moolenaarsyntax keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
34601164a65SBram Moolenaarsyntax match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
34701164a65SBram Moolenaar" Now for the structure of the color line
34801164a65SBram Moolenaarsyntax match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
34901164a65SBram Moolenaarsyntax match muttrcColorBG	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
35001164a65SBram Moolenaarsyntax match muttrcColorBGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
35101164a65SBram Moolenaarsyntax match muttrcColorFG	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
35201164a65SBram Moolenaarsyntax match muttrcColorFGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
35301164a65SBram Moolenaarsyntax match muttrcColorContext	contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL
35401164a65SBram Moolenaarsyntax match muttrcColorNL	contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
35501164a65SBram Moolenaarsyntax match muttrcColorKeyword	contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
35601164a65SBram Moolenaar" And now color's brother:
35701164a65SBram Moolenaarsyntax region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
35801164a65SBram Moolenaarsyntax region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
35901164a65SBram Moolenaarsyntax match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
36001164a65SBram Moolenaarsyntax match muttrcUnColorPatNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
36101164a65SBram Moolenaarsyntax match muttrcUnColorAll	contained skipwhite /[*]/
36201164a65SBram Moolenaarsyntax match muttrcUnColorAPNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
36301164a65SBram Moolenaarsyntax match muttrcUnColorIndex	contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
36401164a65SBram Moolenaarsyntax match muttrcUnColorIndexNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
36501164a65SBram Moolenaarsyntax match muttrcUnColorKeyword	contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
36601164a65SBram Moolenaarsyntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
36701164a65SBram Moolenaar
36801164a65SBram Moolenaarsyntax keyword muttrcMonoAttrib	contained bold none normal reverse standout underline
36901164a65SBram Moolenaarsyntax keyword muttrcMono	contained mono		skipwhite nextgroup=muttrcColorField,muttrcColorCompose
37001164a65SBram Moolenaarsyntax match   muttrcMonoLine	"^\s*mono\s\+\S\+"	skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
37101164a65SBram Moolenaar
372*e46a4405SBram Moolenaar" CHECKED 2020-06-21
37301164a65SBram Moolenaar" List of fields in Fields in color.c
37401164a65SBram Moolenaarsyntax keyword muttrcColorField skipwhite contained
375*e46a4405SBram Moolenaar	\ attachment attach_headers body bold error hdrdefault header index index_author
376*e46a4405SBram Moolenaar	\ index_collapsed index_date index_flags index_label index_number index_size index_subject
377*e46a4405SBram Moolenaar	\ index_tag index_tags indicator markers message normal options progress prompt quoted
378*e46a4405SBram Moolenaar	\ search sidebar_divider sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new
379*e46a4405SBram Moolenaar	\ sidebar_ordinary sidebar_spoolfile sidebar_unread signature status tilde tree underline
380*e46a4405SBram Moolenaar	\ warning nextgroup=muttrcColor
381*e46a4405SBram Moolenaar
38201164a65SBram Moolenaarsyntax match   muttrcColorField	contained "\<quoted\d\=\>"
38301164a65SBram Moolenaar
38401164a65SBram Moolenaarsyntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField
3857dda86f2SBram Moolenaar
386*e46a4405SBram Moolenaar" CHECKED 2020-06-21
38701164a65SBram Moolenaar" List of fields in ComposeFields in color.c
38801164a65SBram Moolenaarsyntax keyword muttrcColorComposeField skipwhite contained
3897dda86f2SBram Moolenaar	\ header security_both security_encrypt security_none security_sign
39001164a65SBram Moolenaar	\ nextgroup=muttrcColorFG,muttrcColorFGNL
39101164a65SBram Moolenaarsyntax region muttrcColorLine keepend start=/^\s*color\s\+/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
39201164a65SBram Moolenaar
3937dda86f2SBram Moolenaarfunction! s:boolQuadGen(type, vars, deprecated)
39401164a65SBram Moolenaar	let l:novars = copy(a:vars)
39501164a65SBram Moolenaar	call map(l:novars, '"no" . v:val')
39601164a65SBram Moolenaar	let l:invvars = copy(a:vars)
39701164a65SBram Moolenaar	call map(l:invvars, '"inv" . v:val')
39801164a65SBram Moolenaar
39901164a65SBram Moolenaar	let l:orig_type = copy(a:type)
40001164a65SBram Moolenaar	if a:deprecated
40101164a65SBram Moolenaar		let l:type = 'Deprecated' . a:type
402*e46a4405SBram Moolenaar		exec 'syntax keyword muttrcVar' . l:type . ' ' . join(a:vars)
403*e46a4405SBram Moolenaar		exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:novars)
404*e46a4405SBram Moolenaar		exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:invvars)
40501164a65SBram Moolenaar	else
40601164a65SBram Moolenaar		let l:type = a:type
407*e46a4405SBram Moolenaar		exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr'
408*e46a4405SBram Moolenaar		exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr'
409*e46a4405SBram Moolenaar		exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr'
41001164a65SBram Moolenaar	endif
41101164a65SBram Moolenaar
41201164a65SBram Moolenaarendfunction
41301164a65SBram Moolenaar
414*e46a4405SBram Moolenaar" CHECKED 2020-06-21
415*e46a4405SBram Moolenaar" List of DT_BOOL in MuttVars in mutt_config.c
41601164a65SBram Moolenaarcall s:boolQuadGen('Bool', [
417*e46a4405SBram Moolenaar	\ 'abort_backspace', 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'askbcc',
418*e46a4405SBram Moolenaar	\ 'askcc', 'ask_follow_up', 'ask_x_comment_to', 'attach_save_without_prompting',
419*e46a4405SBram Moolenaar	\ 'attach_split', 'autocrypt', 'autocrypt_reply', 'autoedit', 'auto_subscribe', 'auto_tag',
420*e46a4405SBram Moolenaar	\ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly',
421*e46a4405SBram Moolenaar	\ 'browser_abbreviate_mailboxes', 'change_folder_next', 'check_mbox_size', 'check_new',
422*e46a4405SBram Moolenaar	\ 'collapse_all', 'collapse_flagged', 'collapse_unread', 'confirmappend', 'confirmcreate',
4237dda86f2SBram Moolenaar	\ 'crypt_autoencrypt', 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime',
424*e46a4405SBram Moolenaar	\ 'crypt_confirmhook', 'crypt_opportunistic_encrypt',
425*e46a4405SBram Moolenaar	\ 'crypt_opportunistic_encrypt_strong_keys', 'crypt_protected_headers_read',
426*e46a4405SBram Moolenaar	\ 'crypt_protected_headers_save', 'crypt_protected_headers_write', 'crypt_replyencrypt',
427*e46a4405SBram Moolenaar	\ 'crypt_replysign', 'crypt_replysignencrypted', 'crypt_timestamp', 'crypt_use_gpgme',
428*e46a4405SBram Moolenaar	\ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers',
429*e46a4405SBram Moolenaar	\ 'encode_from', 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to',
430*e46a4405SBram Moolenaar	\ 'force_name', 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references',
431*e46a4405SBram Moolenaar	\ 'hdrs', 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited',
432*e46a4405SBram Moolenaar	\ 'hide_missing', 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing',
433*e46a4405SBram Moolenaar	\ 'history_remove_dups', 'honor_disposition', 'idn_decode', 'idn_encode',
434*e46a4405SBram Moolenaar	\ 'ignore_list_reply_to', 'imap_check_subscribed', 'imap_condstore', 'imap_deflate',
435*e46a4405SBram Moolenaar	\ 'imap_idle', 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync',
436*e46a4405SBram Moolenaar	\ 'imap_rfc5161', 'imap_servernoise', 'implicit_autoview', 'include_encrypted',
437*e46a4405SBram Moolenaar	\ 'include_onlyfirst', 'keep_flagged', 'mailcap_sanitize', 'maildir_check_cur',
438*e46a4405SBram Moolenaar	\ 'maildir_header_cache_verify', 'maildir_trash', 'mail_check_recent', 'mail_check_stats',
439*e46a4405SBram Moolenaar	\ 'markers', 'mark_old', 'menu_move_off', 'menu_scroll', 'message_cache_clean', 'meta_key',
440*e46a4405SBram Moolenaar	\ 'metoo', 'mh_purge', 'mime_forward_decode', 'mime_subject', 'mime_type_query_first',
441*e46a4405SBram Moolenaar	\ 'narrow_tree', 'nm_record', 'nntp_listgroup', 'nntp_load_description', 'pager_stop',
442*e46a4405SBram Moolenaar	\ 'pgp_autoinline', 'pgp_auto_decode', 'pgp_check_exit', 'pgp_check_gpg_decrypt_status_fd',
443*e46a4405SBram Moolenaar	\ 'pgp_ignore_subkeys', 'pgp_long_ids', 'pgp_replyinline', 'pgp_retainable_sigs',
444*e46a4405SBram Moolenaar	\ 'pgp_self_encrypt', 'pgp_show_unusable', 'pgp_strict_enc', 'pgp_use_gpg_agent',
445*e46a4405SBram Moolenaar	\ 'pipe_decode', 'pipe_split', 'pop_auth_try_all', 'pop_last', 'postpone_encrypt',
446*e46a4405SBram Moolenaar	\ 'print_decode', 'print_split', 'prompt_after', 'read_only', 'reflow_space_quotes',
447*e46a4405SBram Moolenaar	\ 'reflow_text', 'reply_self', 'reply_with_xorig', 'resolve', 'resume_draft_files',
448*e46a4405SBram Moolenaar	\ 'resume_edited_draft_files', 'reverse_alias', 'reverse_name', 'reverse_realname',
449*e46a4405SBram Moolenaar	\ 'rfc2047_parameters', 'save_address', 'save_empty', 'save_name', 'save_unsubscribed',
450*e46a4405SBram Moolenaar	\ 'score', 'show_new_news', 'show_only_unread', 'sidebar_folder_indent',
451*e46a4405SBram Moolenaar	\ 'sidebar_new_mail_only', 'sidebar_next_new_wrap', 'sidebar_non_empty_mailbox_only',
452*e46a4405SBram Moolenaar	\ 'sidebar_on_right', 'sidebar_short_path', 'sidebar_visible', 'sig_dashes', 'sig_on_top',
453*e46a4405SBram Moolenaar	\ 'size_show_bytes', 'size_show_fractions', 'size_show_mb', 'size_units_on_left',
454*e46a4405SBram Moolenaar	\ 'smart_wrap', 'smime_ask_cert_label', 'smime_decrypt_use_default_key', 'smime_is_default',
455*e46a4405SBram Moolenaar	\ 'smime_self_encrypt', 'sort_re', 'ssl_force_tls', 'ssl_usesystemcerts', 'ssl_use_sslv2',
456*e46a4405SBram Moolenaar	\ 'ssl_use_sslv3', 'ssl_use_tlsv1', 'ssl_use_tlsv1_1', 'ssl_use_tlsv1_2', 'ssl_use_tlsv1_3',
457*e46a4405SBram Moolenaar	\ 'ssl_verify_dates', 'ssl_verify_host', 'ssl_verify_partial_chains', 'status_on_top',
458*e46a4405SBram Moolenaar	\ 'strict_threads', 'suspend', 'text_flowed', 'thorough_search', 'thread_received', 'tilde',
459*e46a4405SBram Moolenaar	\ 'ts_enabled', 'uncollapse_jump', 'uncollapse_new', 'user_agent', 'use_8bitmime',
460*e46a4405SBram Moolenaar	\ 'use_domain', 'use_envelope_from', 'use_from', 'use_ipv6', 'virtual_spoolfile',
461*e46a4405SBram Moolenaar	\ 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to'
46201164a65SBram Moolenaar	\ ], 0)
46301164a65SBram Moolenaar
464*e46a4405SBram Moolenaar" CHECKED 2020-06-21
46501164a65SBram Moolenaar" Deprecated Bools
466*e46a4405SBram Moolenaar" List of DT_SYNONYM or DT_DEPRECATED Bools in MuttVars in mutt_config.c
46701164a65SBram Moolenaarcall s:boolQuadGen('Bool', [
468*e46a4405SBram Moolenaar	\ 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote',
469*e46a4405SBram Moolenaar	\ 'header_cache_compress', 'ignore_linear_white_space', 'pgp_autoencrypt', 'pgp_autosign',
470*e46a4405SBram Moolenaar	\ 'pgp_auto_traditional', 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replysign',
471*e46a4405SBram Moolenaar	\ 'pgp_replysignencrypted', 'xterm_set_titles'
47201164a65SBram Moolenaar	\ ], 1)
47301164a65SBram Moolenaar
474*e46a4405SBram Moolenaar" CHECKED 2020-06-21
475*e46a4405SBram Moolenaar" List of DT_QUAD in MuttVars in mutt_config.c
47601164a65SBram Moolenaarcall s:boolQuadGen('Quad', [
477*e46a4405SBram Moolenaar	\ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce', 'catchup_newsgroup',
478*e46a4405SBram Moolenaar	\ 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach', 'followup_to_poster',
479*e46a4405SBram Moolenaar	\ 'forward_attachments', 'forward_edit', 'honor_followup_to', 'include', 'mime_forward',
480*e46a4405SBram Moolenaar	\ 'mime_forward_rest', 'move', 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'postpone',
481*e46a4405SBram Moolenaar	\ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls',
48201164a65SBram Moolenaar	\ ], 0)
48301164a65SBram Moolenaar
484*e46a4405SBram Moolenaar" CHECKED 2020-06-21
48501164a65SBram Moolenaar" Deprecated Quads
486*e46a4405SBram Moolenaar" List of DT_SYNONYM or DT_DEPRECATED Quads in MuttVars in mutt_config.c
48701164a65SBram Moolenaarcall s:boolQuadGen('Quad', [
4887dda86f2SBram Moolenaar	\ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self'
48901164a65SBram Moolenaar	\ ], 1)
49001164a65SBram Moolenaar
491*e46a4405SBram Moolenaar" CHECKED 2020-06-21
492*e46a4405SBram Moolenaar" List of DT_NUMBER or DT_LONG in MuttVars in mutt_config.c
49301164a65SBram Moolenaarsyntax keyword muttrcVarNum	skipwhite contained
494*e46a4405SBram Moolenaar	\ connect_timeout debug_level header_cache_compress_level history
495*e46a4405SBram Moolenaar	\ imap_fetch_chunk_size imap_keepalive imap_pipeline_depth imap_poll_timeout mail_check
496*e46a4405SBram Moolenaar	\ mail_check_stats_interval menu_context net_inc nm_db_limit nm_open_timeout
497*e46a4405SBram Moolenaar	\ nm_query_window_current_position nm_query_window_duration nntp_context nntp_poll
498*e46a4405SBram Moolenaar	\ pager_context pager_index_lines pgp_timeout pop_checkinterval read_inc reflow_wrap
499*e46a4405SBram Moolenaar	\ save_history score_threshold_delete score_threshold_flag score_threshold_read
500*e46a4405SBram Moolenaar	\ search_context sendmail_wait sidebar_component_depth sidebar_width skip_quoted_offset
501*e46a4405SBram Moolenaar	\ sleep_time smime_timeout ssl_min_dh_prime_bits timeout time_inc toggle_quoted_show_levels
502*e46a4405SBram Moolenaar	\ wrap wrap_headers write_inc
503*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
5047dda86f2SBram Moolenaarsyntax keyword muttrcVarDeprecatedNum	contained skipwhite
505*e46a4405SBram Moolenaar	\ header_cache_pagesize wrapmargin
506*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
50701164a65SBram Moolenaar
508*e46a4405SBram Moolenaar" CHECKED 2020-06-21
509*e46a4405SBram Moolenaar" List of DT_STRING in MuttVars in mutt_config.c
51001164a65SBram Moolenaar" Special cases first, and all the rest at the end
51101164a65SBram Moolenaar" Formats themselves must be updated in their respective groups
51201164a65SBram Moolenaar" See s:escapesConditionals
513*e46a4405SBram Moolenaarsyntax match muttrcVarStr	contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
51401164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
51501164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
51601164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
51701164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt
518*e46a4405SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite attribution forward_format index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
51901164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
52001164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
5217dda86f2SBram Moolenaar	\ pgp_clearsign_command pgp_decode_command pgp_decrypt_command
522*e46a4405SBram Moolenaar	\ pgp_encrypt_only_command pgp_encrypt_sign_command pgp_export_command pgp_getkeys_command
5237dda86f2SBram Moolenaar	\ pgp_import_command pgp_list_pubring_command pgp_list_secring_command
5247dda86f2SBram Moolenaar	\ pgp_sign_command pgp_verify_command pgp_verify_key_command
52501164a65SBram Moolenaar	\ nextgroup=muttrcVarEqualsPGPCmdFmt
52601164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
52701164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
52801164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
5297dda86f2SBram Moolenaar	\ smime_decrypt_command smime_encrypt_command smime_get_cert_command
5307dda86f2SBram Moolenaar	\ smime_get_cert_email_command smime_get_signer_cert_command
5317dda86f2SBram Moolenaar	\ smime_import_cert_command smime_pk7out_command smime_sign_command
5327dda86f2SBram Moolenaar	\ smime_verify_command smime_verify_opaque_command
53301164a65SBram Moolenaar	\ nextgroup=muttrcVarEqualsSmimeFmt
534*e46a4405SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFmt
53501164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
53601164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt
53701164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt
53801164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
539*e46a4405SBram Moolenaar	\ abort_key arrow_string assumed_charset attach_charset attach_sep attribution_locale
540*e46a4405SBram Moolenaar	\ autocrypt_acct_format charset config_charset content_type crypt_protected_headers_subject
541*e46a4405SBram Moolenaar	\ default_hook dsn_notify dsn_return empty_subject escape forward_attribution_intro
542*e46a4405SBram Moolenaar	\ forward_attribution_trailer header_cache_backend header_cache_compress_method hidden_tags
543*e46a4405SBram Moolenaar	\ hostname imap_authenticators imap_delim_chars imap_headers imap_login imap_pass imap_user
544*e46a4405SBram Moolenaar	\ indent_string mailcap_path mark_macro_prefix mh_seq_flagged mh_seq_replied mh_seq_unseen
545*e46a4405SBram Moolenaar	\ newsgroups_charset news_server nm_default_url nm_exclude_tags nm_flagged_tag nm_query_type
546*e46a4405SBram Moolenaar	\ nm_query_window_current_search nm_query_window_timebase nm_record_tags nm_replied_tag
547*e46a4405SBram Moolenaar	\ nm_unread_tag nntp_authenticators nntp_pass nntp_user pgp_default_key pgp_sign_as pipe_sep
548*e46a4405SBram Moolenaar	\ pop_authenticators pop_host pop_pass pop_user postpone_encrypt_as post_indent_string
549*e46a4405SBram Moolenaar	\ preconnect preferred_languages realname send_charset show_multipart_alternative
550*e46a4405SBram Moolenaar	\ sidebar_delim_chars sidebar_divider_char sidebar_indent_string simple_search
551*e46a4405SBram Moolenaar	\ smime_default_key smime_encrypt_with smime_sign_as smime_sign_digest_alg
552*e46a4405SBram Moolenaar	\ smtp_authenticators smtp_pass smtp_url smtp_user spam_separator ssl_ciphers
553*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
554*e46a4405SBram Moolenaar
55501164a65SBram Moolenaar" Deprecated strings
556*e46a4405SBram Moolenaarsyntax keyword muttrcVarDeprecatedStr
557*e46a4405SBram Moolenaar	\ abort_noattach_regexp attach_keyword forw_format hdr_format indent_str msg_format
558*e46a4405SBram Moolenaar	\ nm_default_uri pgp_self_encrypt_as post_indent_str print_cmd quote_regexp reply_regexp
559*e46a4405SBram Moolenaar	\ smime_self_encrypt_as xterm_icon xterm_title
5607dda86f2SBram Moolenaar
561*e46a4405SBram Moolenaar" CHECKED 2020-06-21
56201164a65SBram Moolenaar" List of DT_ADDRESS
563*e46a4405SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
564403f3eb4SBram Moolenaar" List of DT_ENUM
565*e46a4405SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite mbox_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
56601164a65SBram Moolenaar" List of DT_MBTABLE
567*e46a4405SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite crypt_chars flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
5687dda86f2SBram Moolenaar
569*e46a4405SBram Moolenaar" CHECKED 2020-06-21
57001164a65SBram Moolenaar" List of DT_PATH
57101164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
572403f3eb4SBram Moolenaar	\ alias_file attach_save_dir autocrypt_dir certificate_file debug_file
573403f3eb4SBram Moolenaar	\ entropy_file folder header_cache history_file mbox message_cachedir newsrc
574403f3eb4SBram Moolenaar	\ news_cache_dir postponed record signature smime_ca_location
57501164a65SBram Moolenaar	\ smime_certificates smime_keys spoolfile ssl_ca_certificates_file
576403f3eb4SBram Moolenaar	\ ssl_client_cert tmpdir trash
577*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
578403f3eb4SBram Moolenaar" List of DT_COMMAND (excluding pgp_*_command and smime_*_command)
579403f3eb4SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
580403f3eb4SBram Moolenaar	\ display_filter editor inews ispell mixmaster new_mail_command pager
581403f3eb4SBram Moolenaar	\ print_command query_command sendmail shell visual external_search_command
582403f3eb4SBram Moolenaar	\ imap_oauth_refresh_command pop_oauth_refresh_command
583403f3eb4SBram Moolenaar	\ mime_type_query_command smtp_oauth_refresh_command tunnel
584*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
5857dda86f2SBram Moolenaar
586*e46a4405SBram Moolenaar" CHECKED 2020-06-21
58701164a65SBram Moolenaar" List of DT_REGEX
58801164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
5897dda86f2SBram Moolenaar	\ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign
5907dda86f2SBram Moolenaar	\ quote_regex reply_regex smileys
591*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
59201164a65SBram Moolenaar" List of DT_SORT
59301164a65SBram Moolenaarsyntax keyword muttrcVarStr	contained skipwhite
59401164a65SBram Moolenaar	\ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser
595*e46a4405SBram Moolenaar	\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
59601164a65SBram Moolenaar
597*e46a4405SBram Moolenaar" CHECKED 2020-06-21
598*e46a4405SBram Moolenaar" List of commands in Commands in mutt_config.c
59901164a65SBram Moolenaar" Remember to remove hooks, they have already been dealt with
60001164a65SBram Moolenaarsyntax keyword muttrcCommand	skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
601*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
60201164a65SBram Moolenaarsyntax keyword muttrcCommand	skipwhite exec nextgroup=muttrcFunction
603*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
604*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite nospam nextgroup=muttrcNoSpamPattern
605*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
606*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite spam nextgroup=muttrcSpamPattern
607*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
608*e46a4405SBram Moolenaarsyntax keyword muttrcCommand	skipwhite unhook nextgroup=muttrcHooks
60901164a65SBram Moolenaarsyntax keyword muttrcCommand	skipwhite
6107dda86f2SBram Moolenaar	\ alternative_order attachments auto_view finish hdr_order ifdef ifndef
6117dda86f2SBram Moolenaar	\ ignore lua lua-source mailboxes mailto_allow mime_lookup my_hdr push score
6127dda86f2SBram Moolenaar	\ setenv sidebar_whitelist source subjectrx subscribe-to tag-formats
6137dda86f2SBram Moolenaar	\ tag-transforms unalternative_order unattachments unauto_view uncolor
6147dda86f2SBram Moolenaar	\ unhdr_order unignore unmailboxes unmailto_allow unmime_lookup unmono
6157dda86f2SBram Moolenaar	\ unmy_hdr unscore unsetenv unsidebar_whitelist unsubjectrx unsubscribe-from
616403f3eb4SBram Moolenaar	\ unvirtual-mailboxes virtual-mailboxes named-mailboxes
617403f3eb4SBram Moolenaar	\ echo unbind unmacro
61801164a65SBram Moolenaar
619*e46a4405SBram Moolenaarfunction! s:genFunctions(functions)
620*e46a4405SBram Moolenaar	for f in a:functions
621*e46a4405SBram Moolenaar		exec 'syntax match muttrcFunction contained "\<' . l:f . '\>"'
622*e46a4405SBram Moolenaar	endfor
623*e46a4405SBram Moolenaarendfunction
624*e46a4405SBram Moolenaar
625*e46a4405SBram Moolenaar" CHECKED 2020-06-21
626*e46a4405SBram Moolenaar" List of functions in functions.c
627*e46a4405SBram Moolenaar" Note: 'noop' is included but is elsewhere in the source
628*e46a4405SBram Moolenaarcall s:genFunctions(['noop',
629*e46a4405SBram Moolenaar	\ 'accept', 'append', 'attach-file', 'attach-key', 'attach-message', 'attach-news-message',
630*e46a4405SBram Moolenaar	\ 'autocrypt-acct-menu', 'autocrypt-menu', 'backspace', 'backward-char', 'backward-word',
631*e46a4405SBram Moolenaar	\ 'bol', 'bottom-page', 'bottom', 'bounce-message', 'break-thread', 'buffy-cycle',
632*e46a4405SBram Moolenaar	\ 'buffy-list', 'capitalize-word', 'catchup', 'chain-next', 'chain-prev', 'change-dir',
633*e46a4405SBram Moolenaar	\ 'change-folder-readonly', 'change-folder', 'change-newsgroup-readonly',
634*e46a4405SBram Moolenaar	\ 'change-newsgroup', 'change-vfolder', 'check-new', 'check-stats',
635*e46a4405SBram Moolenaar	\ 'check-traditional-pgp', 'clear-flag', 'collapse-all', 'collapse-parts',
636*e46a4405SBram Moolenaar	\ 'collapse-thread', 'complete-query', 'complete', 'compose-to-sender', 'copy-file',
637*e46a4405SBram Moolenaar	\ 'copy-message', 'create-account', 'create-alias', 'create-mailbox', 'current-bottom',
638*e46a4405SBram Moolenaar	\ 'current-middle', 'current-top', 'decode-copy', 'decode-save', 'decrypt-copy',
639*e46a4405SBram Moolenaar	\ 'decrypt-save', 'delete-account', 'delete-char', 'delete-entry', 'delete-mailbox',
640*e46a4405SBram Moolenaar	\ 'delete-message', 'delete-pattern', 'delete-subthread', 'delete-thread', 'delete',
641*e46a4405SBram Moolenaar	\ 'descend-directory', 'detach-file', 'display-address', 'display-filename',
642*e46a4405SBram Moolenaar	\ 'display-message', 'display-toggle-weed', 'downcase-word', 'edit-bcc', 'edit-cc',
643*e46a4405SBram Moolenaar	\ 'edit-description', 'edit-encoding', 'edit-fcc', 'edit-file', 'edit-followup-to',
644*e46a4405SBram Moolenaar	\ 'edit-from', 'edit-headers', 'edit-label', 'edit-language', 'edit-message', 'edit-mime',
645*e46a4405SBram Moolenaar	\ 'edit-newsgroups', 'edit-or-view-raw-message', 'edit-raw-message', 'edit-reply-to',
646*e46a4405SBram Moolenaar	\ 'edit-subject', 'edit-to', 'edit-type', 'edit-x-comment-to', 'edit', 'end-cond',
647*e46a4405SBram Moolenaar	\ 'enter-command', 'enter-mask', 'entire-thread', 'eol', 'exit', 'extract-keys',
648*e46a4405SBram Moolenaar	\ 'fetch-mail', 'filter-entry', 'first-entry', 'flag-message', 'followup-message',
649*e46a4405SBram Moolenaar	\ 'forget-passphrase', 'forward-char', 'forward-message', 'forward-to-group',
650*e46a4405SBram Moolenaar	\ 'forward-word', 'get-attachment', 'get-children', 'get-message', 'get-parent',
651*e46a4405SBram Moolenaar	\ 'goto-folder', 'goto-parent', 'group-alternatives', 'group-chat-reply',
652*e46a4405SBram Moolenaar	\ 'group-multilingual', 'group-reply', 'half-down', 'half-up', 'help', 'history-down',
653*e46a4405SBram Moolenaar	\ 'history-search', 'history-up', 'imap-fetch-mail', 'imap-logout-all', 'insert', 'ispell',
654*e46a4405SBram Moolenaar	\ 'jump', 'kill-eol', 'kill-eow', 'kill-line', 'kill-word', 'last-entry',
655*e46a4405SBram Moolenaar	\ 'limit-current-thread', 'limit', 'link-threads', 'list-reply', 'mail-key',
656*e46a4405SBram Moolenaar	\ 'mailbox-cycle', 'mailbox-list', 'mail', 'mark-as-new', 'mark-message', 'middle-page',
657*e46a4405SBram Moolenaar	\ 'mix', 'modify-labels-then-hide', 'modify-labels', 'modify-tags-then-hide',
658*e46a4405SBram Moolenaar	\ 'modify-tags', 'move-down', 'move-up', 'new-mime', 'next-entry', 'next-line',
659*e46a4405SBram Moolenaar	\ 'next-new-then-unread', 'next-new', 'next-page', 'next-subthread', 'next-thread',
660*e46a4405SBram Moolenaar	\ 'next-undeleted', 'next-unread-mailbox', 'next-unread', 'parent-message', 'pgp-menu',
661*e46a4405SBram Moolenaar	\ 'pipe-entry', 'pipe-message', 'post-message', 'postpone-message', 'previous-entry',
662*e46a4405SBram Moolenaar	\ 'previous-line', 'previous-new-then-unread', 'previous-new', 'previous-page',
663*e46a4405SBram Moolenaar	\ 'previous-subthread', 'previous-thread', 'previous-undeleted', 'previous-unread',
664*e46a4405SBram Moolenaar	\ 'print-entry', 'print-message', 'purge-message', 'purge-thread', 'quasi-delete',
665*e46a4405SBram Moolenaar	\ 'query-append', 'query', 'quit', 'quote-char', 'read-subthread', 'read-thread',
666*e46a4405SBram Moolenaar	\ 'recall-message', 'reconstruct-thread', 'redraw-screen', 'refresh', 'reload-active',
667*e46a4405SBram Moolenaar	\ 'rename-attachment', 'rename-file', 'rename-mailbox', 'reply', 'resend-message',
668*e46a4405SBram Moolenaar	\ 'root-message', 'save-entry', 'save-message', 'search-next', 'search-opposite',
669*e46a4405SBram Moolenaar	\ 'search-reverse', 'search-toggle', 'search', 'select-entry', 'select-new',
670*e46a4405SBram Moolenaar	\ 'send-message', 'set-flag', 'shell-escape', 'show-limit', 'show-log-messages',
671*e46a4405SBram Moolenaar	\ 'show-version', 'sidebar-next-new', 'sidebar-first', 'sidebar-last', 'sidebar-next',
672*e46a4405SBram Moolenaar	\ 'sidebar-open', 'sidebar-page-down', 'sidebar-page-up', 'sidebar-prev-new',
673*e46a4405SBram Moolenaar	\ 'sidebar-prev', 'sidebar-toggle-virtual', 'sidebar-toggle-visible', 'skip-quoted',
674*e46a4405SBram Moolenaar	\ 'smime-menu', 'sort-mailbox', 'sort-reverse', 'sort', 'subscribe-pattern',
675*e46a4405SBram Moolenaar	\ 'sync-mailbox', 'tag-entry', 'tag-message', 'tag-pattern', 'tag-prefix-cond',
676*e46a4405SBram Moolenaar	\ 'tag-prefix', 'tag-subthread', 'tag-thread', 'toggle-active', 'toggle-disposition',
677*e46a4405SBram Moolenaar	\ 'toggle-mailboxes', 'toggle-new', 'toggle-prefer-encrypt', 'toggle-quoted',
678*e46a4405SBram Moolenaar	\ 'toggle-read', 'toggle-recode', 'toggle-subscribed', 'toggle-unlink', 'toggle-write',
679*e46a4405SBram Moolenaar	\ 'top-page', 'top', 'transpose-chars', 'uncatchup', 'undelete-entry', 'undelete-message',
680*e46a4405SBram Moolenaar	\ 'undelete-pattern', 'undelete-subthread', 'undelete-thread', 'unsubscribe-pattern',
681*e46a4405SBram Moolenaar	\ 'untag-pattern', 'upcase-word', 'update-encoding', 'verify-key',
682*e46a4405SBram Moolenaar	\ 'vfolder-from-query-readonly', 'vfolder-from-query', 'vfolder-window-backward',
683*e46a4405SBram Moolenaar	\ 'vfolder-window-forward', 'view-attachments', 'view-attach', 'view-file', 'view-mailcap',
684*e46a4405SBram Moolenaar	\ 'view-name', 'view-raw-message', 'view-text', 'what-key', 'write-fcc'
685*e46a4405SBram Moolenaar	\ ])
68601164a65SBram Moolenaar
68701164a65SBram Moolenaar" Define the default highlighting.
68801164a65SBram Moolenaar" Only when an item doesn't have highlighting yet
68901164a65SBram Moolenaar
69001164a65SBram Moolenaarhighlight def link muttrcSetBoolAssignment		Boolean
69101164a65SBram Moolenaarhighlight def link muttrcSetQuadAssignment		Boolean
692*e46a4405SBram Moolenaar
693*e46a4405SBram Moolenaarhighlight def link muttrcComment			Comment
694*e46a4405SBram Moolenaar
695*e46a4405SBram Moolenaarhighlight def link muttrcAlternatesLine			Error
69601164a65SBram Moolenaarhighlight def link muttrcBadAction			Error
69701164a65SBram Moolenaarhighlight def link muttrcBindFunction			Error
69801164a65SBram Moolenaarhighlight def link muttrcBindMenuList			Error
69901164a65SBram Moolenaarhighlight def link muttrcColorBG			Error
70001164a65SBram Moolenaarhighlight def link muttrcColorBGH			Error
701*e46a4405SBram Moolenaarhighlight def link muttrcColorBGI			Error
702*e46a4405SBram Moolenaarhighlight def link muttrcColorContext			Error
703*e46a4405SBram Moolenaarhighlight def link muttrcColorFG			Error
704*e46a4405SBram Moolenaarhighlight def link muttrcColorFGH			Error
705*e46a4405SBram Moolenaarhighlight def link muttrcColorFGI			Error
706*e46a4405SBram Moolenaarhighlight def link muttrcColorLine			Error
70701164a65SBram Moolenaarhighlight def link muttrcFormatErrors			Error
708*e46a4405SBram Moolenaarhighlight def link muttrcGroupLine			Error
709*e46a4405SBram Moolenaarhighlight def link muttrcListsLine			Error
710*e46a4405SBram Moolenaarhighlight def link muttrcPattern			Error
711*e46a4405SBram Moolenaarhighlight def link muttrcSubscribeLine			Error
712*e46a4405SBram Moolenaarhighlight def link muttrcUnColorLine			Error
71301164a65SBram Moolenaarhighlight def link muttrcVarDeprecatedBool		Error
71401164a65SBram Moolenaarhighlight def link muttrcVarDeprecatedQuad		Error
71501164a65SBram Moolenaarhighlight def link muttrcVarDeprecatedStr		Error
71601164a65SBram Moolenaar
717*e46a4405SBram Moolenaarhighlight def link muttrcAliasEncEmail			Identifier
718*e46a4405SBram Moolenaarhighlight def link muttrcAliasKey			Identifier
719*e46a4405SBram Moolenaarhighlight def link muttrcColorCompose			Identifier
720*e46a4405SBram Moolenaarhighlight def link muttrcColorComposeField		Identifier
721*e46a4405SBram Moolenaarhighlight def link muttrcColorContextH			Identifier
722*e46a4405SBram Moolenaarhighlight def link muttrcColorContextI			Identifier
723*e46a4405SBram Moolenaarhighlight def link muttrcColorField			Identifier
724*e46a4405SBram Moolenaarhighlight def link muttrcMenu				Identifier
725*e46a4405SBram Moolenaarhighlight def link muttrcSimplePat			Identifier
726*e46a4405SBram Moolenaarhighlight def link muttrcUnAliasKey			Identifier
727*e46a4405SBram Moolenaarhighlight def link muttrcUnColorIndex			Identifier
728*e46a4405SBram Moolenaarhighlight def link muttrcVarBool			Identifier
729*e46a4405SBram Moolenaarhighlight def link muttrcVarNum				Identifier
730*e46a4405SBram Moolenaarhighlight def link muttrcVarQuad			Identifier
731*e46a4405SBram Moolenaarhighlight def link muttrcVarStr				Identifier
732*e46a4405SBram Moolenaar
733*e46a4405SBram Moolenaarhighlight def link muttrcCommand			Keyword
734*e46a4405SBram Moolenaar
735*e46a4405SBram Moolenaarhighlight def link muttrcAction				Macro
736*e46a4405SBram Moolenaarhighlight def link muttrcAliasGroupName			Macro
737*e46a4405SBram Moolenaarhighlight def link muttrcFunction			Macro
738*e46a4405SBram Moolenaarhighlight def link muttrcGroupDef			Macro
739*e46a4405SBram Moolenaarhighlight def link muttrcSimplePatString		Macro
740*e46a4405SBram Moolenaar
741*e46a4405SBram Moolenaarhighlight def link muttrcMonoAttrib			muttrcColor
742*e46a4405SBram Moolenaar
743*e46a4405SBram Moolenaarhighlight def link muttrcAlternateKeyword		muttrcCommand
744*e46a4405SBram Moolenaarhighlight def link muttrcAttachmentsLine		muttrcCommand
745*e46a4405SBram Moolenaarhighlight def link muttrcColorKeyword			muttrcCommand
746*e46a4405SBram Moolenaarhighlight def link muttrcGroupKeyword			muttrcCommand
747*e46a4405SBram Moolenaarhighlight def link muttrcListsKeyword			muttrcCommand
748*e46a4405SBram Moolenaarhighlight def link muttrcMono				muttrcCommand
749*e46a4405SBram Moolenaarhighlight def link muttrcPatHooks			muttrcCommand
750*e46a4405SBram Moolenaarhighlight def link muttrcRXHooks			muttrcCommand
751*e46a4405SBram Moolenaarhighlight def link muttrcSubscribeKeyword		muttrcCommand
752*e46a4405SBram Moolenaarhighlight def link muttrcUnColorKeyword			muttrcCommand
753*e46a4405SBram Moolenaar
754*e46a4405SBram Moolenaarhighlight def link muttrcAliasFormatEscapes		muttrcEscape
755*e46a4405SBram Moolenaarhighlight def link muttrcAttachFormatEscapes		muttrcEscape
756*e46a4405SBram Moolenaarhighlight def link muttrcComposeFormatEscapes		muttrcEscape
757*e46a4405SBram Moolenaarhighlight def link muttrcFolderFormatEscapes		muttrcEscape
758*e46a4405SBram Moolenaarhighlight def link muttrcGroupIndexFormatEscapes	muttrcEscape
759*e46a4405SBram Moolenaarhighlight def link muttrcIndexFormatEscapes		muttrcEscape
760*e46a4405SBram Moolenaarhighlight def link muttrcMixFormatEscapes		muttrcEscape
761*e46a4405SBram Moolenaarhighlight def link muttrcPGPCmdFormatEscapes		muttrcEscape
762*e46a4405SBram Moolenaarhighlight def link muttrcPGPFormatEscapes		muttrcEscape
763*e46a4405SBram Moolenaarhighlight def link muttrcPGPTimeEscapes			muttrcEscape
764*e46a4405SBram Moolenaarhighlight def link muttrcQueryFormatEscapes		muttrcEscape
765*e46a4405SBram Moolenaarhighlight def link muttrcShellString			muttrcEscape
766*e46a4405SBram Moolenaarhighlight def link muttrcSidebarFormatEscapes		muttrcEscape
767*e46a4405SBram Moolenaarhighlight def link muttrcSmimeFormatEscapes		muttrcEscape
768*e46a4405SBram Moolenaarhighlight def link muttrcStatusFormatEscapes		muttrcEscape
769*e46a4405SBram Moolenaarhighlight def link muttrcTimeEscapes			muttrcEscape
770*e46a4405SBram Moolenaar
771*e46a4405SBram Moolenaarhighlight def link muttrcAliasFormatConditionals	muttrcFormatConditionals2
772*e46a4405SBram Moolenaarhighlight def link muttrcAttachFormatConditionals	muttrcFormatConditionals2
773*e46a4405SBram Moolenaarhighlight def link muttrcComposeFormatConditionals	muttrcFormatConditionals2
774*e46a4405SBram Moolenaarhighlight def link muttrcFolderFormatConditionals	muttrcFormatConditionals2
775*e46a4405SBram Moolenaarhighlight def link muttrcIndexFormatConditionals	muttrcFormatConditionals2
776*e46a4405SBram Moolenaarhighlight def link muttrcMixFormatConditionals		muttrcFormatConditionals2
777*e46a4405SBram Moolenaarhighlight def link muttrcPGPCmdFormatConditionals	muttrcFormatConditionals2
778*e46a4405SBram Moolenaarhighlight def link muttrcPGPFormatConditionals		muttrcFormatConditionals2
779*e46a4405SBram Moolenaarhighlight def link muttrcSmimeFormatConditionals	muttrcFormatConditionals2
780*e46a4405SBram Moolenaarhighlight def link muttrcStatusFormatConditionals	muttrcFormatConditionals2
781*e46a4405SBram Moolenaar
782*e46a4405SBram Moolenaarhighlight def link muttrcAddrDef			muttrcGroupFlag
783*e46a4405SBram Moolenaarhighlight def link muttrcRXDef				muttrcGroupFlag
784*e46a4405SBram Moolenaar
785*e46a4405SBram Moolenaarhighlight def link muttrcAliasFormatStr			muttrcString
786*e46a4405SBram Moolenaarhighlight def link muttrcAttachFormatStr		muttrcString
787*e46a4405SBram Moolenaarhighlight def link muttrcComposeFormatStr		muttrcString
788*e46a4405SBram Moolenaarhighlight def link muttrcFolderFormatStr		muttrcString
789*e46a4405SBram Moolenaarhighlight def link muttrcGroupIndexFormatStr            muttrcString
790*e46a4405SBram Moolenaarhighlight def link muttrcIndexFormatStr			muttrcString
791*e46a4405SBram Moolenaarhighlight def link muttrcMixFormatStr			muttrcString
792*e46a4405SBram Moolenaarhighlight def link muttrcPGPCmdFormatStr		muttrcString
793*e46a4405SBram Moolenaarhighlight def link muttrcPGPFormatStr			muttrcString
794*e46a4405SBram Moolenaarhighlight def link muttrcQueryFormatStr			muttrcString
795*e46a4405SBram Moolenaarhighlight def link muttrcSidebarFormatStr		muttrcString
796*e46a4405SBram Moolenaarhighlight def link muttrcSmimeFormatStr			muttrcString
797*e46a4405SBram Moolenaarhighlight def link muttrcStatusFormatStr		muttrcString
798*e46a4405SBram Moolenaarhighlight def link muttrcStrftimeFormatStr		muttrcString
799*e46a4405SBram Moolenaar
800*e46a4405SBram Moolenaarhighlight def link muttrcSetNumAssignment		Number
801*e46a4405SBram Moolenaar
802*e46a4405SBram Moolenaarhighlight def link muttrcEmail				Special
803*e46a4405SBram Moolenaarhighlight def link muttrcSimplePatMetas			Special
804*e46a4405SBram Moolenaarhighlight def link muttrcSpecial			Special
805*e46a4405SBram Moolenaarhighlight def link muttrcVariableInner			Special
806*e46a4405SBram Moolenaar
807*e46a4405SBram Moolenaarhighlight def link muttrcAliasEncEmailNL		SpecialChar
808*e46a4405SBram Moolenaarhighlight def link muttrcAliasENNL			SpecialChar
809*e46a4405SBram Moolenaarhighlight def link muttrcAliasGroupDefNL		SpecialChar
810*e46a4405SBram Moolenaarhighlight def link muttrcAliasNameNL			SpecialChar
811*e46a4405SBram Moolenaarhighlight def link muttrcAliasNL			SpecialChar
812*e46a4405SBram Moolenaarhighlight def link muttrcBindFunctionNL			SpecialChar
813*e46a4405SBram Moolenaarhighlight def link muttrcBindKeyNL			SpecialChar
814*e46a4405SBram Moolenaarhighlight def link muttrcBindMenuListNL			SpecialChar
815*e46a4405SBram Moolenaarhighlight def link muttrcColorBGNL			SpecialChar
816*e46a4405SBram Moolenaarhighlight def link muttrcColorFGNL			SpecialChar
817*e46a4405SBram Moolenaarhighlight def link muttrcColorMatchCountNL		SpecialChar
818*e46a4405SBram Moolenaarhighlight def link muttrcColorNL			SpecialChar
819*e46a4405SBram Moolenaarhighlight def link muttrcColorRXNL			SpecialChar
820*e46a4405SBram Moolenaarhighlight def link muttrcEscape				SpecialChar
821*e46a4405SBram Moolenaarhighlight def link muttrcKeyName			SpecialChar
822*e46a4405SBram Moolenaarhighlight def link muttrcKeySpecial			SpecialChar
823*e46a4405SBram Moolenaarhighlight def link muttrcMacroBodyNL			SpecialChar
824*e46a4405SBram Moolenaarhighlight def link muttrcMacroDescrNL			SpecialChar
825*e46a4405SBram Moolenaarhighlight def link muttrcMacroKeyNL			SpecialChar
826*e46a4405SBram Moolenaarhighlight def link muttrcMacroMenuListNL		SpecialChar
827*e46a4405SBram Moolenaarhighlight def link muttrcPatternNL			SpecialChar
828*e46a4405SBram Moolenaarhighlight def link muttrcRXChars			SpecialChar
829*e46a4405SBram Moolenaarhighlight def link muttrcStringNL			SpecialChar
830*e46a4405SBram Moolenaarhighlight def link muttrcUnAliasNL			SpecialChar
831*e46a4405SBram Moolenaarhighlight def link muttrcUnColorAPNL			SpecialChar
832*e46a4405SBram Moolenaarhighlight def link muttrcUnColorIndexNL			SpecialChar
833*e46a4405SBram Moolenaarhighlight def link muttrcUnColorPatNL			SpecialChar
834*e46a4405SBram Moolenaar
835*e46a4405SBram Moolenaarhighlight def link muttrcAttachmentsMimeType		String
836*e46a4405SBram Moolenaarhighlight def link muttrcEscapedVariable		String
837*e46a4405SBram Moolenaarhighlight def link muttrcMacroDescr			String
838*e46a4405SBram Moolenaarhighlight def link muttrcRXPat				String
839*e46a4405SBram Moolenaarhighlight def link muttrcRXString			String
840*e46a4405SBram Moolenaarhighlight def link muttrcRXString2			String
841*e46a4405SBram Moolenaarhighlight def link muttrcSetStrAssignment		String
842*e46a4405SBram Moolenaarhighlight def link muttrcString				String
843*e46a4405SBram Moolenaar
844*e46a4405SBram Moolenaarhighlight def link muttrcAliasParens			Type
845*e46a4405SBram Moolenaarhighlight def link muttrcAttachmentsFlag		Type
846*e46a4405SBram Moolenaarhighlight def link muttrcColor				Type
847*e46a4405SBram Moolenaarhighlight def link muttrcFormatConditionals2		Type
848*e46a4405SBram Moolenaarhighlight def link muttrcGroupFlag			Type
849*e46a4405SBram Moolenaarhighlight def link muttrcHeader				Type
850*e46a4405SBram Moolenaarhighlight def link muttrcHooks				Type
851*e46a4405SBram Moolenaarhighlight def link muttrcKey				Type
852*e46a4405SBram Moolenaarhighlight def link muttrcPatHookNot			Type
853*e46a4405SBram Moolenaarhighlight def link muttrcRXHookNot			Type
854*e46a4405SBram Moolenaarhighlight def link muttrcStrftimeEscapes		Type
855*e46a4405SBram Moolenaar
85601164a65SBram Moolenaarlet b:current_syntax = "neomuttrc"
85701164a65SBram Moolenaar
85801164a65SBram Moolenaarlet &cpo = s:cpo_save
85901164a65SBram Moolenaarunlet s:cpo_save
8607dda86f2SBram Moolenaar
8617dda86f2SBram Moolenaar" vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim isk+=-
862