mu4e/server: get cached list of labels
This will be useful with label commands.
This commit is contained in:
@ -154,6 +154,9 @@ but also manually invoked searches."
|
||||
:type 'hook
|
||||
:group 'mu4e-search)
|
||||
|
||||
(defvar mu4e-labels-list nil
|
||||
"Cached list of labels.")
|
||||
|
||||
;; Internals
|
||||
|
||||
;;; History
|
||||
|
||||
@ -130,6 +130,7 @@ Note: this REPL is not to be confused with the mu REPL as per
|
||||
|
||||
;; Cached data
|
||||
(defvar mu4e-maildir-list)
|
||||
(defvar mu4e-labels-list)
|
||||
|
||||
;; Handlers are not strictly internal, but are not meant
|
||||
;; for overriding outside mu4e. The are mainly for breaking
|
||||
@ -470,6 +471,8 @@ The server output is as follows:
|
||||
;; get some data
|
||||
((plist-get sexp :maildirs)
|
||||
(setq mu4e-maildir-list (mu4e--server-plist-get sexp :maildirs)))
|
||||
((plist-get sexp :labels)
|
||||
(setq mu4e-labels-list (mu4e--server-plist-get sexp :labels)))
|
||||
|
||||
;; receive an error
|
||||
((plist-get sexp :error)
|
||||
@ -654,7 +657,7 @@ get at most MAX contacts."
|
||||
|
||||
(defun mu4e--server-data (kind)
|
||||
"Request data of some KIND.
|
||||
KIND is a symbol. Currently supported kinds: maildirs."
|
||||
KIND is a symbol. One of maildirs, labels."
|
||||
(mu4e--server-call-mu
|
||||
`(data :kind ,kind)))
|
||||
|
||||
|
||||
@ -160,8 +160,9 @@ invoke FUNC (if available) afterwards."
|
||||
(add-hook 'mu4e-query-items-updated-hook #'mu4e--main-redraw)
|
||||
(setq mu4e--initialized t) ;; last before we call the server.
|
||||
(mu4e--server-ping)
|
||||
;; ask for the maildir-list
|
||||
;; ask for the maildir-list and labels
|
||||
(mu4e--server-data 'maildirs)
|
||||
(mu4e--server-data 'labels)
|
||||
;; maybe request the list of contacts, automatically refreshed after
|
||||
;; re-indexing
|
||||
(mu4e--query-items-refresh 'reset-baseline)
|
||||
@ -249,7 +250,9 @@ invoke FUNC (if available) afterwards."
|
||||
(unless (and (not (string= mu4e--contacts-tstamp "0"))
|
||||
(zerop (plist-get info :updated)))
|
||||
(mu4e--request-contacts-maybe)
|
||||
(mu4e--server-data 'maildirs)) ;; update maildir list
|
||||
(mu4e--server-data 'maildirs)
|
||||
(mu4e--server-data 'labels)) ;; update maildir/labels list
|
||||
|
||||
(mu4e--main-redraw))))
|
||||
((plist-get info :message)
|
||||
(mu4e-index-message "%s" (plist-get info :message))))))
|
||||
|
||||
Reference in New Issue
Block a user