mu4e-compose: overhaul message composer

This is a new composer sub-system, which more closely follows
Gnus/message; in particular, we let gnus take care of creating draft
messages.

This reduces code size and allows us to re-use some of the more advanced
features.

There are a number of user-visible changes:

- `mu4e-compose-resend' directly uses `message-resend', so there is no
  more editing phase (which used to be a bit broken with re-encoding
  MIME messages.
This commit is contained in:
Dirk-Jan C. Binnema
2023-10-05 08:57:22 +03:00
parent 24f1fe8d45
commit 85bfe76336
6 changed files with 778 additions and 1509 deletions

View File

@ -1,6 +1,6 @@
;;; mu4e-obsolete-vars.el --- Obsolete things -*- lexical-binding: t -*-
;;; mu4e-obsolete.el --- Obsolete things -*- lexical-binding: t -*-
;; Copyright (C) 2022 Dirk-Jan C. Binnema
;; Copyright (C) 2022-2023 Dirk-Jan C. Binnema
;; Author: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
;; Maintainer: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
@ -28,7 +28,7 @@
;;; Code:
;; mu4e-draft
;; mu4e-draft/compose
(make-obsolete-variable 'mu4e-reply-to-address
'mu4e-compose-reply-to-address
@ -54,6 +54,15 @@
(make-obsolete-variable 'mu4e-compose-auto-include-date
"This is done unconditionally now" "1.3.5")
(make-obsolete-variable 'mu4e-compose-signature-auto-include
"Usage message-signature directly" "1.11.22")
(define-obsolete-variable-alias
'mu4e-compose-signature 'message-signature "1.11.22")
(define-obsolete-variable-alias
'mu4e-compose-cite-function 'message-cite-function "1.11.22")
(define-obsolete-variable-alias
'mu4e-compose-in-new-frame 'mu4e-compose-switch "1.11.22")
;; mu4e-message
@ -111,9 +120,9 @@
;; mu4e-org
(make-obsolete 'org-mu4e-open 'mu4e-org-open "1.3.6")
(make-obsolete 'org-mu4e-store-and-capture
'mu4e-org-store-and-capture "1.3.6")
(define-obsolete-function-alias 'org-mu4e-open 'mu4e-org-open "1.3.6")
(define-obsolete-function-alias 'org-mu4e-store-and-capture
'mu4e-org-store-and-capture "1.3.6")
;; mu4e-search
@ -227,8 +236,32 @@
;; mu4e-folder
(make-obsolete-variable 'mu4e-cache-maildir-list "No longer used" "1.11.15")
;; mu4e-contacts
(define-obsolete-function-alias 'mu4e-user-mail-address-p
'mu4e-personal-address-p "1.5.5")
;; don't use the older vars anymore
(make-obsolete-variable 'mu4e-user-mail-address-regexp
'mu4e-user-mail-address-list "0.9.9.x")
(make-obsolete-variable 'mu4e-my-email-addresses
'mu4e-user-mail-address-list "0.9.9.x")
(make-obsolete-variable 'mu4e-user-mail-address-list
"determined by server; see `mu4e-personal-addresses'."
"1.3.8")
(make-obsolete-variable 'mu4e-contact-rewrite-function
"mu4e-contact-process-function (see docstring)"
"mu4e 1.3.2")
(make-obsolete-variable 'mu4e-compose-complete-ignore-address-regexp
"mu4e-contact-process-function (see docstring)"
"mu4e 1.3.2")
;; calendar
(define-obsolete-function-alias 'mu4e-icalendar-setup #'ignore '"1.11.22")
;; mu4e.
(make-obsolete 'mu4e-clear-caches "No longer used" "1.11.15")
(provide 'mu4e-obsolete)
;;; mu4e-obsolete.el ends here