blob: 34ebc4f1109ac09efea1999d41632824e81c5240 [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>
lunasophia10f23e12023-08-15 17:05:36 -04004" Maintainer: Luna Celeste <luna@unixpoet.dev>
5" Last Change: 14 Aug 2023
Markus Heidelberg5ad53ca2025-05-19 19:31:23 +02006" 2025 May 19 re-include missing mutt Keywords #17344
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
lunasophia10f23e12023-08-15 17:05:36 -04008" This file covers mutt version 2.2.10
Bram Moolenaar071d4272004-06-13 20:20:40 +00009
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020010" quit when a syntax file was already loaded
11if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 finish
13endif
14
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010015let s:cpo_save = &cpo
16set cpo&vim
17
Bram Moolenaar071d4272004-06-13 20:20:40 +000018" Set the keyword characters
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020019setlocal isk=@,48-57,_,-
Bram Moolenaar071d4272004-06-13 20:20:40 +000020
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010021" handling optional variables
22if !exists("use_mutt_sidebar")
23 let use_mutt_sidebar=0
24endif
25
Bram Moolenaar9964e462007-05-05 17:54:07 +000026syn match muttrcComment "^# .*$" contains=@Spell
27syn match muttrcComment "^#[^ ].*$"
28syn match muttrcComment "^#$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000029syn match muttrcComment "[^\\]#.*$"lc=1
30
31" Escape sequences (back-tick and pipe goes here too)
Bram Moolenaar9964e462007-05-05 17:54:07 +000032syn match muttrcEscape +\\[#tnr"'Cc ]+
Bram Moolenaar071d4272004-06-13 20:20:40 +000033syn match muttrcEscape +[`|]+
Bram Moolenaar446cb832008-06-24 21:56:24 +000034syn match muttrcEscape +\\$+
Bram Moolenaar071d4272004-06-13 20:20:40 +000035
36" The variables takes the following arguments
Bram Moolenaar9de99972010-08-09 22:33:06 +020037"syn match muttrcString contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
38syn region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
39syn region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
40syn match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000041
Bram Moolenaar9de99972010-08-09 22:33:06 +020042syn region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000043
44syn match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1
45syn match muttrcRXChars contained /[][|()][.*?+]*/
Bram Moolenaar446cb832008-06-24 21:56:24 +000046syn match muttrcRXChars contained /['"]^/ms=s+1
47syn match muttrcRXChars contained /$['"]/me=e-1
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000048syn match muttrcRXChars contained /\\/
Bram Moolenaar9964e462007-05-05 17:54:07 +000049" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
Bram Moolenaar9de99972010-08-09 22:33:06 +020050syn region muttrcRXString contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
51syn region muttrcRXString contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
52syn region muttrcRXString contained skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
53" For some reason, skip refuses to match backslashes here...
54syn region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
55syn region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
56syn region muttrcRXString2 contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
57syn region muttrcRXString2 contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000058
Bram Moolenaar9de99972010-08-09 22:33:06 +020059" these must be kept synchronized with muttrcRXString, but are intended for
60" muttrcRXHooks
61syn region muttrcRXHookString contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
62syn region muttrcRXHookString contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
63syn region muttrcRXHookString contained keepend skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
64syn region muttrcRXHookString contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
65syn region muttrcRXHookString contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
66syn match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
67
68" these are exclusively for args lists (e.g. -rx pat pat pat ...)
69syn region muttrcRXPat contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
70syn region muttrcRXPat contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
71syn match muttrcRXPat contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000072syn match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
Bram Moolenaar071d4272004-06-13 20:20:40 +000073
74syn match muttrcSpecial +\(['"]\)!\1+
75
Bram Moolenaar9de99972010-08-09 22:33:06 +020076syn match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
77syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
78syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString
79syn match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
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 muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
83syn match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
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 muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
87syn match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable
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
90syn match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +000091
92" Now catch some email addresses and headers (purified version from mail.vim)
93syn match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +020094syn 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 +000095
Bram Moolenaarf9393ef2006-04-24 19:47:27 +000096syn match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
97syn match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName
98syn region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName
99syn region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName
100syn match muttrcKeyName contained "\<f\%(\d\|10\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000101syn match muttrcKeyName contained "\\[trne]"
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100102syn 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 +0000103syn match muttrcKeyName contained "<F[0-9]\+>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000104
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200105syn keyword muttrcVarBool skipwhite contained
106 \ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split
lunasophia10f23e12023-08-15 17:05:36 -0400107 \ auto_tag autoedit auto_subscribe background_edit background_confirm_quit beep beep_new
108 \ bounce_delivered braille_friendly browser_abbreviate_mailboxes browser_sticky_cursor
109 \ change_folder_next check_mbox_size check_new collapse_unread compose_confirm_detach_first
110 \ confirmappend confirmcreate copy_decode_weed count_alternatives crypt_autoencrypt crypt_autopgp
111 \ crypt_autosign crypt_autosmime crypt_confirmhook crypt_protected_headers_read
112 \ crypt_protected_headers_save crypt_protected_headers_write crypt_opportunistic_encrypt
113 \ crypt_opportunistic_encrypt_strong_keys crypt_replyencrypt crypt_replysign
114 \ crypt_replysignencrypted crypt_timestamp crypt_use_gpgme crypt_use_pka cursor_overlay
115 \ delete_untag digest_collapse duplicate_threads edit_hdrs edit_headers encode_from
116 \ envelope_from fast_reply fcc_before_send fcc_clear flag_safe followup_to force_name forw_decode
117 \ forw_decrypt forw_quote forward_decode forward_quote hdrs header
118 \ header_color_partial help hidden_host hide_limited hide_missing hide_thread_subject
119 \ hide_top_limited hide_top_missing history_remove_dups honor_disposition idn_decode idn_encode
120 \ ignore_linear_white_space ignore_list_reply_to imap_check_subscribed imap_condstore imap_deflate
121 \ imap_list_subscribed imap_passive imap_peek imap_qresync imap_servernoise
122 \ implicit_autoview include_encrypted include_onlyfirst keep_flagged local_date_header
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200123 \ mail_check_recent mail_check_stats mailcap_sanitize maildir_check_cur
124 \ maildir_header_cache_verify maildir_trash mark_old markers menu_move_off
125 \ menu_scroll message_cache_clean meta_key metoo mh_purge mime_forward_decode
lunasophia10f23e12023-08-15 17:05:36 -0400126 \ mime_type_query_first muttlisp_inline_eval narrow_tree pager_stop pgp_auto_decode
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200127 \ pgp_auto_traditional pgp_autoencrypt pgp_autoinline pgp_autosign
lunasophia10f23e12023-08-15 17:05:36 -0400128 \ pgp_check_exit pgp_check_gpg_decrypt_status_fd pgp_create_traditional
129 \ pgp_ignore_subkeys pgp_long_ids pgp_replyencrypt pgp_replyinline
130 \ pgp_replysign pgp_replysignencrypted pgp_retainable_sigs pgp_self_encrypt
131 \ pgp_self_encrypt_as pgp_show_unusable pgp_strict_enc pgp_use_gpg_agent
132 \ pipe_decode pipe_decode_weed pipe_split pop_auth_try_all pop_last postpone_encrypt
133 \ postpone_encrypt_as print_decode print_decode_weed print_split prompt_after read_only
134 \ reflow_space_quotes reflow_text reflow_wrap reply_self resolve
135 \ resume_draft_files resume_edited_draft_files reverse_alias reverse_name
136 \ reverse_realname rfc2047_parameters save_address save_empty save_name score
137 \ sidebar_folder_indent sidebar_new_mail_only sidebar_next_new_wrap
138 \ sidebar_relative_shortpath_indent sidebar_short_path sidebar_sort sidebar_use_mailbox_shortcuts
139 \ sidebar_visible sig_on_top sig_dashes size_show_bytes size_show_fraction size_show_mb
140 \ size_units_on_left smart_wrap smime_ask_cert_label smime_decrypt_use_default_key
141 \ smime_is_default smime_self_encrypt smime_self_encrypt_as sort_re
142 \ ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 ssl_use_tlsv1 ssl_use_tlsv1_3 ssl_usesystemcerts
143 \ ssl_verify_dates ssl_verify_host ssl_verify_partial_chains status_on_top
144 \ strict_mime strict_threads suspend text_flowed thorough_search
145 \ thread_received tilde ts_enabled tunnel_is_secure uncollapse_jump use_8bitmime use_domain
146 \ use_envelope_from use_from use_idn use_ipv6 uncollapse_new user_agent
147 \ wait_key weed wrap_search write_bcc
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200148 \ nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000149
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200150syn keyword muttrcVarBool skipwhite contained
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200151 \ noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc noaskcc
lunasophia10f23e12023-08-15 17:05:36 -0400152 \ noattach_split noauto_tag noautoedit noauto_subscribe nobackground_edit
153 \ nobackground_confirm_quit nobeep nobeep_new nobounce_delivered
154 \ nobraille_friendly nobrowser_abbreviate_mailboxes nobrowser_sticky_cursor nochange_folder_next
155 \ nocheck_mbox_size nocheck_new nocompose_confirm_detach_first nocollapse_unread noconfirmappend
156 \ noconfirmcreate nocopy_decode_weed nocount_alternatives nocrypt_autoencrypt nocrypt_autopgp
157 \ nocrypt_autosign nocrypt_autosmime nocrypt_confirmhook nocrypt_protected_headers_read
158 \ nocrypt_protected_headers_save nocrypt_protected_headers_write nocrypt_opportunistic_encrypt
159 \ nocrypt_opportunistic_encrypt_strong_keys nocrypt_replyencrypt nocrypt_replysign
160 \ nocrypt_replysignencrypted nocrypt_timestamp nocrypt_use_gpgme nocrypt_use_pka nocursor_overlay
161 \ nodelete_untag nodigest_collapse noduplicate_threads noedit_hdrs noedit_headers
162 \ noencode_from noenvelope_from nofast_reply nofcc_before_send nofcc_clear noflag_safe
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200163 \ nofollowup_to noforce_name noforw_decode noforw_decrypt noforw_quote
lunasophia10f23e12023-08-15 17:05:36 -0400164 \ noforward_decode noforward_quote nohdrs noheader
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200165 \ noheader_color_partial nohelp nohidden_host nohide_limited nohide_missing
166 \ nohide_thread_subject nohide_top_limited nohide_top_missing
167 \ nohistory_remove_dups nohonor_disposition noidn_decode noidn_encode
168 \ noignore_linear_white_space noignore_list_reply_to noimap_check_subscribed
lunasophia10f23e12023-08-15 17:05:36 -0400169 \ noimap_condstore noimap_deflate noimap_list_subscribed noimap_passive noimap_peek
170 \ noimap_qresync noimap_servernoise noimplicit_autoview noinclude_encrypted noinclude_onlyfirst
171 \ nokeep_flagged nolocal_date_header nomail_check_recent nomail_check_stats nomailcap_sanitize
172 \ nomaildir_check_cur nomaildir_header_cache_verify nomaildir_trash nomark_old
173 \ nomarkers nomenu_move_off nomenu_scroll nomessage_cache_clean nometa_key
174 \ nometoo nomh_purge nomime_forward_decode nomime_type_query_first nomuttlisp_inline_eval
175 \ nonarrow_tree nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt
176 \ nopgp_autoinline nopgp_autosign nopgp_check_exit
177 \ nopgp_check_gpg_decrypt_status_fd nopgp_create_traditional
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200178 \ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline
179 \ nopgp_replysign nopgp_replysignencrypted nopgp_retainable_sigs
180 \ nopgp_self_encrypt nopgp_self_encrypt_as nopgp_show_unusable
lunasophia10f23e12023-08-15 17:05:36 -0400181 \ nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_decode_weed nopipe_split
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200182 \ nopop_auth_try_all nopop_last nopostpone_encrypt nopostpone_encrypt_as
lunasophia10f23e12023-08-15 17:05:36 -0400183 \ noprint_decode noprint_decode_weed noprint_split noprompt_after noread_only
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200184 \ noreflow_space_quotes noreflow_text noreflow_wrap noreply_self noresolve
185 \ noresume_draft_files noresume_edited_draft_files noreverse_alias
186 \ noreverse_name noreverse_realname norfc2047_parameters nosave_address
187 \ nosave_empty nosave_name noscore nosidebar_folder_indent
lunasophia10f23e12023-08-15 17:05:36 -0400188 \ nosidebar_new_mail_only nosidebar_next_new_wrap nosidebar_relative_shortpath_indent
189 \ nosidebar_short_path nosidebar_sort nosidebar_visible nosidebar_use_mailbox_shortcuts
190 \ nosig_dashes nosig_on_top nosize_show_bytes nosize_show_fraction nosize_show_mb
191 \ nosize_units_on_left nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key
192 \ nosmime_is_default nosmime_self_encrypt nosmime_self_encrypt_as nosort_re nossl_force_tls
193 \ nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1 nossl_use_tlsv1_3 nossl_usesystemcerts
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200194 \ nossl_verify_dates nossl_verify_host nossl_verify_partial_chains
195 \ nostatus_on_top nostrict_mime nostrict_threads nosuspend notext_flowed
lunasophia10f23e12023-08-15 17:05:36 -0400196 \ nothorough_search nothread_received notilde nots_enabled notunnel_is_secure nouncollapse_jump
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200197 \ nouse_8bitmime nouse_domain nouse_envelope_from nouse_from nouse_idn
198 \ nouse_ipv6 nouncollapse_new nouser_agent nowait_key noweed nowrap_search
199 \ nowrite_bcc
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200200 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000201
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200202syn keyword muttrcVarBool skipwhite contained
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200203 \ invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc
lunasophia10f23e12023-08-15 17:05:36 -0400204 \ invaskcc invattach_split invauto_tag invautoedit invauto_subscribe nobackground_edit
205 \ nobackground_confirm_quit invbeep invbeep_new invbounce_delivered invbraille_friendly
206 \ invbrowser_abbreviate_mailboxes invbrowser_sticky_cursor invchange_folder_next
207 \ invcheck_mbox_size invcheck_new invcollapse_unread invcompose_confirm_detach_first
208 \ invconfirmappend invcopy_decode_weed invconfirmcreate invcount_alternatives invcrypt_autopgp
209 \ invcrypt_autoencrypt invcrypt_autosign invcrypt_autosmime invcrypt_confirmhook
210 \ invcrypt_protected_headers_read invcrypt_protected_headers_save invcrypt_protected_headers_write
211 \ invcrypt_opportunistic_encrypt invcrypt_opportunistic_encrypt_strong_keys invcrypt_replysign
212 \ invcrypt_replyencrypt invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme
213 \ invcrypt_use_pka invcursor_overlay invdelete_untag invdigest_collapse invduplicate_threads
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200214 \ invedit_hdrs invedit_headers invencode_from invenvelope_from invfast_reply
lunasophia10f23e12023-08-15 17:05:36 -0400215 \ invfcc_before_send invfcc_clear invflag_safe invfollowup_to invforce_name invforw_decode
216 \ invforw_decrypt invforw_quote invforward_decode
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200217 \ invforward_quote invhdrs invheader invheader_color_partial invhelp
218 \ invhidden_host invhide_limited invhide_missing invhide_thread_subject
219 \ invhide_top_limited invhide_top_missing invhistory_remove_dups
220 \ invhonor_disposition invidn_decode invidn_encode
221 \ invignore_linear_white_space invignore_list_reply_to
lunasophia10f23e12023-08-15 17:05:36 -0400222 \ invimap_check_subscribed invimap_condstore invimap_deflate invimap_list_subscribed
223 \ invimap_passive invimap_peek invimap_qresync invimap_servernoise invimplicit_autoview
224 \ invinclude_encrypted invinclude_onlyfirst invkeep_flagged invlocal_date_header
225 \ invmail_check_recent invmail_check_stats invmailcap_sanitize invmaildir_check_cur
226 \ invmaildir_header_cache_verify invmaildir_trash invmark_old invmarkers invmenu_move_off
227 \ invmenu_scroll invmessage_cache_clean invmeta_key invmetoo invmh_purge
228 \ invmime_forward_decode invmime_type_query_first invmuttlisp_inline_eval invnarrow_tree
229 \ invpager_stop invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200230 \ invpgp_autoinline invpgp_autosign invpgp_check_exit
lunasophia10f23e12023-08-15 17:05:36 -0400231 \ invpgp_check_gpg_decrypt_status_fd invpgp_create_traditional
232 \ invpgp_ignore_subkeys invpgp_long_ids invpgp_replyencrypt invpgp_replyinline
233 \ invpgp_replysign invpgp_replysignencrypted invpgp_retainable_sigs
234 \ invpgp_self_encrypt invpgp_self_encrypt_as invpgp_show_unusable
235 \ invpgp_strict_enc invpgp_use_gpg_agent invpipe_decode invpipe_decode_weed invpipe_split
236 \ invpop_auth_try_all invpop_last invpostpone_encrypt invpostpone_encrypt_as
237 \ invprint_decode invprint_decode_weed invprint_split invprompt_after invread_only
238 \ invreflow_space_quotes invreflow_text invreflow_wrap invreply_self invresolve
Markus Heidelberg5ad53ca2025-05-19 19:31:23 +0200239 \ invresume_draft_files invresume_edited_draft_files invreverse_alias
lunasophia10f23e12023-08-15 17:05:36 -0400240 \ invreverse_name invreverse_realname invrfc2047_parameters invsave_address
241 \ invsave_empty invsave_name invscore invsidebar_folder_indent
242 \ invsidebar_new_mail_only invsidebar_next_new_wrap invsidebar_relative_shortpath_indent
243 \ invsidebar_short_path invsidebar_sort sidebar_use_mailbox_shortcuts invsidebar_visible
244 \ invsig_dashes invsig_on_top invsize_show_bytes invsize_show_fraction invsize_show_mb
245 \ invsize_units_on_left invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key
246 \ invsmime_is_default invsmime_self_encrypt invsmime_self_encrypt_as invsort_re invssl_force_tls
247 \ invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1 invssl_use_tlsv1_3 invssl_usesystemcerts
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200248 \ invssl_verify_dates invssl_verify_host invssl_verify_partial_chains
249 \ invstatus_on_top invstrict_mime invstrict_threads invsuspend invtext_flowed
lunasophia10f23e12023-08-15 17:05:36 -0400250 \ invthorough_search invthread_received invtilde invts_enabled invtunnel_is_secure
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200251 \ invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from
252 \ invuse_from invuse_idn invuse_ipv6 invuncollapse_new invuser_agent
253 \ invwait_key invweed invwrap_search invwrite_bcc
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200254 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000255
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200256syn keyword muttrcVarQuad skipwhite contained
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200257 \ abort_nosubject abort_unmodified abort_noattach bounce copy crypt_verify_sig
lunasophia10f23e12023-08-15 17:05:36 -0400258 \ delete fcc_attach forward_attachments forward_decrypt forward_edit honor_followup_to include
259 \ mime_forward mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete
260 \ pop_reconnect postpone print quit recall reply_to send_multipart_alternative ssl_starttls
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200261 \ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000262
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200263syn keyword muttrcVarQuad skipwhite contained
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200264 \ noabort_nosubject noabort_unmodified noabort_noattach nobounce nocopy
lunasophia10f23e12023-08-15 17:05:36 -0400265 \ nocrypt_verify_sig nodelete nofcc_attach noforward_attachments noforward_decrypt noforward_edit
266 \ nohonor_followup_to noinclude nomime_forward nomime_forward_rest nomime_fwd nomove
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200267 \ nopgp_mime_auto nopgp_verify_sig nopop_delete nopop_reconnect nopostpone
lunasophia10f23e12023-08-15 17:05:36 -0400268 \ noprint noquit norecall noreply_to nosend_multipart_alternative nossl_starttls
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200269 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000270
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200271syn keyword muttrcVarQuad skipwhite contained
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200272 \ invabort_nosubject invabort_unmodified invabort_noattach invbounce invcopy
lunasophia10f23e12023-08-15 17:05:36 -0400273 \ invcrypt_verify_sig invdelete invfcc_attach invforward_attachments invforward_decrypt
274 \ invforward_edit invhonor_followup_to invinclude invmime_forward invmime_forward_rest
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200275 \ invmime_fwd invmove invpgp_mime_auto invpgp_verify_sig invpop_delete
276 \ invpop_reconnect invpostpone invprint invquit invrecall invreply_to
lunasophia10f23e12023-08-15 17:05:36 -0400277 \ invsend_multipart_alternative invssl_starttls
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200278 \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000279
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200280syn keyword muttrcVarNum skipwhite contained
lunasophia10f23e12023-08-15 17:05:36 -0400281 \ connect_timeout error_history history imap_fetch_chunk_size imap_keepalive imap_pipeline_depth
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200282 \ imap_poll_timeout mail_check mail_check_stats_interval menu_context net_inc
lunasophia10f23e12023-08-15 17:05:36 -0400283 \ pager_context pager_index_lines pager_skip_quoted_context pgp_timeout pop_checkinterval read_inc
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200284 \ save_history score_threshold_delete score_threshold_flag
285 \ score_threshold_read search_context sendmail_wait sidebar_width sleep_time
286 \ smime_timeout ssl_min_dh_prime_bits time_inc timeout wrap wrap_headers
287 \ wrapmargin write_inc
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200288 \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar9de99972010-08-09 22:33:06 +0200289
290syn match muttrcFormatErrors contained /%./
Bram Moolenaar446cb832008-06-24 21:56:24 +0000291
292syn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
293syn match muttrcStrftimeEscapes contained /%E[cCxXyY]/
294syn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
295
Bram Moolenaar9de99972010-08-09 22:33:06 +0200296syn region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
297syn region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
298syn region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
299syn region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
300syn region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
301syn region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
302syn region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
303syn region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
304syn region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
305syn region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
306syn region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
307syn region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
308syn region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
309syn region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
310syn region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
311syn region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
312syn region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
313syn region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
314syn region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
315syn region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
316syn region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
317syn region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
318syn region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
319syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
320syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar446cb832008-06-24 21:56:24 +0000321
322" The following info was pulled from hdr_format_str in hdrline.c
323syn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/
Bram Moolenaar9de99972010-08-09 22:33:06 +0200324syn match muttrcIndexFormatEscapes contained /%[>|*]./
Bram Moolenaar446cb832008-06-24 21:56:24 +0000325syn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2
326" The following info was pulled from alias_format_str in addrbook.c
327syn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
Bram Moolenaarc236c162008-07-13 17:41:49 +0000328" The following info was pulled from query_format_str in query.c
329syn match muttrcQueryFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acent%]/
330syn match muttrcQueryFormatConditionals contained /%?[e]?/ nextgroup=muttrcFormatConditionals2
Bram Moolenaar446cb832008-06-24 21:56:24 +0000331" The following info was pulled from mutt_attach_fmt in recvattach.c
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200332syn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdeFfImMnQstTuX%]/
Bram Moolenaar446cb832008-06-24 21:56:24 +0000333syn match muttrcAttachFormatEscapes contained /%[>|*]./
334syn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2
335syn match muttrcFormatConditionals2 contained /[^?]*?/
336" The following info was pulled from compose_format_str in compose.c
337syn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
338syn match muttrcComposeFormatEscapes contained /%[>|*]./
339" The following info was pulled from folder_format_str in browser.c
Bram Moolenaar9de99972010-08-09 22:33:06 +0200340syn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CDdfFglNstu%]/
Bram Moolenaar446cb832008-06-24 21:56:24 +0000341syn match muttrcFolderFormatEscapes contained /%[>|*]./
342syn match muttrcFolderFormatConditionals contained /%?[N]?/
343" The following info was pulled from mix_entry_fmt in remailer.c
344syn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/
345syn match muttrcMixFormatConditionals contained /%?[ncsa]?/
346" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c
347" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports
348" 'p', but pgp_entry_fmt does not).
349syn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/
350syn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/
351" The following info was pulled from _mutt_fmt_pgp_command in
352" pgpinvoke.c
353syn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/
354syn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2
355" The following info was pulled from status_format_str in status.c
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200356syn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPRrsStuvV%]/
Bram Moolenaar446cb832008-06-24 21:56:24 +0000357syn match muttrcStatusFormatEscapes contained /%[>|*]./
358syn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2
359" This matches the documentation, but directly contradicts the code
360" (according to the code, this should be identical to the
361" muttrcPGPCmdFormatEscapes
362syn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/
363" The following info was pulled from _mutt_fmt_smime_command in
364" smime.c
365syn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/
366syn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2
367
368syn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
369syn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
370syn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
371syn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
372syn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
373
Bram Moolenaar9de99972010-08-09 22:33:06 +0200374syn keyword muttrcVarStr contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
375syn match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
376syn keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
377syn match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr
378syn keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
379syn match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr
lunasophia10f23e12023-08-15 17:05:36 -0400380syn keyword muttrcVarStr contained skipwhite background_format nextgroup=muttrcVarEqualsBackgroundFormatFmt
381syn match muttrcVarEqualsBackgroundFormatFmt contained skipwhite "=" nextgroup=muttrcBackgroundFormatStr
Bram Moolenaar9de99972010-08-09 22:33:06 +0200382syn keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
383syn match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr
384syn keyword muttrcVarStr contained skipwhite folder_format nextgroup=muttrcVarEqualsFolderFmt
385syn match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr
lunasophia10f23e12023-08-15 17:05:36 -0400386syn keyword muttrcVarStr contained skipwhite message_id_format nextgroup=muttrcVarEqualsMessageIdFmt
387syn match muttrcVarEqualsMessageIdFmt contained skipwhite "=" nextgroup=muttrcMessageIdFormatStr
Bram Moolenaar9de99972010-08-09 22:33:06 +0200388syn keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
389syn match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
390syn keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
391syn match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
392syn keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
393syn match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
394syn 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
395syn match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200396syn keyword muttrcVarStr contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
Bram Moolenaar9de99972010-08-09 22:33:06 +0200397syn match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
398syn keyword muttrcVarStr contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
399syn match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
400syn 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
401syn match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
402syn keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
403syn match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000404
Bram Moolenaar9de99972010-08-09 22:33:06 +0200405syn match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
406
407syn match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200408syn keyword muttrcVarStr contained skipwhite
lunasophia10f23e12023-08-15 17:05:36 -0400409 \ abort_noattach_regexp alias_file assumed_charset attach_charset attach_save_dir attach_sep
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200410 \ attribution_locale certificate_file charset config_charset content_type
lunasophia10f23e12023-08-15 17:05:36 -0400411 \ crypt_protected_headers_subject default_hook display_filter dotlock_program dsn_notify
412 \ dsn_return editor entropy_file envelope_from_address escape fcc_delimiter folder forw_format
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200413 \ forward_attribution_intro forward_attribution_trailer forward_format from gecos_mask
414 \ hdr_format header_cache header_cache_compress header_cache_pagesize history_file
415 \ hostname imap_authenticators imap_delim_chars imap_headers imap_idle imap_login
lunasophia10f23e12023-08-15 17:05:36 -0400416 \ imap_oauth_refresh_command imap_pass imap_user indent_str indent_string ispell locale
Markus Heidelberg5ad53ca2025-05-19 19:31:23 +0200417 \ mailcap_path mark_macro_prefix mask mbox mbox_type message_cachedir mh_seq_flagged
lunasophia10f23e12023-08-15 17:05:36 -0400418 \ mh_seq_replied mh_seq_unseen mime_type_query_command mixmaster msg_format new_mail_command
419 \ pager pgp_default_key pgp_decryption_okay pgp_good_sign pgp_mime_signature_description
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200420 \ pgp_mime_signature_filename pgp_sign_as pgp_sort_keys pipe_sep pop_authenticators
lunasophia10f23e12023-08-15 17:05:36 -0400421 \ pop_host pop_oauth_refresh_command pop_pass pop_user post_indent_str post_indent_string
422 \ postpone_encrypt_as postponed preconnect print_cmd print_command query_command
423 \ quote_regexp realname record reply_regexp send_charset send_multipart_alternative_filter
424 \ sendmail shell sidebar_delim
425 \ sidebar_delim_chars sidebar_divider_char sidebar_format sidebar_indent_string
426 \ sidebar_sort_method signature simple_search smileys smime_ca_location smime_certificates
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200427 \ smime_default_key smime_encrypt_with smime_keys smime_sign_as smime_sign_digest_alg
lunasophia10f23e12023-08-15 17:05:36 -0400428 \ smtp_authenticators smtp_oauth_refresh_command smtp_pass smtp_url sort sort_alias
429 \ sort_aux sort_browser sort_thread_groups spam_separator spoolfile ssl_ca_certificates_file
430 \ ssl_ciphers ssl_client_cert ssl_verify_host_override status_chars tmpdir to_chars trash
431 \ ts_icon_format ts_status_format tunnel visual
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200432 \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000433
434" Present in 1.4.2.1 (pgp_create_traditional was a bool then)
Bram Moolenaar9de99972010-08-09 22:33:06 +0200435syn 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 +0000436"syn keyword muttrcVarQuad contained pgp_create_traditional nopgp_create_traditional invpgp_create_traditional
Bram Moolenaar9de99972010-08-09 22:33:06 +0200437syn keyword muttrcVarStr contained skipwhite alternates nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000438
439syn keyword muttrcMenu contained alias attach browser compose editor index pager postpone pgp mix query generic
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000440syn match muttrcMenuList "\S\+" contained contains=muttrcMenu
441syn match muttrcMenuCommas /,/ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +0000442
lunasophia10f23e12023-08-15 17:05:36 -0400443syn keyword muttrcHooks contained skipwhite account-hook charset-hook iconv-hook index-format-hook message-hook folder-hook mbox-hook save-hook fcc-hook fcc-save-hook send-hook send2-hook reply-hook crypt-hook
Bram Moolenaar9de99972010-08-09 22:33:06 +0200444
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200445syn keyword muttrcCommand skipwhite
lunasophia10f23e12023-08-15 17:05:36 -0400446 \ alternative_order auto_view cd exec hdr_order iconv-hook ignore index-format-hook mailboxes
447 \ mailto_allow mime_lookup my_hdr pgp-hook push run score sidebar_whitelist source
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200448 \ unalternative_order unalternative_order unauto_view ungroup unhdr_order
449 \ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200450 \ unsidebar_whitelist
Bram Moolenaar9de99972010-08-09 22:33:06 +0200451syn keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString
452syn keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000453
Bram Moolenaar9de99972010-08-09 22:33:06 +0200454syn keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern
455syn region muttrcSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
456syn region muttrcSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
457
458syn keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern
459syn region muttrcNoSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
460syn region muttrcNoSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
Bram Moolenaar9964e462007-05-05 17:54:07 +0000461
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000462syn match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
463syn match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
464syn match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
465
466syn match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
467
Bram Moolenaar9de99972010-08-09 22:33:06 +0200468syn keyword muttrcAsterisk contained *
469syn keyword muttrcListsKeyword lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
470syn keyword muttrcListsKeyword unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000471
Bram Moolenaar9de99972010-08-09 22:33:06 +0200472syn keyword muttrcSubscribeKeyword subscribe nextgroup=muttrcGroupDef,muttrcComment
473syn keyword muttrcSubscribeKeyword unsubscribe nextgroup=muttrcAsterisk,muttrcComment
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000474
475syn keyword muttrcAlternateKeyword contained alternates unalternates
476syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
477
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100478" muttrcVariable includes a prefix because partial strings are considered
479" valid.
480syn match muttrcVariable contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
481syn match muttrcVariableInner contained "\$[a-zA-Z_-]\+"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200482syn match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000483
484syn match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200485syn match muttrcFunction contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|mark\|parent\|pipe\|postpone\|print\|purge\|recall\|resend\|root\|save\|send\|tag\|undelete\)-message\>"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200486syn match muttrcFunction contained "\<\%(delete\|next\|previous\|read\|tag\|break\|undelete\)-thread\>"
487syn match muttrcFunction contained "\<link-threads\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000488syn match muttrcFunction contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>"
489syn match muttrcFunction contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>"
490syn match muttrcFunction contained "\<attach-\%(file\|key\)\>"
lunasophia10f23e12023-08-15 17:05:36 -0400491syn match muttrcFunction contained "\<background-compose-menu\>"
492syn match muttrcFunction contained "\<browse-mailbox\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000493syn match muttrcFunction contained "\<change-\%(dir\|folder\|folder-readonly\)\>"
494syn match muttrcFunction contained "\<check-\%(new\|traditional-pgp\)\>"
495syn match muttrcFunction contained "\<current-\%(bottom\|middle\|top\)\>"
496syn match muttrcFunction contained "\<decode-\%(copy\|save\)\>"
497syn match muttrcFunction contained "\<delete-\%(char\|pattern\|subthread\)\>"
lunasophia10f23e12023-08-15 17:05:36 -0400498syn match muttrcFunction contained "\<descend-directory\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000499syn match muttrcFunction contained "\<display-\%(address\|toggle-weed\)\>"
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200500syn match muttrcFunction contained "\<echo\>"
501syn match muttrcFunction contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|label\|mime\|reply-to\|subject\|to\|type\)\)\?\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000502syn match muttrcFunction contained "\<enter-\%(command\|mask\)\>"
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200503syn match muttrcFunction contained "\<error-history\>"
lunasophia10f23e12023-08-15 17:05:36 -0400504syn match muttrcFunction contained "\<group-chat-reply\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000505syn match muttrcFunction contained "\<half-\%(up\|down\)\>"
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200506syn match muttrcFunction contained "\<history-\%(up\|down\|search\)\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000507syn match muttrcFunction contained "\<kill-\%(eol\|eow\|line\)\>"
lunasophia10f23e12023-08-15 17:05:36 -0400508syn match muttrcFunction contained "\<move-\%(down\|up\)\>"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200509syn match muttrcFunction contained "\<next-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\|unread-mailbox\)\>"
510syn match muttrcFunction contained "\<previous-\%(line\|new\%(-then-unread\)\?\|page\|subthread\|undeleted\|unread\)\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000511syn match muttrcFunction contained "\<search\%(-\%(next\|opposite\|reverse\|toggle\)\)\?\>"
512syn match muttrcFunction contained "\<show-\%(limit\|version\)\>"
513syn match muttrcFunction contained "\<sort-\%(mailbox\|reverse\)\>"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200514syn match muttrcFunction contained "\<tag-\%(pattern\|\%(sub\)\?thread\|prefix\%(-cond\)\?\)\>"
515syn match muttrcFunction contained "\<end-cond\>"
lunasophia10f23e12023-08-15 17:05:36 -0400516syn match muttrcFunction contained "\<sidebar-\%(first\|last\|next\|next-new\|open\|page-down\|page-up\|prev\|prev-new\|toggle-visible\)\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000517syn match muttrcFunction contained "\<toggle-\%(mailboxes\|new\|quoted\|subscribed\|unlink\|write\)\>"
518syn match muttrcFunction contained "\<undelete-\%(pattern\|subthread\)\>"
519syn match muttrcFunction contained "\<collapse-\%(parts\|thread\|all\)\>"
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200520syn match muttrcFunction contained "\<rename-attachment\>"
521syn match muttrcFunction contained "\<subjectrx\>"
522syn match muttrcFunction contained "\<\%(un\)\?setenv\>"
lunasophia10f23e12023-08-15 17:05:36 -0400523syn match muttrcFunction contained "\<view-\%(alt\|alt-text\|alt-mailcap\|alt-pager\|attach\|attachments\|file\|mailcap\|name\|pager\|text\)\>"
524syn match muttrcFunction contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|check-stats\|clear-flag\|complete\%(-query\)\?\|compose-to-sender\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-action\|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-headers\|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 +0200525syn keyword muttrcFunction contained imap-logout-all
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100526if use_mutt_sidebar == 1
527 syn match muttrcFunction contained "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
528endif
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000529syn match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
Bram Moolenaar071d4272004-06-13 20:20:40 +0000530
Bram Moolenaar9de99972010-08-09 22:33:06 +0200531syn keyword muttrcCommand set skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
532syn keyword muttrcCommand unset skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
533syn keyword muttrcCommand reset skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
534syn keyword muttrcCommand toggle skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
Bram Moolenaar071d4272004-06-13 20:20:40 +0000535
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000536" First, functions that take regular expressions:
Bram Moolenaar9de99972010-08-09 22:33:06 +0200537syn match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
538syn match muttrcRXHooks /\<\%(account\|folder\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
Bram Moolenaar071d4272004-06-13 20:20:40 +0000539
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000540" Now, functions that take patterns
541syn match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern
Bram Moolenaar9de99972010-08-09 22:33:06 +0200542syn match muttrcPatHooks /\<\%(mbox\|crypt\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
543syn match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|\|fcc\%(-save\)\?\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
Bram Moolenaar071d4272004-06-13 20:20:40 +0000544
lunasophia10f23e12023-08-15 17:05:36 -0400545syn match muttrcIndexFormatHookName contained /\S\+/ skipwhite nextgroup=muttrcPattern,muttrcString
546syn match muttrcIndexFormatHook /index-format-hook/ skipwhite nextgroup=muttrcIndexFormatHookName,muttrcString
547
Bram Moolenaar9de99972010-08-09 22:33:06 +0200548syn match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000549syn match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
550syn match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
551syn match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
552syn match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
553syn match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200554syn keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000555
Bram Moolenaar9964e462007-05-05 17:54:07 +0000556syn region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
557syn region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
558syn region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
559syn match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
560syn 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 +0200561syn 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
562syn 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 +0000563syn match muttrcMacroBodyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
564syn match muttrcMacroKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000565syn match muttrcMacroKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
566syn match muttrcMacroMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
567syn match muttrcMacroMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200568syn keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000569
570syn match muttrcAddrContent contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
571syn region muttrcAddrContent contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
572syn region muttrcAddrContent contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
573syn match muttrcAddrDef contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
574
575syn match muttrcGroupFlag contained "-group"
576syn region muttrcGroupDef contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
577
578syn keyword muttrcGroupKeyword contained group ungroup
579syn region muttrcGroupLine keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
580
Bram Moolenaar9964e462007-05-05 17:54:07 +0000581syn match muttrcAliasGroupName contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000582syn match muttrcAliasGroupDefNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
583syn match muttrcAliasGroupDef contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
Bram Moolenaar9964e462007-05-05 17:54:07 +0000584syn match muttrcAliasComma contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
585syn match muttrcAliasEmail contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
586syn match muttrcAliasEncEmail contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000587syn match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
588syn match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
589syn region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite
590syn match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000591syn match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
592syn match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
593syn match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200594syn keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000595
Bram Moolenaar9964e462007-05-05 17:54:07 +0000596syn match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
597syn match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200598syn keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000599
600syn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
Bram Moolenaar9de99972010-08-09 22:33:06 +0200601syn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
602syn 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
603syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
604syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100605syn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
Bram Moolenaar446cb832008-06-24 21:56:24 +0000606syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
Bram Moolenaar9de99972010-08-09 22:33:06 +0200607"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
Bram Moolenaar9964e462007-05-05 17:54:07 +0000608syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
609syn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
Bram Moolenaar9de99972010-08-09 22:33:06 +0200610syn region muttrcSimplePatString contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1
611syn region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
612syn region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
613syn region muttrcSimplePatRXContainer contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000614syn match muttrcSimplePatMetas contained /[(|)]/
615
Bram Moolenaar9de99972010-08-09 22:33:06 +0200616syn match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
617syn match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
618syn region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
619syn region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
620syn region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
621syn match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
622syn match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
623" Keep muttrcPattern and muttrcOptPattern synchronized
624syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
625syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
626syn region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
Bram Moolenaar0b0f0992018-05-22 21:41:30 +0200627syn region muttrcPattern contained keepend skipwhite start=+[~][<>](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
Bram Moolenaar9de99972010-08-09 22:33:06 +0200628syn match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
629syn match muttrcPattern contained skipwhite /[.]/
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000630syn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
631syn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
Bram Moolenaar071d4272004-06-13 20:20:40 +0000632
633" Colour definitions takes object, foreground and background arguments (regexps excluded).
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000634syn match muttrcColorMatchCount contained "[0-9]\+"
635syn match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000636syn region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
637syn region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
Bram Moolenaare4a3bcf2016-08-26 19:52:37 +0200638syn keyword muttrcColorField skipwhite contained
639 \ attachment body bold error hdrdefault header index indicator markers message
640 \ normal prompt quoted search sidebar-divider sidebar-flagged sidebar-highlight
641 \ sidebar-indicator sidebar-new sidebar-spoolfile signature status tilde tree
642 \ underline
Bram Moolenaar071d4272004-06-13 20:20:40 +0000643syn match muttrcColorField contained "\<quoted\d\=\>"
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100644if use_mutt_sidebar == 1
645 syn keyword muttrcColorField contained sidebar_new
646endif
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000647syn keyword muttrcColor contained black blue cyan default green magenta red white yellow
648syn keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100649syn match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>"
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000650" Now for the structure of the color line
Bram Moolenaar9964e462007-05-05 17:54:07 +0000651syn match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
652syn match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
653syn match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
654syn match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
655syn match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
656syn match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorFG,muttrcColorFGNL
657syn match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL
658syn match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL
Bram Moolenaar9de99972010-08-09 22:33:06 +0200659syn region muttrcColorLine keepend start=/^\s*color\s\+\%(index\|header\)\@!/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000660" Now for the structure of the color index line
Bram Moolenaar9964e462007-05-05 17:54:07 +0000661syn match muttrcPatternNL contained skipnl "\s*\\$" nextgroup=muttrcPattern,muttrcPatternNL
662syn match muttrcColorBGI contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcPattern,muttrcPatternNL
663syn match muttrcColorBGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorBGI,muttrcColorBGNLI
664syn match muttrcColorFGI contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGI,muttrcColorBGNLI
665syn match muttrcColorFGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorFGI,muttrcColorFGNLI
Bram Moolenaar9de99972010-08-09 22:33:06 +0200666syn match muttrcColorContextI contained /\s*\<index\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGI,muttrcColorFGNLI
Bram Moolenaar9964e462007-05-05 17:54:07 +0000667syn match muttrcColorNLI contained skipnl "\s*\\$" nextgroup=muttrcColorContextI,muttrcColorNLI
Bram Moolenaar9de99972010-08-09 22:33:06 +0200668syn match muttrcColorKeywordI contained skipwhite /\<color\>/ nextgroup=muttrcColorContextI,muttrcColorNLI
669syn region muttrcColorLine keepend skipwhite start=/\<color\s\+index\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordI,muttrcComment,muttrcUnHighlightSpace
670" Now for the structure of the color header line
671syn match muttrcRXPatternNL contained skipnl "\s*\\$" nextgroup=muttrcRXString,muttrcRXPatternNL
672syn match muttrcColorBGH contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcRXString,muttrcRXPatternNL
673syn match muttrcColorBGNLH contained skipnl "\s*\\$" nextgroup=muttrcColorBGH,muttrcColorBGNLH
674syn match muttrcColorFGH contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGH,muttrcColorBGNLH
675syn match muttrcColorFGNLH contained skipnl "\s*\\$" nextgroup=muttrcColorFGH,muttrcColorFGNLH
676syn match muttrcColorContextH contained /\s*\<header\>/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGH,muttrcColorFGNLH
677syn match muttrcColorNLH contained skipnl "\s*\\$" nextgroup=muttrcColorContextH,muttrcColorNLH
678syn match muttrcColorKeywordH contained skipwhite /\<color\>/ nextgroup=muttrcColorContextH,muttrcColorNLH
679syn region muttrcColorLine keepend skipwhite start=/\<color\s\+header\>/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordH,muttrcComment,muttrcUnHighlightSpace
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000680" And now color's brother:
681syn region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
682syn region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
683syn match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
684syn match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
685syn match muttrcUnColorAll contained skipwhite /[*]/
686syn match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
687syn match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
688syn match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
689syn match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
690syn region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
Bram Moolenaar071d4272004-06-13 20:20:40 +0000691
692" Mono are almost like color (ojects inherited from color)
693syn keyword muttrcMonoAttrib contained bold none normal reverse standout underline
694syn keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField
695syn match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
696
697" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200698" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000699
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200700hi def link muttrcComment Comment
701hi def link muttrcEscape SpecialChar
702hi def link muttrcRXChars SpecialChar
703hi def link muttrcString String
704hi def link muttrcRXString String
705hi def link muttrcRXString2 String
706hi def link muttrcSpecial Special
707hi def link muttrcHooks Type
708hi def link muttrcGroupFlag Type
709hi def link muttrcGroupDef Macro
710hi def link muttrcAddrDef muttrcGroupFlag
711hi def link muttrcRXDef muttrcGroupFlag
712hi def link muttrcRXPat String
713hi def link muttrcAliasGroupName Macro
714hi def link muttrcAliasKey Identifier
715hi def link muttrcUnAliasKey Identifier
716hi def link muttrcAliasEncEmail Identifier
717hi def link muttrcAliasParens Type
718hi def link muttrcSetNumAssignment Number
719hi def link muttrcSetBoolAssignment Boolean
720hi def link muttrcSetQuadAssignment Boolean
721hi def link muttrcSetStrAssignment String
722hi def link muttrcEmail Special
723hi def link muttrcVariableInner Special
724hi def link muttrcEscapedVariable String
725hi def link muttrcHeader Type
726hi def link muttrcKeySpecial SpecialChar
727hi def link muttrcKey Type
728hi def link muttrcKeyName SpecialChar
729hi def link muttrcVarBool Identifier
730hi def link muttrcVarQuad Identifier
731hi def link muttrcVarNum Identifier
732hi def link muttrcVarStr Identifier
733hi def link muttrcMenu Identifier
734hi def link muttrcCommand Keyword
735hi def link muttrcMacroDescr String
736hi def link muttrcAction Macro
737hi def link muttrcBadAction Error
738hi def link muttrcBindFunction Error
739hi def link muttrcBindMenuList Error
740hi def link muttrcFunction Macro
741hi def link muttrcGroupKeyword muttrcCommand
742hi def link muttrcGroupLine Error
743hi def link muttrcSubscribeKeyword muttrcCommand
744hi def link muttrcSubscribeLine Error
745hi def link muttrcListsKeyword muttrcCommand
746hi def link muttrcListsLine Error
747hi def link muttrcAlternateKeyword muttrcCommand
748hi def link muttrcAlternatesLine Error
749hi def link muttrcAttachmentsLine muttrcCommand
750hi def link muttrcAttachmentsFlag Type
751hi def link muttrcAttachmentsMimeType String
752hi def link muttrcColorLine Error
753hi def link muttrcColorContext Error
754hi def link muttrcColorContextI Identifier
755hi def link muttrcColorContextH Identifier
756hi def link muttrcColorKeyword muttrcCommand
757hi def link muttrcColorKeywordI muttrcColorKeyword
758hi def link muttrcColorKeywordH muttrcColorKeyword
759hi def link muttrcColorField Identifier
760hi def link muttrcColor Type
761hi def link muttrcColorFG Error
762hi def link muttrcColorFGI Error
763hi def link muttrcColorFGH Error
764hi def link muttrcColorBG Error
765hi def link muttrcColorBGI Error
766hi def link muttrcColorBGH Error
767hi def link muttrcMonoAttrib muttrcColor
768hi def link muttrcMono muttrcCommand
769hi def link muttrcSimplePat Identifier
770hi def link muttrcSimplePatString Macro
771hi def link muttrcSimplePatMetas Special
772hi def link muttrcPattern Error
773hi def link muttrcUnColorLine Error
774hi def link muttrcUnColorKeyword muttrcCommand
775hi def link muttrcUnColorIndex Identifier
776hi def link muttrcShellString muttrcEscape
777hi def link muttrcRXHooks muttrcCommand
778hi def link muttrcRXHookNot Type
779hi def link muttrcPatHooks muttrcCommand
lunasophia10f23e12023-08-15 17:05:36 -0400780hi def link muttrcIndexFormatHookName muttrcCommand
781hi def link muttrcIndexFormatHook muttrcCommand
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200782hi def link muttrcPatHookNot Type
783hi def link muttrcFormatConditionals2 Type
784hi def link muttrcIndexFormatStr muttrcString
785hi def link muttrcIndexFormatEscapes muttrcEscape
786hi def link muttrcIndexFormatConditionals muttrcFormatConditionals2
787hi def link muttrcAliasFormatStr muttrcString
788hi def link muttrcAliasFormatEscapes muttrcEscape
789hi def link muttrcAttachFormatStr muttrcString
790hi def link muttrcAttachFormatEscapes muttrcEscape
791hi def link muttrcAttachFormatConditionals muttrcFormatConditionals2
lunasophia10f23e12023-08-15 17:05:36 -0400792hi def link muttrcBackgroundFormatStr muttrcString
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200793hi def link muttrcComposeFormatStr muttrcString
794hi def link muttrcComposeFormatEscapes muttrcEscape
795hi def link muttrcFolderFormatStr muttrcString
796hi def link muttrcFolderFormatEscapes muttrcEscape
797hi def link muttrcFolderFormatConditionals muttrcFormatConditionals2
lunasophia10f23e12023-08-15 17:05:36 -0400798hi def link muttrcMessageIdFormatStr muttrcString
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200799hi def link muttrcMixFormatStr muttrcString
800hi def link muttrcMixFormatEscapes muttrcEscape
801hi def link muttrcMixFormatConditionals muttrcFormatConditionals2
802hi def link muttrcPGPFormatStr muttrcString
803hi def link muttrcPGPFormatEscapes muttrcEscape
804hi def link muttrcPGPFormatConditionals muttrcFormatConditionals2
805hi def link muttrcPGPCmdFormatStr muttrcString
806hi def link muttrcPGPCmdFormatEscapes muttrcEscape
807hi def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
808hi def link muttrcStatusFormatStr muttrcString
809hi def link muttrcStatusFormatEscapes muttrcEscape
810hi def link muttrcStatusFormatConditionals muttrcFormatConditionals2
811hi def link muttrcPGPGetKeysFormatStr muttrcString
812hi def link muttrcPGPGetKeysFormatEscapes muttrcEscape
813hi def link muttrcSmimeFormatStr muttrcString
814hi def link muttrcSmimeFormatEscapes muttrcEscape
815hi def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
816hi def link muttrcTimeEscapes muttrcEscape
817hi def link muttrcPGPTimeEscapes muttrcEscape
818hi def link muttrcStrftimeEscapes Type
819hi def link muttrcStrftimeFormatStr muttrcString
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200820hi def link muttrcBindMenuListNL SpecialChar
821hi def link muttrcMacroDescrNL SpecialChar
822hi def link muttrcMacroBodyNL SpecialChar
823hi def link muttrcMacroKeyNL SpecialChar
824hi def link muttrcMacroMenuListNL SpecialChar
825hi def link muttrcColorMatchCountNL SpecialChar
826hi def link muttrcColorNL SpecialChar
827hi def link muttrcColorRXNL SpecialChar
828hi def link muttrcColorBGNL SpecialChar
829hi def link muttrcColorFGNL SpecialChar
830hi def link muttrcAliasNameNL SpecialChar
831hi def link muttrcAliasENNL SpecialChar
832hi def link muttrcAliasNL SpecialChar
833hi def link muttrcUnAliasNL SpecialChar
834hi def link muttrcAliasGroupDefNL SpecialChar
835hi def link muttrcAliasEncEmailNL SpecialChar
836hi def link muttrcPatternNL SpecialChar
837hi def link muttrcUnColorPatNL SpecialChar
838hi def link muttrcUnColorAPNL SpecialChar
839hi def link muttrcUnColorIndexNL SpecialChar
840hi def link muttrcStringNL SpecialChar
Bram Moolenaar9964e462007-05-05 17:54:07 +0000841
Bram Moolenaar071d4272004-06-13 20:20:40 +0000842
843let b:current_syntax = "muttrc"
844
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100845let &cpo = s:cpo_save
846unlet s:cpo_save
Bram Moolenaar446cb832008-06-24 21:56:24 +0000847"EOF vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim