From a899dd04f7105881ad346b3b78cfe66d12a249f1 Mon Sep 17 00:00:00 2001 From: Sean Farley Date: Fri, 24 Apr 2020 22:12:57 -0700 Subject: [PATCH] mu4e-utils: add new method to transform `mu4e-maildir-shortcuts' This will allow iterating over `mu4e-maildir-shortcuts' the same way as `mu4e-bookmarks' (i.e. adding :name and :query to the plist). --- mu4e/mu4e-utils.el | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mu4e/mu4e-utils.el b/mu4e/mu4e-utils.el index 2c594cc4..a8f04ac9 100644 --- a/mu4e/mu4e-utils.el +++ b/mu4e/mu4e-utils.el @@ -844,6 +844,25 @@ When successful, call FUNC (if non-nil) afterwards." (kill-buffer)))) (buffer-list))) +(defun mu4e~maildirs-with-query () + "Return a copy of `mu4e-maildirs-shortcuts' with :query populated. + +This is meant to be the exact same data structure as +`mu4e-bookmarks'." + (cl-mapcar + (lambda (m) + (append + ;; we want to change the :maildir key to :name, and add a :query key + (list :name (plist-get m :maildir) + :query (format "maildir:\"%s\"" (plist-get m :maildir))) + ;; next we want to append any other keys to our previous list (e.g. :hide, + ;; :key, etc) but skipping :maildir (since it's renamed to :name) + (cl-loop for (key value) on m by 'cddr + when (not (equal key :maildir)) + append (list key value)))) + (mu4e-maildir-shortcuts))) + + ;;; Indexing & Updating