Some completion engines (like "flx") decorate the strings that they
return. If MU4E passes such a string down to MU, the "format" call
preserves the text properties in the generated S-expression, producing
an invalid query. MU4E itself has no interest in those decorations,
so strip them out as early as possible from all prompts that use
mu4e-completing-read-function.
Using mu4e-index-updated-hook in mu4e~start with a lambda is just like
adding the call to mu4e-info-handler so do it explicitely which is
much cleaner.
* mu4e/mu4e-utils.el (mu4e-info-handler): Always refresh main buffer.
(mu4e~start): Remove insertion of mu4e-index-updated-hook.
Use "_" as the title of that section so that it is less distracting
when sections are collapsed to get an overview of the library.
Using a separate section is useful because it reduces the risk of
accidentally into the middle of a library.
Placing two semicolons on an otherwise empty line helps to logically
"connect" the surrounding "paragraphs", which in (only) some cases
makes sense.
Previously the three paragraphs of the permission statement were not
connected to each other like this, which is perfectly fine. However
the preceding "This file is not part of GNU Emacs." line was connected
to the first paragraph, which does not make sense considering that the
latter is not connected two the second paragraph, which it relates to
more.
Once those two semicolons are gone, it also makes sense to remove
those from the second line.
* mu4e/mu4e-context.el (mu4e-context-switch): Do it.
* mu4e/mu4e-contrib.el (mu4e-view-mode-hook): Do it.
(mu4e-headers-mode-hook): Do it.
* mu4e/mu4e-icalendar.el (mu4e-icalendar-reply-ical): Do it.
* mu4e/mu4e-utils.el (mu4e~start): Do it.
(mu4e-split-ranges-to-numbers): Do it.
We weren't supporting that yet after moving to the new command-parser;
let's do so now.
We now pass the time_t as a string, since the parser does not support
floats (and emacs doesn't generally support big ints).
Instead of hard coding the buffer name " *mu4e-update*", use the
buffer name defined in `mu4e~update-name`. Also, the default name
defined in `mu4e~update-name` were changed to match the previously
hard-coded invisible buffer name.
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.
Previously both cl-lib.el and cl.el were used, now use only cl-lib.el.
Use lexical-binding where needed instead of requiring cl just for
`lexical-let`.
Replace some add-to-list with cl-pushnew as add-to-list is not
recommended in lisp program and anyway doesn't work properly with
lexical binding.