blob: e4395fdf59b04db244a986be24b2e3e3bc9a60ed [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Mutt setup files
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00003" Original: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
4" Maintainer: Kyle Wheeler <kyle-muttrc.vim@memoryhole.net>
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +02005" Last Change: 18 August 2016
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +02007" This file covers mutt version 1.7.0
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02009" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010014let s:cpo_save = &cpo
15set cpo&vim
16
Bram Moolenaar071d4272004-06-13 20:20:40 +000017" Set the keyword characters
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020018setlocal isk=@,48-57,_,-
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010020" handling optional variables
21if !exists("use_mutt_sidebar")
22 let use_mutt_sidebar=0
23endif
24
Bram Moolenaar9964e462007-05-05 17:54:07 +000025syn match muttrcComment "^# .*$" contains=@Spell
26syn match muttrcComment "^#[^ ].*$"
27syn match muttrcComment "^#$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000028syn match muttrcComment "[^\\]#.*$"lc=1
29
30" Escape sequences (back-tick and pipe goes here too)
Bram Moolenaar9964e462007-05-05 17:54:07 +000031syn match muttrcEscape +\\[#tnr"'Cc ]+
Bram Moolenaar071d4272004-06-13 20:20:40 +000032syn match muttrcEscape +[`|]+
Bram Moolenaar446cb832008-06-24 21:56:24 +000033syn match muttrcEscape +\\$+
Bram Moolenaar071d4272004-06-13 20:20:40 +000034
35" The variables takes the following arguments
Bram Moolenaar9de99972010-08-09 22:33:06 +020036"syn match muttrcString contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
37syn region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
38syn region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
39syn match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000040
Bram Moolenaar9de99972010-08-09 22:33:06 +020041syn region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000042
43syn match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1
44syn match muttrcRXChars contained /[][|()][.*?+]*/
Bram Moolenaar446cb832008-06-24 21:56:24 +000045syn match muttrcRXChars contained /['"]^/ms=s+1
46syn match muttrcRXChars contained /$['"]/me=e-1
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000047syn match muttrcRXChars contained /\\/
Bram Moolenaar9964e462007-05-05 17:54:07 +000048" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
Bram Moolenaar9de99972010-08-09 22:33:06 +020049syn region muttrcRXString contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
50syn region muttrcRXString contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
51syn region muttrcRXString contained skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
52" For some reason, skip refuses to match backslashes here...
53syn region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
54syn region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
55syn region muttrcRXString2 contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
56syn region muttrcRXString2 contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000057
Bram Moolenaar9de99972010-08-09 22:33:06 +020058" these must be kept synchronized with muttrcRXString, but are intended for
59" muttrcRXHooks
60syn region muttrcRXHookString contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
61syn region muttrcRXHookString contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
62syn region muttrcRXHookString contained keepend skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
63syn region muttrcRXHookString contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
64syn region muttrcRXHookString contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
65syn match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
66
67" these are exclusively for args lists (e.g. -rx pat pat pat ...)
68syn region muttrcRXPat contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
69syn region muttrcRXPat contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
70syn match muttrcRXPat contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000071syn match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
73syn match muttrcSpecial +\(['"]\)!\1+
74
Bram Moolenaar9de99972010-08-09 22:33:06 +020075syn match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
76syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
77syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
78syn match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
79syn match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
80syn match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
81syn match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
82syn match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
83syn match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
84syn match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
85syn match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
86syn match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
87syn match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
88syn match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
89syn match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +000090
91" Now catch some email addresses and headers (purified version from mail.vim)
92syn match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +020093syn match muttrcHeader "\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
Bram Moolenaar071d4272004-06-13 20:20:40 +000094
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000095syn match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
96syn match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName
97syn region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName
98syn region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName
99syn match muttrcKeyName contained "\<f\%(\d\|10\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000100syn match muttrcKeyName contained "\\[trne]"
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100101syn match muttrcKeyName contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
Bram Moolenaarc236c162008-07-13 17:41:49 +0000102syn match muttrcKeyName contained "<F[0-9]\+>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200104syn keyword muttrcVarBool skipwhite contained
105 \ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split
106 \ auto_tag autoedit beep beep_new bounce_delivered braille_friendly
107 \ check_mbox_size check_new collapse_unread confirmappend confirmcreate
108 \ crypt_autoencrypt crypt_autopgp crypt_autosign crypt_autosmime
109 \ crypt_confirmhook crypt_opportunistic_encrypt crypt_replyencrypt
110 \ crypt_replysign crypt_replysignencrypted crypt_timestamp crypt_use_gpgme
111 \ crypt_use_pka delete_untag digest_collapse duplicate_threads edit_hdrs
112 \ edit_headers encode_from envelope_from fast_reply fcc_clear followup_to
113 \ force_name forw_decode forw_decrypt forw_quote forward_decode forward_decrypt
114 \ forward_quote hdrs header help hidden_host hide_limited hide_missing
115 \ hide_thread_subject hide_top_limited hide_top_missing honor_disposition
116 \ idn_decode idn_encode ignore_linear_white_space ignore_list_reply_to
117 \ imap_check_subscribed imap_list_subscribed imap_passive imap_peek
118 \ imap_servernoise implicit_autoview include_onlyfirst keep_flagged
119 \ mail_check_recent mail_check_stats mailcap_sanitize maildir_check_cur
120 \ maildir_header_cache_verify maildir_trash mark_old markers menu_move_off
121 \ menu_scroll message_cache_clean meta_key metoo mh_purge mime_forward_decode
122 \ narrow_tree pager_stop pgp_auto_decode pgp_auto_traditional pgp_autoencrypt
123 \ pgp_autoinline pgp_autosign pgp_check_exit pgp_create_traditional
124 \ pgp_ignore_subkeys pgp_long_ids pgp_replyencrypt pgp_replyinline pgp_replysign
125 \ pgp_replysignencrypted pgp_retainable_sigs pgp_show_unusable pgp_strict_enc
126 \ pgp_use_gpg_agent pipe_decode pipe_split pop_auth_try_all pop_last
127 \ postpone_encrypt postpone_encrypt_as print_decode print_split prompt_after
128 \ read_only reflow_space_quotes reflow_text reflow_wrap reply_self resolve
129 \ resume_draft_files resume_edited_draft_files reverse_alias reverse_name
130 \ reverse_realname rfc2047_parameters save_address save_empty save_name score
131 \ sidebar_folder_indent sidebar_new_mail_only sidebar_next_new_wrap
132 \ sidebar_short_path sidebar_sort sidebar_visible sig_dashes sig_on_top
133 \ smart_wrap smime_ask_cert_label smime_decrypt_use_default_key smime_is_default
134 \ sort_re ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 ssl_use_tlsv1
135 \ ssl_usesystemcerts ssl_verify_dates ssl_verify_host status_on_top strict_mime
136 \ strict_threads suspend text_flowed thorough_search thread_received tilde
137 \ ts_enabled uncollapse_jump use_8bitmime use_domain use_envelope_from use_from
138 \ use_idn use_ipv6 user_agent wait_key weed wrap_search write_bcc
139 \ nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000140
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200141syn keyword muttrcVarBool skipwhite contained
142 \ noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc noaskcc noattach_split
143 \ noauto_tag noautoedit nobeep nobeep_new nobounce_delivered nobraille_friendly
144 \ nocheck_mbox_size nocheck_new nocollapse_unread noconfirmappend noconfirmcreate
145 \ nocrypt_autoencrypt nocrypt_autopgp nocrypt_autosign nocrypt_autosmime
146 \ nocrypt_confirmhook nocrypt_opportunistic_encrypt nocrypt_replyencrypt
147 \ nocrypt_replysign nocrypt_replysignencrypted nocrypt_timestamp nocrypt_use_gpgme
148 \ nocrypt_use_pka nodelete_untag nodigest_collapse noduplicate_threads noedit_hdrs
149 \ noedit_headers noencode_from noenvelope_from nofast_reply nofcc_clear nofollowup_to
150 \ noforce_name noforw_decode noforw_decrypt noforw_quote noforward_decode noforward_decrypt
151 \ noforward_quote nohdrs noheader nohelp nohidden_host nohide_limited nohide_missing
152 \ nohide_thread_subject nohide_top_limited nohide_top_missing nohonor_disposition
153 \ noidn_decode noidn_encode noignore_linear_white_space noignore_list_reply_to
154 \ noimap_check_subscribed noimap_list_subscribed noimap_passive noimap_peek
155 \ noimap_servernoise noimplicit_autoview noinclude_onlyfirst nokeep_flagged
156 \ nomail_check_recent nomail_check_stats nomailcap_sanitize nomaildir_check_cur
157 \ nomaildir_header_cache_verify nomaildir_trash nomark_old nomarkers nomenu_move_off
158 \ nomenu_scroll nomessage_cache_clean nometa_key nometoo nomh_purge nomime_forward_decode
159 \ nonarrow_tree nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt
160 \ nopgp_autoinline nopgp_autosign nopgp_check_exit nopgp_create_traditional
161 \ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline nopgp_replysign
162 \ nopgp_replysignencrypted nopgp_retainable_sigs nopgp_show_unusable nopgp_strict_enc
163 \ nopgp_use_gpg_agent nopipe_decode nopipe_split nopop_auth_try_all nopop_last
164 \ nopostpone_encrypt nopostpone_encrypt_as noprint_decode noprint_split noprompt_after
165 \ noread_only noreflow_space_quotes noreflow_text noreflow_wrap noreply_self noresolve
166 \ noresume_draft_files noresume_edited_draft_files noreverse_alias noreverse_name
167 \ noreverse_realname norfc2047_parameters nosave_address nosave_empty nosave_name noscore
168 \ nosidebar_folder_indent nosidebar_new_mail_only nosidebar_next_new_wrap
169 \ nosidebar_short_path nosidebar_sort nosidebar_visible nosig_dashes nosig_on_top
170 \ nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key nosmime_is_default
171 \ nosort_re nossl_force_tls nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1
172 \ nossl_usesystemcerts nossl_verify_dates nossl_verify_host nostatus_on_top nostrict_mime
173 \ nostrict_threads nosuspend notext_flowed nothorough_search nothread_received notilde
174 \ nots_enabled nouncollapse_jump nouse_8bitmime nouse_domain nouse_envelope_from nouse_from
175 \ nouse_idn nouse_ipv6 nouser_agent nowait_key noweed nowrap_search nowrite_bcc
176 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000177
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200178syn keyword muttrcVarBool skipwhite contained
179 \ invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc invaskcc invattach_split
180 \ invauto_tag invautoedit invbeep invbeep_new invbounce_delivered invbraille_friendly
181 \ invcheck_mbox_size invcheck_new invcollapse_unread invconfirmappend invconfirmcreate
182 \ invcrypt_autoencrypt invcrypt_autopgp invcrypt_autosign invcrypt_autosmime
183 \ invcrypt_confirmhook invcrypt_opportunistic_encrypt invcrypt_replyencrypt
184 \ invcrypt_replysign invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme
185 \ invcrypt_use_pka invdelete_untag invdigest_collapse invduplicate_threads invedit_hdrs
186 \ invedit_headers invencode_from invenvelope_from invfast_reply invfcc_clear invfollowup_to
187 \ invforce_name invforw_decode invforw_decrypt invforw_quote invforward_decode invforward_decrypt
188 \ invforward_quote invhdrs invheader invhelp invhidden_host invhide_limited invhide_missing
189 \ invhide_thread_subject invhide_top_limited invhide_top_missing invhonor_disposition
190 \ invidn_decode invidn_encode invignore_linear_white_space invignore_list_reply_to
191 \ invimap_check_subscribed invimap_list_subscribed invimap_passive invimap_peek
192 \ invimap_servernoise invimplicit_autoview invinclude_onlyfirst invkeep_flagged
193 \ invmail_check_recent invmail_check_stats invmailcap_sanitize invmaildir_check_cur
194 \ invmaildir_header_cache_verify invmaildir_trash invmark_old invmarkers invmenu_move_off
195 \ invmenu_scroll invmessage_cache_clean invmeta_key invmetoo invmh_purge invmime_forward_decode
196 \ invnarrow_tree invpager_stop invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt
197 \ invpgp_autoinline invpgp_autosign invpgp_check_exit invpgp_create_traditional
198 \ invpgp_ignore_subkeys invpgp_long_ids invpgp_replyencrypt invpgp_replyinline invpgp_replysign
199 \ invpgp_replysignencrypted invpgp_retainable_sigs invpgp_show_unusable invpgp_strict_enc
200 \ invpgp_use_gpg_agent invpipe_decode invpipe_split invpop_auth_try_all invpop_last
201 \ invpostpone_encrypt invpostpone_encrypt_as invprint_decode invprint_split invprompt_after
202 \ invread_only invreflow_space_quotes invreflow_text invreflow_wrap invreply_self invresolve
203 \ invresume_draft_files invresume_edited_draft_files invreverse_alias invreverse_name
204 \ invreverse_realname invrfc2047_parameters invsave_address invsave_empty invsave_name invscore
205 \ invsidebar_folder_indent invsidebar_new_mail_only invsidebar_next_new_wrap
206 \ invsidebar_short_path invsidebar_sort invsidebar_visible invsig_dashes invsig_on_top
207 \ invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key invsmime_is_default
208 \ invsort_re invssl_force_tls invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1
209 \ invssl_usesystemcerts invssl_verify_dates invssl_verify_host invstatus_on_top invstrict_mime
210 \ invstrict_threads invsuspend invtext_flowed invthorough_search invthread_received invtilde
211 \ invts_enabled invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from invuse_from
212 \ invuse_idn invuse_ipv6 invuser_agent invwait_key invweed invwrap_search invwrite_bcc
213 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000214
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200215syn keyword muttrcVarQuad skipwhite contained
216 \ abort_nosubject abort_unmodified bounce copy crypt_verify_sig delete
217 \ fcc_attach forward_edit honor_followup_to include mime_forward
218 \ mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete
219 \ pop_reconnect postpone print quit recall reply_to ssl_starttls
220 \ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000221
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200222syn keyword muttrcVarQuad skipwhite contained
223 \ noabort_nosubject noabort_unmodified nobounce nocopy nocrypt_verify_sig nodelete
224 \ nofcc_attach noforward_edit nohonor_followup_to noinclude nomime_forward
225 \ nomime_forward_rest nomime_fwd nomove nopgp_mime_auto nopgp_verify_sig nopop_delete
226 \ nopop_reconnect nopostpone noprint noquit norecall noreply_to nossl_starttls
227 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000228
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200229syn keyword muttrcVarQuad skipwhite contained
230 \ invabort_nosubject invabort_unmodified invbounce invcopy invcrypt_verify_sig invdelete
231 \ invfcc_attach invforward_edit invhonor_followup_to invinclude invmime_forward
232 \ invmime_forward_rest invmime_fwd invmove invpgp_mime_auto invpgp_verify_sig invpop_delete
233 \ invpop_reconnect invpostpone invprint invquit invrecall invreply_to invssl_starttls
234 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000235
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200236syn keyword muttrcVarNum skipwhite contained
237 \ connect_timeout history imap_keepalive imap_pipeline_depth mail_check
238 \ mail_check_stats_interval menu_context net_inc pager_context pager_index_lines
239 \ pgp_timeout pop_checkinterval read_inc save_history score_threshold_delete
240 \ score_threshold_flag score_threshold_read search_context sendmail_wait
241 \ sidebar_width sleep_time smime_timeout ssl_min_dh_prime_bits time_inc timeout
242 \ wrap wrap_headers wrapmargin write_inc
243 \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar9de99972010-08-09 22:33:06 +0200244
245syn match muttrcFormatErrors contained /%./
Bram Moolenaar446cb832008-06-24 21:56:24 +0000246
247syn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
248syn match muttrcStrftimeEscapes contained /%E[cCxXyY]/
249syn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
250
Bram Moolenaar9de99972010-08-09 22:33:06 +0200251syn region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
252syn region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
253syn region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
254syn region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
255syn region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
256syn region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
257syn region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
258syn region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
259syn region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
260syn region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
261syn region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
262syn region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
263syn region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
264syn region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
265syn region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
266syn region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
267syn region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
268syn region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
269syn region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
270syn region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
271syn region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
272syn region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
273syn region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
274syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
275syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar446cb832008-06-24 21:56:24 +0000276
277" The following info was pulled from hdr_format_str in hdrline.c
278syn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/
Bram Moolenaar9de99972010-08-09 22:33:06 +0200279syn match muttrcIndexFormatEscapes contained /%[>|*]./
Bram Moolenaar446cb832008-06-24 21:56:24 +0000280syn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2
281" The following info was pulled from alias_format_str in addrbook.c
282syn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
Bram Moolenaarc236c162008-07-13 17:41:49 +0000283" The following info was pulled from query_format_str in query.c
284syn match muttrcQueryFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acent%]/
285syn match muttrcQueryFormatConditionals contained /%?[e]?/ nextgroup=muttrcFormatConditionals2
Bram Moolenaar446cb832008-06-24 21:56:24 +0000286" The following info was pulled from mutt_attach_fmt in recvattach.c
287syn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdefImMnQstTuX%]/
288syn match muttrcAttachFormatEscapes contained /%[>|*]./
289syn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2
290syn match muttrcFormatConditionals2 contained /[^?]*?/
291" The following info was pulled from compose_format_str in compose.c
292syn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
293syn match muttrcComposeFormatEscapes contained /%[>|*]./
294" The following info was pulled from folder_format_str in browser.c
Bram Moolenaar9de99972010-08-09 22:33:06 +0200295syn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CDdfFglNstu%]/
Bram Moolenaar446cb832008-06-24 21:56:24 +0000296syn match muttrcFolderFormatEscapes contained /%[>|*]./
297syn match muttrcFolderFormatConditionals contained /%?[N]?/
298" The following info was pulled from mix_entry_fmt in remailer.c
299syn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/
300syn match muttrcMixFormatConditionals contained /%?[ncsa]?/
301" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c
302" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports
303" 'p', but pgp_entry_fmt does not).
304syn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/
305syn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/
306" The following info was pulled from _mutt_fmt_pgp_command in
307" pgpinvoke.c
308syn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/
309syn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2
310" The following info was pulled from status_format_str in status.c
311syn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPrsStuvV%]/
312syn match muttrcStatusFormatEscapes contained /%[>|*]./
313syn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2
314" This matches the documentation, but directly contradicts the code
315" (according to the code, this should be identical to the
316" muttrcPGPCmdFormatEscapes
317syn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/
318" The following info was pulled from _mutt_fmt_smime_command in
319" smime.c
320syn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/
321syn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2
322
323syn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
324syn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
325syn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
326syn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
327syn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
328
Bram Moolenaar9de99972010-08-09 22:33:06 +0200329syn keyword muttrcVarStr contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
330syn match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
331syn keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
332syn match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr
333syn keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
334syn match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr
335syn keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
336syn match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr
337syn keyword muttrcVarStr contained skipwhite folder_format nextgroup=muttrcVarEqualsFolderFmt
338syn match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr
339syn keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
340syn match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
341syn keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
342syn match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
343syn keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
344syn match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
345syn 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
346syn match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200347syn keyword muttrcVarStr contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
Bram Moolenaar9de99972010-08-09 22:33:06 +0200348syn match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
349syn keyword muttrcVarStr contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
350syn match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
351syn 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
352syn match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
353syn keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
354syn match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000355
Bram Moolenaar9de99972010-08-09 22:33:06 +0200356syn match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
357
358syn match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200359syn keyword muttrcVarStr contained skipwhite
360 \ alias_file assumed_charset attach_charset attach_sep certificate_file charset
361 \ config_charset content_type default_hook display_filter dotlock_program
362 \ dsn_notify dsn_return editor entropy_file envelope_from_address escape folder
363 \ forw_format forward_format from gecos_mask hdr_format header_cache
364 \ header_cache_compress header_cache_pagesize history_file hostname
365 \ imap_authenticators imap_delim_chars imap_headers imap_idle imap_login
366 \ imap_pass imap_user indent_str indent_string ispell locale mailcap_path mask
367 \ mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied mh_seq_unseen
368 \ mixmaster msg_format pager pgp_decryption_okay pgp_good_sign
369 \ pgp_mime_signature_description pgp_mime_signature_filename pgp_sign_as
370 \ pgp_sort_keys pipe_sep pop_authenticators pop_host pop_pass pop_user
371 \ post_indent_str post_indent_string postpone_encrypt_as postponed preconnect
372 \ print_cmd print_command query_command quote_regexp realname record
373 \ reply_regexp send_charset sendmail shell sidebar_delim sidebar_delim_chars
374 \ sidebar_divider_char sidebar_format sidebar_indent_string sidebar_sort_method
375 \ signature simple_search smileys smime_ca_location smime_certificates
376 \ smime_default_key smime_encrypt_with smime_keys smime_sign_as
377 \ smime_sign_digest_alg smtp_authenticators smtp_pass smtp_url sort sort_alias
378 \ sort_aux sort_browser spam_separator spoolfile ssl_ca_certificates_file
379 \ ssl_ciphers ssl_client_cert status_chars tmpdir to_chars trash ts_icon_format
380 \ ts_status_format tunnel visual
381 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000382
383" Present in 1.4.2.1 (pgp_create_traditional was a bool then)
Bram Moolenaar9de99972010-08-09 22:33:06 +0200384syn keyword muttrcVarBool contained skipwhite imap_force_ssl noimap_force_ssl invimap_force_ssl nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000385"syn keyword muttrcVarQuad contained pgp_create_traditional nopgp_create_traditional invpgp_create_traditional
Bram Moolenaar9de99972010-08-09 22:33:06 +0200386syn keyword muttrcVarStr contained skipwhite alternates nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000387
388syn keyword muttrcMenu contained alias attach browser compose editor index pager postpone pgp mix query generic
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000389syn match muttrcMenuList "\S\+" contained contains=muttrcMenu
390syn match muttrcMenuCommas /,/ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +0000391
Bram Moolenaar9de99972010-08-09 22:33:06 +0200392syn 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
393
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200394syn keyword muttrcCommand skipwhite
395 \ alternative_order auto_view exec hdr_order iconv-hook ignore mailboxes
396 \ mailto_allow mime_lookup my_hdr pgp-hook push score sidebar_whitelist source
397 \ unalternative_order unalternative_order unauto_view ungroup unhdr_order
398 \ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore
Bram Moolenaar9de99972010-08-09 22:33:06 +0200399syn keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString
400syn keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000401
Bram Moolenaar9de99972010-08-09 22:33:06 +0200402syn keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern
403syn region muttrcSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
404syn region muttrcSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
405
406syn keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern
407syn region muttrcNoSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
408syn region muttrcNoSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
Bram Moolenaar9964e462007-05-05 17:54:07 +0000409
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000410syn match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
411syn match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
412syn match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
413
414syn match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
415
Bram Moolenaar9de99972010-08-09 22:33:06 +0200416syn keyword muttrcAsterisk contained *
417syn keyword muttrcListsKeyword lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
418syn keyword muttrcListsKeyword unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000419
Bram Moolenaar9de99972010-08-09 22:33:06 +0200420syn keyword muttrcSubscribeKeyword subscribe nextgroup=muttrcGroupDef,muttrcComment
421syn keyword muttrcSubscribeKeyword unsubscribe nextgroup=muttrcAsterisk,muttrcComment
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000422
423syn keyword muttrcAlternateKeyword contained alternates unalternates
424syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
425
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100426" muttrcVariable includes a prefix because partial strings are considered
427" valid.
428syn match muttrcVariable contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
429syn match muttrcVariableInner contained "\$[a-zA-Z_-]\+"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200430syn match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000431
432syn match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200433syn match muttrcFunction contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|parent\|pipe\|postpone\|print\|purge\|recall\|resend\|save\|send\|tag\|undelete\)-message\>"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200434syn match muttrcFunction contained "\<\%(delete\|next\|previous\|read\|tag\|break\|undelete\)-thread\>"
435syn match muttrcFunction contained "\<link-threads\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000436syn match muttrcFunction contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>"
437syn match muttrcFunction contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>"
438syn match muttrcFunction contained "\<attach-\%(file\|key\)\>"
439syn match muttrcFunction contained "\<change-\%(dir\|folder\|folder-readonly\)\>"
440syn match muttrcFunction contained "\<check-\%(new\|traditional-pgp\)\>"
441syn match muttrcFunction contained "\<current-\%(bottom\|middle\|top\)\>"
442syn match muttrcFunction contained "\<decode-\%(copy\|save\)\>"
443syn match muttrcFunction contained "\<delete-\%(char\|pattern\|subthread\)\>"
444syn match muttrcFunction contained "\<display-\%(address\|toggle-weed\)\>"
445syn match muttrcFunction contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|mime\|reply-to\|subject\|to\|type\)\)\?\>"
446syn match muttrcFunction contained "\<enter-\%(command\|mask\)\>"
447syn match muttrcFunction contained "\<half-\%(up\|down\)\>"
448syn match muttrcFunction contained "\<history-\%(up\|down\)\>"
449syn match muttrcFunction contained "\<kill-\%(eol\|eow\|line\)\>"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200450syn match muttrcFunction contained "\<next-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\|unread-mailbox\)\>"
451syn match muttrcFunction contained "\<previous-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\)\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000452syn match muttrcFunction contained "\<search\%(-\%(next\|opposite\|reverse\|toggle\)\)\?\>"
453syn match muttrcFunction contained "\<show-\%(limit\|version\)\>"
454syn match muttrcFunction contained "\<sort-\%(mailbox\|reverse\)\>"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200455syn match muttrcFunction contained "\<tag-\%(pattern\|\%(sub\)\?thread\|prefix\%(-cond\)\?\)\>"
456syn match muttrcFunction contained "\<end-cond\>"
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200457syn match muttrcFunction contained "\<sidebar-\%(next\|next-new\|open\|page-down\|page-up\|prev\|prev-new\|toggle-visible\)\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000458syn match muttrcFunction contained "\<toggle-\%(mailboxes\|new\|quoted\|subscribed\|unlink\|write\)\>"
459syn match muttrcFunction contained "\<undelete-\%(pattern\|subthread\)\>"
460syn match muttrcFunction contained "\<collapse-\%(parts\|thread\|all\)\>"
461syn match muttrcFunction contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000462syn 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\)\>"
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200463syn keyword muttrcFunction contained imap-logout-all
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100464if use_mutt_sidebar == 1
465 syn match muttrcFunction contained "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
466endif
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000467syn match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
Bram Moolenaar071d4272004-06-13 20:20:40 +0000468
Bram Moolenaar9de99972010-08-09 22:33:06 +0200469syn keyword muttrcCommand set skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
470syn keyword muttrcCommand unset skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
471syn keyword muttrcCommand reset skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
472syn keyword muttrcCommand toggle skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000473
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000474" First, functions that take regular expressions:
Bram Moolenaar9de99972010-08-09 22:33:06 +0200475syn match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
476syn match muttrcRXHooks /\<\%(account\|folder\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
Bram Moolenaar071d4272004-06-13 20:20:40 +0000477
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000478" Now, functions that take patterns
479syn match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern
Bram Moolenaar9de99972010-08-09 22:33:06 +0200480syn match muttrcPatHooks /\<\%(mbox\|crypt\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
481syn match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|\|fcc\%(-save\)\?\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
Bram Moolenaar071d4272004-06-13 20:20:40 +0000482
Bram Moolenaar9de99972010-08-09 22:33:06 +0200483syn match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000484syn match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
485syn match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
486syn match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
487syn match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
488syn match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200489syn keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000490
Bram Moolenaar9964e462007-05-05 17:54:07 +0000491syn region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
492syn region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
493syn region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
494syn match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
495syn region muttrcMacroBody contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200496syn 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
497syn 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
Bram Moolenaar9964e462007-05-05 17:54:07 +0000498syn match muttrcMacroBodyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
499syn match muttrcMacroKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000500syn match muttrcMacroKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
501syn match muttrcMacroMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
502syn match muttrcMacroMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200503syn keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000504
505syn match muttrcAddrContent contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
506syn region muttrcAddrContent contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
507syn region muttrcAddrContent contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
508syn match muttrcAddrDef contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
509
510syn match muttrcGroupFlag contained "-group"
511syn region muttrcGroupDef contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
512
513syn keyword muttrcGroupKeyword contained group ungroup
514syn region muttrcGroupLine keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
515
Bram Moolenaar9964e462007-05-05 17:54:07 +0000516syn match muttrcAliasGroupName contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000517syn match muttrcAliasGroupDefNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
518syn match muttrcAliasGroupDef contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
Bram Moolenaar9964e462007-05-05 17:54:07 +0000519syn match muttrcAliasComma contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
520syn match muttrcAliasEmail contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
521syn match muttrcAliasEncEmail contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000522syn match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
523syn match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
524syn region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite
525syn match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000526syn match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
527syn match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
528syn match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200529syn keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000530
Bram Moolenaar9964e462007-05-05 17:54:07 +0000531syn match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
532syn match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200533syn keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000534
535syn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200536syn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
537syn 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
538syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
539syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100540syn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
Bram Moolenaar446cb832008-06-24 21:56:24 +0000541syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
Bram Moolenaar9de99972010-08-09 22:33:06 +0200542"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
Bram Moolenaar9964e462007-05-05 17:54:07 +0000543syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
544syn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
Bram Moolenaar9de99972010-08-09 22:33:06 +0200545syn region muttrcSimplePatString contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1
546syn region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
547syn region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
548syn region muttrcSimplePatRXContainer contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000549syn match muttrcSimplePatMetas contained /[(|)]/
550
Bram Moolenaar9de99972010-08-09 22:33:06 +0200551syn match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
552syn match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
553syn region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
554syn region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
555syn region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
556syn match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
557syn match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
558" Keep muttrcPattern and muttrcOptPattern synchronized
559syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
560syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
561syn region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
562syn match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
563syn match muttrcPattern contained skipwhite /[.]/
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000564syn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
565syn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
Bram Moolenaar071d4272004-06-13 20:20:40 +0000566
567" Colour definitions takes object, foreground and background arguments (regexps excluded).
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000568syn match muttrcColorMatchCount contained "[0-9]\+"
569syn match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000570syn region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
571syn region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200572syn keyword muttrcColorField skipwhite contained
573 \ attachment body bold error hdrdefault header index indicator markers message
574 \ normal prompt quoted search sidebar-divider sidebar-flagged sidebar-highlight
575 \ sidebar-indicator sidebar-new sidebar-spoolfile signature status tilde tree
576 \ underline
Bram Moolenaar071d4272004-06-13 20:20:40 +0000577syn match muttrcColorField contained "\<quoted\d\=\>"
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100578if use_mutt_sidebar == 1
579 syn keyword muttrcColorField contained sidebar_new
580endif
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000581syn keyword muttrcColor contained black blue cyan default green magenta red white yellow
582syn keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100583syn match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000584" Now for the structure of the color line
Bram Moolenaar9964e462007-05-05 17:54:07 +0000585syn match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
586syn match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
587syn match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
588syn match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
589syn match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
590syn match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorFG,muttrcColorFGNL
591syn match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL
592syn match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200593syn region muttrcColorLine keepend start=/^\s*color\s\+\%(index\|header\)\@!/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000594" Now for the structure of the color index line
Bram Moolenaar9964e462007-05-05 17:54:07 +0000595syn match muttrcPatternNL contained skipnl "\s*\\$" nextgroup=muttrcPattern,muttrcPatternNL
596syn match muttrcColorBGI contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcPattern,muttrcPatternNL
597syn match muttrcColorBGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorBGI,muttrcColorBGNLI
598syn match muttrcColorFGI contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGI,muttrcColorBGNLI
599syn match muttrcColorFGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorFGI,muttrcColorFGNLI
Bram Moolenaar9de99972010-08-09 22:33:06 +0200600syn match muttrcColorContextI contained /\s*\<index\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGI,muttrcColorFGNLI
Bram Moolenaar9964e462007-05-05 17:54:07 +0000601syn match muttrcColorNLI contained skipnl "\s*\\$" nextgroup=muttrcColorContextI,muttrcColorNLI
Bram Moolenaar9de99972010-08-09 22:33:06 +0200602syn match muttrcColorKeywordI contained skipwhite /\<color\>/ nextgroup=muttrcColorContextI,muttrcColorNLI
603syn region muttrcColorLine keepend skipwhite start=/\<color\s\+index\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordI,muttrcComment,muttrcUnHighlightSpace
604" Now for the structure of the color header line
605syn match muttrcRXPatternNL contained skipnl "\s*\\$" nextgroup=muttrcRXString,muttrcRXPatternNL
606syn match muttrcColorBGH contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcRXString,muttrcRXPatternNL
607syn match muttrcColorBGNLH contained skipnl "\s*\\$" nextgroup=muttrcColorBGH,muttrcColorBGNLH
608syn match muttrcColorFGH contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGH,muttrcColorBGNLH
609syn match muttrcColorFGNLH contained skipnl "\s*\\$" nextgroup=muttrcColorFGH,muttrcColorFGNLH
610syn match muttrcColorContextH contained /\s*\<header\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGH,muttrcColorFGNLH
611syn match muttrcColorNLH contained skipnl "\s*\\$" nextgroup=muttrcColorContextH,muttrcColorNLH
612syn match muttrcColorKeywordH contained skipwhite /\<color\>/ nextgroup=muttrcColorContextH,muttrcColorNLH
613syn region muttrcColorLine keepend skipwhite start=/\<color\s\+header\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordH,muttrcComment,muttrcUnHighlightSpace
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000614" And now color's brother:
615syn region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
616syn region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
617syn match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
618syn match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
619syn match muttrcUnColorAll contained skipwhite /[*]/
620syn match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
621syn match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
622syn match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
623syn match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
624syn region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
Bram Moolenaar071d4272004-06-13 20:20:40 +0000625
626" Mono are almost like color (ojects inherited from color)
627syn keyword muttrcMonoAttrib contained bold none normal reverse standout underline
628syn keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField
629syn match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
630
631" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200632" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000633
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200634hi def link muttrcComment Comment
635hi def link muttrcEscape SpecialChar
636hi def link muttrcRXChars SpecialChar
637hi def link muttrcString String
638hi def link muttrcRXString String
639hi def link muttrcRXString2 String
640hi def link muttrcSpecial Special
641hi def link muttrcHooks Type
642hi def link muttrcGroupFlag Type
643hi def link muttrcGroupDef Macro
644hi def link muttrcAddrDef muttrcGroupFlag
645hi def link muttrcRXDef muttrcGroupFlag
646hi def link muttrcRXPat String
647hi def link muttrcAliasGroupName Macro
648hi def link muttrcAliasKey Identifier
649hi def link muttrcUnAliasKey Identifier
650hi def link muttrcAliasEncEmail Identifier
651hi def link muttrcAliasParens Type
652hi def link muttrcSetNumAssignment Number
653hi def link muttrcSetBoolAssignment Boolean
654hi def link muttrcSetQuadAssignment Boolean
655hi def link muttrcSetStrAssignment String
656hi def link muttrcEmail Special
657hi def link muttrcVariableInner Special
658hi def link muttrcEscapedVariable String
659hi def link muttrcHeader Type
660hi def link muttrcKeySpecial SpecialChar
661hi def link muttrcKey Type
662hi def link muttrcKeyName SpecialChar
663hi def link muttrcVarBool Identifier
664hi def link muttrcVarQuad Identifier
665hi def link muttrcVarNum Identifier
666hi def link muttrcVarStr Identifier
667hi def link muttrcMenu Identifier
668hi def link muttrcCommand Keyword
669hi def link muttrcMacroDescr String
670hi def link muttrcAction Macro
671hi def link muttrcBadAction Error
672hi def link muttrcBindFunction Error
673hi def link muttrcBindMenuList Error
674hi def link muttrcFunction Macro
675hi def link muttrcGroupKeyword muttrcCommand
676hi def link muttrcGroupLine Error
677hi def link muttrcSubscribeKeyword muttrcCommand
678hi def link muttrcSubscribeLine Error
679hi def link muttrcListsKeyword muttrcCommand
680hi def link muttrcListsLine Error
681hi def link muttrcAlternateKeyword muttrcCommand
682hi def link muttrcAlternatesLine Error
683hi def link muttrcAttachmentsLine muttrcCommand
684hi def link muttrcAttachmentsFlag Type
685hi def link muttrcAttachmentsMimeType String
686hi def link muttrcColorLine Error
687hi def link muttrcColorContext Error
688hi def link muttrcColorContextI Identifier
689hi def link muttrcColorContextH Identifier
690hi def link muttrcColorKeyword muttrcCommand
691hi def link muttrcColorKeywordI muttrcColorKeyword
692hi def link muttrcColorKeywordH muttrcColorKeyword
693hi def link muttrcColorField Identifier
694hi def link muttrcColor Type
695hi def link muttrcColorFG Error
696hi def link muttrcColorFGI Error
697hi def link muttrcColorFGH Error
698hi def link muttrcColorBG Error
699hi def link muttrcColorBGI Error
700hi def link muttrcColorBGH Error
701hi def link muttrcMonoAttrib muttrcColor
702hi def link muttrcMono muttrcCommand
703hi def link muttrcSimplePat Identifier
704hi def link muttrcSimplePatString Macro
705hi def link muttrcSimplePatMetas Special
706hi def link muttrcPattern Error
707hi def link muttrcUnColorLine Error
708hi def link muttrcUnColorKeyword muttrcCommand
709hi def link muttrcUnColorIndex Identifier
710hi def link muttrcShellString muttrcEscape
711hi def link muttrcRXHooks muttrcCommand
712hi def link muttrcRXHookNot Type
713hi def link muttrcPatHooks muttrcCommand
714hi def link muttrcPatHookNot Type
715hi def link muttrcFormatConditionals2 Type
716hi def link muttrcIndexFormatStr muttrcString
717hi def link muttrcIndexFormatEscapes muttrcEscape
718hi def link muttrcIndexFormatConditionals muttrcFormatConditionals2
719hi def link muttrcAliasFormatStr muttrcString
720hi def link muttrcAliasFormatEscapes muttrcEscape
721hi def link muttrcAttachFormatStr muttrcString
722hi def link muttrcAttachFormatEscapes muttrcEscape
723hi def link muttrcAttachFormatConditionals muttrcFormatConditionals2
724hi def link muttrcComposeFormatStr muttrcString
725hi def link muttrcComposeFormatEscapes muttrcEscape
726hi def link muttrcFolderFormatStr muttrcString
727hi def link muttrcFolderFormatEscapes muttrcEscape
728hi def link muttrcFolderFormatConditionals muttrcFormatConditionals2
729hi def link muttrcMixFormatStr muttrcString
730hi def link muttrcMixFormatEscapes muttrcEscape
731hi def link muttrcMixFormatConditionals muttrcFormatConditionals2
732hi def link muttrcPGPFormatStr muttrcString
733hi def link muttrcPGPFormatEscapes muttrcEscape
734hi def link muttrcPGPFormatConditionals muttrcFormatConditionals2
735hi def link muttrcPGPCmdFormatStr muttrcString
736hi def link muttrcPGPCmdFormatEscapes muttrcEscape
737hi def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
738hi def link muttrcStatusFormatStr muttrcString
739hi def link muttrcStatusFormatEscapes muttrcEscape
740hi def link muttrcStatusFormatConditionals muttrcFormatConditionals2
741hi def link muttrcPGPGetKeysFormatStr muttrcString
742hi def link muttrcPGPGetKeysFormatEscapes muttrcEscape
743hi def link muttrcSmimeFormatStr muttrcString
744hi def link muttrcSmimeFormatEscapes muttrcEscape
745hi def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
746hi def link muttrcTimeEscapes muttrcEscape
747hi def link muttrcPGPTimeEscapes muttrcEscape
748hi def link muttrcStrftimeEscapes Type
749hi def link muttrcStrftimeFormatStr muttrcString
750hi def link muttrcFormatErrors Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000751
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200752hi def link muttrcBindFunctionNL SpecialChar
753hi def link muttrcBindKeyNL SpecialChar
754hi def link muttrcBindMenuListNL SpecialChar
755hi def link muttrcMacroDescrNL SpecialChar
756hi def link muttrcMacroBodyNL SpecialChar
757hi def link muttrcMacroKeyNL SpecialChar
758hi def link muttrcMacroMenuListNL SpecialChar
759hi def link muttrcColorMatchCountNL SpecialChar
760hi def link muttrcColorNL SpecialChar
761hi def link muttrcColorRXNL SpecialChar
762hi def link muttrcColorBGNL SpecialChar
763hi def link muttrcColorFGNL SpecialChar
764hi def link muttrcAliasNameNL SpecialChar
765hi def link muttrcAliasENNL SpecialChar
766hi def link muttrcAliasNL SpecialChar
767hi def link muttrcUnAliasNL SpecialChar
768hi def link muttrcAliasGroupDefNL SpecialChar
769hi def link muttrcAliasEncEmailNL SpecialChar
770hi def link muttrcPatternNL SpecialChar
771hi def link muttrcUnColorPatNL SpecialChar
772hi def link muttrcUnColorAPNL SpecialChar
773hi def link muttrcUnColorIndexNL SpecialChar
774hi def link muttrcStringNL SpecialChar
Bram Moolenaar9964e462007-05-05 17:54:07 +0000775
Bram Moolenaar071d4272004-06-13 20:20:40 +0000776
777let b:current_syntax = "muttrc"
778
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100779let &cpo = s:cpo_save
780unlet s:cpo_save
Bram Moolenaar446cb832008-06-24 21:56:24 +0000781"EOF vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim