This reverts commit 11b7e5748c.
The change has some unpleasant side-effect (switching to the headers
buffer from whatever you are doing); needs some more thought.
- get an updated maildir list after indexing
- add mu4e-added items to the list opportunistically
Remove mu4e-clear-caches / mu4e-cache-maildir-list to mu4e-obsolete.el
Fixes#2537.
Remove mu4e-main-quit-or-bury and simply update mu4e-quit
to take a prefix which, if non-nil, make mu4e-quit
bury the buffer rather than quite mu4e.
Also make the mu4e check for an existing mu4e buffer, and if found,
switch to it rather start mu4e.
Add a new configuration variable mu4e-mu-allow-temp-file, t by default,
which triggers the same optimization in the mu server.
It improves message rendering speed:
I.e. without:
[mu4e] Found 500 matching messages; 0 hidden; search: 1298.0 ms (2.60 ms/msg); render: 642.1 ms (1.28 ms/msg)
with:
[mu4e] Found 500 matching messages; 0 hidden; search: 1152.7 ms (2.31 ms/msg); render: 270.1 ms (0.54 ms/msg)
As a useful side-effect, this also:
Fixes#1802.
Split off the MIME-handling from mu4e-view.el into its own
mu4e-mime-parts.el
Improve the implementation, updating completions with annotations.
Support "Pick all" for completing attachments and MIME-types.
Both attachment/inline disposition MIME-type with a file name are
considered "attachment" now.
Allow MIME-part actions to target multiple MIME-parts.
In single-window mode, after quitting the view, explicitly restore the
point in the headers view to the last viewed message (just like in split
view mode).
I occasionally find myself pressing escape to exit a menu choice in mu4e
and it's a bit unfortunate that nothing happens. As best I could tell,
since this is a C call, none of the keymaps are checked for
`(keyboard-quit)' so we need to explicitly check for ESC here
This was previously fixed in 02b5bc805c
but was inadvertently removed in
0354fa4fac, so more detail was added to
the comment.
* mu4e/mu4e-contacts.el (mu4e-personal-address-p): Fix docstring
error (return nil *only if* the address does not match any of the
personal addresses, not the other way around). Unwrap
unnecessary (if COND t nil) to just COND because its caller
`seq-find' only distinguishes between nil and non-nil.
(mu4e-personal-address): Add space in defun between name and args.
Ensure double space after a sentence ends. Convert a duplicated
call of (mu4e-server-properties) into using when-let and reusing
its result.
* mu4e/mu4e-headers.el (defcustom mu4e-header-actions): Convert
from defvar. Add action for browsing online archive.
* mu4e/mu4e-view.el (defcustom mu4e-view-actions): Change use of
`seq-filter' to `delq'. Add action for browsing online archive.
* mu4e/mu4e-lists.el (defgroup mu4e-lists): New group.
* mu4e/mu4e-list-archives.el: New file.
(defgroup mu4e-list-archives): New group.
(defcustom mu4e-list-archives-user-actions): New customizable
variable for locating online archive.
(mu4e-list-archives--get-recipients): New helper function for
getting all recipients of a mail.
(mu4e-list-archives-resolve-debbug): New function for resolving
archive url on debbug systems.
(mu4e-list-archives--resolve-namazu): New helper function for
resolving real archive url from namazu search page.
(defcustom mu4e-list-archives-resolve-namazu-search): New
customizable variable for disabling namazu resolution because it
incurs a url fetch.
(mu4e-list-archives-resolve-mailman-namazu): New function for
getting the namazu search url for mailman systems. This is as
close as possible without fetching any url.
(defconst mu4e-list-archives-actions): New constant for builtin
supported mailing lists.
(mu4e-list-archives-resolve): New function to resolve the concrete
url to the mailing list archive.
* mu4e/mu4e-actions.el (mu4e-actions-browse-list-archive): New
command for browsing the online archive of a mailing list.
(mu4e-actions-kill-list-archive): New command for putting the url
to the online archive of a mailing list onto the kill ring.
Remove some obsolete mailing lists form the "built-in" ones.
Make the mailing list blob plists, so we can more easily add new ones.
Update the handler functions for this.
Allow customizing whether to open the message after moving around in the
headers buffer. This meant for let-binding when scripting, e.g.,
(defun mark-and-quit ()
(interactive)
(let ((mu4e-headers-open-after-move nil))
(mu4e-view-mark-for-refile)
(mu4e-view-quit)))
in the view marks the current messages, then moves point to next message
without opening it.
So that the type definitions reflects the docstrings more closely. In additon,
fixed warnings from flymake about docstring.
* mu4e/mu4e-draft.el
mu4e-compose-keep-self-cc: should be a comma
* mu4e/mu4e-folders.el
mu4e-maildir-shortcuts: recognize new (plist) format
* mu4e/mu4e-helpers.el
mu4e-debug: removed unnecessary double space in docstring
* mu4e/mu4e-query-items.el
mu4e-query-rewrite-function: prepend "\\=" before column 0 "(" in docstring
* mu4e/mu4e-search.el
mu4e-search-sort-field mu4e-search-sort-direction: used radio in types
* mu4e/mu4e-server.el
mu4e-mu-binary: "mu" executable must exist
* mu4e/mu4e-view.el
mu4e-view-fields: fixed type
mu4e-view-actions: for function refs, prefer "#'" rather than "'"
Without creating some kind of a temporary name (which could then be
trivially renamed by the user as the current instructions say) a new
user trying to learn how to detach a view will run into this error when
switching to a new message after detaching:
[mu4e] Detached view buffer from *mu4e-headers*
funcall-interactively: No buffer named *mu4e-article*<2>
It seems like a good default and less friction to create a random name
automatically when detaching.
Fixed an issue where messages from mailing-list ("list" flag) were shown using
"s" in header view, which is also used for "signed" messages. Therefore changing
it to "L".
If the headers buffer isn't in a live window (e.g., mu4e-split-view
is 'single-window), get-buffer-window will return nil. In turn,
with-selected-window will die if fed a nil window, so default to using the
current window in this case.
This fixes a regression from c23dad7058 that
prevented using n/p from a view buffer.
Rebinding existing functions to different keys works fine, *but* it seems
some 3rd party code rebinds existing keys to different functions; that's
not really supported but use to half-work. Attempt to make it half-work
again, and document.
Instead of using mu4e's tradional completion UI, allow for delegating to
some implementation of completing-read.
Default
mu4e-read-option-use-builtin t
means that things work more-or-less as before.
Let the main-screen show a representation of the *actual* keybindings
rather than assuming the defaults.
For that to work, we need to invoke mu4e-main-mode earlier; add a new
hook mu4e-main-mode-rendered-hook which is invoked after rendering is
complete.
Add a few helpers for this to mu4e-helpers.
This patch allows mu4e to autocomplete when `mu4e-root-maildor` contains
symbolic links to other maildirs. Without this patch mu4e can still work when
directories under `mu4e-root-maildor` are symlinks, but it will not autocomplete
properly when using `mu4e-search-maildir`.
Signed-off-by: Andreas Hindborg <nmi@metaspace.dk>