1" Vim syntax file 2" Language: Mutt setup files 3" Original: Preben 'Peppe' Guldberg <[email protected]> 4" Maintainer: Kyle Wheeler <[email protected]> 5" Last Change: 15 Aug 2007 6 7" This file covers mutt version 1.5.16 (and most of CVS HEAD) 8" Included are also a few features from 1.4.2.1 9 10" For version 5.x: Clear all syntax items 11" For version 6.x: Quit when a syntax file was already loaded 12if version < 600 13 syntax clear 14elseif exists("b:current_syntax") 15 finish 16endif 17 18" Set the keyword characters 19if version < 600 20 set isk=@,48-57,_,- 21else 22 setlocal isk=@,48-57,_,- 23endif 24 25syn match muttrcComment "^# .*$" contains=@Spell 26syn match muttrcComment "^#[^ ].*$" 27syn match muttrcComment "^#$" 28syn match muttrcComment "[^\\]#.*$"lc=1 29 30" Escape sequences (back-tick and pipe goes here too) 31syn match muttrcEscape +\\[#tnr"'Cc ]+ 32syn match muttrcEscape +[`|]+ 33syn match muttrcEscape +\\$+ 34 35" The variables takes the following arguments 36syn match muttrcString "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape 37syn region muttrcString start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction,muttrcShellString 38syn region muttrcString start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction 39 40syn region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand,muttrcSet 41 42syn match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1 43syn match muttrcRXChars contained /[][|()][.*?+]*/ 44syn match muttrcRXChars contained /['"]^/ms=s+1 45syn match muttrcRXChars contained /$['"]/me=e-1 46syn match muttrcRXChars contained /\\/ 47" Why does muttrcRXString2 work with one \ when muttrcRXString requires two? 48syn region muttrcRXString contained start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars 49syn region muttrcRXString contained start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars 50syn region muttrcRXString2 contained start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars 51syn region muttrcRXString2 contained start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars 52 53syn region muttrcRXPat contained start=+'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString nextgroup=muttrcRXPat 54syn region muttrcRXPat contained start=+"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString nextgroup=muttrcRXPat 55syn match muttrcRXPat contained /[^-'"#!]\S\+\%(\s\|$\)/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat 56syn match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat 57 58syn match muttrcSpecial +\(['"]\)!\1+ 59 60" Numbers and Quadoptions may be surrounded by " or ' 61syn match muttrcNumber /=\s*\d\+/lc=1 62syn match muttrcNumber /=\s*"\d\+"/lc=1 63syn match muttrcNumber /=\s*'\d\+'/lc=1 64syn match muttrcQuadopt +=\s*\%(ask-\)\=\%(yes\|no\)+lc=1 65syn match muttrcQuadopt +=\s*"\%(ask-\)\=\%(yes\|no\)"+lc=1 66syn match muttrcQuadopt +=\s*'\%(ask-\)\=\%(yes\|no\)'+lc=1 67 68" Now catch some email addresses and headers (purified version from mail.vim) 69syn match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+" 70syn match muttrcHeader "\<\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\=" 71 72syn match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+ 73syn match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName 74syn region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName 75syn region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName 76syn match muttrcKeyName contained "\<f\%(\d\|10\)\>" 77syn match muttrcKeyName contained "\\[trne]" 78syn match muttrcKeyName contained "\c<\%(BackSpace\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>" 79 80syn keyword muttrcVarBool contained allow_8bit allow_ansi arrow_cursor ascii_chars askbcc 81syn keyword muttrcVarBool contained askcc attach_split auto_tag autoedit beep beep_new 82syn keyword muttrcVarBool contained bounce_delivered braille_friendly check_new check_mbox_size collapse_unread 83syn keyword muttrcVarBool contained confirmappend confirmcreate crypt_autoencrypt crypt_autopgp 84syn keyword muttrcVarBool contained crypt_autosign crypt_autosmime crypt_replyencrypt 85syn keyword muttrcVarBool contained crypt_replysign crypt_replysignencrypted crypt_timestamp 86syn keyword muttrcVarBool contained crypt_use_gpgme crypt_use_pka delete_untag digest_collapse duplicate_threads 87syn keyword muttrcVarBool contained edit_hdrs edit_headers encode_from envelope_from fast_reply 88syn keyword muttrcVarBool contained fcc_attach fcc_clear followup_to force_name forw_decode 89syn keyword muttrcVarBool contained forw_decrypt forw_quote forward_decode forward_decrypt 90syn keyword muttrcVarBool contained forward_quote hdrs header help hidden_host hide_limited 91syn keyword muttrcVarBool contained hide_missing hide_thread_subject hide_top_limited 92syn keyword muttrcVarBool contained hide_top_missing ignore_linear_white_space ignore_list_reply_to imap_check_subscribed 93syn keyword muttrcVarBool contained imap_list_subscribed imap_passive imap_peek imap_servernoise 94syn keyword muttrcVarBool contained implicit_autoview include_onlyfirst keep_flagged 95syn keyword muttrcVarBool contained mailcap_sanitize maildir_header_cache_verify maildir_trash 96syn keyword muttrcVarBool contained mark_old markers menu_move_off menu_scroll message_cache_clean meta_key 97syn keyword muttrcVarBool contained metoo mh_purge mime_forward_decode narrow_tree pager_stop 98syn keyword muttrcVarBool contained pgp_auto_decode pgp_auto_traditional pgp_autoencrypt 99syn keyword muttrcVarBool contained pgp_autoinline pgp_autosign pgp_check_exit 100syn keyword muttrcVarBool contained pgp_create_traditional pgp_ignore_subkeys pgp_long_ids 101syn keyword muttrcVarBool contained pgp_replyencrypt pgp_replyinline pgp_replysign 102syn keyword muttrcVarBool contained pgp_replysignencrypted pgp_retainable_sigs pgp_show_unusable 103syn keyword muttrcVarBool contained pgp_strict_enc pgp_use_gpg_agent pipe_decode pipe_split 104syn keyword muttrcVarBool contained pop_auth_try_all pop_last print_decode print_split 105syn keyword muttrcVarBool contained prompt_after read_only reply_self resolve reverse_alias 106syn keyword muttrcVarBool contained reverse_name reverse_realname rfc2047_parameters save_address 107syn keyword muttrcVarBool contained save_empty save_name score sig_dashes sig_on_top 108syn keyword muttrcVarBool contained smart_wrap smime_ask_cert_label smime_decrypt_use_default_key 109syn keyword muttrcVarBool contained smime_is_default sort_re ssl_force_tls ssl_use_sslv2 110syn keyword muttrcVarBool contained ssl_use_sslv3 ssl_use_tlsv1 ssl_usesystemcerts status_on_top 111syn keyword muttrcVarBool contained strict_mime strict_threads suspend text_flowed thorough_search 112syn keyword muttrcVarBool contained thread_received tilde uncollapse_jump use_8bitmime 113syn keyword muttrcVarBool contained use_domain use_envelope_from use_from use_idn use_ipv6 114syn keyword muttrcVarBool contained user_agent wait_key weed wrap_search write_bcc 115 116syn keyword muttrcVarBool contained noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc 117syn keyword muttrcVarBool contained noaskcc noattach_split noauto_tag noautoedit nobeep nobeep_new 118syn keyword muttrcVarBool contained nobounce_delivered nobraille_friendly nocheck_new nocollapse_unread 119syn keyword muttrcVarBool contained noconfirmappend noconfirmcreate nocrypt_autoencrypt nocrypt_autopgp 120syn keyword muttrcVarBool contained nocrypt_autosign nocrypt_autosmime nocrypt_replyencrypt 121syn keyword muttrcVarBool contained nocrypt_replysign nocrypt_replysignencrypted nocrypt_timestamp 122syn keyword muttrcVarBool contained nocrypt_use_gpgme nodelete_untag nodigest_collapse noduplicate_threads 123syn keyword muttrcVarBool contained noedit_hdrs noedit_headers noencode_from noenvelope_from nofast_reply 124syn keyword muttrcVarBool contained nofcc_attach nofcc_clear nofollowup_to noforce_name noforw_decode 125syn keyword muttrcVarBool contained noforw_decrypt noforw_quote noforward_decode noforward_decrypt 126syn keyword muttrcVarBool contained noforward_quote nohdrs noheader nohelp nohidden_host nohide_limited 127syn keyword muttrcVarBool contained nohide_missing nohide_thread_subject nohide_top_limited 128syn keyword muttrcVarBool contained nohide_top_missing noignore_list_reply_to noimap_check_subscribed 129syn keyword muttrcVarBool contained noimap_list_subscribed noimap_passive noimap_peek noimap_servernoise 130syn keyword muttrcVarBool contained noimplicit_autoview noinclude_onlyfirst nokeep_flagged 131syn keyword muttrcVarBool contained nomailcap_sanitize nomaildir_header_cache_verify nomaildir_trash 132syn keyword muttrcVarBool contained nomark_old nomarkers nomenu_move_off nomenu_scroll nometa_key 133syn keyword muttrcVarBool contained nometoo nomh_purge nomime_forward_decode nonarrow_tree nopager_stop 134syn keyword muttrcVarBool contained nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt 135syn keyword muttrcVarBool contained nopgp_autoinline nopgp_autosign nopgp_check_exit 136syn keyword muttrcVarBool contained nopgp_create_traditional nopgp_ignore_subkeys nopgp_long_ids 137syn keyword muttrcVarBool contained nopgp_replyencrypt nopgp_replyinline nopgp_replysign 138syn keyword muttrcVarBool contained nopgp_replysignencrypted nopgp_retainable_sigs nopgp_show_unusable 139syn keyword muttrcVarBool contained nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_split 140syn keyword muttrcVarBool contained nopop_auth_try_all nopop_last noprint_decode noprint_split 141syn keyword muttrcVarBool contained noprompt_after noread_only noreply_self noresolve noreverse_alias 142syn keyword muttrcVarBool contained noreverse_name noreverse_realname norfc2047_parameters nosave_address 143syn keyword muttrcVarBool contained nosave_empty nosave_name noscore nosig_dashes nosig_on_top 144syn keyword muttrcVarBool contained nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key 145syn keyword muttrcVarBool contained nosmime_is_default nosort_re nossl_force_tls nossl_use_sslv2 146syn keyword muttrcVarBool contained nossl_use_sslv3 nossl_use_tlsv1 nossl_usesystemcerts nostatus_on_top 147syn keyword muttrcVarBool contained nostrict_threads nosuspend notext_flowed nothorough_search 148syn keyword muttrcVarBool contained nothread_received notilde nouncollapse_jump nouse_8bitmime 149syn keyword muttrcVarBool contained nouse_domain nouse_envelope_from nouse_from nouse_idn nouse_ipv6 150syn keyword muttrcVarBool contained nouser_agent nowait_key noweed nowrap_search nowrite_bcc 151 152syn keyword muttrcVarBool contained invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc 153syn keyword muttrcVarBool contained invaskcc invattach_split invauto_tag invautoedit invbeep invbeep_new 154syn keyword muttrcVarBool contained invbounce_delivered invbraille_friendly invcheck_new invcollapse_unread 155syn keyword muttrcVarBool contained invconfirmappend invconfirmcreate invcrypt_autoencrypt invcrypt_autopgp 156syn keyword muttrcVarBool contained invcrypt_autosign invcrypt_autosmime invcrypt_replyencrypt 157syn keyword muttrcVarBool contained invcrypt_replysign invcrypt_replysignencrypted invcrypt_timestamp 158syn keyword muttrcVarBool contained invcrypt_use_gpgme invdelete_untag invdigest_collapse invduplicate_threads 159syn keyword muttrcVarBool contained invedit_hdrs invedit_headers invencode_from invenvelope_from invfast_reply 160syn keyword muttrcVarBool contained invfcc_attach invfcc_clear invfollowup_to invforce_name invforw_decode 161syn keyword muttrcVarBool contained invforw_decrypt invforw_quote invforward_decode invforward_decrypt 162syn keyword muttrcVarBool contained invforward_quote invhdrs invheader invhelp invhidden_host invhide_limited 163syn keyword muttrcVarBool contained invhide_missing invhide_thread_subject invhide_top_limited 164syn keyword muttrcVarBool contained invhide_top_missing invignore_list_reply_to invimap_check_subscribed 165syn keyword muttrcVarBool contained invimap_list_subscribed invimap_passive invimap_peek invimap_servernoise 166syn keyword muttrcVarBool contained invimplicit_autoview invinclude_onlyfirst invkeep_flagged 167syn keyword muttrcVarBool contained invmailcap_sanitize invmaildir_header_cache_verify invmaildir_trash 168syn keyword muttrcVarBool contained invmark_old invmarkers invmenu_move_off invmenu_scroll invmeta_key 169syn keyword muttrcVarBool contained invmetoo invmh_purge invmime_forward_decode invnarrow_tree invpager_stop 170syn keyword muttrcVarBool contained invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt 171syn keyword muttrcVarBool contained invpgp_autoinline invpgp_autosign invpgp_check_exit 172syn keyword muttrcVarBool contained invpgp_create_traditional invpgp_ignore_subkeys invpgp_long_ids 173syn keyword muttrcVarBool contained invpgp_replyencrypt invpgp_replyinline invpgp_replysign 174syn keyword muttrcVarBool contained invpgp_replysignencrypted invpgp_retainable_sigs invpgp_show_unusable 175syn keyword muttrcVarBool contained invpgp_strict_enc invpgp_use_gpg_agent invpipe_decode invpipe_split 176syn keyword muttrcVarBool contained invpop_auth_try_all invpop_last invprint_decode invprint_split 177syn keyword muttrcVarBool contained invprompt_after invread_only invreply_self invresolve invreverse_alias 178syn keyword muttrcVarBool contained invreverse_name invreverse_realname invrfc2047_parameters invsave_address 179syn keyword muttrcVarBool contained invsave_empty invsave_name invscore invsig_dashes invsig_on_top 180syn keyword muttrcVarBool contained invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key 181syn keyword muttrcVarBool contained invsmime_is_default invsort_re invssl_force_tls invssl_use_sslv2 182syn keyword muttrcVarBool contained invssl_use_sslv3 invssl_use_tlsv1 invssl_usesystemcerts invstatus_on_top 183syn keyword muttrcVarBool contained invstrict_threads invsuspend invtext_flowed invthorough_search 184syn keyword muttrcVarBool contained invthread_received invtilde invuncollapse_jump invuse_8bitmime 185syn keyword muttrcVarBool contained invuse_domain invuse_envelope_from invuse_from invuse_idn invuse_ipv6 186syn keyword muttrcVarBool contained invuser_agent invwait_key invweed invwrap_search invwrite_bcc 187 188syn keyword muttrcVarQuad contained abort_nosubject abort_unmodified bounce copy 189syn keyword muttrcVarQuad contained crypt_verify_sig delete forward_edit honor_followup_to 190syn keyword muttrcVarQuad contained include mime_forward mime_forward_rest mime_fwd move 191syn keyword muttrcVarQuad contained pgp_mime_auto pgp_verify_sig pop_delete pop_reconnect 192syn keyword muttrcVarQuad contained postpone print quit recall reply_to ssl_starttls 193 194syn keyword muttrcVarQuad contained noabort_nosubject noabort_unmodified nobounce nocopy 195syn keyword muttrcVarQuad contained nocrypt_verify_sig nodelete noforward_edit nohonor_followup_to 196syn keyword muttrcVarQuad contained noinclude nomime_forward nomime_forward_rest nomime_fwd nomove 197syn keyword muttrcVarQuad contained nopgp_mime_auto nopgp_verify_sig nopop_delete nopop_reconnect 198syn keyword muttrcVarQuad contained nopostpone noprint noquit norecall noreply_to nossl_starttls 199 200syn keyword muttrcVarQuad contained invabort_nosubject invabort_unmodified invbounce invcopy 201syn keyword muttrcVarQuad contained invcrypt_verify_sig invdelete invforward_edit invhonor_followup_to 202syn keyword muttrcVarQuad contained invinclude invmime_forward invmime_forward_rest invmime_fwd invmove 203syn keyword muttrcVarQuad contained invpgp_mime_auto invpgp_verify_sig invpop_delete invpop_reconnect 204syn keyword muttrcVarQuad contained invpostpone invprint invquit invrecall invreply_to invssl_starttls 205 206syn keyword muttrcVarNum contained connect_timeout history imap_keepalive mail_check menu_context net_inc 207syn keyword muttrcVarNum contained pager_context pager_index_lines pgp_timeout pop_checkinterval read_inc 208syn keyword muttrcVarNum contained save_history score_threshold_delete score_threshold_flag 209syn keyword muttrcVarNum contained score_threshold_read sendmail_wait sleep_time smime_timeout 210syn keyword muttrcVarNum contained ssl_min_dh_prime_bits timeout time_inc wrap wrapmargin write_inc 211 212syn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/ 213syn match muttrcStrftimeEscapes contained /%E[cCxXyY]/ 214syn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/ 215 216syn match muttrcFormatErrors contained /%./ 217 218syn region muttrcIndexFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes 219syn region muttrcIndexFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes 220syn region muttrcAliasFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors 221syn region muttrcAliasFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors 222syn region muttrcAttachFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors 223syn region muttrcAttachFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors 224syn region muttrcComposeFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors 225syn region muttrcComposeFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors 226syn region muttrcFolderFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors 227syn region muttrcFolderFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors 228syn region muttrcMixFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors 229syn region muttrcMixFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors 230syn region muttrcPGPFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes 231syn region muttrcPGPFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes 232syn region muttrcPGPCmdFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors 233syn region muttrcPGPCmdFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors 234syn region muttrcStatusFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors 235syn region muttrcStatusFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors 236syn region muttrcPGPGetKeysFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors 237syn region muttrcPGPGetKeysFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors 238syn region muttrcSmimeFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors 239syn region muttrcSmimeFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors 240 241" The following info was pulled from hdr_format_str in hdrline.c 242syn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/ 243syn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2 244" The following info was pulled from alias_format_str in addrbook.c 245syn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/ 246" The following info was pulled from mutt_attach_fmt in recvattach.c 247syn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdefImMnQstTuX%]/ 248syn match muttrcAttachFormatEscapes contained /%[>|*]./ 249syn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2 250syn match muttrcFormatConditionals2 contained /[^?]*?/ 251" The following info was pulled from compose_format_str in compose.c 252syn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/ 253syn match muttrcComposeFormatEscapes contained /%[>|*]./ 254" The following info was pulled from folder_format_str in browser.c 255syn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CdfFglNstu%]/ 256syn match muttrcFolderFormatEscapes contained /%[>|*]./ 257syn match muttrcFolderFormatConditionals contained /%?[N]?/ 258" The following info was pulled from mix_entry_fmt in remailer.c 259syn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/ 260syn match muttrcMixFormatConditionals contained /%?[ncsa]?/ 261" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c 262" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports 263" 'p', but pgp_entry_fmt does not). 264syn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/ 265syn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/ 266" The following info was pulled from _mutt_fmt_pgp_command in 267" pgpinvoke.c 268syn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/ 269syn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2 270" The following info was pulled from status_format_str in status.c 271syn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPrsStuvV%]/ 272syn match muttrcStatusFormatEscapes contained /%[>|*]./ 273syn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2 274" This matches the documentation, but directly contradicts the code 275" (according to the code, this should be identical to the 276" muttrcPGPCmdFormatEscapes 277syn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/ 278" The following info was pulled from _mutt_fmt_smime_command in 279" smime.c 280syn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/ 281syn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2 282 283syn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes 284syn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes 285syn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes 286syn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes 287syn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes 288 289syn keyword muttrcVarStr contained attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt 290syn match muttrcVarEqualsIdxFmt contained "=" nextgroup=muttrcIndexFormatStr 291syn keyword muttrcVarStr contained alias_format nextgroup=muttrcVarEqualsAliasFmt 292syn match muttrcVarEqualsAliasFmt contained "=" nextgroup=muttrcAliasFormatStr 293syn keyword muttrcVarStr contained attach_format nextgroup=muttrcVarEqualsAttachFmt 294syn match muttrcVarEqualsAttachFmt contained "=" nextgroup=muttrcAttachFormatStr 295syn keyword muttrcVarStr contained compose_format nextgroup=muttrcVarEqualsComposeFmt 296syn match muttrcVarEqualsComposeFmt contained "=" nextgroup=muttrcComposeFormatStr 297syn keyword muttrcVarStr contained folder_format nextgroup=muttrcVarEqualsFolderFmt 298syn match muttrcVarEqualsFolderFmt contained "=" nextgroup=muttrcFolderFormatStr 299syn keyword muttrcVarStr contained mix_entry_format nextgroup=muttrcVarEqualsMixFmt 300syn match muttrcVarEqualsMixFmt contained "=" nextgroup=muttrcMixFormatStr 301syn keyword muttrcVarStr contained pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt 302syn match muttrcVarEqualsPGPFmt contained "=" nextgroup=muttrcPGPFormatStr 303syn keyword muttrcVarStr contained 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 304syn match muttrcVarEqualsPGPCmdFmt contained "=" nextgroup=muttrcPGPCmdFormatStr 305syn keyword muttrcVarStr contained status_format nextgroup=muttrcVarEqualsStatusFmt 306syn match muttrcVarEqualsStatusFmt contained "=" nextgroup=muttrcStatusFormatStr 307syn keyword muttrcVarStr contained pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt 308syn match muttrcVarEqualsPGPGetKeysFmt contained "=" nextgroup=muttrcPGPGetKeysFormatStr 309syn keyword muttrcVarStr contained 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 310syn match muttrcVarEqualsSmimeFmt contained "=" nextgroup=muttrcSmimeFormatStr 311 312syn match muttrcVarStr contained 'my_[a-zA-Z0-9_]\+' 313syn keyword muttrcVarStr contained alias_file assumed_charset attach_charset attach_sep 314syn keyword muttrcVarStr contained certificate_file charset config_charset content_type 315syn keyword muttrcVarStr contained date_format default_hook display_filter dotlock_program dsn_notify 316syn keyword muttrcVarStr contained dsn_return editor entropy_file envelope_from_address escape folder 317syn keyword muttrcVarStr contained forw_format forward_format from gecos_mask hdr_format 318syn keyword muttrcVarStr contained header_cache header_cache_pagesize history_file hostname imap_authenticators 319syn keyword muttrcVarStr contained imap_delim_chars imap_headers imap_idle imap_login imap_pass 320syn keyword muttrcVarStr contained imap_user indent_str indent_string ispell locale mailcap_path 321syn keyword muttrcVarStr contained mask mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied 322syn keyword muttrcVarStr contained mh_seq_unseen mixmaster msg_format pager 323syn keyword muttrcVarStr contained pgp_good_sign 324syn keyword muttrcVarStr contained pgp_mime_signature_filename 325syn keyword muttrcVarStr contained pgp_mime_signature_description pgp_sign_as 326syn keyword muttrcVarStr contained pgp_sort_keys 327syn keyword muttrcVarStr contained pipe_sep pop_authenticators pop_host pop_pass pop_user post_indent_str 328syn keyword muttrcVarStr contained post_indent_string postponed preconnect print_cmd print_command 329syn keyword muttrcVarStr contained query_command quote_regexp realname record reply_regexp send_charset 330syn keyword muttrcVarStr contained sendmail shell signature simple_search smileys smime_ca_location 331syn keyword muttrcVarStr contained smime_certificates smime_default_key 332syn keyword muttrcVarStr contained smime_encrypt_with 333syn keyword muttrcVarStr contained smime_keys smime_sign_as 334syn keyword muttrcVarStr contained smtp_url smtp_authenticators smtp_pass sort sort_alias sort_aux 335syn keyword muttrcVarStr contained sort_browser spam_separator spoolfile ssl_ca_certificates_file ssl_client_cert 336syn keyword muttrcVarStr contained status_chars tmpdir to_chars tunnel visual 337 338" Present in 1.4.2.1 (pgp_create_traditional was a bool then) 339syn keyword muttrcVarBool contained imap_force_ssl imap_force_ssl noinvimap_force_ssl 340"syn keyword muttrcVarQuad contained pgp_create_traditional nopgp_create_traditional invpgp_create_traditional 341syn keyword muttrcVarStr contained alternates 342 343syn keyword muttrcMenu contained alias attach browser compose editor index pager postpone pgp mix query generic 344syn match muttrcMenuList "\S\+" contained contains=muttrcMenu 345syn match muttrcMenuCommas /,/ contained 346 347syn keyword muttrcCommand auto_view alternative_order charset-hook exec unalternative_order 348syn keyword muttrcCommand hdr_order iconv-hook ignore mailboxes my_hdr unmailboxes 349syn keyword muttrcCommand pgp-hook push score source unauto_view unhdr_order 350syn keyword muttrcCommand unignore unmono unmy_hdr unscore 351syn keyword muttrcCommand mime_lookup unmime_lookup spam ungroup 352syn keyword muttrcCommand nospam unalternative_order 353 354syn keyword muttrcHooks contained 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 355syn keyword muttrcUnhook contained unhook 356syn region muttrcUnhookLine keepend start=+^\s*unhook\s+ skip=+\\$+ end=+$+ contains=muttrcUnhook,muttrcHooks,muttrcUnHighlightSpace,muttrcComment 357 358syn match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType 359syn match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType 360syn match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag 361 362syn match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)" 363 364syn keyword muttrcListsKeyword contained lists unlists 365syn region muttrcListsLine keepend start=+^\s*\%(un\)\?lists\s+ skip=+\\$+ end=+$+ contains=muttrcListsKeyword,muttrcRXPat,muttrcGroupDef,muttrcUnHighlightSpace,muttrcComment 366 367syn keyword muttrcSubscribeKeyword contained subscribe unsubscribe 368syn region muttrcSubscribeLine keepend start=+^\s*\%(un\)\?subscribe\s+ skip=+\\$+ end=+$+ contains=muttrcSubscribeKeyword,muttrcRXPat,muttrcGroupDef,muttrcUnHighlightSpace,muttrcComment 369 370syn keyword muttrcAlternateKeyword contained alternates unalternates 371syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment 372 373syn match muttrcVariable "\$[a-zA-Z_-]\+" 374 375syn match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail 376syn match muttrcFunction contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|parent\|pipe\|postpone\|print\|recall\|resent\|save\|send\|tag\|undelete\)-message\>" 377syn match muttrcFunction contained "\<\%(delete\|next\|previous\|read\|tag\|undelete\)-thread\>" 378syn match muttrcFunction contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>" 379syn match muttrcFunction contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>" 380syn match muttrcFunction contained "\<attach-\%(file\|key\)\>" 381syn match muttrcFunction contained "\<change-\%(dir\|folder\|folder-readonly\)\>" 382syn match muttrcFunction contained "\<check-\%(new\|traditional-pgp\)\>" 383syn match muttrcFunction contained "\<current-\%(bottom\|middle\|top\)\>" 384syn match muttrcFunction contained "\<decode-\%(copy\|save\)\>" 385syn match muttrcFunction contained "\<delete-\%(char\|pattern\|subthread\)\>" 386syn match muttrcFunction contained "\<display-\%(address\|toggle-weed\)\>" 387syn match muttrcFunction contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|mime\|reply-to\|subject\|to\|type\)\)\?\>" 388syn match muttrcFunction contained "\<enter-\%(command\|mask\)\>" 389syn match muttrcFunction contained "\<half-\%(up\|down\)\>" 390syn match muttrcFunction contained "\<history-\%(up\|down\)\>" 391syn match muttrcFunction contained "\<kill-\%(eol\|eow\|line\)\>" 392syn match muttrcFunction contained "\<next-\%(line\|new\|page\|subthread\|undeleted\|unread\)\>" 393syn match muttrcFunction contained "\<previous-\%(line\|new\|page\|subthread\|undeleted\|unread\)\>" 394syn match muttrcFunction contained "\<search\%(-\%(next\|opposite\|reverse\|toggle\)\)\?\>" 395syn match muttrcFunction contained "\<show-\%(limit\|version\)\>" 396syn match muttrcFunction contained "\<sort-\%(mailbox\|reverse\)\>" 397syn match muttrcFunction contained "\<tag-\%(pattern\|prefix\%(-cond\)\?\)\>" 398syn match muttrcFunction contained "\<toggle-\%(mailboxes\|new\|quoted\|subscribed\|unlink\|write\)\>" 399syn match muttrcFunction contained "\<undelete-\%(pattern\|subthread\)\>" 400syn match muttrcFunction contained "\<collapse-\%(parts\|thread\|all\)\>" 401syn match muttrcFunction contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>" 402syn 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\)\>" 403syn match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName 404 405syn keyword muttrcSet set skipwhite nextgroup=muttrcVar.* 406syn keyword muttrcUnset unset skipwhite nextgroup=muttrcVar.* 407syn keyword muttrcReset reset skipwhite nextgroup=muttrcVar.* 408syn keyword muttrcToggle toggle skipwhite nextgroup=muttrcVar.* 409 410" First, functions that take regular expressions: 411syn match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXString 412syn match muttrcRXHooks /^\s*\%(account\|folder\)-hook\s\+/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXString 413 414" Now, functions that take patterns 415syn match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern 416syn match muttrcPatHooks /^\s*\%(message\|mbox\|save\|fcc\%(-save\)\?\|send2\?\|reply\|crypt\)-hook\s\+/ nextgroup=muttrcPatHookNot,muttrcPattern 417 418syn match muttrcBindFunction contained /\S\+\%(\s\|$\)/ skipwhite contains=muttrcFunction 419syn match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL 420syn match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL 421syn match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL 422syn match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL 423syn match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL 424syn match muttrcBind /^\s*bind\s\?/ skipwhite nextgroup=muttrcBindMenuList,muttrcBindMenuListNL 425 426syn region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s 427syn region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s 428syn region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s 429syn match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL 430syn region muttrcMacroBody contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL 431syn region muttrcMacroBody matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL 432syn region muttrcMacroBody matchgroup=Type contained skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL 433syn match muttrcMacroBodyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL 434syn match muttrcMacroKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL 435syn match muttrcMacroKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL 436syn match muttrcMacroMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL 437syn match muttrcMacroMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL 438syn match muttrcMacro /^\s*macro\s\?/ skipwhite nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL 439 440syn match muttrcAddrContent contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent 441syn region muttrcAddrContent contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent 442syn region muttrcAddrContent contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent 443syn match muttrcAddrDef contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent 444 445syn match muttrcGroupFlag contained "-group" 446syn region muttrcGroupDef contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace 447 448syn keyword muttrcGroupKeyword contained group ungroup 449syn region muttrcGroupLine keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment 450 451syn match muttrcAliasGroupName contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL 452syn match muttrcAliasGroupDefNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL 453syn match muttrcAliasGroupDef contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag 454syn match muttrcAliasComma contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL 455syn match muttrcAliasEmail contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite 456syn match muttrcAliasEncEmail contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma 457syn match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL 458syn match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL 459syn region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite 460syn match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL 461syn match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL 462syn match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL 463syn match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL 464syn match muttrcAlias /^\s*alias\s/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL 465 466syn match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL 467syn match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL 468syn match muttrcUnAlias /^\s*unalias\s\?/ nextgroup=muttrcUnAliasKey,muttrcUnAliasNL 469 470syn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]" 471syn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s\+\%([<>-][0-9]\+\|[0-9]\+[-][0-9]*\)" 472syn 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 473syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s\+" nextgroup=muttrcSimplePatRXContainer 474syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s\+" nextgroup=muttrcSimplePatString 475syn match muttrcSimplePat contained "!\?\^\?[=][bh]\s\+" nextgroup=muttrcSimplePatString 476syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat 477"syn match muttrcSimplePat contained /'[^~=%][^']*/ 478"contains=muttrcRXPat 479syn match muttrcSimplePatString contained /[a-zA-Z0-9]\+/ 480syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+ 481syn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+ 482syn region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXPat 483syn region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXPat 484syn match muttrcSimplePatRXContainer contained /\S\+/ contains=muttrcRXPat 485syn match muttrcSimplePatMetas contained /[(|)]/ 486 487syn region muttrcPattern contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternInner 488syn region muttrcPattern contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternInner 489syn match muttrcPattern contained "[~]\([A-Za-z]\|([^)]\+)\)" contains=muttrcSimplePat 490syn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas 491syn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas 492 493" Colour definitions takes object, foreground and background arguments (regexps excluded). 494syn match muttrcColorMatchCount contained "[0-9]\+" 495syn match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL 496syn region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL 497syn region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL 498syn keyword muttrcColorField contained attachment body bold error hdrdefault header index indicator markers message normal quoted search signature status tilde tree underline 499syn match muttrcColorField contained "\<quoted\d\=\>" 500syn keyword muttrcColor contained black blue cyan default green magenta red white yellow 501syn keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow 502syn match muttrcColor contained "\<\%(bright\)\=color\d\{1,2}\>" 503" Now for the structure of the color line 504syn match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL 505syn match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL 506syn match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL 507syn match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL 508syn match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL 509syn match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorFG,muttrcColorFGNL 510syn match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL 511syn match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL 512syn region muttrcColorLine keepend start=/^\s*color\s\+\%(index\)\@!/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace 513" Now for the structure of the color index line 514syn match muttrcPatternNL contained skipnl "\s*\\$" nextgroup=muttrcPattern,muttrcPatternNL 515syn match muttrcColorBGI contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcPattern,muttrcPatternNL 516syn match muttrcColorBGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorBGI,muttrcColorBGNLI 517syn match muttrcColorFGI contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGI,muttrcColorBGNLI 518syn match muttrcColorFGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorFGI,muttrcColorFGNLI 519syn match muttrcColorContextI contained /\s*index/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGI,muttrcColorFGNLI 520syn match muttrcColorNLI contained skipnl "\s*\\$" nextgroup=muttrcColorContextI,muttrcColorNLI 521syn match muttrcColorKeywordI contained /^\s*color\s\+/ nextgroup=muttrcColorContextI,muttrcColorNLI 522syn region muttrcColorLine keepend start=/^\s*color\s\+index/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordI,muttrcComment,muttrcUnHighlightSpace 523" And now color's brother: 524syn region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL 525syn region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL 526syn match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL 527syn match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL 528syn match muttrcUnColorAll contained skipwhite /[*]/ 529syn match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL 530syn match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL 531syn match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL 532syn match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL 533syn region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace 534 535" Mono are almost like color (ojects inherited from color) 536syn keyword muttrcMonoAttrib contained bold none normal reverse standout underline 537syn keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField 538syn match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono 539 540" Define the default highlighting. 541" For version 5.7 and earlier: only when not done already 542" For version 5.8 and later: only when an item doesn't have highlighting yet 543if version >= 508 || !exists("did_muttrc_syntax_inits") 544 if version < 508 545 let did_muttrc_syntax_inits = 1 546 command -nargs=+ HiLink hi link <args> 547 else 548 command -nargs=+ HiLink hi def link <args> 549 endif 550 551 HiLink muttrcComment Comment 552 HiLink muttrcEscape SpecialChar 553 HiLink muttrcRXChars SpecialChar 554 HiLink muttrcString String 555 HiLink muttrcRXString String 556 HiLink muttrcRXString2 String 557 HiLink muttrcSpecial Special 558 HiLink muttrcHooks Type 559 HiLink muttrcGroupFlag Type 560 HiLink muttrcGroupDef Macro 561 HiLink muttrcAddrDef muttrcGroupFlag 562 HiLink muttrcRXDef muttrcGroupFlag 563 HiLink muttrcRXPat String 564 HiLink muttrcAliasGroupName Macro 565 HiLink muttrcAliasKey Identifier 566 HiLink muttrcUnAliasKey Identifier 567 HiLink muttrcAliasEncEmail Identifier 568 HiLink muttrcAliasParens Type 569 HiLink muttrcNumber Number 570 HiLink muttrcQuadopt Boolean 571 HiLink muttrcEmail Special 572 HiLink muttrcVariable Special 573 HiLink muttrcHeader Type 574 HiLink muttrcKeySpecial SpecialChar 575 HiLink muttrcKey Type 576 HiLink muttrcKeyName SpecialChar 577 HiLink muttrcVarBool Identifier 578 HiLink muttrcVarQuad Identifier 579 HiLink muttrcVarNum Identifier 580 HiLink muttrcVarStr Identifier 581 HiLink muttrcMenu Identifier 582 HiLink muttrcCommand Keyword 583 HiLink muttrcSet Keyword 584 HiLink muttrcUnset muttrcCommand 585 HiLink muttrcReset muttrcCommand 586 HiLink muttrcToggle muttrcCommand 587 HiLink muttrcBind muttrcCommand 588 HiLink muttrcMacro muttrcCommand 589 HiLink muttrcMacroDescr String 590 HiLink muttrcAlias muttrcCommand 591 HiLink muttrcUnAlias muttrcCommand 592 HiLink muttrcUnhook muttrcCommand 593 HiLink muttrcUnhookLine Error 594 HiLink muttrcAction Macro 595 HiLink muttrcBadAction Error 596 HiLink muttrcBindFunction Error 597 HiLink muttrcBindMenuList Error 598 HiLink muttrcFunction Macro 599 HiLink muttrcGroupKeyword muttrcCommand 600 HiLink muttrcGroupLine Error 601 HiLink muttrcSubscribeKeyword muttrcCommand 602 HiLink muttrcSubscribeLine Error 603 HiLink muttrcListsKeyword muttrcCommand 604 HiLink muttrcListsLine Error 605 HiLink muttrcAlternateKeyword muttrcCommand 606 HiLink muttrcAlternatesLine Error 607 HiLink muttrcAttachmentsLine muttrcCommand 608 HiLink muttrcAttachmentsFlag Type 609 HiLink muttrcAttachmentsMimeType String 610 HiLink muttrcColorLine Error 611 HiLink muttrcColorContext Error 612 HiLink muttrcColorContextI Identifier 613 HiLink muttrcColorKeyword muttrcCommand 614 HiLink muttrcColorKeywordI muttrcColorKeyword 615 HiLink muttrcColorField Identifier 616 HiLink muttrcColor Type 617 HiLink muttrcColorFG Error 618 HiLink muttrcColorFGI Error 619 HiLink muttrcColorBG Error 620 HiLink muttrcColorBGI Error 621 HiLink muttrcMonoAttrib muttrcColor 622 HiLink muttrcMono muttrcCommand 623 HiLink muttrcSimplePat Identifier 624 HiLink muttrcSimplePatString Macro 625 HiLink muttrcSimplePatMetas Special 626 HiLink muttrcPattern Type 627 HiLink muttrcPatternInner Error 628 HiLink muttrcUnColorLine Error 629 HiLink muttrcUnColorKeyword muttrcCommand 630 HiLink muttrcUnColorIndex Identifier 631 HiLink muttrcShellString muttrcEscape 632 HiLink muttrcRXHooks muttrcCommand 633 HiLink muttrcRXHookNot Type 634 HiLink muttrcPatHooks muttrcCommand 635 HiLink muttrcPatHookNot Type 636 HiLink muttrcFormatConditionals2 Type 637 HiLink muttrcIndexFormatStr muttrcString 638 HiLink muttrcIndexFormatEscapes muttrcEscape 639 HiLink muttrcIndexFormatConditionals muttrcFormatConditionals2 640 HiLink muttrcAliasFormatStr muttrcString 641 HiLink muttrcAliasFormatEscapes muttrcEscape 642 HiLink muttrcAttachFormatStr muttrcString 643 HiLink muttrcAttachFormatEscapes muttrcEscape 644 HiLink muttrcAttachFormatConditionals muttrcFormatConditionals2 645 HiLink muttrcComposeFormatStr muttrcString 646 HiLink muttrcComposeFormatEscapes muttrcEscape 647 HiLink muttrcFolderFormatStr muttrcString 648 HiLink muttrcFolderFormatEscapes muttrcEscape 649 HiLink muttrcFolderFormatConditionals muttrcFormatConditionals2 650 HiLink muttrcMixFormatStr muttrcString 651 HiLink muttrcMixFormatEscapes muttrcEscape 652 HiLink muttrcMixFormatConditionals muttrcFormatConditionals2 653 HiLink muttrcPGPFormatStr muttrcString 654 HiLink muttrcPGPFormatEscapes muttrcEscape 655 HiLink muttrcPGPFormatConditionals muttrcFormatConditionals2 656 HiLink muttrcPGPCmdFormatStr muttrcString 657 HiLink muttrcPGPCmdFormatEscapes muttrcEscape 658 HiLink muttrcPGPCmdFormatConditionals muttrcFormatConditionals2 659 HiLink muttrcStatusFormatStr muttrcString 660 HiLink muttrcStatusFormatEscapes muttrcEscape 661 HiLink muttrcStatusFormatConditionals muttrcFormatConditionals2 662 HiLink muttrcPGPGetKeysFormatStr muttrcString 663 HiLink muttrcPGPGetKeysFormatEscapes muttrcEscape 664 HiLink muttrcSmimeFormatStr muttrcString 665 HiLink muttrcSmimeFormatEscapes muttrcEscape 666 HiLink muttrcSmimeFormatConditionals muttrcFormatConditionals2 667 HiLink muttrcTimeEscapes muttrcEscape 668 HiLink muttrcPGPTimeEscapes muttrcEscape 669 HiLink muttrcStrftimeEscapes Type 670 HiLink muttrcFormatErrors Error 671 672 HiLink muttrcBindFunctionNL SpecialChar 673 HiLink muttrcBindKeyNL SpecialChar 674 HiLink muttrcBindMenuListNL SpecialChar 675 HiLink muttrcMacroDescrNL SpecialChar 676 HiLink muttrcMacroBodyNL SpecialChar 677 HiLink muttrcMacroKeyNL SpecialChar 678 HiLink muttrcMacroMenuListNL SpecialChar 679 HiLink muttrcColorMatchCountNL SpecialChar 680 HiLink muttrcColorNL SpecialChar 681 HiLink muttrcColorRXNL SpecialChar 682 HiLink muttrcColorBGNL SpecialChar 683 HiLink muttrcColorFGNL SpecialChar 684 HiLink muttrcAliasNameNL SpecialChar 685 HiLink muttrcAliasENNL SpecialChar 686 HiLink muttrcAliasNL SpecialChar 687 HiLink muttrcUnAliasNL SpecialChar 688 HiLink muttrcAliasGroupDefNL SpecialChar 689 HiLink muttrcAliasEncEmailNL SpecialChar 690 HiLink muttrcPatternNL SpecialChar 691 HiLink muttrcUnColorPatNL SpecialChar 692 HiLink muttrcUnColorAPNL SpecialChar 693 HiLink muttrcUnColorIndexNL SpecialChar 694 695 delcommand HiLink 696endif 697 698let b:current_syntax = "muttrc" 699 700"EOF vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim 701