mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
emacs/notmuch-address.el: add notmuch-address-selection-function
Added a customizable variable notmuch-address-selection-function and the function with the same name to provide a way for user to change the function called to do address selection. By default the functionality is exactly the same as it has been so far; completing-read is called with the same parameters as before. Setting equivalent lambda expression in place of using notmuch-address-selection-function function is done as follows: (setq notmuch-address-selection-function (lambda (prompt collection initial-input) (completing-read prompt collection nil nil initial-input))) For example drop-in replacement with ido-completing-read can be done easily as an one alternative to the default.
This commit is contained in:
parent
9641fe1ce7
commit
72dcfede51
1 changed files with 20 additions and 3 deletions
|
@ -31,6 +31,23 @@ line."
|
||||||
:group 'notmuch-send
|
:group 'notmuch-send
|
||||||
:group 'notmuch-external)
|
:group 'notmuch-external)
|
||||||
|
|
||||||
|
(defcustom notmuch-address-selection-function 'notmuch-address-selection-function
|
||||||
|
"The function to select address from given list. The function is
|
||||||
|
called with PROMPT, COLLECTION, and INITIAL-INPUT as arguments
|
||||||
|
(subset of what `completing-read' can be called with).
|
||||||
|
While executed the value of `completion-ignore-case' is t.
|
||||||
|
See documentation of function `notmuch-address-selection-function'
|
||||||
|
to know how address selection is made by default."
|
||||||
|
:type 'function
|
||||||
|
:group 'notmuch-send
|
||||||
|
:group 'notmuch-external)
|
||||||
|
|
||||||
|
(defun notmuch-address-selection-function (prompt collection initial-input)
|
||||||
|
"Call (`completing-read'
|
||||||
|
PROMPT COLLECTION nil nil INITIAL-INPUT 'notmuch-address-history)"
|
||||||
|
(completing-read
|
||||||
|
prompt collection nil nil initial-input 'notmuch-address-history))
|
||||||
|
|
||||||
(defvar notmuch-address-message-alist-member
|
(defvar notmuch-address-message-alist-member
|
||||||
'("^\\(Resent-\\)?\\(To\\|B?Cc\\|Reply-To\\|From\\|Mail-Followup-To\\|Mail-Copies-To\\):"
|
'("^\\(Resent-\\)?\\(To\\|B?Cc\\|Reply-To\\|From\\|Mail-Followup-To\\|Mail-Copies-To\\):"
|
||||||
. notmuch-address-expand-name))
|
. notmuch-address-expand-name))
|
||||||
|
@ -61,9 +78,9 @@ line."
|
||||||
((eq num-options 1)
|
((eq num-options 1)
|
||||||
(car options))
|
(car options))
|
||||||
(t
|
(t
|
||||||
(completing-read (format "Address (%s matches): " num-options)
|
(funcall notmuch-address-selection-function
|
||||||
(cdr options) nil nil (car options)
|
(format "Address (%s matches): " num-options)
|
||||||
'notmuch-address-history)))))
|
(cdr options) (car options))))))
|
||||||
(if chosen
|
(if chosen
|
||||||
(progn
|
(progn
|
||||||
(push chosen notmuch-address-history)
|
(push chosen notmuch-address-history)
|
||||||
|
|
Loading…
Reference in a new issue