xref: /vim-8.2.3635/runtime/syntax/muttrc.vim (revision 0b0f0992)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Mutt setup files
3f9393ef5SBram Moolenaar" Original:	Preben 'Peppe' Guldberg <[email protected]>
4f9393ef5SBram Moolenaar" Maintainer:	Kyle Wheeler <[email protected]>
5*0b0f0992SBram Moolenaar" Last Change:	21 May 2018
6071d4279SBram Moolenaar
7*0b0f0992SBram Moolenaar" This file covers mutt version 1.10.0
8071d4279SBram Moolenaar
989bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1089bcfda6SBram Moolenaarif exists("b:current_syntax")
11071d4279SBram Moolenaar  finish
12071d4279SBram Moolenaarendif
13071d4279SBram Moolenaar
14b8ff1fb5SBram Moolenaarlet s:cpo_save = &cpo
15b8ff1fb5SBram Moolenaarset cpo&vim
16b8ff1fb5SBram Moolenaar
17071d4279SBram Moolenaar" Set the keyword characters
18071d4279SBram Moolenaarsetlocal isk=@,48-57,_,-
19071d4279SBram Moolenaar
20b8ff1fb5SBram Moolenaar" handling optional variables
21b8ff1fb5SBram Moolenaarif !exists("use_mutt_sidebar")
22b8ff1fb5SBram Moolenaar  let use_mutt_sidebar=0
23b8ff1fb5SBram Moolenaarendif
24b8ff1fb5SBram Moolenaar
259964e468SBram Moolenaarsyn match muttrcComment		"^# .*$" contains=@Spell
269964e468SBram Moolenaarsyn match muttrcComment		"^#[^ ].*$"
279964e468SBram Moolenaarsyn match muttrcComment		"^#$"
28071d4279SBram Moolenaarsyn match muttrcComment		"[^\\]#.*$"lc=1
29071d4279SBram Moolenaar
30071d4279SBram Moolenaar" Escape sequences (back-tick and pipe goes here too)
31071d4279SBram Moolenaarsyn match muttrcEscape		+\\[#tnr"'Cc ]+
32071d4279SBram Moolenaarsyn match muttrcEscape		+[`|]+
33446cb837SBram Moolenaarsyn match muttrcEscape		+\\$+
34071d4279SBram Moolenaar
35071d4279SBram Moolenaar" The variables takes the following arguments
369de99979SBram Moolenaar"syn match  muttrcString		contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
379de99979SBram Moolenaarsyn region muttrcString		contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
389de99979SBram Moolenaarsyn region muttrcString		contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
399de99979SBram Moolenaarsyn match muttrcStringNL	contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
40f9393ef5SBram Moolenaar
419de99979SBram Moolenaarsyn region muttrcShellString	matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand
42f9393ef5SBram Moolenaar
43f9393ef5SBram Moolenaarsyn match  muttrcRXChars	contained /[^\\][][.*?+]\+/hs=s+1
44f9393ef5SBram Moolenaarsyn match  muttrcRXChars	contained /[][|()][.*?+]*/
45446cb837SBram Moolenaarsyn match  muttrcRXChars	contained /['"]^/ms=s+1
46446cb837SBram Moolenaarsyn match  muttrcRXChars	contained /$['"]/me=e-1
47f9393ef5SBram Moolenaarsyn match  muttrcRXChars	contained /\\/
489964e468SBram Moolenaar" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
499de99979SBram Moolenaarsyn region muttrcRXString	contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
509de99979SBram Moolenaarsyn region muttrcRXString	contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
519de99979SBram Moolenaarsyn region muttrcRXString	contained skipwhite start=+[^ 	"'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
529de99979SBram Moolenaar" For some reason, skip refuses to match backslashes here...
539de99979SBram Moolenaarsyn region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
549de99979SBram Moolenaarsyn region muttrcRXString	contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
559de99979SBram Moolenaarsyn region muttrcRXString2	contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
569de99979SBram Moolenaarsyn region muttrcRXString2	contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
57f9393ef5SBram Moolenaar
589de99979SBram Moolenaar" these must be kept synchronized with muttrcRXString, but are intended for
599de99979SBram Moolenaar" muttrcRXHooks
609de99979SBram Moolenaarsyn region muttrcRXHookString	contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
619de99979SBram Moolenaarsyn region muttrcRXHookString	contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
629de99979SBram Moolenaarsyn region muttrcRXHookString	contained keepend skipwhite start=+[^ 	"'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
639de99979SBram Moolenaarsyn region muttrcRXHookString	contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
649de99979SBram Moolenaarsyn region muttrcRXHookString	contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
659de99979SBram Moolenaarsyn match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
669de99979SBram Moolenaar
679de99979SBram Moolenaar" these are exclusively for args lists (e.g. -rx pat pat pat ...)
689de99979SBram Moolenaarsyn region muttrcRXPat		contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
699de99979SBram Moolenaarsyn region muttrcRXPat		contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
709de99979SBram Moolenaarsyn match muttrcRXPat		contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
71f9393ef5SBram Moolenaarsyn match muttrcRXDef 		contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
72071d4279SBram Moolenaar
73071d4279SBram Moolenaarsyn match muttrcSpecial		+\(['"]\)!\1+
74071d4279SBram Moolenaar
759de99979SBram Moolenaarsyn match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
769de99979SBram Moolenaarsyn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
779de99979SBram Moolenaarsyn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
789de99979SBram Moolenaarsyn match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
799de99979SBram Moolenaarsyn match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
809de99979SBram Moolenaarsyn match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
819de99979SBram Moolenaarsyn match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
829de99979SBram Moolenaarsyn match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
839de99979SBram Moolenaarsyn match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
849de99979SBram Moolenaarsyn match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
859de99979SBram Moolenaarsyn match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
869de99979SBram Moolenaarsyn match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
879de99979SBram Moolenaarsyn match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
889de99979SBram Moolenaarsyn match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
899de99979SBram Moolenaarsyn match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
90071d4279SBram Moolenaar
91071d4279SBram Moolenaar" Now catch some email addresses and headers (purified version from mail.vim)
92071d4279SBram Moolenaarsyn match muttrcEmail		"[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
93e4a3bcf2SBram Moolenaarsyn match muttrcHeader		"\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
94071d4279SBram Moolenaar
95f9393ef5SBram Moolenaarsyn match   muttrcKeySpecial	contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
96f9393ef5SBram Moolenaarsyn match   muttrcKey		contained "\S\+"			contains=muttrcKeySpecial,muttrcKeyName
97f9393ef5SBram Moolenaarsyn region  muttrcKey		contained start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=muttrcKeySpecial,muttrcKeyName
98f9393ef5SBram Moolenaarsyn region  muttrcKey		contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
99f9393ef5SBram Moolenaarsyn match   muttrcKeyName	contained "\<f\%(\d\|10\)\>"
100071d4279SBram Moolenaarsyn match   muttrcKeyName	contained "\\[trne]"
101b8ff1fb5SBram Moolenaarsyn match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
102c236c16dSBram Moolenaarsyn match   muttrcKeyName	contained "<F[0-9]\+>"
103071d4279SBram Moolenaar
104e4a3bcf2SBram Moolenaarsyn keyword muttrcVarBool	skipwhite contained
105e4a3bcf2SBram Moolenaar			\ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split
106e4a3bcf2SBram Moolenaar			\ auto_tag autoedit beep beep_new bounce_delivered braille_friendly
107*0b0f0992SBram Moolenaar			\ browser_abbreviate_mailboxes change_folder_next check_mbox_size check_new
108*0b0f0992SBram Moolenaar			\ collapse_unread confirmappend confirmcreate crypt_autoencrypt crypt_autopgp
109*0b0f0992SBram Moolenaar			\ crypt_autosign crypt_autosmime crypt_confirmhook crypt_opportunistic_encrypt
110*0b0f0992SBram Moolenaar			\ crypt_replyencrypt crypt_replysign crypt_replysignencrypted crypt_timestamp
111*0b0f0992SBram Moolenaar			\ crypt_use_gpgme crypt_use_pka delete_untag digest_collapse duplicate_threads
112*0b0f0992SBram Moolenaar			\ edit_hdrs edit_headers encode_from envelope_from fast_reply fcc_clear
113*0b0f0992SBram Moolenaar			\ flag_safe followup_to force_name forw_decode forw_decrypt forw_quote
114*0b0f0992SBram Moolenaar			\ forward_decode forward_decrypt forward_quote hdrs header
115*0b0f0992SBram Moolenaar			\ header_color_partial help hidden_host hide_limited hide_missing
116*0b0f0992SBram Moolenaar			\ hide_thread_subject hide_top_limited hide_top_missing history_remove_dups
117*0b0f0992SBram Moolenaar			\ honor_disposition idn_decode idn_encode ignore_linear_white_space
118*0b0f0992SBram Moolenaar			\ ignore_list_reply_to imap_check_subscribed imap_list_subscribed imap_passive
119*0b0f0992SBram Moolenaar			\ imap_peek imap_servernoise implicit_autoview include_onlyfirst keep_flagged
120e4a3bcf2SBram Moolenaar			\ mail_check_recent mail_check_stats mailcap_sanitize maildir_check_cur
121e4a3bcf2SBram Moolenaar			\ maildir_header_cache_verify maildir_trash mark_old markers menu_move_off
122e4a3bcf2SBram Moolenaar			\ menu_scroll message_cache_clean meta_key metoo mh_purge mime_forward_decode
123*0b0f0992SBram Moolenaar			\ mime_type_query_first narrow_tree pager_stop pgp_auto_decode
124*0b0f0992SBram Moolenaar			\ pgp_auto_traditional pgp_autoencrypt pgp_autoinline pgp_autosign
125*0b0f0992SBram Moolenaar			\ pgp_check_exit pgp_create_traditional pgp_ignore_subkeys pgp_long_ids
126*0b0f0992SBram Moolenaar			\ pgp_replyencrypt pgp_replyinline pgp_replysign pgp_replysignencrypted
127*0b0f0992SBram Moolenaar			\ pgp_retainable_sigs pgp_self_encrypt pgp_self_encrypt_as pgp_show_unusable
128*0b0f0992SBram Moolenaar			\ pgp_strict_enc pgp_use_gpg_agent pipe_decode pipe_split pop_auth_try_all
129*0b0f0992SBram Moolenaar			\ pop_last postpone_encrypt postpone_encrypt_as print_decode print_split
130*0b0f0992SBram Moolenaar			\ prompt_after read_only reflow_space_quotes reflow_text reflow_wrap
131*0b0f0992SBram Moolenaar			\ reply_self resolve resume_draft_files resume_edited_draft_files
132*0b0f0992SBram Moolenaar			\ reverse_alias reverse_name reverse_realname rfc2047_parameters save_address
133*0b0f0992SBram Moolenaar			\ save_empty save_name score sidebar_folder_indent sidebar_new_mail_only
134*0b0f0992SBram Moolenaar			\ sidebar_next_new_wrap sidebar_short_path sidebar_sort sidebar_visible
135*0b0f0992SBram Moolenaar			\ sig_dashes sig_on_top smart_wrap smime_ask_cert_label
136*0b0f0992SBram Moolenaar			\ smime_decrypt_use_default_key smime_is_default smime_self_encrypt
137*0b0f0992SBram Moolenaar			\ smime_self_encrypt_as sort_re ssl_force_tls ssl_use_sslv2 ssl_use_sslv3
138*0b0f0992SBram Moolenaar			\ ssl_use_tlsv1 ssl_usesystemcerts ssl_verify_dates ssl_verify_host
139*0b0f0992SBram Moolenaar			\ ssl_verify_partial_chains status_on_top strict_mime strict_threads suspend
140*0b0f0992SBram Moolenaar			\ text_flowed thorough_search thread_received tilde ts_enabled uncollapse_jump
141*0b0f0992SBram Moolenaar			\ use_8bitmime use_domain use_envelope_from use_from use_idn use_ipv6
142*0b0f0992SBram Moolenaar			\ uncollapse_new user_agent wait_key weed wrap_search write_bcc
143e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
144071d4279SBram Moolenaar
145e4a3bcf2SBram Moolenaarsyn keyword muttrcVarBool	skipwhite contained
146*0b0f0992SBram Moolenaar			\ noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc noaskcc
147*0b0f0992SBram Moolenaar			\ noattach_split noauto_tag noautoedit nobeep nobeep_new nobounce_delivered
148*0b0f0992SBram Moolenaar			\ nobraille_friendly nobrowser_abbreviate_mailboxes nochange_folder_next
149*0b0f0992SBram Moolenaar			\ nocheck_mbox_size nocheck_new nocollapse_unread noconfirmappend
150*0b0f0992SBram Moolenaar			\ noconfirmcreate nocrypt_autoencrypt nocrypt_autopgp nocrypt_autosign
151*0b0f0992SBram Moolenaar			\ nocrypt_autosmime nocrypt_confirmhook nocrypt_opportunistic_encrypt
152*0b0f0992SBram Moolenaar			\ nocrypt_replyencrypt nocrypt_replysign nocrypt_replysignencrypted
153*0b0f0992SBram Moolenaar			\ nocrypt_timestamp nocrypt_use_gpgme nocrypt_use_pka nodelete_untag
154*0b0f0992SBram Moolenaar			\ nodigest_collapse noduplicate_threads noedit_hdrs noedit_headers
155*0b0f0992SBram Moolenaar			\ noencode_from noenvelope_from nofast_reply nofcc_clear noflag_safe
156*0b0f0992SBram Moolenaar			\ nofollowup_to noforce_name noforw_decode noforw_decrypt noforw_quote
157*0b0f0992SBram Moolenaar			\ noforward_decode noforward_decrypt noforward_quote nohdrs noheader
158*0b0f0992SBram Moolenaar			\ noheader_color_partial nohelp nohidden_host nohide_limited nohide_missing
159*0b0f0992SBram Moolenaar			\ nohide_thread_subject nohide_top_limited nohide_top_missing
160*0b0f0992SBram Moolenaar			\ nohistory_remove_dups nohonor_disposition noidn_decode noidn_encode
161*0b0f0992SBram Moolenaar			\ noignore_linear_white_space noignore_list_reply_to noimap_check_subscribed
162*0b0f0992SBram Moolenaar			\ noimap_list_subscribed noimap_passive noimap_peek noimap_servernoise
163*0b0f0992SBram Moolenaar			\ noimplicit_autoview noinclude_onlyfirst nokeep_flagged nomail_check_recent
164*0b0f0992SBram Moolenaar			\ nomail_check_stats nomailcap_sanitize nomaildir_check_cur
165*0b0f0992SBram Moolenaar			\ nomaildir_header_cache_verify nomaildir_trash nomark_old nomarkers
166*0b0f0992SBram Moolenaar			\ nomenu_move_off nomenu_scroll nomessage_cache_clean nometa_key nometoo
167*0b0f0992SBram Moolenaar			\ nomh_purge nomime_forward_decode nomime_type_query_first nonarrow_tree
168*0b0f0992SBram Moolenaar			\ nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt
169e4a3bcf2SBram Moolenaar			\ nopgp_autoinline nopgp_autosign nopgp_check_exit nopgp_create_traditional
170*0b0f0992SBram Moolenaar			\ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline
171*0b0f0992SBram Moolenaar			\ nopgp_replysign nopgp_replysignencrypted nopgp_retainable_sigs
172*0b0f0992SBram Moolenaar			\ nopgp_self_encrypt nopgp_self_encrypt_as nopgp_show_unusable
173*0b0f0992SBram Moolenaar			\ nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_split
174*0b0f0992SBram Moolenaar			\ nopop_auth_try_all nopop_last nopostpone_encrypt nopostpone_encrypt_as
175*0b0f0992SBram Moolenaar			\ noprint_decode noprint_split noprompt_after noread_only
176*0b0f0992SBram Moolenaar			\ noreflow_space_quotes noreflow_text noreflow_wrap noreply_self noresolve
177*0b0f0992SBram Moolenaar			\ noresume_draft_files noresume_edited_draft_files noreverse_alias
178*0b0f0992SBram Moolenaar			\ noreverse_name noreverse_realname norfc2047_parameters nosave_address
179*0b0f0992SBram Moolenaar			\ nosave_empty nosave_name noscore nosidebar_folder_indent
180*0b0f0992SBram Moolenaar			\ nosidebar_new_mail_only nosidebar_next_new_wrap nosidebar_short_path
181*0b0f0992SBram Moolenaar			\ nosidebar_sort nosidebar_visible nosig_dashes nosig_on_top nosmart_wrap
182*0b0f0992SBram Moolenaar			\ nosmime_ask_cert_label nosmime_decrypt_use_default_key nosmime_is_default
183*0b0f0992SBram Moolenaar			\ nosmime_self_encrypt nosmime_self_encrypt_as nosort_re nossl_force_tls
184*0b0f0992SBram Moolenaar			\ nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1 nossl_usesystemcerts
185*0b0f0992SBram Moolenaar			\ nossl_verify_dates nossl_verify_host nossl_verify_partial_chains
186*0b0f0992SBram Moolenaar			\ nostatus_on_top nostrict_mime nostrict_threads nosuspend notext_flowed
187*0b0f0992SBram Moolenaar			\ nothorough_search nothread_received notilde nots_enabled nouncollapse_jump
188*0b0f0992SBram Moolenaar			\ nouse_8bitmime nouse_domain nouse_envelope_from nouse_from nouse_idn
189*0b0f0992SBram Moolenaar			\ nouse_ipv6 nouncollapse_new nouser_agent nowait_key noweed nowrap_search
190*0b0f0992SBram Moolenaar			\ nowrite_bcc
191e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
192071d4279SBram Moolenaar
193e4a3bcf2SBram Moolenaarsyn keyword muttrcVarBool	skipwhite contained
194*0b0f0992SBram Moolenaar			\ invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc
195*0b0f0992SBram Moolenaar			\ invaskcc invattach_split invauto_tag invautoedit invbeep invbeep_new
196*0b0f0992SBram Moolenaar			\ invbounce_delivered invbraille_friendly invbrowser_abbreviate_mailboxes
197*0b0f0992SBram Moolenaar			\ invchange_folder_next invcheck_mbox_size invcheck_new invcollapse_unread
198*0b0f0992SBram Moolenaar			\ invconfirmappend invconfirmcreate invcrypt_autoencrypt invcrypt_autopgp
199*0b0f0992SBram Moolenaar			\ invcrypt_autosign invcrypt_autosmime invcrypt_confirmhook
200*0b0f0992SBram Moolenaar			\ invcrypt_opportunistic_encrypt invcrypt_replyencrypt invcrypt_replysign
201*0b0f0992SBram Moolenaar			\ invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme
202*0b0f0992SBram Moolenaar			\ invcrypt_use_pka invdelete_untag invdigest_collapse invduplicate_threads
203*0b0f0992SBram Moolenaar			\ invedit_hdrs invedit_headers invencode_from invenvelope_from invfast_reply
204*0b0f0992SBram Moolenaar			\ invfcc_clear invflag_safe invfollowup_to invforce_name invforw_decode
205*0b0f0992SBram Moolenaar			\ invforw_decrypt invforw_quote invforward_decode invforward_decrypt
206*0b0f0992SBram Moolenaar			\ invforward_quote invhdrs invheader invheader_color_partial invhelp
207*0b0f0992SBram Moolenaar			\ invhidden_host invhide_limited invhide_missing invhide_thread_subject
208*0b0f0992SBram Moolenaar			\ invhide_top_limited invhide_top_missing invhistory_remove_dups
209*0b0f0992SBram Moolenaar			\ invhonor_disposition invidn_decode invidn_encode
210*0b0f0992SBram Moolenaar			\ invignore_linear_white_space invignore_list_reply_to
211*0b0f0992SBram Moolenaar			\ invimap_check_subscribed invimap_list_subscribed invimap_passive
212*0b0f0992SBram Moolenaar			\ invimap_peek invimap_servernoise invimplicit_autoview invinclude_onlyfirst
213*0b0f0992SBram Moolenaar			\ invkeep_flagged invmail_check_recent invmail_check_stats invmailcap_sanitize
214*0b0f0992SBram Moolenaar			\ invmaildir_check_cur invmaildir_header_cache_verify invmaildir_trash
215*0b0f0992SBram Moolenaar			\ invmark_old invmarkers invmenu_move_off invmenu_scroll
216*0b0f0992SBram Moolenaar			\ invmessage_cache_clean invmeta_key invmetoo invmh_purge
217*0b0f0992SBram Moolenaar			\ invmime_forward_decode invmime_type_query_first invnarrow_tree invpager_stop
218*0b0f0992SBram Moolenaar			\ invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt
219*0b0f0992SBram Moolenaar			\ invpgp_autoinline invpgp_autosign invpgp_check_exit
220*0b0f0992SBram Moolenaar			\ invpgp_create_traditional invpgp_ignore_subkeys invpgp_long_ids
221*0b0f0992SBram Moolenaar			\ invpgp_replyencrypt invpgp_replyinline invpgp_replysign
222*0b0f0992SBram Moolenaar			\ invpgp_replysignencrypted invpgp_retainable_sigs invpgp_self_encrypt
223*0b0f0992SBram Moolenaar			\ invpgp_self_encrypt_as invpgp_show_unusable invpgp_strict_enc
224*0b0f0992SBram Moolenaar			\ invpgp_use_gpg_agent invpipe_decode invpipe_split invpop_auth_try_all
225*0b0f0992SBram Moolenaar			\ invpop_last invpostpone_encrypt invpostpone_encrypt_as invprint_decode
226*0b0f0992SBram Moolenaar			\ invprint_split invprompt_after invread_only invreflow_space_quotes
227*0b0f0992SBram Moolenaar			\ invreflow_text invreflow_wrap invreply_self invresolve invresume_draft_files
228*0b0f0992SBram Moolenaar			\ invresume_edited_draft_files invreverse_alias invreverse_name
229*0b0f0992SBram Moolenaar			\ invreverse_realname invrfc2047_parameters invsave_address invsave_empty
230*0b0f0992SBram Moolenaar			\ invsave_name invscore invsidebar_folder_indent invsidebar_new_mail_only
231*0b0f0992SBram Moolenaar			\ invsidebar_next_new_wrap invsidebar_short_path invsidebar_sort
232*0b0f0992SBram Moolenaar			\ invsidebar_visible invsig_dashes invsig_on_top invsmart_wrap
233*0b0f0992SBram Moolenaar			\ invsmime_ask_cert_label invsmime_decrypt_use_default_key invsmime_is_default
234*0b0f0992SBram Moolenaar			\ invsmime_self_encrypt invsmime_self_encrypt_as invsort_re invssl_force_tls
235*0b0f0992SBram Moolenaar			\ invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1 invssl_usesystemcerts
236*0b0f0992SBram Moolenaar			\ invssl_verify_dates invssl_verify_host invssl_verify_partial_chains
237*0b0f0992SBram Moolenaar			\ invstatus_on_top invstrict_mime invstrict_threads invsuspend invtext_flowed
238*0b0f0992SBram Moolenaar			\ invthorough_search invthread_received invtilde invts_enabled
239*0b0f0992SBram Moolenaar			\ invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from
240*0b0f0992SBram Moolenaar			\ invuse_from invuse_idn invuse_ipv6 invuncollapse_new invuser_agent
241*0b0f0992SBram Moolenaar			\ invwait_key invweed invwrap_search invwrite_bcc
242e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
243071d4279SBram Moolenaar
244e4a3bcf2SBram Moolenaarsyn keyword muttrcVarQuad	skipwhite contained
245*0b0f0992SBram Moolenaar			\ abort_nosubject abort_unmodified abort_noattach bounce copy crypt_verify_sig
246*0b0f0992SBram Moolenaar			\ delete fcc_attach forward_edit honor_followup_to include mime_forward
247e4a3bcf2SBram Moolenaar			\ mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete
248e4a3bcf2SBram Moolenaar			\ pop_reconnect postpone print quit recall reply_to ssl_starttls
249e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
250071d4279SBram Moolenaar
251e4a3bcf2SBram Moolenaarsyn keyword muttrcVarQuad	skipwhite contained
252*0b0f0992SBram Moolenaar			\ noabort_nosubject noabort_unmodified noabort_noattach nobounce nocopy
253*0b0f0992SBram Moolenaar			\ nocrypt_verify_sig nodelete nofcc_attach noforward_edit nohonor_followup_to
254*0b0f0992SBram Moolenaar			\ noinclude nomime_forward nomime_forward_rest nomime_fwd nomove
255*0b0f0992SBram Moolenaar			\ nopgp_mime_auto nopgp_verify_sig nopop_delete nopop_reconnect nopostpone
256*0b0f0992SBram Moolenaar			\ noprint noquit norecall noreply_to nossl_starttls
257e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
258071d4279SBram Moolenaar
259e4a3bcf2SBram Moolenaarsyn keyword muttrcVarQuad	skipwhite contained
260*0b0f0992SBram Moolenaar			\ invabort_nosubject invabort_unmodified invabort_noattach invbounce invcopy
261*0b0f0992SBram Moolenaar			\ invcrypt_verify_sig invdelete invfcc_attach invforward_edit
262*0b0f0992SBram Moolenaar			\ invhonor_followup_to invinclude invmime_forward invmime_forward_rest
263*0b0f0992SBram Moolenaar			\ invmime_fwd invmove invpgp_mime_auto invpgp_verify_sig invpop_delete
264*0b0f0992SBram Moolenaar			\ invpop_reconnect invpostpone invprint invquit invrecall invreply_to
265*0b0f0992SBram Moolenaar			\ invssl_starttls
266e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
267071d4279SBram Moolenaar
268e4a3bcf2SBram Moolenaarsyn keyword muttrcVarNum	skipwhite contained
269*0b0f0992SBram Moolenaar			\ connect_timeout error_history history imap_keepalive imap_pipeline_depth
270*0b0f0992SBram Moolenaar			\ imap_poll_timeout mail_check mail_check_stats_interval menu_context net_inc
271*0b0f0992SBram Moolenaar			\ pager_context pager_index_lines pgp_timeout pop_checkinterval read_inc
272*0b0f0992SBram Moolenaar			\ save_history score_threshold_delete score_threshold_flag
273*0b0f0992SBram Moolenaar			\ score_threshold_read search_context sendmail_wait sidebar_width sleep_time
274*0b0f0992SBram Moolenaar			\ smime_timeout ssl_min_dh_prime_bits time_inc timeout wrap wrap_headers
275*0b0f0992SBram Moolenaar			\ wrapmargin write_inc
276e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2779de99979SBram Moolenaar
2789de99979SBram Moolenaarsyn match muttrcFormatErrors contained /%./
279446cb837SBram Moolenaar
280446cb837SBram Moolenaarsyn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
281446cb837SBram Moolenaarsyn match muttrcStrftimeEscapes contained /%E[cCxXyY]/
282446cb837SBram Moolenaarsyn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
283446cb837SBram Moolenaar
2849de99979SBram Moolenaarsyn region muttrcIndexFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2859de99979SBram Moolenaarsyn region muttrcIndexFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2869de99979SBram Moolenaarsyn region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2879de99979SBram Moolenaarsyn region muttrcAliasFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2889de99979SBram Moolenaarsyn region muttrcAliasFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2899de99979SBram Moolenaarsyn region muttrcAttachFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2909de99979SBram Moolenaarsyn region muttrcAttachFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2919de99979SBram Moolenaarsyn region muttrcComposeFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2929de99979SBram Moolenaarsyn region muttrcComposeFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2939de99979SBram Moolenaarsyn region muttrcFolderFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2949de99979SBram Moolenaarsyn region muttrcFolderFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2959de99979SBram Moolenaarsyn region muttrcMixFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2969de99979SBram Moolenaarsyn region muttrcMixFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2979de99979SBram Moolenaarsyn region muttrcPGPFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2989de99979SBram Moolenaarsyn region muttrcPGPFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
2999de99979SBram Moolenaarsyn region muttrcPGPCmdFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3009de99979SBram Moolenaarsyn region muttrcPGPCmdFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3019de99979SBram Moolenaarsyn region muttrcStatusFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3029de99979SBram Moolenaarsyn region muttrcStatusFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3039de99979SBram Moolenaarsyn region muttrcPGPGetKeysFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3049de99979SBram Moolenaarsyn region muttrcPGPGetKeysFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3059de99979SBram Moolenaarsyn region muttrcSmimeFormatStr	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3069de99979SBram Moolenaarsyn region muttrcSmimeFormatStr	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3079de99979SBram Moolenaarsyn region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3089de99979SBram Moolenaarsyn region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
309446cb837SBram Moolenaar
310446cb837SBram Moolenaar" The following info was pulled from hdr_format_str in hdrline.c
311446cb837SBram Moolenaarsyn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/
3129de99979SBram Moolenaarsyn match muttrcIndexFormatEscapes contained /%[>|*]./
313446cb837SBram Moolenaarsyn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2
314446cb837SBram Moolenaar" The following info was pulled from alias_format_str in addrbook.c
315446cb837SBram Moolenaarsyn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
316c236c16dSBram Moolenaar" The following info was pulled from query_format_str in query.c
317c236c16dSBram Moolenaarsyn match muttrcQueryFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acent%]/
318c236c16dSBram Moolenaarsyn match muttrcQueryFormatConditionals contained /%?[e]?/ nextgroup=muttrcFormatConditionals2
319446cb837SBram Moolenaar" The following info was pulled from mutt_attach_fmt in recvattach.c
320*0b0f0992SBram Moolenaarsyn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdeFfImMnQstTuX%]/
321446cb837SBram Moolenaarsyn match muttrcAttachFormatEscapes contained /%[>|*]./
322446cb837SBram Moolenaarsyn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2
323446cb837SBram Moolenaarsyn match muttrcFormatConditionals2 contained /[^?]*?/
324446cb837SBram Moolenaar" The following info was pulled from compose_format_str in compose.c
325446cb837SBram Moolenaarsyn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
326446cb837SBram Moolenaarsyn match muttrcComposeFormatEscapes contained /%[>|*]./
327446cb837SBram Moolenaar" The following info was pulled from folder_format_str in browser.c
3289de99979SBram Moolenaarsyn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CDdfFglNstu%]/
329446cb837SBram Moolenaarsyn match muttrcFolderFormatEscapes contained /%[>|*]./
330446cb837SBram Moolenaarsyn match muttrcFolderFormatConditionals contained /%?[N]?/
331446cb837SBram Moolenaar" The following info was pulled from mix_entry_fmt in remailer.c
332446cb837SBram Moolenaarsyn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/
333446cb837SBram Moolenaarsyn match muttrcMixFormatConditionals contained /%?[ncsa]?/
334446cb837SBram Moolenaar" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c
335446cb837SBram Moolenaar" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports
336446cb837SBram Moolenaar" 'p', but pgp_entry_fmt does not).
337446cb837SBram Moolenaarsyn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/
338446cb837SBram Moolenaarsyn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/
339446cb837SBram Moolenaar" The following info was pulled from _mutt_fmt_pgp_command in
340446cb837SBram Moolenaar" pgpinvoke.c
341446cb837SBram Moolenaarsyn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/
342446cb837SBram Moolenaarsyn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2
343446cb837SBram Moolenaar" The following info was pulled from status_format_str in status.c
344*0b0f0992SBram Moolenaarsyn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPRrsStuvV%]/
345446cb837SBram Moolenaarsyn match muttrcStatusFormatEscapes contained /%[>|*]./
346446cb837SBram Moolenaarsyn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2
347446cb837SBram Moolenaar" This matches the documentation, but directly contradicts the code
348446cb837SBram Moolenaar" (according to the code, this should be identical to the
349446cb837SBram Moolenaar" muttrcPGPCmdFormatEscapes
350446cb837SBram Moolenaarsyn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/
351446cb837SBram Moolenaar" The following info was pulled from _mutt_fmt_smime_command in
352446cb837SBram Moolenaar" smime.c
353446cb837SBram Moolenaarsyn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/
354446cb837SBram Moolenaarsyn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2
355446cb837SBram Moolenaar
356446cb837SBram Moolenaarsyn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
357446cb837SBram Moolenaarsyn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
358446cb837SBram Moolenaarsyn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
359446cb837SBram Moolenaarsyn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
360446cb837SBram Moolenaarsyn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
361446cb837SBram Moolenaar
3629de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
3639de99979SBram Moolenaarsyn match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
3649de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
3659de99979SBram Moolenaarsyn match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr
3669de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
3679de99979SBram Moolenaarsyn match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr
3689de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
3699de99979SBram Moolenaarsyn match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr
3709de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite folder_format nextgroup=muttrcVarEqualsFolderFmt
3719de99979SBram Moolenaarsyn match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr
3729de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
3739de99979SBram Moolenaarsyn match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
3749de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
3759de99979SBram Moolenaarsyn match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
3769de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
3779de99979SBram Moolenaarsyn match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
3789de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite pgp_decode_command pgp_verify_command pgp_decrypt_command pgp_clearsign_command pgp_sign_command pgp_encrypt_sign_command pgp_encrypt_only_command pgp_import_command pgp_export_command pgp_verify_key_command pgp_list_secring_command pgp_list_pubring_command nextgroup=muttrcVarEqualsPGPCmdFmt
3799de99979SBram Moolenaarsyn match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
380e4a3bcf2SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
3819de99979SBram Moolenaarsyn match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
3829de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
3839de99979SBram Moolenaarsyn match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
3849de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite smime_decrypt_command smime_verify_command smime_verify_opaque_command smime_sign_command smime_sign_opaque_command smime_encrypt_command smime_pk7out_command smime_get_cert_command smime_get_signer_cert_command smime_import_cert_command smime_get_cert_email_command nextgroup=muttrcVarEqualsSmimeFmt
3859de99979SBram Moolenaarsyn match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
3869de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
3879de99979SBram Moolenaarsyn match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
388071d4279SBram Moolenaar
3899de99979SBram Moolenaarsyn match muttrcVPrefix		contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
3909de99979SBram Moolenaar
3919de99979SBram Moolenaarsyn match muttrcVarStr		contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
392e4a3bcf2SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite
393*0b0f0992SBram Moolenaar			\ abort_noattach_regexp alias_file assumed_charset attach_charset attach_sep
394*0b0f0992SBram Moolenaar			\ attribution_locale certificate_file charset config_charset content_type
395*0b0f0992SBram Moolenaar			\ default_hook display_filter dotlock_program dsn_notify dsn_return editor
396*0b0f0992SBram Moolenaar		        \ entropy_file envelope_from_address escape folder forw_format
397*0b0f0992SBram Moolenaar		        \ forward_attribution_intro forward_attribution_trailer forward_format from gecos_mask
398*0b0f0992SBram Moolenaar		        \ hdr_format header_cache header_cache_compress header_cache_pagesize history_file
399*0b0f0992SBram Moolenaar		        \ hostname imap_authenticators imap_delim_chars imap_headers imap_idle imap_login
400*0b0f0992SBram Moolenaar		        \ imap_pass imap_user indent_str indent_string ispell locale mailcap_path
401*0b0f0992SBram Moolenaar		        \ mark_macro_prefix mask mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied
402*0b0f0992SBram Moolenaar		        \ mh_seq_unseen mime_type_query_command mixmaster msg_format new_mail_command pager
403*0b0f0992SBram Moolenaar		        \ pgp_default_key pgp_decryption_okay pgp_good_sign pgp_mime_signature_description
404*0b0f0992SBram Moolenaar		        \ pgp_mime_signature_filename pgp_sign_as pgp_sort_keys pipe_sep pop_authenticators
405*0b0f0992SBram Moolenaar		        \ pop_host pop_pass pop_user post_indent_str post_indent_string postpone_encrypt_as
406*0b0f0992SBram Moolenaar		        \ postponed preconnect print_cmd print_command query_command quote_regexp realname
407*0b0f0992SBram Moolenaar		        \ record reply_regexp send_charset sendmail shell sidebar_delim sidebar_delim_chars
408e4a3bcf2SBram Moolenaar		        \ sidebar_divider_char sidebar_format sidebar_indent_string sidebar_sort_method
409e4a3bcf2SBram Moolenaar		        \ signature simple_search smileys smime_ca_location smime_certificates
410*0b0f0992SBram Moolenaar		        \ smime_default_key smime_encrypt_with smime_keys smime_sign_as smime_sign_digest_alg
411*0b0f0992SBram Moolenaar		        \ smtp_authenticators smtp_pass smtp_url sort sort_alias sort_aux sort_browser
412*0b0f0992SBram Moolenaar		        \ spam_separator spoolfile ssl_ca_certificates_file ssl_ciphers ssl_client_cert
413*0b0f0992SBram Moolenaar		        \ status_chars tmpdir to_chars trash ts_icon_format ts_status_format tunnel visual
414e4a3bcf2SBram Moolenaar			\ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
415f9393ef5SBram Moolenaar
416f9393ef5SBram Moolenaar" Present in 1.4.2.1 (pgp_create_traditional was a bool then)
4179de99979SBram Moolenaarsyn keyword muttrcVarBool	contained skipwhite imap_force_ssl noimap_force_ssl invimap_force_ssl nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
418f9393ef5SBram Moolenaar"syn keyword muttrcVarQuad	contained pgp_create_traditional nopgp_create_traditional invpgp_create_traditional
4199de99979SBram Moolenaarsyn keyword muttrcVarStr	contained skipwhite alternates nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
420071d4279SBram Moolenaar
421071d4279SBram Moolenaarsyn keyword muttrcMenu		contained alias attach browser compose editor index pager postpone pgp mix query generic
422f9393ef5SBram Moolenaarsyn match muttrcMenuList "\S\+" contained contains=muttrcMenu
423f9393ef5SBram Moolenaarsyn match muttrcMenuCommas /,/ contained
424071d4279SBram Moolenaar
4259de99979SBram Moolenaarsyn keyword muttrcHooks		contained skipwhite account-hook charset-hook iconv-hook message-hook folder-hook mbox-hook save-hook fcc-hook fcc-save-hook send-hook send2-hook reply-hook crypt-hook
4269de99979SBram Moolenaar
427e4a3bcf2SBram Moolenaarsyn keyword muttrcCommand	skipwhite
428e4a3bcf2SBram Moolenaar			\ alternative_order auto_view exec hdr_order iconv-hook ignore mailboxes
429e4a3bcf2SBram Moolenaar			\ mailto_allow mime_lookup my_hdr pgp-hook push score sidebar_whitelist source
430e4a3bcf2SBram Moolenaar			\ unalternative_order unalternative_order unauto_view ungroup unhdr_order
431e4a3bcf2SBram Moolenaar			\ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore
432*0b0f0992SBram Moolenaar			\ unsidebar_whitelist
4339de99979SBram Moolenaarsyn keyword muttrcCommand	skipwhite charset-hook nextgroup=muttrcRXString
4349de99979SBram Moolenaarsyn keyword muttrcCommand	skipwhite unhook nextgroup=muttrcHooks
435f9393ef5SBram Moolenaar
4369de99979SBram Moolenaarsyn keyword muttrcCommand 	skipwhite spam nextgroup=muttrcSpamPattern
4379de99979SBram Moolenaarsyn region muttrcSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
4389de99979SBram Moolenaarsyn region muttrcSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
4399de99979SBram Moolenaar
4409de99979SBram Moolenaarsyn keyword muttrcCommand 	skipwhite nospam nextgroup=muttrcNoSpamPattern
4419de99979SBram Moolenaarsyn region muttrcNoSpamPattern	contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
4429de99979SBram Moolenaarsyn region muttrcNoSpamPattern	contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
4439964e468SBram Moolenaar
444f9393ef5SBram Moolenaarsyn match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
445f9393ef5SBram Moolenaarsyn match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
446f9393ef5SBram Moolenaarsyn match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
447f9393ef5SBram Moolenaar
448f9393ef5SBram Moolenaarsyn match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
449f9393ef5SBram Moolenaar
4509de99979SBram Moolenaarsyn keyword muttrcAsterisk	contained *
4519de99979SBram Moolenaarsyn keyword muttrcListsKeyword	lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
4529de99979SBram Moolenaarsyn keyword muttrcListsKeyword	unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
453f9393ef5SBram Moolenaar
4549de99979SBram Moolenaarsyn keyword muttrcSubscribeKeyword	subscribe nextgroup=muttrcGroupDef,muttrcComment
4559de99979SBram Moolenaarsyn keyword muttrcSubscribeKeyword	unsubscribe nextgroup=muttrcAsterisk,muttrcComment
456f9393ef5SBram Moolenaar
457f9393ef5SBram Moolenaarsyn keyword muttrcAlternateKeyword contained alternates unalternates
458f9393ef5SBram Moolenaarsyn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
459f9393ef5SBram Moolenaar
460b8ff1fb5SBram Moolenaar" muttrcVariable includes a prefix because partial strings are considered
461b8ff1fb5SBram Moolenaar" valid.
462b8ff1fb5SBram Moolenaarsyn match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
463b8ff1fb5SBram Moolenaarsyn match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
4649de99979SBram Moolenaarsyn match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"
465f9393ef5SBram Moolenaar
466f9393ef5SBram Moolenaarsyn match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
467*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|mark\|parent\|pipe\|postpone\|print\|purge\|recall\|resend\|root\|save\|send\|tag\|undelete\)-message\>"
4689de99979SBram Moolenaarsyn match muttrcFunction	contained "\<\%(delete\|next\|previous\|read\|tag\|break\|undelete\)-thread\>"
4699de99979SBram Moolenaarsyn match muttrcFunction	contained "\<link-threads\>"
470f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>"
471f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>"
472f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<attach-\%(file\|key\)\>"
473f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<change-\%(dir\|folder\|folder-readonly\)\>"
474f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<check-\%(new\|traditional-pgp\)\>"
475f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<current-\%(bottom\|middle\|top\)\>"
476f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<decode-\%(copy\|save\)\>"
477f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<delete-\%(char\|pattern\|subthread\)\>"
478f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<display-\%(address\|toggle-weed\)\>"
479*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<echo\>"
480*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|label\|mime\|reply-to\|subject\|to\|type\)\)\?\>"
481f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<enter-\%(command\|mask\)\>"
482*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<error-history\>"
483f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<half-\%(up\|down\)\>"
484*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<history-\%(up\|down\|search\)\>"
485f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<kill-\%(eol\|eow\|line\)\>"
4869de99979SBram Moolenaarsyn match muttrcFunction	contained "\<next-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\|unread-mailbox\)\>"
4879de99979SBram Moolenaarsyn match muttrcFunction	contained "\<previous-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\)\>"
488f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<search\%(-\%(next\|opposite\|reverse\|toggle\)\)\?\>"
489f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<show-\%(limit\|version\)\>"
490f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<sort-\%(mailbox\|reverse\)\>"
4919de99979SBram Moolenaarsyn match muttrcFunction	contained "\<tag-\%(pattern\|\%(sub\)\?thread\|prefix\%(-cond\)\?\)\>"
4929de99979SBram Moolenaarsyn match muttrcFunction	contained "\<end-cond\>"
493e4a3bcf2SBram Moolenaarsyn match muttrcFunction	contained "\<sidebar-\%(next\|next-new\|open\|page-down\|page-up\|prev\|prev-new\|toggle-visible\)\>"
494f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<toggle-\%(mailboxes\|new\|quoted\|subscribed\|unlink\|write\)\>"
495f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<undelete-\%(pattern\|subthread\)\>"
496f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<collapse-\%(parts\|thread\|all\)\>"
497*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<rename-attachment\>"
498*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<subjectrx\>"
499*0b0f0992SBram Moolenaarsyn match muttrcFunction	contained "\<\%(un\)\?setenv\>"
500f9393ef5SBram Moolenaarsyn match muttrcFunction	contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>"
5019964e468SBram Moolenaarsyn match muttrcFunction	contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|clear-flag\|complete\%(-query\)\?\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>"
502e4a3bcf2SBram Moolenaarsyn keyword muttrcFunction	contained imap-logout-all
503b8ff1fb5SBram Moolenaarif use_mutt_sidebar == 1
504b8ff1fb5SBram Moolenaar    syn match muttrcFunction    contained "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
505b8ff1fb5SBram Moolenaarendif
506f9393ef5SBram Moolenaarsyn match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
507071d4279SBram Moolenaar
5089de99979SBram Moolenaarsyn keyword muttrcCommand	set     skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
5099de99979SBram Moolenaarsyn keyword muttrcCommand	unset   skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
5109de99979SBram Moolenaarsyn keyword muttrcCommand	reset   skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
5119de99979SBram Moolenaarsyn keyword muttrcCommand	toggle  skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
512071d4279SBram Moolenaar
513f9393ef5SBram Moolenaar" First, functions that take regular expressions:
5149de99979SBram Moolenaarsyn match  muttrcRXHookNot	contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
5159de99979SBram Moolenaarsyn match  muttrcRXHooks	/\<\%(account\|folder\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
516071d4279SBram Moolenaar
517f9393ef5SBram Moolenaar" Now, functions that take patterns
518f9393ef5SBram Moolenaarsyn match muttrcPatHookNot	contained /!\s*/ skipwhite nextgroup=muttrcPattern
5199de99979SBram Moolenaarsyn match muttrcPatHooks	/\<\%(mbox\|crypt\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
5209de99979SBram Moolenaarsyn match muttrcPatHooks	/\<\%(message\|reply\|send\|send2\|save\|\|fcc\%(-save\)\?\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
521071d4279SBram Moolenaar
5229de99979SBram Moolenaarsyn match muttrcBindFunction	contained /\S\+\>/ skipwhite contains=muttrcFunction
523f9393ef5SBram Moolenaarsyn match muttrcBindFunctionNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
524f9393ef5SBram Moolenaarsyn match muttrcBindKey		contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
525f9393ef5SBram Moolenaarsyn match muttrcBindKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
526f9393ef5SBram Moolenaarsyn match muttrcBindMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
527f9393ef5SBram Moolenaarsyn match muttrcBindMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
5289de99979SBram Moolenaarsyn keyword muttrcCommand	skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
529f9393ef5SBram Moolenaar
5309964e468SBram Moolenaarsyn region muttrcMacroDescr	contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
5319964e468SBram Moolenaarsyn region muttrcMacroDescr	contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
5329964e468SBram Moolenaarsyn region muttrcMacroDescr	contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
5339964e468SBram Moolenaarsyn match muttrcMacroDescrNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
5349964e468SBram Moolenaarsyn region muttrcMacroBody	contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
5359de99979SBram Moolenaarsyn 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
5369de99979SBram Moolenaarsyn 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
5379964e468SBram Moolenaarsyn match muttrcMacroBodyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
5389964e468SBram Moolenaarsyn match muttrcMacroKey	contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
539f9393ef5SBram Moolenaarsyn match muttrcMacroKeyNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
540f9393ef5SBram Moolenaarsyn match muttrcMacroMenuList	contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
541f9393ef5SBram Moolenaarsyn match muttrcMacroMenuListNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
5429de99979SBram Moolenaarsyn keyword muttrcCommand	skipwhite macro	nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
543f9393ef5SBram Moolenaar
544f9393ef5SBram Moolenaarsyn match muttrcAddrContent	contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
545f9393ef5SBram Moolenaarsyn region muttrcAddrContent	contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
546f9393ef5SBram Moolenaarsyn region muttrcAddrContent	contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
547f9393ef5SBram Moolenaarsyn match muttrcAddrDef 	contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
548f9393ef5SBram Moolenaar
549f9393ef5SBram Moolenaarsyn match muttrcGroupFlag	contained "-group"
550f9393ef5SBram Moolenaarsyn region muttrcGroupDef	contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
551f9393ef5SBram Moolenaar
552f9393ef5SBram Moolenaarsyn keyword muttrcGroupKeyword	contained group ungroup
553f9393ef5SBram Moolenaarsyn region muttrcGroupLine	keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
554f9393ef5SBram Moolenaar
5559964e468SBram Moolenaarsyn match muttrcAliasGroupName	contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
556f9393ef5SBram Moolenaarsyn match muttrcAliasGroupDefNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
557f9393ef5SBram Moolenaarsyn match muttrcAliasGroupDef	contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
5589964e468SBram Moolenaarsyn match muttrcAliasComma	contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
5599964e468SBram Moolenaarsyn match muttrcAliasEmail	contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
5609964e468SBram Moolenaarsyn match muttrcAliasEncEmail	contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
561f9393ef5SBram Moolenaarsyn match muttrcAliasEncEmailNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
562f9393ef5SBram Moolenaarsyn match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
563f9393ef5SBram Moolenaarsyn region muttrcAliasName	contained matchgroup=Type start=/(/ end=/)/ skipwhite
564f9393ef5SBram Moolenaarsyn match muttrcAliasNameNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
5659964e468SBram Moolenaarsyn match muttrcAliasENNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
5669964e468SBram Moolenaarsyn match muttrcAliasKey	contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
5679964e468SBram Moolenaarsyn match muttrcAliasNL		contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
5689de99979SBram Moolenaarsyn keyword muttrcCommand	skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
569f9393ef5SBram Moolenaar
5709964e468SBram Moolenaarsyn match muttrcUnAliasKey	contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
5719964e468SBram Moolenaarsyn match muttrcUnAliasNL	contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
5729de99979SBram Moolenaarsyn keyword muttrcCommand	skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
573f9393ef5SBram Moolenaar
574f9393ef5SBram Moolenaarsyn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
5759de99979SBram Moolenaarsyn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
5769de99979SBram Moolenaarsyn 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
5779de99979SBram Moolenaarsyn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
5789de99979SBram Moolenaarsyn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
579b8ff1fb5SBram Moolenaarsyn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
580446cb837SBram Moolenaarsyn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
5819de99979SBram Moolenaar"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
5829964e468SBram Moolenaarsyn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
5839964e468SBram Moolenaarsyn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
5849de99979SBram Moolenaarsyn region muttrcSimplePatString contained keepend start=+[^ 	"']+ skip=+\\ + end=+\s+re=e-1
5859de99979SBram Moolenaarsyn region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
5869de99979SBram Moolenaarsyn region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
5879de99979SBram Moolenaarsyn region muttrcSimplePatRXContainer contained keepend start=+[^ 	"']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
588f9393ef5SBram Moolenaarsyn match muttrcSimplePatMetas contained /[(|)]/
589f9393ef5SBram Moolenaar
5909de99979SBram Moolenaarsyn match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
5919de99979SBram Moolenaarsyn match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
5929de99979SBram Moolenaarsyn region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
5939de99979SBram Moolenaarsyn region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
5949de99979SBram Moolenaarsyn region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
5959de99979SBram Moolenaarsyn match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
5969de99979SBram Moolenaarsyn match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
5979de99979SBram Moolenaar" Keep muttrcPattern and muttrcOptPattern synchronized
5989de99979SBram Moolenaarsyn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
5999de99979SBram Moolenaarsyn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
6009de99979SBram Moolenaarsyn region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
601*0b0f0992SBram Moolenaarsyn region muttrcPattern contained keepend skipwhite start=+[~][<>](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
6029de99979SBram Moolenaarsyn match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
6039de99979SBram Moolenaarsyn match muttrcPattern contained skipwhite /[.]/
604f9393ef5SBram Moolenaarsyn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
605f9393ef5SBram Moolenaarsyn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
606071d4279SBram Moolenaar
607071d4279SBram Moolenaar" Colour definitions takes object, foreground and background arguments (regexps excluded).
608f9393ef5SBram Moolenaarsyn match muttrcColorMatchCount	contained "[0-9]\+"
609f9393ef5SBram Moolenaarsyn match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
6109964e468SBram Moolenaarsyn region muttrcColorRXPat	contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
6119964e468SBram Moolenaarsyn region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
612e4a3bcf2SBram Moolenaarsyn keyword muttrcColorField	skipwhite contained
613e4a3bcf2SBram Moolenaar			\ attachment body bold error hdrdefault header index indicator markers message
614e4a3bcf2SBram Moolenaar			\ normal prompt quoted search sidebar-divider sidebar-flagged sidebar-highlight
615e4a3bcf2SBram Moolenaar			\ sidebar-indicator sidebar-new sidebar-spoolfile signature status tilde tree
616e4a3bcf2SBram Moolenaar			\ underline
617071d4279SBram Moolenaarsyn match   muttrcColorField	contained "\<quoted\d\=\>"
618b8ff1fb5SBram Moolenaarif use_mutt_sidebar == 1
619b8ff1fb5SBram Moolenaar    syn keyword muttrcColorField contained sidebar_new
620b8ff1fb5SBram Moolenaarendif
621f9393ef5SBram Moolenaarsyn keyword muttrcColor	contained black blue cyan default green magenta red white yellow
622f9393ef5SBram Moolenaarsyn keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
623b8ff1fb5SBram Moolenaarsyn match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
624f9393ef5SBram Moolenaar" Now for the structure of the color line
6259964e468SBram Moolenaarsyn match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
6269964e468SBram Moolenaarsyn match muttrcColorBG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
6279964e468SBram Moolenaarsyn match muttrcColorBGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
6289964e468SBram Moolenaarsyn match muttrcColorFG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
6299964e468SBram Moolenaarsyn match muttrcColorFGNL	contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
6309964e468SBram Moolenaarsyn match muttrcColorContext 	contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorFG,muttrcColorFGNL
6319964e468SBram Moolenaarsyn match muttrcColorNL 	contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL
6329964e468SBram Moolenaarsyn match muttrcColorKeyword	contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL
6339de99979SBram Moolenaarsyn region muttrcColorLine keepend start=/^\s*color\s\+\%(index\|header\)\@!/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
634f9393ef5SBram Moolenaar" Now for the structure of the color index line
6359964e468SBram Moolenaarsyn match muttrcPatternNL	contained skipnl "\s*\\$" nextgroup=muttrcPattern,muttrcPatternNL
6369964e468SBram Moolenaarsyn match muttrcColorBGI	contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcPattern,muttrcPatternNL
6379964e468SBram Moolenaarsyn match muttrcColorBGNLI	contained skipnl "\s*\\$" nextgroup=muttrcColorBGI,muttrcColorBGNLI
6389964e468SBram Moolenaarsyn match muttrcColorFGI	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGI,muttrcColorBGNLI
6399964e468SBram Moolenaarsyn match muttrcColorFGNLI	contained skipnl "\s*\\$" nextgroup=muttrcColorFGI,muttrcColorFGNLI
6409de99979SBram Moolenaarsyn match muttrcColorContextI	contained /\s*\<index\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGI,muttrcColorFGNLI
6419964e468SBram Moolenaarsyn match muttrcColorNLI	contained skipnl "\s*\\$" nextgroup=muttrcColorContextI,muttrcColorNLI
6429de99979SBram Moolenaarsyn match muttrcColorKeywordI	contained skipwhite /\<color\>/ nextgroup=muttrcColorContextI,muttrcColorNLI
6439de99979SBram Moolenaarsyn region muttrcColorLine keepend skipwhite start=/\<color\s\+index\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordI,muttrcComment,muttrcUnHighlightSpace
6449de99979SBram Moolenaar" Now for the structure of the color header line
6459de99979SBram Moolenaarsyn match muttrcRXPatternNL	contained skipnl "\s*\\$" nextgroup=muttrcRXString,muttrcRXPatternNL
6469de99979SBram Moolenaarsyn match muttrcColorBGH	contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcRXString,muttrcRXPatternNL
6479de99979SBram Moolenaarsyn match muttrcColorBGNLH	contained skipnl "\s*\\$" nextgroup=muttrcColorBGH,muttrcColorBGNLH
6489de99979SBram Moolenaarsyn match muttrcColorFGH	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGH,muttrcColorBGNLH
6499de99979SBram Moolenaarsyn match muttrcColorFGNLH	contained skipnl "\s*\\$" nextgroup=muttrcColorFGH,muttrcColorFGNLH
6509de99979SBram Moolenaarsyn match muttrcColorContextH	contained /\s*\<header\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGH,muttrcColorFGNLH
6519de99979SBram Moolenaarsyn match muttrcColorNLH	contained skipnl "\s*\\$" nextgroup=muttrcColorContextH,muttrcColorNLH
6529de99979SBram Moolenaarsyn match muttrcColorKeywordH	contained skipwhite /\<color\>/ nextgroup=muttrcColorContextH,muttrcColorNLH
6539de99979SBram Moolenaarsyn region muttrcColorLine keepend skipwhite start=/\<color\s\+header\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordH,muttrcComment,muttrcUnHighlightSpace
654f9393ef5SBram Moolenaar" And now color's brother:
655f9393ef5SBram Moolenaarsyn region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
656f9393ef5SBram Moolenaarsyn region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
657f9393ef5SBram Moolenaarsyn match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
658f9393ef5SBram Moolenaarsyn match muttrcUnColorPatNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
659f9393ef5SBram Moolenaarsyn match muttrcUnColorAll	contained skipwhite /[*]/
660f9393ef5SBram Moolenaarsyn match muttrcUnColorAPNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
661f9393ef5SBram Moolenaarsyn match muttrcUnColorIndex	contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
662f9393ef5SBram Moolenaarsyn match muttrcUnColorIndexNL	contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
663f9393ef5SBram Moolenaarsyn match muttrcUnColorKeyword	contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
664f9393ef5SBram Moolenaarsyn region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
665071d4279SBram Moolenaar
666071d4279SBram Moolenaar" Mono are almost like color (ojects inherited from color)
667071d4279SBram Moolenaarsyn keyword muttrcMonoAttrib	contained bold none normal reverse standout underline
668071d4279SBram Moolenaarsyn keyword muttrcMono		contained mono		skipwhite nextgroup=muttrcColorField
669071d4279SBram Moolenaarsyn match   muttrcMonoLine	"^\s*mono\s\+\S\+"	skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
670071d4279SBram Moolenaar
671071d4279SBram Moolenaar" Define the default highlighting.
67289bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
673071d4279SBram Moolenaar
674f37506f6SBram Moolenaarhi def link muttrcComment		Comment
675f37506f6SBram Moolenaarhi def link muttrcEscape		SpecialChar
676f37506f6SBram Moolenaarhi def link muttrcRXChars		SpecialChar
677f37506f6SBram Moolenaarhi def link muttrcString		String
678f37506f6SBram Moolenaarhi def link muttrcRXString		String
679f37506f6SBram Moolenaarhi def link muttrcRXString2	String
680f37506f6SBram Moolenaarhi def link muttrcSpecial		Special
681f37506f6SBram Moolenaarhi def link muttrcHooks		Type
682f37506f6SBram Moolenaarhi def link muttrcGroupFlag	Type
683f37506f6SBram Moolenaarhi def link muttrcGroupDef		Macro
684f37506f6SBram Moolenaarhi def link muttrcAddrDef		muttrcGroupFlag
685f37506f6SBram Moolenaarhi def link muttrcRXDef		muttrcGroupFlag
686f37506f6SBram Moolenaarhi def link muttrcRXPat		String
687f37506f6SBram Moolenaarhi def link muttrcAliasGroupName	Macro
688f37506f6SBram Moolenaarhi def link muttrcAliasKey	        Identifier
689f37506f6SBram Moolenaarhi def link muttrcUnAliasKey	Identifier
690f37506f6SBram Moolenaarhi def link muttrcAliasEncEmail	Identifier
691f37506f6SBram Moolenaarhi def link muttrcAliasParens	Type
692f37506f6SBram Moolenaarhi def link muttrcSetNumAssignment	Number
693f37506f6SBram Moolenaarhi def link muttrcSetBoolAssignment	Boolean
694f37506f6SBram Moolenaarhi def link muttrcSetQuadAssignment	Boolean
695f37506f6SBram Moolenaarhi def link muttrcSetStrAssignment	String
696f37506f6SBram Moolenaarhi def link muttrcEmail		Special
697f37506f6SBram Moolenaarhi def link muttrcVariableInner	Special
698f37506f6SBram Moolenaarhi def link muttrcEscapedVariable	String
699f37506f6SBram Moolenaarhi def link muttrcHeader		Type
700f37506f6SBram Moolenaarhi def link muttrcKeySpecial	SpecialChar
701f37506f6SBram Moolenaarhi def link muttrcKey		Type
702f37506f6SBram Moolenaarhi def link muttrcKeyName		SpecialChar
703f37506f6SBram Moolenaarhi def link muttrcVarBool		Identifier
704f37506f6SBram Moolenaarhi def link muttrcVarQuad		Identifier
705f37506f6SBram Moolenaarhi def link muttrcVarNum		Identifier
706f37506f6SBram Moolenaarhi def link muttrcVarStr		Identifier
707f37506f6SBram Moolenaarhi def link muttrcMenu		Identifier
708f37506f6SBram Moolenaarhi def link muttrcCommand		Keyword
709f37506f6SBram Moolenaarhi def link muttrcMacroDescr	String
710f37506f6SBram Moolenaarhi def link muttrcAction		Macro
711f37506f6SBram Moolenaarhi def link muttrcBadAction	Error
712f37506f6SBram Moolenaarhi def link muttrcBindFunction	Error
713f37506f6SBram Moolenaarhi def link muttrcBindMenuList	Error
714f37506f6SBram Moolenaarhi def link muttrcFunction		Macro
715f37506f6SBram Moolenaarhi def link muttrcGroupKeyword	muttrcCommand
716f37506f6SBram Moolenaarhi def link muttrcGroupLine	Error
717f37506f6SBram Moolenaarhi def link muttrcSubscribeKeyword	muttrcCommand
718f37506f6SBram Moolenaarhi def link muttrcSubscribeLine	Error
719f37506f6SBram Moolenaarhi def link muttrcListsKeyword	muttrcCommand
720f37506f6SBram Moolenaarhi def link muttrcListsLine	Error
721f37506f6SBram Moolenaarhi def link muttrcAlternateKeyword	muttrcCommand
722f37506f6SBram Moolenaarhi def link muttrcAlternatesLine	Error
723f37506f6SBram Moolenaarhi def link muttrcAttachmentsLine	muttrcCommand
724f37506f6SBram Moolenaarhi def link muttrcAttachmentsFlag	Type
725f37506f6SBram Moolenaarhi def link muttrcAttachmentsMimeType	String
726f37506f6SBram Moolenaarhi def link muttrcColorLine	Error
727f37506f6SBram Moolenaarhi def link muttrcColorContext	Error
728f37506f6SBram Moolenaarhi def link muttrcColorContextI	Identifier
729f37506f6SBram Moolenaarhi def link muttrcColorContextH	Identifier
730f37506f6SBram Moolenaarhi def link muttrcColorKeyword	muttrcCommand
731f37506f6SBram Moolenaarhi def link muttrcColorKeywordI	muttrcColorKeyword
732f37506f6SBram Moolenaarhi def link muttrcColorKeywordH	muttrcColorKeyword
733f37506f6SBram Moolenaarhi def link muttrcColorField	Identifier
734f37506f6SBram Moolenaarhi def link muttrcColor		Type
735f37506f6SBram Moolenaarhi def link muttrcColorFG		Error
736f37506f6SBram Moolenaarhi def link muttrcColorFGI		Error
737f37506f6SBram Moolenaarhi def link muttrcColorFGH		Error
738f37506f6SBram Moolenaarhi def link muttrcColorBG		Error
739f37506f6SBram Moolenaarhi def link muttrcColorBGI		Error
740f37506f6SBram Moolenaarhi def link muttrcColorBGH		Error
741f37506f6SBram Moolenaarhi def link muttrcMonoAttrib	muttrcColor
742f37506f6SBram Moolenaarhi def link muttrcMono		muttrcCommand
743f37506f6SBram Moolenaarhi def link muttrcSimplePat	Identifier
744f37506f6SBram Moolenaarhi def link muttrcSimplePatString	Macro
745f37506f6SBram Moolenaarhi def link muttrcSimplePatMetas	Special
746f37506f6SBram Moolenaarhi def link muttrcPattern		Error
747f37506f6SBram Moolenaarhi def link muttrcUnColorLine	Error
748f37506f6SBram Moolenaarhi def link muttrcUnColorKeyword	muttrcCommand
749f37506f6SBram Moolenaarhi def link muttrcUnColorIndex	Identifier
750f37506f6SBram Moolenaarhi def link muttrcShellString	muttrcEscape
751f37506f6SBram Moolenaarhi def link muttrcRXHooks		muttrcCommand
752f37506f6SBram Moolenaarhi def link muttrcRXHookNot	Type
753f37506f6SBram Moolenaarhi def link muttrcPatHooks		muttrcCommand
754f37506f6SBram Moolenaarhi def link muttrcPatHookNot	Type
755f37506f6SBram Moolenaarhi def link muttrcFormatConditionals2 Type
756f37506f6SBram Moolenaarhi def link muttrcIndexFormatStr	muttrcString
757f37506f6SBram Moolenaarhi def link muttrcIndexFormatEscapes muttrcEscape
758f37506f6SBram Moolenaarhi def link muttrcIndexFormatConditionals muttrcFormatConditionals2
759f37506f6SBram Moolenaarhi def link muttrcAliasFormatStr	muttrcString
760f37506f6SBram Moolenaarhi def link muttrcAliasFormatEscapes muttrcEscape
761f37506f6SBram Moolenaarhi def link muttrcAttachFormatStr	muttrcString
762f37506f6SBram Moolenaarhi def link muttrcAttachFormatEscapes muttrcEscape
763f37506f6SBram Moolenaarhi def link muttrcAttachFormatConditionals muttrcFormatConditionals2
764f37506f6SBram Moolenaarhi def link muttrcComposeFormatStr	muttrcString
765f37506f6SBram Moolenaarhi def link muttrcComposeFormatEscapes muttrcEscape
766f37506f6SBram Moolenaarhi def link muttrcFolderFormatStr	muttrcString
767f37506f6SBram Moolenaarhi def link muttrcFolderFormatEscapes muttrcEscape
768f37506f6SBram Moolenaarhi def link muttrcFolderFormatConditionals muttrcFormatConditionals2
769f37506f6SBram Moolenaarhi def link muttrcMixFormatStr	muttrcString
770f37506f6SBram Moolenaarhi def link muttrcMixFormatEscapes muttrcEscape
771f37506f6SBram Moolenaarhi def link muttrcMixFormatConditionals muttrcFormatConditionals2
772f37506f6SBram Moolenaarhi def link muttrcPGPFormatStr	muttrcString
773f37506f6SBram Moolenaarhi def link muttrcPGPFormatEscapes muttrcEscape
774f37506f6SBram Moolenaarhi def link muttrcPGPFormatConditionals muttrcFormatConditionals2
775f37506f6SBram Moolenaarhi def link muttrcPGPCmdFormatStr	muttrcString
776f37506f6SBram Moolenaarhi def link muttrcPGPCmdFormatEscapes muttrcEscape
777f37506f6SBram Moolenaarhi def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
778f37506f6SBram Moolenaarhi def link muttrcStatusFormatStr	muttrcString
779f37506f6SBram Moolenaarhi def link muttrcStatusFormatEscapes muttrcEscape
780f37506f6SBram Moolenaarhi def link muttrcStatusFormatConditionals muttrcFormatConditionals2
781f37506f6SBram Moolenaarhi def link muttrcPGPGetKeysFormatStr	muttrcString
782f37506f6SBram Moolenaarhi def link muttrcPGPGetKeysFormatEscapes muttrcEscape
783f37506f6SBram Moolenaarhi def link muttrcSmimeFormatStr	muttrcString
784f37506f6SBram Moolenaarhi def link muttrcSmimeFormatEscapes muttrcEscape
785f37506f6SBram Moolenaarhi def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
786f37506f6SBram Moolenaarhi def link muttrcTimeEscapes	muttrcEscape
787f37506f6SBram Moolenaarhi def link muttrcPGPTimeEscapes	muttrcEscape
788f37506f6SBram Moolenaarhi def link muttrcStrftimeEscapes	Type
789f37506f6SBram Moolenaarhi def link muttrcStrftimeFormatStr muttrcString
790f37506f6SBram Moolenaarhi def link muttrcFormatErrors Error
791071d4279SBram Moolenaar
792f37506f6SBram Moolenaarhi def link muttrcBindFunctionNL	SpecialChar
793f37506f6SBram Moolenaarhi def link muttrcBindKeyNL	SpecialChar
794f37506f6SBram Moolenaarhi def link muttrcBindMenuListNL	SpecialChar
795f37506f6SBram Moolenaarhi def link muttrcMacroDescrNL	SpecialChar
796f37506f6SBram Moolenaarhi def link muttrcMacroBodyNL	SpecialChar
797f37506f6SBram Moolenaarhi def link muttrcMacroKeyNL	SpecialChar
798f37506f6SBram Moolenaarhi def link muttrcMacroMenuListNL	SpecialChar
799f37506f6SBram Moolenaarhi def link muttrcColorMatchCountNL SpecialChar
800f37506f6SBram Moolenaarhi def link muttrcColorNL		SpecialChar
801f37506f6SBram Moolenaarhi def link muttrcColorRXNL	SpecialChar
802f37506f6SBram Moolenaarhi def link muttrcColorBGNL	SpecialChar
803f37506f6SBram Moolenaarhi def link muttrcColorFGNL	SpecialChar
804f37506f6SBram Moolenaarhi def link muttrcAliasNameNL	SpecialChar
805f37506f6SBram Moolenaarhi def link muttrcAliasENNL	SpecialChar
806f37506f6SBram Moolenaarhi def link muttrcAliasNL		SpecialChar
807f37506f6SBram Moolenaarhi def link muttrcUnAliasNL	SpecialChar
808f37506f6SBram Moolenaarhi def link muttrcAliasGroupDefNL	SpecialChar
809f37506f6SBram Moolenaarhi def link muttrcAliasEncEmailNL	SpecialChar
810f37506f6SBram Moolenaarhi def link muttrcPatternNL	SpecialChar
811f37506f6SBram Moolenaarhi def link muttrcUnColorPatNL	SpecialChar
812f37506f6SBram Moolenaarhi def link muttrcUnColorAPNL	SpecialChar
813f37506f6SBram Moolenaarhi def link muttrcUnColorIndexNL	SpecialChar
814f37506f6SBram Moolenaarhi def link muttrcStringNL		SpecialChar
8159964e468SBram Moolenaar
816071d4279SBram Moolenaar
817071d4279SBram Moolenaarlet b:current_syntax = "muttrc"
818071d4279SBram Moolenaar
819b8ff1fb5SBram Moolenaarlet &cpo = s:cpo_save
820b8ff1fb5SBram Moolenaarunlet s:cpo_save
821446cb837SBram Moolenaar"EOF	vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim
822