Add lispdir option for installing mu4e in a custom directory, which what
some pre-meson users tended to do with --lispdir.
Passing '-Dlispdir=/tmp/foo/bar' causes the mu4e files to be installed
in /tmp/foo/bar/mu4e.
Should help for issue #2287.
The support for emacs in bookmarks in mu4e-contrib has been broken for a while;
we removed it an now re-implement it as part of mu4e-proper.
Fixes: issue #2255.
All these changes to avoid:
,----
| mu4e/meson.build:92: WARNING: Source item '/home/djcb/Sources/mu/build/mu4e/mu4e-meta.el' cannot be converted to File object, because it is a generated file. This will become a hard error in the future
`----
This is because we want to byte-compile a file we just before generated using
configure_file. This does not seem like a crazy thing, but meson threatens with
breaking the build at some point in the future.
So instead, we decide _not_ to compile this (very boring) file. But, users may
still have an older mu4e-meta.elc lying around, leading to confusion.
So, let's rename that file and we're golden.
Add command ~mu4e-sexp-at-point~ for showing/hiding the s-expression for the
message-at-point. Useful for development / debugging. Bound to ~,~ in headers and
view mode.
`mu4e-view-mode-map` was initialized from a sparse keymap and eventually passed
to `suppress-keymap` in order to remove bindings to `self-insert-command` which
obviously make no sense in read-only buffers. However, `suppress-keymap` also
remaps all digits and the minus sign to make prefix args, i.e., pressing 8
would be equal to `C-u 8` and `-` got bound to `negative-argument` instead of
`mu4e-view-mark-for-unflag` as defined.
While `suppress-keymap` has a `NODIGITS` arg to suppress the rebinding of
digits and minus sign (which would also mean that pressing a digit would try
inserting that digit and lead to an error), I chose the more straight-forward
solution and start from an empty rather than a sparse keymap and added the
`digit-argument` bindings for 0..9 explicitly.
We use to have mu4e--contacts-hash, with name mapping to rank; that was
needlessly complicated since most completion engine sort alphabetically, making
the rank totally irrelevant (in practice, it doesn't matter much from the
end-user pov).
Anyway, simplify that part, maintain a set of contacts without any rank (which
what the server delivers now).
Also update the _default_ mu4e-contact-process-function to filter out anything
with 'reply' since it's not very useful for autocompletion.