diff options
Diffstat (limited to 'runtime/syntax/muttrc.vim')
-rw-r--r-- | runtime/syntax/muttrc.vim | 201 |
1 files changed, 167 insertions, 34 deletions
diff --git a/runtime/syntax/muttrc.vim b/runtime/syntax/muttrc.vim index fb88f6afd..0b1d16164 100644 --- a/runtime/syntax/muttrc.vim +++ b/runtime/syntax/muttrc.vim @@ -2,9 +2,9 @@ " Language: Mutt setup files " Original: Preben 'Peppe' Guldberg <peppe-vim@wielders.org> " Maintainer: Kyle Wheeler <kyle-muttrc.vim@memoryhole.net> -" Last Change: 5 Mar 2007 +" Last Change: 15 Aug 2007 -" This file covers mutt version 1.5.14 (and most of CVS HEAD) +" This file covers mutt version 1.5.16 (and most of CVS HEAD) " Included are also a few features from 1.4.2.1 " For version 5.x: Clear all syntax items @@ -30,18 +30,19 @@ syn match muttrcComment "[^\\]#.*$"lc=1 " Escape sequences (back-tick and pipe goes here too) syn match muttrcEscape +\\[#tnr"'Cc ]+ syn match muttrcEscape +[`|]+ +syn match muttrcEscape +\\$+ " The variables takes the following arguments syn match muttrcString "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape -syn region muttrcString start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction +syn region muttrcString start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction,muttrcShellString syn region muttrcString start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction syn region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand,muttrcSet syn match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1 syn match muttrcRXChars contained /[][|()][.*?+]*/ -syn match muttrcRXChars contained /'^/ms=s+1 -syn match muttrcRXChars contained /$'/me=e-1 +syn match muttrcRXChars contained /['"]^/ms=s+1 +syn match muttrcRXChars contained /$['"]/me=e-1 syn match muttrcRXChars contained /\\/ " Why does muttrcRXString2 work with one \ when muttrcRXString requires two? syn region muttrcRXString contained start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars @@ -78,21 +79,21 @@ syn match muttrcKeyName contained "\c<\%(BackSpace\|Delete\|Down\|End\|Enter\| syn keyword muttrcVarBool contained allow_8bit allow_ansi arrow_cursor ascii_chars askbcc syn keyword muttrcVarBool contained askcc attach_split auto_tag autoedit beep beep_new -syn keyword muttrcVarBool contained bounce_delivered braille_friendly check_new collapse_unread +syn keyword muttrcVarBool contained bounce_delivered braille_friendly check_new check_mbox_size collapse_unread syn keyword muttrcVarBool contained confirmappend confirmcreate crypt_autoencrypt crypt_autopgp syn keyword muttrcVarBool contained crypt_autosign crypt_autosmime crypt_replyencrypt syn keyword muttrcVarBool contained crypt_replysign crypt_replysignencrypted crypt_timestamp -syn keyword muttrcVarBool contained crypt_use_gpgme delete_untag digest_collapse duplicate_threads +syn keyword muttrcVarBool contained crypt_use_gpgme crypt_use_pka delete_untag digest_collapse duplicate_threads syn keyword muttrcVarBool contained edit_hdrs edit_headers encode_from envelope_from fast_reply syn keyword muttrcVarBool contained fcc_attach fcc_clear followup_to force_name forw_decode syn keyword muttrcVarBool contained forw_decrypt forw_quote forward_decode forward_decrypt syn keyword muttrcVarBool contained forward_quote hdrs header help hidden_host hide_limited syn keyword muttrcVarBool contained hide_missing hide_thread_subject hide_top_limited -syn keyword muttrcVarBool contained hide_top_missing ignore_list_reply_to imap_check_subscribed +syn keyword muttrcVarBool contained hide_top_missing ignore_linear_white_space ignore_list_reply_to imap_check_subscribed syn keyword muttrcVarBool contained imap_list_subscribed imap_passive imap_peek imap_servernoise syn keyword muttrcVarBool contained implicit_autoview include_onlyfirst keep_flagged syn keyword muttrcVarBool contained mailcap_sanitize maildir_header_cache_verify maildir_trash -syn keyword muttrcVarBool contained mark_old markers menu_move_off menu_scroll meta_key +syn keyword muttrcVarBool contained mark_old markers menu_move_off menu_scroll message_cache_clean meta_key syn keyword muttrcVarBool contained metoo mh_purge mime_forward_decode narrow_tree pager_stop syn keyword muttrcVarBool contained pgp_auto_decode pgp_auto_traditional pgp_autoencrypt syn keyword muttrcVarBool contained pgp_autoinline pgp_autosign pgp_check_exit @@ -206,37 +207,133 @@ syn keyword muttrcVarNum contained connect_timeout history imap_keepalive mail_c syn keyword muttrcVarNum contained pager_context pager_index_lines pgp_timeout pop_checkinterval read_inc syn keyword muttrcVarNum contained save_history score_threshold_delete score_threshold_flag syn keyword muttrcVarNum contained score_threshold_read sendmail_wait sleep_time smime_timeout -syn keyword muttrcVarNum contained ssl_min_dh_prime_bits timeout wrap wrapmargin write_inc +syn keyword muttrcVarNum contained ssl_min_dh_prime_bits timeout time_inc wrap wrapmargin write_inc + +syn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/ +syn match muttrcStrftimeEscapes contained /%E[cCxXyY]/ +syn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/ + +syn match muttrcFormatErrors contained /%./ + +syn region muttrcIndexFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes +syn region muttrcIndexFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes +syn region muttrcAliasFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors +syn region muttrcAliasFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors +syn region muttrcAttachFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors +syn region muttrcAttachFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors +syn region muttrcComposeFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors +syn region muttrcComposeFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors +syn region muttrcFolderFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors +syn region muttrcFolderFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors +syn region muttrcMixFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors +syn region muttrcMixFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors +syn region muttrcPGPFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes +syn region muttrcPGPFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes +syn region muttrcPGPCmdFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors +syn region muttrcPGPCmdFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors +syn region muttrcStatusFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors +syn region muttrcStatusFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors +syn region muttrcPGPGetKeysFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors +syn region muttrcPGPGetKeysFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors +syn region muttrcSmimeFormatStr contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors +syn region muttrcSmimeFormatStr contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors + +" The following info was pulled from hdr_format_str in hdrline.c +syn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/ +syn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2 +" The following info was pulled from alias_format_str in addrbook.c +syn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/ +" The following info was pulled from mutt_attach_fmt in recvattach.c +syn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdefImMnQstTuX%]/ +syn match muttrcAttachFormatEscapes contained /%[>|*]./ +syn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2 +syn match muttrcFormatConditionals2 contained /[^?]*?/ +" The following info was pulled from compose_format_str in compose.c +syn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/ +syn match muttrcComposeFormatEscapes contained /%[>|*]./ +" The following info was pulled from folder_format_str in browser.c +syn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CdfFglNstu%]/ +syn match muttrcFolderFormatEscapes contained /%[>|*]./ +syn match muttrcFolderFormatConditionals contained /%?[N]?/ +" The following info was pulled from mix_entry_fmt in remailer.c +syn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/ +syn match muttrcMixFormatConditionals contained /%?[ncsa]?/ +" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c +" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports +" 'p', but pgp_entry_fmt does not). +syn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/ +syn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/ +" The following info was pulled from _mutt_fmt_pgp_command in +" pgpinvoke.c +syn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/ +syn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2 +" The following info was pulled from status_format_str in status.c +syn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPrsStuvV%]/ +syn match muttrcStatusFormatEscapes contained /%[>|*]./ +syn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2 +" This matches the documentation, but directly contradicts the code +" (according to the code, this should be identical to the +" muttrcPGPCmdFormatEscapes +syn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/ +" The following info was pulled from _mutt_fmt_smime_command in +" smime.c +syn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/ +syn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2 + +syn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes +syn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes +syn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes +syn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes +syn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes + +syn keyword muttrcVarStr contained attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt +syn match muttrcVarEqualsIdxFmt contained "=" nextgroup=muttrcIndexFormatStr +syn keyword muttrcVarStr contained alias_format nextgroup=muttrcVarEqualsAliasFmt +syn match muttrcVarEqualsAliasFmt contained "=" nextgroup=muttrcAliasFormatStr +syn keyword muttrcVarStr contained attach_format nextgroup=muttrcVarEqualsAttachFmt +syn match muttrcVarEqualsAttachFmt contained "=" nextgroup=muttrcAttachFormatStr +syn keyword muttrcVarStr contained compose_format nextgroup=muttrcVarEqualsComposeFmt +syn match muttrcVarEqualsComposeFmt contained "=" nextgroup=muttrcComposeFormatStr +syn keyword muttrcVarStr contained folder_format nextgroup=muttrcVarEqualsFolderFmt +syn match muttrcVarEqualsFolderFmt contained "=" nextgroup=muttrcFolderFormatStr +syn keyword muttrcVarStr contained mix_entry_format nextgroup=muttrcVarEqualsMixFmt +syn match muttrcVarEqualsMixFmt contained "=" nextgroup=muttrcMixFormatStr +syn keyword muttrcVarStr contained pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt +syn match muttrcVarEqualsPGPFmt contained "=" nextgroup=muttrcPGPFormatStr +syn 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 +syn match muttrcVarEqualsPGPCmdFmt contained "=" nextgroup=muttrcPGPCmdFormatStr +syn keyword muttrcVarStr contained status_format nextgroup=muttrcVarEqualsStatusFmt +syn match muttrcVarEqualsStatusFmt contained "=" nextgroup=muttrcStatusFormatStr +syn keyword muttrcVarStr contained pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt +syn match muttrcVarEqualsPGPGetKeysFmt contained "=" nextgroup=muttrcPGPGetKeysFormatStr +syn 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 +syn match muttrcVarEqualsSmimeFmt contained "=" nextgroup=muttrcSmimeFormatStr syn match muttrcVarStr contained 'my_[a-zA-Z0-9_]\+' -syn keyword muttrcVarStr contained alias_file alias_format assumed_charset attach_format attach_sep attribution -syn keyword muttrcVarStr contained certificate_file charset compose_format config_charset content_type +syn keyword muttrcVarStr contained alias_file assumed_charset attach_charset attach_sep +syn keyword muttrcVarStr contained certificate_file charset config_charset content_type syn keyword muttrcVarStr contained date_format default_hook display_filter dotlock_program dsn_notify syn keyword muttrcVarStr contained dsn_return editor entropy_file envelope_from_address escape folder -syn keyword muttrcVarStr contained folder_format forw_format forward_format from gecos_mask hdr_format +syn keyword muttrcVarStr contained forw_format forward_format from gecos_mask hdr_format syn keyword muttrcVarStr contained header_cache header_cache_pagesize history_file hostname imap_authenticators -syn keyword muttrcVarStr contained imap_delim_chars imap_headers imap_home_namespace imap_idle imap_login imap_pass -syn keyword muttrcVarStr contained imap_user indent_str indent_string index_format ispell locale mailcap_path -syn keyword muttrcVarStr contained mask mbox mbox_type message_format message_cachedir mh_seq_flagged mh_seq_replied -syn keyword muttrcVarStr contained mh_seq_unseen mix_entry_format mixmaster msg_format pager pager_format -syn keyword muttrcVarStr contained pgp_clearsign_command pgp_decode_command pgp_decrypt_command -syn keyword muttrcVarStr contained pgp_encrypt_only_command pgp_encrypt_sign_command pgp_entry_format -syn keyword muttrcVarStr contained pgp_export_command pgp_getkeys_command pgp_good_sign pgp_import_command -syn keyword muttrcVarStr contained pgp_list_pubring_command pgp_list_secring_command pgp_mime_signature_filename +syn keyword muttrcVarStr contained imap_delim_chars imap_headers imap_idle imap_login imap_pass +syn keyword muttrcVarStr contained imap_user indent_str indent_string ispell locale mailcap_path +syn keyword muttrcVarStr contained mask mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied +syn keyword muttrcVarStr contained mh_seq_unseen mixmaster msg_format pager +syn keyword muttrcVarStr contained pgp_good_sign +syn keyword muttrcVarStr contained pgp_mime_signature_filename syn keyword muttrcVarStr contained pgp_mime_signature_description pgp_sign_as -syn keyword muttrcVarStr contained pgp_sign_command pgp_sort_keys pgp_verify_command pgp_verify_key_command +syn keyword muttrcVarStr contained pgp_sort_keys syn keyword muttrcVarStr contained pipe_sep pop_authenticators pop_host pop_pass pop_user post_indent_str syn keyword muttrcVarStr contained post_indent_string postponed preconnect print_cmd print_command syn keyword muttrcVarStr contained query_command quote_regexp realname record reply_regexp send_charset syn keyword muttrcVarStr contained sendmail shell signature simple_search smileys smime_ca_location -syn keyword muttrcVarStr contained smime_certificates smime_decrypt_command smime_default_key -syn keyword muttrcVarStr contained smime_encrypt_command smime_encrypt_with smime_get_cert_command -syn keyword muttrcVarStr contained smime_get_cert_email_command smime_get_signer_cert_command -syn keyword muttrcVarStr contained smime_import_cert_command smime_keys smime_pk7out_command smime_sign_as -syn keyword muttrcVarStr contained smime_sign_command smime_sign_opaque_command smime_verify_command -syn keyword muttrcVarStr contained smime_verify_opaque_command smtp_url smtp_authenticators sort sort_alias sort_aux +syn keyword muttrcVarStr contained smime_certificates smime_default_key +syn keyword muttrcVarStr contained smime_encrypt_with +syn keyword muttrcVarStr contained smime_keys smime_sign_as +syn keyword muttrcVarStr contained smtp_url smtp_authenticators smtp_pass sort sort_alias sort_aux syn keyword muttrcVarStr contained sort_browser spam_separator spoolfile ssl_ca_certificates_file ssl_client_cert -syn keyword muttrcVarStr contained status_chars status_format tmpdir to_chars tunnel visual +syn keyword muttrcVarStr contained status_chars tmpdir to_chars tunnel visual " Present in 1.4.2.1 (pgp_create_traditional was a bool then) syn keyword muttrcVarBool contained imap_force_ssl imap_force_ssl noinvimap_force_ssl @@ -372,12 +469,13 @@ syn match muttrcUnAlias /^\s*unalias\s\?/ nextgroup=muttrcUnAliasKey,muttrcUnAl syn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]" syn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s\+\%([<>-][0-9]\+\|[0-9]\+[-][0-9]*\)" -syn 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]\)\)" +syn 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 syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s\+" nextgroup=muttrcSimplePatRXContainer syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s\+" nextgroup=muttrcSimplePatString syn match muttrcSimplePat contained "!\?\^\?[=][bh]\s\+" nextgroup=muttrcSimplePatString -"syn match muttrcSimplePat contained /"[^~=%][^"]*/ contains=muttrcRXPat -"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXPat +syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat +"syn match muttrcSimplePat contained /'[^~=%][^']*/ +"contains=muttrcRXPat syn match muttrcSimplePatString contained /[a-zA-Z0-9]\+/ syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+ syn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+ @@ -388,7 +486,7 @@ syn match muttrcSimplePatMetas contained /[(|)]/ syn region muttrcPattern contained keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternInner syn region muttrcPattern contained keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternInner -syn match muttrcPattern contained "[~][A-Za-z]" contains=muttrcSimplePat +syn match muttrcPattern contained "[~]\([A-Za-z]\|([^)]\+)\)" contains=muttrcSimplePat syn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas syn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas @@ -535,6 +633,41 @@ if version >= 508 || !exists("did_muttrc_syntax_inits") HiLink muttrcRXHookNot Type HiLink muttrcPatHooks muttrcCommand HiLink muttrcPatHookNot Type + HiLink muttrcFormatConditionals2 Type + HiLink muttrcIndexFormatStr muttrcString + HiLink muttrcIndexFormatEscapes muttrcEscape + HiLink muttrcIndexFormatConditionals muttrcFormatConditionals2 + HiLink muttrcAliasFormatStr muttrcString + HiLink muttrcAliasFormatEscapes muttrcEscape + HiLink muttrcAttachFormatStr muttrcString + HiLink muttrcAttachFormatEscapes muttrcEscape + HiLink muttrcAttachFormatConditionals muttrcFormatConditionals2 + HiLink muttrcComposeFormatStr muttrcString + HiLink muttrcComposeFormatEscapes muttrcEscape + HiLink muttrcFolderFormatStr muttrcString + HiLink muttrcFolderFormatEscapes muttrcEscape + HiLink muttrcFolderFormatConditionals muttrcFormatConditionals2 + HiLink muttrcMixFormatStr muttrcString + HiLink muttrcMixFormatEscapes muttrcEscape + HiLink muttrcMixFormatConditionals muttrcFormatConditionals2 + HiLink muttrcPGPFormatStr muttrcString + HiLink muttrcPGPFormatEscapes muttrcEscape + HiLink muttrcPGPFormatConditionals muttrcFormatConditionals2 + HiLink muttrcPGPCmdFormatStr muttrcString + HiLink muttrcPGPCmdFormatEscapes muttrcEscape + HiLink muttrcPGPCmdFormatConditionals muttrcFormatConditionals2 + HiLink muttrcStatusFormatStr muttrcString + HiLink muttrcStatusFormatEscapes muttrcEscape + HiLink muttrcStatusFormatConditionals muttrcFormatConditionals2 + HiLink muttrcPGPGetKeysFormatStr muttrcString + HiLink muttrcPGPGetKeysFormatEscapes muttrcEscape + HiLink muttrcSmimeFormatStr muttrcString + HiLink muttrcSmimeFormatEscapes muttrcEscape + HiLink muttrcSmimeFormatConditionals muttrcFormatConditionals2 + HiLink muttrcTimeEscapes muttrcEscape + HiLink muttrcPGPTimeEscapes muttrcEscape + HiLink muttrcStrftimeEscapes Type + HiLink muttrcFormatErrors Error HiLink muttrcBindFunctionNL SpecialChar HiLink muttrcBindKeyNL SpecialChar @@ -564,4 +697,4 @@ endif let b:current_syntax = "muttrc" -"EOF vim: ts=8 noet tw=100 sw=8 sts=0 +"EOF vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim |