branch: externals/org-contacts commit 271ec25b43470ad451b0d97c3120e734b9c0efbc Author: Grégoire Jadi <gregoire.j...@gmail.com> Commit: Grégoire Jadi <gregoire.j...@gmail.com>
contrib/lisp/org-contacts.el: Permit to unload properly `org-contacts' * contrib/lisp/org-contacts.el (org-contacts-setup-completion-at-point): Setup `completion-at-point-functions' in a dedicated function so it's easier to add and to remove it from `message-mode-hook'. (org-contacts-unload-hook): This function removes all hooks added while loading `org-contacts' in order to respect Emacs coding conventions. --- org-contacts.el | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/org-contacts.el b/org-contacts.el index c84f1f2f99..d81d43bc4b 100644 --- a/org-contacts.el +++ b/org-contacts.el @@ -702,12 +702,18 @@ This adds `org-contacts-gnus-check-mail-address' and (add-hook 'gnus-article-prepare-hook 'org-contacts-gnus-check-mail-address) (add-hook 'gnus-article-prepare-hook 'org-contacts-gnus-store-last-mail)) +(defun org-contacts-setup-completion-at-point () + "Add `org-contacts-message-complete-function' as a new function +to complete the thing at point." + (add-to-list 'completion-at-point-functions + 'org-contacts-message-complete-function)) + +(defun org-contacts-unload-hook () + (remove-hook 'message-mode-hook 'org-contacts-setup-completion-at-point)) + (when (and org-contacts-enable-completion (boundp 'completion-at-point-functions)) - (add-hook 'message-mode-hook - (lambda () - (add-to-list 'completion-at-point-functions - 'org-contacts-message-complete-function)))) + (add-hook 'message-mode-hook 'org-contacts-setup-completion-at-point)) (defun org-contacts-wl-get-from-header-content () "Retrieve the content of the `From' header of an email.