mu4e: show bookmark name in modeline

... if there's a bookmark matching the current query. Controllable
through mu4e-modeline-prefer-bookmark-name.

Fixes #1318.
This commit is contained in:
Dirk-Jan C. Binnema 2023-01-17 19:47:55 +02:00
parent 413bdc0980
commit 190ace5574
2 changed files with 22 additions and 2 deletions

View File

@ -40,6 +40,14 @@ the search properties and the last query), not the global items
:type 'integer :type 'integer
:group 'mu4e-modeline) :group 'mu4e-modeline)
(defcustom mu4e-modeline-prefer-bookmark-name t
"Show bookmark name rather than query in modeline.
If non-nil, if the current search query matches some bookmark,
display the bookmark name rather than the query."
:type 'boolean
:group 'mu4e-modeline)
(defvar-local mu4e--modeline-buffer-items nil (defvar-local mu4e--modeline-buffer-items nil
"List of buffer-local items for the mu4e modeline. "List of buffer-local items for the mu4e modeline.
Each element is function that evaluates to a string.") Each element is function that evaluates to a string.")

View File

@ -499,7 +499,17 @@ the mode-line.")
"Skip duplicate messages") "Skip duplicate messages")
(,mu4e-search-hide-enabled (,mu4e-search-hide-enabled
,mu4e-search-hide-label ,mu4e-search-hide-label
"Enable message hide predicate")))) "Enable message hide predicate")))
;; can we fin find a bookmark corresponding
;; with this query?
(bookmark
(and mu4e-modeline-prefer-bookmark-name
(seq-find (lambda (item)
(string=
mu4e--search-last-query
(or (plist-get item :effective-query)
(plist-get item :query))))
(mu4e-query-items 'bookmarks)))))
(concat (concat
(propertize (propertize
(mapconcat (mapconcat
@ -516,7 +526,9 @@ the mode-line.")
props "\n"))) props "\n")))
" [" " ["
(propertize (propertize
mu4e--search-last-query (if bookmark ;; show the bookmark name instead of the query?
(plist-get bookmark :name)
mu4e--search-last-query)
'face 'mu4e-title-face 'face 'mu4e-title-face
'help-echo (format "mu4e query:\n\t%s" mu4e--search-last-query)) 'help-echo (format "mu4e query:\n\t%s" mu4e--search-last-query))
"]"))) "]")))