blob: 14852c1e1d622b8e8c70bd91ecd52ff990ceb0ea [file] [log] [blame]
Bram Moolenaar01164a62017-11-02 22:58:42 +01001" Vim syntax file
2" Language: NeoMutt setup files
Bram Moolenaar403f3eb2019-11-20 22:31:13 +01003" Maintainer: Richard Russon <rich@flatcap.org>
4" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
5" Last Change: 2019-11-18
Bram Moolenaar01164a62017-11-02 22:58:42 +01006" Original version based on syntax/muttrc.vim
7
Bram Moolenaar403f3eb2019-11-20 22:31:13 +01008" This file covers NeoMutt 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +01009
10" quit when a syntax file was already loaded
11if exists("b:current_syntax")
12 finish
13endif
14
15let s:cpo_save = &cpo
16set cpo&vim
17
18" Set the keyword characters
19setlocal isk=@,48-57,_,-
20
21" handling optional variables
22syntax match muttrcComment "^# .*$" contains=@Spell
23syntax match muttrcComment "^#[^ ].*$"
24syntax match muttrcComment "^#$"
25syntax match muttrcComment "[^\\]#.*$"lc=1
26
27" Escape sequences (back-tick and pipe goes here too)
28syntax match muttrcEscape +\\[#tnr"'Cc ]+
29syntax match muttrcEscape +[`|]+
30syntax match muttrcEscape +\\$+
31
32" The variables takes the following arguments
33"syn match muttrcString contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
34syntax region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
35syntax region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
36syntax match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
37
38syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand,muttrcVarDeprecatedStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad
39
40syntax match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1
41syntax match muttrcRXChars contained /[][|()][.*?+]*/
42syntax match muttrcRXChars contained /['"]^/ms=s+1
43syntax match muttrcRXChars contained /$['"]/me=e-1
44syntax match muttrcRXChars contained /\\/
45" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
46syntax region muttrcRXString contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
47syntax region muttrcRXString contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
48syntax region muttrcRXString contained skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
49" For some reason, skip refuses to match backslashes here...
50syntax region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
51syntax region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
52syntax region muttrcRXString2 contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
53syntax region muttrcRXString2 contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
54
55" these must be kept synchronized with muttrcRXString, but are intended for
56" muttrcRXHooks
57syntax region muttrcRXHookString contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
58syntax region muttrcRXHookString contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
59syntax region muttrcRXHookString contained keepend skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
60syntax region muttrcRXHookString contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
61syntax region muttrcRXHookString contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
62syntax match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
63
64" these are exclusively for args lists (e.g. -rx pat pat pat ...)
65syntax region muttrcRXPat contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
66syntax region muttrcRXPat contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
67syntax match muttrcRXPat contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
68syntax match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
69
70syntax match muttrcSpecial +\(['"]\)!\1+
71
72syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
73syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
74syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
75syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
76syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
77syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
78syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
79syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
80syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
81syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
82syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
83syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
84syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
85syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
86syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
87
88" Now catch some email addresses and headers (purified version from mail.vim)
89syntax match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
90syntax match muttrcHeader "\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
91
92syntax match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
93syntax match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName
94syntax region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName
95syntax region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName
96syntax match muttrcKeyName contained "\\[trne]"
97syntax match muttrcKeyName contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|Next\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
98syntax match muttrcKeyName contained "\c<F\d\+>"
99
100syntax match muttrcFormatErrors contained /%./
101
102syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
103syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/
104syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
105
106syntax region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
107syntax region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
108syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
109syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
110syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
111syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
112syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
113syntax region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
114syntax region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
115syntax region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
116syntax region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
117syntax region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
118syntax region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
119syntax region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
120syntax region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
121syntax region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
122syntax region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
123syntax region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
124syntax region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
125syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
126syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
127syntax region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
128syntax region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
129syntax region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
130syntax region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
131syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
132syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
133syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
134syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
135
136" Format escapes and conditionals
137syntax match muttrcFormatConditionals2 contained /[^?]*?/
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200138function! s:escapesConditionals(baseName, sequence, alignment, secondary)
Bram Moolenaar01164a62017-11-02 22:58:42 +0100139 exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/'
140 if a:alignment
141 exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./'
142 endif
143 if a:secondary
144 exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/ nextgroup=muttrcFormatConditionals2'
145 else
146 exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/'
147 endif
148endfunction
149
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100150" CHECKED 2019-11-18
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200151" Ref: index_format_str() in hdrline.c
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100152call s:escapesConditionals('IndexFormat', '[AaBbCDdEeFfgHIiJKLlMmNnOPqRrSsTtuvWXxYyZ(<[{]\|G[a-zA-Z]\+\|Fp\=\|z[cst]\|cr\=', 1, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200153" Ref: alias_format_str() in addrbook.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100154syntax match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200155" Ref: group_index_format_str() in browser.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100156call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200157" Ref: sidebar_format_str() in sidebar.c
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100158call s:escapesConditionals('SidebarFormat', '[!BDdFLNnSt]', 1, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200159" Ref: query_format_str() in query.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100160call s:escapesConditionals('QueryFormat', '[acent]', 0, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200161" Ref: attach_format_str() in recvattach.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100162call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200163" Ref: compose_format_str() in compose.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100164syntax match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
165syntax match muttrcComposeFormatEscapes contained /%[>|*]./
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200166" Ref: folder_format_str() in browser.c
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100167call s:escapesConditionals('FolderFormat', '[CDdFfgilmNnstu]', 1, 0)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200168" Ref: mix_format_str() in remailer.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100169call s:escapesConditionals('MixFormat', '[acns]', 0, 0)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200170" Ref: status_format_str() in status.c
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100171call s:escapesConditionals('StatusFormat', '[bDdFfhLlMmnoPpRrSstuVv]', 1, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200172" Ref: fmt_smime_command() in ncrypt/smime.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100173call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200174" Ref: crypt_format_str() in ncrypt/crypt_gpgme.c
175" Ref: pgp_entry_fmt() in ncrypt/pgpkey.c
176" Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100177call s:escapesConditionals('PGPFormat', '[AaCcFfKkLlnptu[]', 0, 0)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200178" Ref: fmt_pgp_command() ncrypt/pgpinvoke.c
179call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1)
180
181" This matches the documentation, but directly contradicts the code
182" (according to the code, this should be identical to the muttrcPGPCmdFormatEscapes
183syntax match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acfklntu[%]/
Bram Moolenaar01164a62017-11-02 22:58:42 +0100184
185syntax region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
186syntax region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
187syntax region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
188syntax region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
189syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
190
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200191syntax match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr
192syntax match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr
193syntax match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr
194syntax match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr
195syntax match muttrcVarEqualsGrpIdxFmt contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr
196syntax match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
197syntax match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
198syntax match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
199syntax match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
Bram Moolenaar01164a62017-11-02 22:58:42 +0100200syntax match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200201syntax match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
202syntax match muttrcVarEqualsSdbFmt contained skipwhite "=" nextgroup=muttrcSidebarFormatStr
203syntax match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
204syntax match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
205syntax match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
Bram Moolenaar01164a62017-11-02 22:58:42 +0100206
207syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
208
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100209" CHECKED 2019-11-02
210" List of the different screens in mutt (see Menus in keymap.c)
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200211syntax keyword muttrcMenu contained alias attach browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime
Bram Moolenaar01164a62017-11-02 22:58:42 +0100212syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu
213syntax match muttrcMenuCommas /,/ contained
214
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100215" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100216" List of hooks in Commands in init.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100217syntax keyword muttrcHooks contained skipwhite
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200218 \ account-hook append-hook close-hook crypt-hook fcc-hook fcc-save-hook
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100219 \ folder-hook iconv-hook index-format-hook mbox-hook message-hook open-hook pgp-hook
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200220 \ reply-hook save-hook send-hook send2-hook
Bram Moolenaar01164a62017-11-02 22:58:42 +0100221syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand
222
223syntax region muttrcSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
224syntax region muttrcSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
225
226syntax region muttrcNoSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
227syntax region muttrcNoSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
228
229syntax match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
230syntax match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
231syntax match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
232
233syntax match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
234
235syntax keyword muttrcAsterisk contained *
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100236
Bram Moolenaar01164a62017-11-02 22:58:42 +0100237syntax keyword muttrcListsKeyword lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
238syntax keyword muttrcListsKeyword unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
239
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100240syntax keyword muttrcSubscribeKeyword subscribe skipwhite nextgroup=muttrcGroupDef,muttrcComment
241syntax keyword muttrcSubscribeKeyword unsubscribe skipwhite nextgroup=muttrcAsterisk,muttrcComment
Bram Moolenaar01164a62017-11-02 22:58:42 +0100242
243syntax keyword muttrcAlternateKeyword contained alternates unalternates
244syntax region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
245
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100246" muttrcVariable includes a prefix because partial strings are considered valid.
Bram Moolenaar01164a62017-11-02 22:58:42 +0100247syntax match muttrcVariable contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
248syntax match muttrcVariableInner contained "\$[a-zA-Z_-]\+"
249syntax match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+"
250
251syntax match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail
252syntax match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
253
254" First, functions that take regular expressions:
255syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
256syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
257
258" Now, functions that take patterns
259syntax match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern
260syntax match muttrcPatHooks /\<\%(charset\|iconv\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
261syntax match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
262
263syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction
264syntax match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
265syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
266syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
267syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
268syntax match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
269
270syntax region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
271syntax region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
272syntax region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
273syntax match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
274syntax region muttrcMacroBody contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
275syntax 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
276syntax 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
277syntax match muttrcMacroBodyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
278syntax match muttrcMacroKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
279syntax match muttrcMacroKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
280syntax match muttrcMacroMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
281syntax match muttrcMacroMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
282
283syntax match muttrcAddrContent contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
284syntax region muttrcAddrContent contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
285syntax region muttrcAddrContent contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
286syntax match muttrcAddrDef contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
287
288syntax match muttrcGroupFlag contained "-group"
289syntax region muttrcGroupDef contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
290
291syntax keyword muttrcGroupKeyword contained group ungroup
292syntax region muttrcGroupLine keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
293
294syntax match muttrcAliasGroupName contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
295syntax match muttrcAliasGroupDefNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
296syntax match muttrcAliasGroupDef contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
297syntax match muttrcAliasComma contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
298syntax match muttrcAliasEmail contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
299syntax match muttrcAliasEncEmail contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
300syntax match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
301syntax match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
302syntax region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite
303syntax match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
304syntax match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
305syntax match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
306syntax match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
307
308syntax match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
309syntax match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
310
311syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
312syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
313syntax 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
314syntax match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
315syntax match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
316syntax match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
317syntax region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
318"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
319syntax region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
320syntax region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
321syntax region muttrcSimplePatString contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1
322syntax region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
323syntax region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
324syntax region muttrcSimplePatRXContainer contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
325syntax match muttrcSimplePatMetas contained /[(|)]/
326
327syntax match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
328syntax match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
329syntax region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
330syntax region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
331syntax region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
332syntax match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
333syntax match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
334" Keep muttrcPattern and muttrcOptPattern synchronized
335syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
336syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
337syntax region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
338syntax match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
339syntax match muttrcPattern contained skipwhite /[.]/
340syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
341syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
342
343" Colour definitions takes object, foreground and background arguments (regexps excluded).
344syntax match muttrcColorMatchCount contained "[0-9]\+"
345syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
346syntax region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
347syntax region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
348syntax keyword muttrcColor contained black blue cyan default green magenta red white yellow
349syntax keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
350syntax match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>"
351" Now for the structure of the color line
352syntax match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
353syntax match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
354syntax match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
355syntax match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
356syntax match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
357syntax match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL
358syntax match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
359syntax match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
360" And now color's brother:
361syntax region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
362syntax region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
363syntax match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
364syntax match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
365syntax match muttrcUnColorAll contained skipwhite /[*]/
366syntax match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
367syntax match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
368syntax match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
369syntax match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
370syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
371
372syntax keyword muttrcMonoAttrib contained bold none normal reverse standout underline
373syntax keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField,muttrcColorCompose
374syntax match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
375
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100376" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100377" List of fields in Fields in color.c
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200378syntax keyword muttrcColorField skipwhite contained
379 \ attachment attach_headers body bold error hdrdefault header index
380 \ index_author index_collapsed index_date index_flags index_label
381 \ index_number index_size index_subject index_tag index_tags indicator
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100382 \ markers message normal options progress prompt quoted search sidebar_divider
Bram Moolenaar01164a62017-11-02 22:58:42 +0100383 \ sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100384 \ sidebar_ordinary sidebar_spoolfile sidebar_unread signature status tilde tree
385 \ underline warning nextgroup=muttrcColor
Bram Moolenaar01164a62017-11-02 22:58:42 +0100386syntax match muttrcColorField contained "\<quoted\d\=\>"
387
388syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200389
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100390" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100391" List of fields in ComposeFields in color.c
Bram Moolenaar01164a62017-11-02 22:58:42 +0100392syntax keyword muttrcColorComposeField skipwhite contained
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200393 \ header security_both security_encrypt security_none security_sign
Bram Moolenaar01164a62017-11-02 22:58:42 +0100394 \ nextgroup=muttrcColorFG,muttrcColorFGNL
395syntax region muttrcColorLine keepend start=/^\s*color\s\+/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
396
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200397function! s:boolQuadGen(type, vars, deprecated)
Bram Moolenaar01164a62017-11-02 22:58:42 +0100398 let l:novars = copy(a:vars)
399 call map(l:novars, '"no" . v:val')
400 let l:invvars = copy(a:vars)
401 call map(l:invvars, '"inv" . v:val')
402
403 let l:orig_type = copy(a:type)
404 if a:deprecated
405 let l:type = 'Deprecated' . a:type
406 else
407 let l:type = a:type
408 endif
409
410 exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
411 exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
412 exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
413endfunction
414
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100415" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100416" List of DT_BOOL in MuttVars in init.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100417call s:boolQuadGen('Bool', [
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200418 \ 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'askbcc',
419 \ 'askcc', 'ask_follow_up', 'ask_x_comment_to', 'attach_split', 'autoedit',
420 \ 'auto_tag', 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly',
421 \ 'change_folder_next', 'check_mbox_size', 'check_new', 'collapse_all',
422 \ 'collapse_flagged', 'collapse_unread', 'confirmappend', 'confirmcreate',
423 \ 'crypt_autoencrypt', 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime',
424 \ 'crypt_confirmhook', 'crypt_opportunistic_encrypt', 'crypt_replyencrypt',
425 \ 'crypt_replysign', 'crypt_replysignencrypted', 'crypt_timestamp',
426 \ 'crypt_use_gpgme', 'crypt_use_pka', 'delete_untag', 'digest_collapse',
427 \ 'duplicate_threads', 'edit_headers', 'encode_from', 'fast_reply',
428 \ 'fcc_clear', 'flag_safe', 'followup_to', 'force_name', 'forward_decode',
429 \ 'forward_decrypt', 'forward_quote', 'forward_references', 'hdrs',
430 \ 'header', 'header_cache_compress', 'header_color_partial', 'help',
431 \ 'hidden_host', 'hide_limited', 'hide_missing', 'hide_thread_subject',
432 \ 'hide_top_limited', 'hide_top_missing', 'history_remove_dups',
433 \ 'honor_disposition', 'idn_decode', 'idn_encode', 'ignore_list_reply_to',
434 \ 'imap_check_subscribed', 'imap_idle', 'imap_list_subscribed',
435 \ 'imap_passive', 'imap_peek', 'imap_servernoise', 'implicit_autoview',
436 \ 'include_onlyfirst', 'keep_flagged', 'mailcap_sanitize',
437 \ 'maildir_check_cur', 'maildir_header_cache_verify', 'maildir_trash',
438 \ 'mail_check_recent', 'mail_check_stats', 'markers', 'mark_old',
439 \ 'menu_move_off', 'menu_scroll', 'message_cache_clean', 'meta_key',
440 \ 'metoo', 'mh_purge', 'mime_forward_decode', 'mime_subject',
441 \ 'mime_type_query_first', 'narrow_tree', 'nm_record', 'nntp_listgroup',
442 \ 'nntp_load_description', 'pager_stop', 'pgp_autoinline',
443 \ 'pgp_auto_decode', 'pgp_check_exit', 'pgp_ignore_subkeys', 'pgp_long_ids',
444 \ 'pgp_replyinline', 'pgp_retainable_sigs', 'pgp_self_encrypt',
445 \ 'pgp_show_unusable', 'pgp_strict_enc', 'pgp_use_gpg_agent', 'pipe_decode',
446 \ 'pipe_split', 'pop_auth_try_all', 'pop_last', 'postpone_encrypt',
447 \ 'print_decode', 'print_split', 'prompt_after', 'read_only',
448 \ 'reflow_space_quotes', 'reflow_text', 'reply_self', 'reply_with_xorig',
449 \ 'resolve', 'resume_draft_files', 'resume_edited_draft_files',
450 \ 'reverse_alias', 'reverse_name', 'reverse_realname', 'rfc2047_parameters',
451 \ 'save_address', 'save_empty', 'save_name', 'save_unsubscribed', 'score',
452 \ 'show_new_news', 'show_only_unread', 'sidebar_folder_indent',
453 \ 'sidebar_new_mail_only', 'sidebar_next_new_wrap', 'sidebar_on_right',
454 \ 'sidebar_short_path', 'sidebar_visible', 'sig_dashes', 'sig_on_top',
455 \ 'smart_wrap', 'smime_ask_cert_label', 'smime_decrypt_use_default_key',
456 \ 'smime_is_default', 'smime_self_encrypt', 'sort_re', 'ssl_force_tls',
457 \ 'ssl_usesystemcerts', 'ssl_use_sslv2', 'ssl_use_sslv3', 'ssl_use_tlsv1',
458 \ 'ssl_use_tlsv1_1', 'ssl_use_tlsv1_2', 'ssl_verify_dates',
459 \ 'ssl_verify_host', 'ssl_verify_partial_chains', 'status_on_top',
460 \ 'strict_threads', 'suspend', 'text_flowed', 'thorough_search',
461 \ 'thread_received', 'tilde', 'ts_enabled', 'uncollapse_jump',
462 \ 'uncollapse_new', 'user_agent', 'use_8bitmime', 'use_domain',
463 \ 'use_envelope_from', 'use_from', 'use_ipv6', 'virtual_spoolfile',
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100464 \ 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to',
465 \ 'attach_save_without_prompting', 'autocrypt', 'autocrypt_reply',
466 \ 'auto_subscribe', 'browser_abbreviate_mailboxes',
467 \ 'crypt_protected_headers_read', 'crypt_protected_headers_save',
468 \ 'crypt_protected_headers_write', 'fcc_before_send', 'imap_condstore',
469 \ 'imap_qresync', 'imap_rfc5161', 'include_encrypted',
470 \ 'pgp_check_gpg_decrypt_status_fd', 'sidebar_non_empty_mailbox_only',
471 \ 'size_show_bytes', 'size_show_fractions', 'size_show_mb',
472 \ 'size_units_on_left', 'ssl_use_tlsv1_3'
Bram Moolenaar01164a62017-11-02 22:58:42 +0100473 \ ], 0)
474
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100475" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100476" Deprecated Bools
Bram Moolenaar01164a62017-11-02 22:58:42 +0100477" List of DT_SYNONYM synonyms of Bools in MuttVars in init.h
478call s:boolQuadGen('Bool', [
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200479 \ 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt',
480 \ 'forw_quote', 'ignore_linear_white_space', 'pgp_autoencrypt',
481 \ 'pgp_autosign', 'pgp_auto_traditional', 'pgp_create_traditional',
482 \ 'pgp_replyencrypt', 'pgp_replysign', 'pgp_replysignencrypted',
483 \ 'xterm_set_titles'
Bram Moolenaar01164a62017-11-02 22:58:42 +0100484 \ ], 1)
485
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100486" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100487" List of DT_QUAD in MuttVars in init.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100488call s:boolQuadGen('Quad', [
489 \ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce',
490 \ 'catchup_newsgroup', 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach',
491 \ 'followup_to_poster', 'forward_edit', 'honor_followup_to', 'include',
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200492 \ 'mime_forward', 'mime_forward_rest', 'move', 'pgp_mime_auto',
493 \ 'pop_delete', 'pop_reconnect', 'postpone', 'post_moderated', 'print',
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100494 \ 'quit', 'recall', 'reply_to', 'ssl_starttls', 'forward_attachments'
Bram Moolenaar01164a62017-11-02 22:58:42 +0100495 \ ], 0)
496
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100497" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100498" Deprecated Quads
Bram Moolenaar01164a62017-11-02 22:58:42 +0100499" List of DT_SYNONYM synonyms of Quads in MuttVars in init.h
500call s:boolQuadGen('Quad', [
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200501 \ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self'
Bram Moolenaar01164a62017-11-02 22:58:42 +0100502 \ ], 1)
503
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100504" CHECKED 2019-11-02
505" List of DT_NUMBER or DT_LONG in MuttVars in init.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100506syntax keyword muttrcVarNum skipwhite contained
507 \ connect_timeout debug_level history imap_keepalive imap_pipeline_depth
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200508 \ imap_poll_timeout mail_check mail_check_stats_interval menu_context
509 \ net_inc nm_db_limit nm_open_timeout nm_query_window_current_position
Bram Moolenaar01164a62017-11-02 22:58:42 +0100510 \ nm_query_window_duration nntp_context nntp_poll pager_context
511 \ pager_index_lines pgp_timeout pop_checkinterval read_inc reflow_wrap
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200512 \ save_history score_threshold_delete score_threshold_flag
513 \ score_threshold_read search_context sendmail_wait sidebar_component_depth
514 \ sidebar_width skip_quoted_offset sleep_time smime_timeout
515 \ ssl_min_dh_prime_bits timeout time_inc wrap wrap_headers write_inc
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100516 \ header_cache_pagesize imap_fetch_chunk_size toggle_quoted_show_levels
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200517 \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
518syntax keyword muttrcVarDeprecatedNum contained skipwhite
519 \ wrapmargin
Bram Moolenaar01164a62017-11-02 22:58:42 +0100520 \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
521
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100522" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100523" List of DT_STRING in MuttVars in init.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100524" Special cases first, and all the rest at the end
Bram Moolenaar01164a62017-11-02 22:58:42 +0100525" Formats themselves must be updated in their respective groups
526" See s:escapesConditionals
527syntax match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
528syntax keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
529syntax keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
530syntax keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
531syntax keyword muttrcVarStr contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt
532syntax keyword muttrcVarStr contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
533" Deprecated format
534syntax keyword muttrcVarDeprecatedStr contained skipwhite hdr_format msg_format nextgroup=muttrcVarEqualsIdxFmt
535syntax keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200536syntax keyword muttrcVarStr contained skipwhite
537 \ pgp_clearsign_command pgp_decode_command pgp_decrypt_command
538 \ pgp_encrypt_only_command pgp_encrypt_sign_command pgp_export_command
539 \ pgp_import_command pgp_list_pubring_command pgp_list_secring_command
540 \ pgp_sign_command pgp_verify_command pgp_verify_key_command
Bram Moolenaar01164a62017-11-02 22:58:42 +0100541 \ nextgroup=muttrcVarEqualsPGPCmdFmt
542syntax keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
543syntax keyword muttrcVarStr contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
544syntax keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
545syntax keyword muttrcVarStr contained skipwhite
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200546 \ smime_decrypt_command smime_encrypt_command smime_get_cert_command
547 \ smime_get_cert_email_command smime_get_signer_cert_command
548 \ smime_import_cert_command smime_pk7out_command smime_sign_command
549 \ smime_verify_command smime_verify_opaque_command
Bram Moolenaar01164a62017-11-02 22:58:42 +0100550 \ nextgroup=muttrcVarEqualsSmimeFmt
551syntax keyword muttrcVarStr contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
552" Deprecated format
553syntax keyword muttrcVarDeprecatedStr contained skipwhite xterm_icon xterm_title nextgroup=muttrcVarEqualsStatusFmt
554syntax keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200555syntax keyword muttrcVarStr contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt
Bram Moolenaar01164a62017-11-02 22:58:42 +0100556syntax keyword muttrcVarStr contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt
557syntax keyword muttrcVarStr contained skipwhite
558 \ assumed_charset attach_charset attach_sep attribution_locale charset
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200559 \ config_charset content_type default_hook dsn_notify dsn_return
560 \ empty_subject escape forward_attribution_intro forward_attribution_trailer
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100561 \ forward_format hidden_tags hostname
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200562 \ imap_authenticators imap_delim_chars imap_headers imap_login imap_pass
563 \ imap_user indent_string mailcap_path mark_macro_prefix mh_seq_flagged
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100564 \ mh_seq_replied mh_seq_unseen newsgroups_charset
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200565 \ news_server nm_default_uri nm_exclude_tags nm_query_type
566 \ nm_query_window_current_search nm_query_window_timebase nm_record_tags
567 \ nm_unread_tag nntp_authenticators nntp_pass nntp_user pgp_default_key
568 \ pgp_sign_as pipe_sep pop_authenticators pop_host pop_pass pop_user
569 \ postpone_encrypt_as post_indent_string preconnect realname send_charset
Bram Moolenaar01164a62017-11-02 22:58:42 +0100570 \ show_multipart_alternative sidebar_delim_chars sidebar_divider_char
571 \ sidebar_indent_string simple_search smime_default_key smime_encrypt_with
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200572 \ smime_sign_as smime_sign_digest_alg smtp_authenticators smtp_pass smtp_url
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100573 \ spam_separator ssl_ciphers autocrypt_acct_format
574 \ crypt_protected_headers_subject header_cache_backend nm_flagged_tag
575 \ nm_replied_tag preferred_languages
Bram Moolenaar01164a62017-11-02 22:58:42 +0100576 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
577" Deprecated strings
578syntax keyword muttrcVarDeprecatedStr contained skipwhite
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200579 \ forw_format indent_str pgp_self_encrypt_as post_indent_str
580 \ smime_self_encrypt_as
Bram Moolenaar01164a62017-11-02 22:58:42 +0100581 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200582
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100583" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100584" List of DT_ADDRESS
585syntax keyword muttrcVarStr contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100586" List of DT_ENUM
Bram Moolenaar01164a62017-11-02 22:58:42 +0100587syntax keyword muttrcVarStr contained skipwhite mbox_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
588" List of DT_MBTABLE
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100589syntax keyword muttrcVarStr contained skipwhite crypt_chars flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200590
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100591" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100592" List of DT_PATH
593syntax keyword muttrcVarStr contained skipwhite
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100594 \ alias_file attach_save_dir autocrypt_dir certificate_file debug_file
595 \ entropy_file folder header_cache history_file mbox message_cachedir newsrc
596 \ news_cache_dir postponed record signature smime_ca_location
Bram Moolenaar01164a62017-11-02 22:58:42 +0100597 \ smime_certificates smime_keys spoolfile ssl_ca_certificates_file
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100598 \ ssl_client_cert tmpdir trash
599 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
600" List of DT_COMMAND (excluding pgp_*_command and smime_*_command)
601syntax keyword muttrcVarStr contained skipwhite
602 \ display_filter editor inews ispell mixmaster new_mail_command pager
603 \ print_command query_command sendmail shell visual external_search_command
604 \ imap_oauth_refresh_command pop_oauth_refresh_command
605 \ mime_type_query_command smtp_oauth_refresh_command tunnel
Bram Moolenaar01164a62017-11-02 22:58:42 +0100606 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200607
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100608" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100609" List of DT_REGEX
610syntax keyword muttrcVarStr contained skipwhite
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200611 \ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign
612 \ quote_regex reply_regex smileys
Bram Moolenaar01164a62017-11-02 22:58:42 +0100613 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100614" List of deprecated DT_STRING|DT_COMMAND
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200615syntax keyword muttrcVarDeprecatedStr contained skipwhite print_cmd nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
616" List of deprecated DT_REGEX
617syntax keyword muttrcVarDeprecatedStr contained skipwhite abort_noattach_regexp attach_keyword quote_regexp reply_regexp nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
Bram Moolenaar01164a62017-11-02 22:58:42 +0100618" List of DT_SORT
619syntax keyword muttrcVarStr contained skipwhite
620 \ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser
621 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
622
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100623" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100624" List of commands in Commands in init.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100625" Remember to remove hooks, they have already been dealt with
626syntax keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString
627syntax keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks
628syntax keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern
629syntax keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern
630syntax keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
631syntax keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
632syntax keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
633syntax keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
634syntax keyword muttrcCommand skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
635syntax keyword muttrcCommand skipwhite exec nextgroup=muttrcFunction
636syntax keyword muttrcCommand skipwhite
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200637 \ alternative_order attachments auto_view finish hdr_order ifdef ifndef
638 \ ignore lua lua-source mailboxes mailto_allow mime_lookup my_hdr push score
639 \ setenv sidebar_whitelist source subjectrx subscribe-to tag-formats
640 \ tag-transforms unalternative_order unattachments unauto_view uncolor
641 \ unhdr_order unignore unmailboxes unmailto_allow unmime_lookup unmono
642 \ unmy_hdr unscore unsetenv unsidebar_whitelist unsubjectrx unsubscribe-from
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100643 \ unvirtual-mailboxes virtual-mailboxes named-mailboxes
644 \ echo unbind unmacro
Bram Moolenaar01164a62017-11-02 22:58:42 +0100645
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100646" CHECKED 2019-11-02
Bram Moolenaar01164a62017-11-02 22:58:42 +0100647" List of functions in functions.h
Bram Moolenaar01164a62017-11-02 22:58:42 +0100648syntax match muttrcFunction contained "\<accept\>"
649syntax match muttrcFunction contained "\<append\>"
650syntax match muttrcFunction contained "\<attach-file\>"
651syntax match muttrcFunction contained "\<attach-key\>"
652syntax match muttrcFunction contained "\<attach-message\>"
653syntax match muttrcFunction contained "\<attach-news-message\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100654syntax match muttrcFunction contained "\<autocrypt-acct-menu\>"
655syntax match muttrcFunction contained "\<autocrypt-menu\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100656syntax match muttrcFunction contained "\<backspace\>"
657syntax match muttrcFunction contained "\<backward-char\>"
658syntax match muttrcFunction contained "\<backward-word\>"
659syntax match muttrcFunction contained "\<bol\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100660syntax match muttrcFunction contained "\<bottom-page\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200661syntax match muttrcFunction contained "\<bottom\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100662syntax match muttrcFunction contained "\<bounce-message\>"
663syntax match muttrcFunction contained "\<break-thread\>"
664syntax match muttrcFunction contained "\<buffy-cycle\>"
665syntax match muttrcFunction contained "\<buffy-list\>"
666syntax match muttrcFunction contained "\<capitalize-word\>"
667syntax match muttrcFunction contained "\<catchup\>"
668syntax match muttrcFunction contained "\<chain-next\>"
669syntax match muttrcFunction contained "\<chain-prev\>"
670syntax match muttrcFunction contained "\<change-dir\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100671syntax match muttrcFunction contained "\<change-folder-readonly\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200672syntax match muttrcFunction contained "\<change-folder\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100673syntax match muttrcFunction contained "\<change-newsgroup-readonly\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200674syntax match muttrcFunction contained "\<change-newsgroup\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100675syntax match muttrcFunction contained "\<change-vfolder\>"
676syntax match muttrcFunction contained "\<check-new\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100677syntax match muttrcFunction contained "\<check-stats\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100678syntax match muttrcFunction contained "\<check-traditional-pgp\>"
679syntax match muttrcFunction contained "\<clear-flag\>"
680syntax match muttrcFunction contained "\<collapse-all\>"
681syntax match muttrcFunction contained "\<collapse-parts\>"
682syntax match muttrcFunction contained "\<collapse-thread\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100683syntax match muttrcFunction contained "\<complete-query\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200684syntax match muttrcFunction contained "\<complete\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100685syntax match muttrcFunction contained "\<compose-to-sender\>"
686syntax match muttrcFunction contained "\<copy-file\>"
687syntax match muttrcFunction contained "\<copy-message\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100688syntax match muttrcFunction contained "\<create-account\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100689syntax match muttrcFunction contained "\<create-alias\>"
690syntax match muttrcFunction contained "\<create-mailbox\>"
691syntax match muttrcFunction contained "\<current-bottom\>"
692syntax match muttrcFunction contained "\<current-middle\>"
693syntax match muttrcFunction contained "\<current-top\>"
694syntax match muttrcFunction contained "\<decode-copy\>"
695syntax match muttrcFunction contained "\<decode-save\>"
696syntax match muttrcFunction contained "\<decrypt-copy\>"
697syntax match muttrcFunction contained "\<decrypt-save\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100698syntax match muttrcFunction contained "\<delete-account\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100699syntax match muttrcFunction contained "\<delete-char\>"
700syntax match muttrcFunction contained "\<delete-entry\>"
701syntax match muttrcFunction contained "\<delete-mailbox\>"
702syntax match muttrcFunction contained "\<delete-message\>"
703syntax match muttrcFunction contained "\<delete-pattern\>"
704syntax match muttrcFunction contained "\<delete-subthread\>"
705syntax match muttrcFunction contained "\<delete-thread\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200706syntax match muttrcFunction contained "\<delete\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100707syntax match muttrcFunction contained "\<descend-directory\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100708syntax match muttrcFunction contained "\<detach-file\>"
709syntax match muttrcFunction contained "\<display-address\>"
710syntax match muttrcFunction contained "\<display-filename\>"
711syntax match muttrcFunction contained "\<display-message\>"
712syntax match muttrcFunction contained "\<display-toggle-weed\>"
713syntax match muttrcFunction contained "\<downcase-word\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100714syntax match muttrcFunction contained "\<edit-bcc\>"
715syntax match muttrcFunction contained "\<edit-cc\>"
716syntax match muttrcFunction contained "\<edit-description\>"
717syntax match muttrcFunction contained "\<edit-encoding\>"
718syntax match muttrcFunction contained "\<edit-fcc\>"
719syntax match muttrcFunction contained "\<edit-file\>"
720syntax match muttrcFunction contained "\<edit-followup-to\>"
721syntax match muttrcFunction contained "\<edit-from\>"
722syntax match muttrcFunction contained "\<edit-headers\>"
723syntax match muttrcFunction contained "\<edit-label\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100724syntax match muttrcFunction contained "\<edit-language\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100725syntax match muttrcFunction contained "\<edit-message\>"
726syntax match muttrcFunction contained "\<edit-mime\>"
727syntax match muttrcFunction contained "\<edit-newsgroups\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200728syntax match muttrcFunction contained "\<edit-or-view-raw-message\>"
729syntax match muttrcFunction contained "\<edit-raw-message\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100730syntax match muttrcFunction contained "\<edit-reply-to\>"
731syntax match muttrcFunction contained "\<edit-subject\>"
732syntax match muttrcFunction contained "\<edit-to\>"
733syntax match muttrcFunction contained "\<edit-type\>"
734syntax match muttrcFunction contained "\<edit-x-comment-to\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200735syntax match muttrcFunction contained "\<edit\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100736syntax match muttrcFunction contained "\<end-cond\>"
737syntax match muttrcFunction contained "\<enter-command\>"
738syntax match muttrcFunction contained "\<enter-mask\>"
739syntax match muttrcFunction contained "\<entire-thread\>"
740syntax match muttrcFunction contained "\<eol\>"
741syntax match muttrcFunction contained "\<exit\>"
742syntax match muttrcFunction contained "\<extract-keys\>"
743syntax match muttrcFunction contained "\<fetch-mail\>"
744syntax match muttrcFunction contained "\<filter-entry\>"
745syntax match muttrcFunction contained "\<first-entry\>"
746syntax match muttrcFunction contained "\<flag-message\>"
747syntax match muttrcFunction contained "\<followup-message\>"
748syntax match muttrcFunction contained "\<forget-passphrase\>"
749syntax match muttrcFunction contained "\<forward-char\>"
750syntax match muttrcFunction contained "\<forward-message\>"
751syntax match muttrcFunction contained "\<forward-to-group\>"
752syntax match muttrcFunction contained "\<forward-word\>"
753syntax match muttrcFunction contained "\<get-attachment\>"
754syntax match muttrcFunction contained "\<get-children\>"
755syntax match muttrcFunction contained "\<get-message\>"
756syntax match muttrcFunction contained "\<get-parent\>"
757syntax match muttrcFunction contained "\<goto-folder\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200758syntax match muttrcFunction contained "\<goto-parent\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100759syntax match muttrcFunction contained "\<group-alternatives\>"
760syntax match muttrcFunction contained "\<group-chat-reply\>"
761syntax match muttrcFunction contained "\<group-multilingual\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100762syntax match muttrcFunction contained "\<group-reply\>"
763syntax match muttrcFunction contained "\<half-down\>"
764syntax match muttrcFunction contained "\<half-up\>"
765syntax match muttrcFunction contained "\<help\>"
766syntax match muttrcFunction contained "\<history-down\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200767syntax match muttrcFunction contained "\<history-search\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100768syntax match muttrcFunction contained "\<history-up\>"
769syntax match muttrcFunction contained "\<imap-fetch-mail\>"
770syntax match muttrcFunction contained "\<imap-logout-all\>"
771syntax match muttrcFunction contained "\<insert\>"
772syntax match muttrcFunction contained "\<ispell\>"
773syntax match muttrcFunction contained "\<jump\>"
774syntax match muttrcFunction contained "\<kill-eol\>"
775syntax match muttrcFunction contained "\<kill-eow\>"
776syntax match muttrcFunction contained "\<kill-line\>"
777syntax match muttrcFunction contained "\<kill-word\>"
778syntax match muttrcFunction contained "\<last-entry\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100779syntax match muttrcFunction contained "\<limit-current-thread\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200780syntax match muttrcFunction contained "\<limit\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100781syntax match muttrcFunction contained "\<link-threads\>"
782syntax match muttrcFunction contained "\<list-reply\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100783syntax match muttrcFunction contained "\<mail-key\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100784syntax match muttrcFunction contained "\<mailbox-cycle\>"
785syntax match muttrcFunction contained "\<mailbox-list\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200786syntax match muttrcFunction contained "\<mail\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100787syntax match muttrcFunction contained "\<mark-as-new\>"
788syntax match muttrcFunction contained "\<mark-message\>"
789syntax match muttrcFunction contained "\<middle-page\>"
790syntax match muttrcFunction contained "\<mix\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100791syntax match muttrcFunction contained "\<modify-labels-then-hide\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200792syntax match muttrcFunction contained "\<modify-labels\>"
793syntax match muttrcFunction contained "\<modify-tags-then-hide\>"
794syntax match muttrcFunction contained "\<modify-tags\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100795syntax match muttrcFunction contained "\<move-down\>"
796syntax match muttrcFunction contained "\<move-up\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100797syntax match muttrcFunction contained "\<new-mime\>"
798syntax match muttrcFunction contained "\<next-entry\>"
799syntax match muttrcFunction contained "\<next-line\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100800syntax match muttrcFunction contained "\<next-new-then-unread\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200801syntax match muttrcFunction contained "\<next-new\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100802syntax match muttrcFunction contained "\<next-page\>"
803syntax match muttrcFunction contained "\<next-subthread\>"
804syntax match muttrcFunction contained "\<next-thread\>"
805syntax match muttrcFunction contained "\<next-undeleted\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100806syntax match muttrcFunction contained "\<next-unread-mailbox\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200807syntax match muttrcFunction contained "\<next-unread\>"
808syntax match muttrcFunction contained "\<noop\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100809syntax match muttrcFunction contained "\<parent-message\>"
810syntax match muttrcFunction contained "\<pgp-menu\>"
811syntax match muttrcFunction contained "\<pipe-entry\>"
812syntax match muttrcFunction contained "\<pipe-message\>"
813syntax match muttrcFunction contained "\<post-message\>"
814syntax match muttrcFunction contained "\<postpone-message\>"
815syntax match muttrcFunction contained "\<previous-entry\>"
816syntax match muttrcFunction contained "\<previous-line\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100817syntax match muttrcFunction contained "\<previous-new-then-unread\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200818syntax match muttrcFunction contained "\<previous-new\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100819syntax match muttrcFunction contained "\<previous-page\>"
820syntax match muttrcFunction contained "\<previous-subthread\>"
821syntax match muttrcFunction contained "\<previous-thread\>"
822syntax match muttrcFunction contained "\<previous-undeleted\>"
823syntax match muttrcFunction contained "\<previous-unread\>"
824syntax match muttrcFunction contained "\<print-entry\>"
825syntax match muttrcFunction contained "\<print-message\>"
826syntax match muttrcFunction contained "\<purge-message\>"
827syntax match muttrcFunction contained "\<purge-thread\>"
828syntax match muttrcFunction contained "\<quasi-delete\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100829syntax match muttrcFunction contained "\<query-append\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200830syntax match muttrcFunction contained "\<query\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100831syntax match muttrcFunction contained "\<quit\>"
832syntax match muttrcFunction contained "\<quote-char\>"
833syntax match muttrcFunction contained "\<read-subthread\>"
834syntax match muttrcFunction contained "\<read-thread\>"
835syntax match muttrcFunction contained "\<recall-message\>"
836syntax match muttrcFunction contained "\<reconstruct-thread\>"
837syntax match muttrcFunction contained "\<redraw-screen\>"
838syntax match muttrcFunction contained "\<refresh\>"
839syntax match muttrcFunction contained "\<reload-active\>"
840syntax match muttrcFunction contained "\<rename-attachment\>"
841syntax match muttrcFunction contained "\<rename-file\>"
842syntax match muttrcFunction contained "\<rename-mailbox\>"
843syntax match muttrcFunction contained "\<reply\>"
844syntax match muttrcFunction contained "\<resend-message\>"
845syntax match muttrcFunction contained "\<root-message\>"
846syntax match muttrcFunction contained "\<save-entry\>"
847syntax match muttrcFunction contained "\<save-message\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100848syntax match muttrcFunction contained "\<search-next\>"
849syntax match muttrcFunction contained "\<search-opposite\>"
850syntax match muttrcFunction contained "\<search-reverse\>"
851syntax match muttrcFunction contained "\<search-toggle\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200852syntax match muttrcFunction contained "\<search\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100853syntax match muttrcFunction contained "\<select-entry\>"
854syntax match muttrcFunction contained "\<select-new\>"
855syntax match muttrcFunction contained "\<send-message\>"
856syntax match muttrcFunction contained "\<set-flag\>"
857syntax match muttrcFunction contained "\<shell-escape\>"
858syntax match muttrcFunction contained "\<show-limit\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200859syntax match muttrcFunction contained "\<show-log-messages\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100860syntax match muttrcFunction contained "\<show-version\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100861syntax match muttrcFunction contained "\<sidebar-next-new\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200862syntax match muttrcFunction contained "\<sidebar-next\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100863syntax match muttrcFunction contained "\<sidebar-open\>"
864syntax match muttrcFunction contained "\<sidebar-page-down\>"
865syntax match muttrcFunction contained "\<sidebar-page-up\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100866syntax match muttrcFunction contained "\<sidebar-prev-new\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200867syntax match muttrcFunction contained "\<sidebar-prev\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100868syntax match muttrcFunction contained "\<sidebar-toggle-virtual\>"
869syntax match muttrcFunction contained "\<sidebar-toggle-visible\>"
870syntax match muttrcFunction contained "\<skip-quoted\>"
871syntax match muttrcFunction contained "\<smime-menu\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100872syntax match muttrcFunction contained "\<sort-mailbox\>"
873syntax match muttrcFunction contained "\<sort-reverse\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200874syntax match muttrcFunction contained "\<sort\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100875syntax match muttrcFunction contained "\<subscribe-pattern\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200876syntax match muttrcFunction contained "\<subscribe\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100877syntax match muttrcFunction contained "\<sync-mailbox\>"
878syntax match muttrcFunction contained "\<tag-entry\>"
879syntax match muttrcFunction contained "\<tag-message\>"
880syntax match muttrcFunction contained "\<tag-pattern\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100881syntax match muttrcFunction contained "\<tag-prefix-cond\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200882syntax match muttrcFunction contained "\<tag-prefix\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100883syntax match muttrcFunction contained "\<tag-subthread\>"
884syntax match muttrcFunction contained "\<tag-thread\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100885syntax match muttrcFunction contained "\<toggle-active\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100886syntax match muttrcFunction contained "\<toggle-disposition\>"
887syntax match muttrcFunction contained "\<toggle-mailboxes\>"
888syntax match muttrcFunction contained "\<toggle-new\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100889syntax match muttrcFunction contained "\<toggle-prefer-encrypt\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100890syntax match muttrcFunction contained "\<toggle-quoted\>"
891syntax match muttrcFunction contained "\<toggle-read\>"
892syntax match muttrcFunction contained "\<toggle-recode\>"
893syntax match muttrcFunction contained "\<toggle-subscribed\>"
894syntax match muttrcFunction contained "\<toggle-unlink\>"
895syntax match muttrcFunction contained "\<toggle-write\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100896syntax match muttrcFunction contained "\<top-page\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200897syntax match muttrcFunction contained "\<top\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100898syntax match muttrcFunction contained "\<transpose-chars\>"
899syntax match muttrcFunction contained "\<uncatchup\>"
900syntax match muttrcFunction contained "\<undelete-entry\>"
901syntax match muttrcFunction contained "\<undelete-message\>"
902syntax match muttrcFunction contained "\<undelete-pattern\>"
903syntax match muttrcFunction contained "\<undelete-subthread\>"
904syntax match muttrcFunction contained "\<undelete-thread\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100905syntax match muttrcFunction contained "\<unsubscribe-pattern\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200906syntax match muttrcFunction contained "\<unsubscribe\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100907syntax match muttrcFunction contained "\<untag-pattern\>"
908syntax match muttrcFunction contained "\<upcase-word\>"
909syntax match muttrcFunction contained "\<update-encoding\>"
910syntax match muttrcFunction contained "\<verify-key\>"
Bram Moolenaar403f3eb2019-11-20 22:31:13 +0100911syntax match muttrcFunction contained "\<vfolder-from-query-readonly\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100912syntax match muttrcFunction contained "\<vfolder-from-query\>"
913syntax match muttrcFunction contained "\<vfolder-window-backward\>"
914syntax match muttrcFunction contained "\<vfolder-window-forward\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100915syntax match muttrcFunction contained "\<view-attachments\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200916syntax match muttrcFunction contained "\<view-attach\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100917syntax match muttrcFunction contained "\<view-file\>"
918syntax match muttrcFunction contained "\<view-mailcap\>"
919syntax match muttrcFunction contained "\<view-name\>"
Bram Moolenaar7dda86f2018-04-20 22:36:41 +0200920syntax match muttrcFunction contained "\<view-raw-message\>"
Bram Moolenaar01164a62017-11-02 22:58:42 +0100921syntax match muttrcFunction contained "\<view-text\>"
922syntax match muttrcFunction contained "\<what-key\>"
923syntax match muttrcFunction contained "\<write-fcc\>"
924
Bram Moolenaar01164a62017-11-02 22:58:42 +0100925" Define the default highlighting.
926" Only when an item doesn't have highlighting yet
927
928highlight def link muttrcComment Comment
929highlight def link muttrcEscape SpecialChar
930highlight def link muttrcRXChars SpecialChar
931highlight def link muttrcString String
932highlight def link muttrcRXString String
933highlight def link muttrcRXString2 String
934highlight def link muttrcSpecial Special
935highlight def link muttrcHooks Type
936highlight def link muttrcGroupFlag Type
937highlight def link muttrcGroupDef Macro
938highlight def link muttrcAddrDef muttrcGroupFlag
939highlight def link muttrcRXDef muttrcGroupFlag
940highlight def link muttrcRXPat String
941highlight def link muttrcAliasGroupName Macro
942highlight def link muttrcAliasKey Identifier
943highlight def link muttrcUnAliasKey Identifier
944highlight def link muttrcAliasEncEmail Identifier
945highlight def link muttrcAliasParens Type
946highlight def link muttrcSetNumAssignment Number
947highlight def link muttrcSetBoolAssignment Boolean
948highlight def link muttrcSetQuadAssignment Boolean
949highlight def link muttrcSetStrAssignment String
950highlight def link muttrcEmail Special
951highlight def link muttrcVariableInner Special
952highlight def link muttrcEscapedVariable String
953highlight def link muttrcHeader Type
954highlight def link muttrcKeySpecial SpecialChar
955highlight def link muttrcKey Type
956highlight def link muttrcKeyName SpecialChar
957highlight def link muttrcVarBool Identifier
958highlight def link muttrcVarQuad Identifier
959highlight def link muttrcVarNum Identifier
960highlight def link muttrcVarStr Identifier
961highlight def link muttrcMenu Identifier
962highlight def link muttrcCommand Keyword
963highlight def link muttrcMacroDescr String
964highlight def link muttrcAction Macro
965highlight def link muttrcBadAction Error
966highlight def link muttrcBindFunction Error
967highlight def link muttrcBindMenuList Error
968highlight def link muttrcFunction Macro
969highlight def link muttrcGroupKeyword muttrcCommand
970highlight def link muttrcGroupLine Error
971highlight def link muttrcSubscribeKeyword muttrcCommand
972highlight def link muttrcSubscribeLine Error
973highlight def link muttrcListsKeyword muttrcCommand
974highlight def link muttrcListsLine Error
975highlight def link muttrcAlternateKeyword muttrcCommand
976highlight def link muttrcAlternatesLine Error
977highlight def link muttrcAttachmentsLine muttrcCommand
978highlight def link muttrcAttachmentsFlag Type
979highlight def link muttrcAttachmentsMimeType String
980highlight def link muttrcColorLine Error
981highlight def link muttrcColorContext Error
982highlight def link muttrcColorContextI Identifier
983highlight def link muttrcColorContextH Identifier
984highlight def link muttrcColorKeyword muttrcCommand
985highlight def link muttrcColorField Identifier
986highlight def link muttrcColorCompose Identifier
987highlight def link muttrcColorComposeField Identifier
988highlight def link muttrcColor Type
989highlight def link muttrcColorFG Error
990highlight def link muttrcColorFGI Error
991highlight def link muttrcColorFGH Error
992highlight def link muttrcColorBG Error
993highlight def link muttrcColorBGI Error
994highlight def link muttrcColorBGH Error
995highlight def link muttrcMonoAttrib muttrcColor
996highlight def link muttrcMono muttrcCommand
997highlight def link muttrcSimplePat Identifier
998highlight def link muttrcSimplePatString Macro
999highlight def link muttrcSimplePatMetas Special
1000highlight def link muttrcPattern Error
1001highlight def link muttrcUnColorLine Error
1002highlight def link muttrcUnColorKeyword muttrcCommand
1003highlight def link muttrcUnColorIndex Identifier
1004highlight def link muttrcShellString muttrcEscape
1005highlight def link muttrcRXHooks muttrcCommand
1006highlight def link muttrcRXHookNot Type
1007highlight def link muttrcPatHooks muttrcCommand
1008highlight def link muttrcPatHookNot Type
1009highlight def link muttrcFormatConditionals2 Type
1010highlight def link muttrcIndexFormatStr muttrcString
1011highlight def link muttrcIndexFormatEscapes muttrcEscape
1012highlight def link muttrcIndexFormatConditionals muttrcFormatConditionals2
1013highlight def link muttrcAliasFormatStr muttrcString
1014highlight def link muttrcAliasFormatEscapes muttrcEscape
1015highlight def link muttrcAttachFormatStr muttrcString
1016highlight def link muttrcAttachFormatEscapes muttrcEscape
1017highlight def link muttrcAttachFormatConditionals muttrcFormatConditionals2
1018highlight def link muttrcComposeFormatStr muttrcString
1019highlight def link muttrcComposeFormatEscapes muttrcEscape
1020highlight def link muttrcFolderFormatStr muttrcString
1021highlight def link muttrcFolderFormatEscapes muttrcEscape
1022highlight def link muttrcFolderFormatConditionals muttrcFormatConditionals2
1023highlight def link muttrcMixFormatStr muttrcString
1024highlight def link muttrcMixFormatEscapes muttrcEscape
1025highlight def link muttrcMixFormatConditionals muttrcFormatConditionals2
1026highlight def link muttrcPGPFormatStr muttrcString
1027highlight def link muttrcPGPFormatEscapes muttrcEscape
1028highlight def link muttrcPGPFormatConditionals muttrcFormatConditionals2
1029highlight def link muttrcPGPCmdFormatStr muttrcString
1030highlight def link muttrcPGPCmdFormatEscapes muttrcEscape
1031highlight def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
1032highlight def link muttrcStatusFormatStr muttrcString
1033highlight def link muttrcStatusFormatEscapes muttrcEscape
1034highlight def link muttrcStatusFormatConditionals muttrcFormatConditionals2
1035highlight def link muttrcPGPGetKeysFormatStr muttrcString
1036highlight def link muttrcPGPGetKeysFormatEscapes muttrcEscape
1037highlight def link muttrcSmimeFormatStr muttrcString
1038highlight def link muttrcSmimeFormatEscapes muttrcEscape
1039highlight def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
1040highlight def link muttrcTimeEscapes muttrcEscape
1041highlight def link muttrcPGPTimeEscapes muttrcEscape
1042highlight def link muttrcStrftimeEscapes Type
1043highlight def link muttrcStrftimeFormatStr muttrcString
1044highlight def link muttrcFormatErrors Error
1045
1046highlight def link muttrcBindFunctionNL SpecialChar
1047highlight def link muttrcBindKeyNL SpecialChar
1048highlight def link muttrcBindMenuListNL SpecialChar
1049highlight def link muttrcMacroDescrNL SpecialChar
1050highlight def link muttrcMacroBodyNL SpecialChar
1051highlight def link muttrcMacroKeyNL SpecialChar
1052highlight def link muttrcMacroMenuListNL SpecialChar
1053highlight def link muttrcColorMatchCountNL SpecialChar
1054highlight def link muttrcColorNL SpecialChar
1055highlight def link muttrcColorRXNL SpecialChar
1056highlight def link muttrcColorBGNL SpecialChar
1057highlight def link muttrcColorFGNL SpecialChar
1058highlight def link muttrcAliasNameNL SpecialChar
1059highlight def link muttrcAliasENNL SpecialChar
1060highlight def link muttrcAliasNL SpecialChar
1061highlight def link muttrcUnAliasNL SpecialChar
1062highlight def link muttrcAliasGroupDefNL SpecialChar
1063highlight def link muttrcAliasEncEmailNL SpecialChar
1064highlight def link muttrcPatternNL SpecialChar
1065highlight def link muttrcUnColorPatNL SpecialChar
1066highlight def link muttrcUnColorAPNL SpecialChar
1067highlight def link muttrcUnColorIndexNL SpecialChar
1068highlight def link muttrcStringNL SpecialChar
1069
1070highlight def link muttrcVarDeprecatedBool Error
1071highlight def link muttrcVarDeprecatedQuad Error
1072highlight def link muttrcVarDeprecatedStr Error
1073
Bram Moolenaar01164a62017-11-02 22:58:42 +01001074let b:current_syntax = "neomuttrc"
1075
1076let &cpo = s:cpo_save
1077unlet s:cpo_save
Bram Moolenaar7dda86f2018-04-20 22:36:41 +02001078
1079" vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim isk+=-