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
: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
"List of buffer-local items for the mu4e modeline.
Each element is function that evaluates to a string.")

View File

@ -499,7 +499,17 @@ the mode-line.")
"Skip duplicate messages")
(,mu4e-search-hide-enabled
,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
(propertize
(mapconcat
@ -516,7 +526,9 @@ the mode-line.")
props "\n")))
" ["
(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
'help-echo (format "mu4e query:\n\t%s" mu4e--search-last-query))
"]")))