When prompting for one or more tags to add or remove to/from one or more threads, ensure that the set of tags offered for completion contains no duplicates. Some completion packages (e.g. selectrum) will include every member of the offered list, resulting in the same tag being indicated as a possibility several times. --- emacs/notmuch.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 26efcccd..ceec5b5d 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -572,12 +572,20 @@ thread." (defun notmuch-search-get-tags (&optional pos) (plist-get (notmuch-search-get-result pos) :tags)) +(defun notmuch-search-uniq-tags (tags) + (let (result) + (mapc (lambda (tag) + (unless (member tag result) + (push tag result))) + tags) + result)) + (defun notmuch-search-get-tags-region (beg end) (let (output) (notmuch-search-foreach-result beg end (lambda (pos) (setq output (append output (notmuch-search-get-tags pos))))) - output)) + (notmuch-search-uniq-tags output))) (defun notmuch-search-interactive-tag-changes (&optional initial-input) "Prompt for tag changes for the current thread or region. -- 2.29.2 _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-leave@notmuchmail.org