Commit Graph

246 Commits

Author SHA1 Message Date
Jonas Bernoulli 83f0c9cea9 mu4e: Remove excess semicolons from library headers
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.
2020-02-18 23:49:50 +02:00
Dirk-Jan C. Binnema c09a9c4372 mu4e: update context handling
Make mu4e-context-autoswitch works a before we updated the pong-handler

Avoid unnecessary mu4e~start int he composer.
2020-02-18 22:38:40 +02:00
Jonas Bernoulli 6790c0d015 mu4e: Fix indentation 2020-02-17 14:28:00 +01:00
Dirk-Jan C. Binnema 8ff7306d90 mu4e: set context before check requirements
So we won't ask about creating default maildirs
2020-02-10 18:08:34 +02:00
Dirk-Jan C. Binnema e1e26d1da2 mu4e: update to use server maildir/database/addresses
Mkae mu4e-maildir and mu4e-personal-addresses obsolete, we get those
from the server.
2020-02-09 00:15:49 +02:00
Dirk-Jan C. Binnema ac4f5f754a mu4e: remove maildir arg from proc-add/proc-sent calls
The server doesn't want that parameter anymore, so we can simplify
things a bit.
2020-02-02 00:23:34 +02:00
Dirk-Jan C. Binnema c707feb30f mu4e-utils: update main-view when index changed
When the main-view is visible, update it when the index changed (e.g.
for the read/unread numbers).

Clean up the info handler a bit.
2020-01-31 21:16:13 +02:00
Dirk-Jan C. Binnema ad5f7d8dad mu4e: make `mu4e` refresh itself
update using the 'ping' function, so read/unread counts get updated.

add a 'g' binding for the main-view.
2020-01-31 00:17:19 +02:00
Dirk-Jan C. Binnema a7c4fdd029 mu4e/mu4e~start: remove some debugging leftover 2020-01-28 10:01:39 +02:00
Dirk-Jan C. Binnema dd98203d42 mu4e: fix some compiler warnings 2020-01-28 01:03:40 +02:00
Dirk-Jan C. Binnema 2371847240
Merge pull request #1554 from pedrormjunior/mu4e-update-name
mu4e: use `mu4e~update-name` de facto
2020-01-28 00:37:51 +02:00
Thierry Volpiatto 846428cfd4
Unquote lambda's
* 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.
2020-01-27 08:41:24 +01:00
Dirk-Jan C. Binnema 6f1513d187 mu4e: only show unread counts for stringp bookmarks
We can't generally do it for non-constant bookmarks.
2020-01-25 21:42:14 +02:00
Dirk-Jan C. Binnema eb3cac39ee mu4e: implement mu4e-compose-complete-only-after
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).
2020-01-25 19:36:31 +02:00
Pedro Ribeiro Mendes Júnior 11590a1cf8 mu4e: use `mu4e~update-name` de facto
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.
2020-01-25 10:57:15 -03:00
Dirk-Jan C. Binnema 9f72bd9703 mu4e: convert bookmarks from old format
When creating the 'ping' queries.
2020-01-24 14:21:25 +02:00
Dirk-Jan C. Binnema a4265bb8e9 mu4e: include unread/all counts for bookmarks
Show the unread/all matches counts in the main-view.
2020-01-22 11:42:15 +02:00
Dirk-Jan C. Binnema b2bdb8b30c
Merge pull request #1526 from seanfarley/smf/esc
mu4e-util: allow ESC to exit a choice selection
2020-01-21 20:30:56 +02:00
Dirk-Jan C. Binnema cf594413e2 mu4e: utils: fix indentation 2020-01-13 23:40:23 +02:00
Dirk-Jan C. Binnema 54c2a15ed0 mu4e: make mu4e-bookmarks items simple plists
We don't need cl-defstruct; simplify things a bit.
2020-01-13 23:40:23 +02:00
Dirk-Jan C. Binnema 24a6b71bd0 mu4e: move mu4e-bookmark defstruct to vars
Avoid compilation problem.
2019-12-22 15:26:45 +02:00
Sean Farley 02b5bc805c mu4e-util: allow ESC to exit a choice selection
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.
2019-12-13 16:26:05 -08:00
Jonas Bernoulli f31d1b065d Fix typos 2019-11-06 16:13:39 +01:00
Dirk-Jan C. Binnema 30865c9d2c mu4e: add mu4e-contacts-info
Add an interactive function mu4e-contacts-info, to display some
information about the contacts cache.
2019-09-26 00:35:23 +03:00
Thierry Volpiatto 9ddd035a1e
Completely use cl-lib and lexical-binding
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.
2019-09-14 12:39:51 +02:00
Dirk-Jan C. Binnema 26dca831c6 mu4e: automatically rebuild database when possible 2019-07-30 08:51:04 +03:00
djcb 7563b89c9c mu4e: support incremental contacts 2019-05-11 13:41:03 +03:00
Alex Branham 2674ca5583
mu4e: Replace cl with cl-lib 2019-01-04 16:03:58 -06:00
ibizaman a0c2cf2313 allow :query to accept a function returning a query string
This allows one to dynamically generate the query string, based for
example on the value of a variable.
2018-11-10 22:30:25 -08:00
djcb 69ed3498bb mu4e: mu4e-index-updated-hook should not depend on mu4e~contacts 2018-11-04 13:20:20 +02:00
Dirk-Jan C. Binnema aeb6718da6
Merge pull request #1161 from gambhiro/modeline-max-width
mu4e: shorten modeline str if longer than max-width
2018-04-25 11:32:15 +03:00
James P. Ascher 82bf333fab updated fontify-signature for RFC 1153 compliant digest messages 2018-04-03 14:50:28 -04:00
djcb aef46ec14f mu4e: add some support for the mux backend 2018-02-11 12:02:53 +02:00
Gambhiro b95fb8b95a shorten modeline str if longer than max-width 2017-12-03 15:27:16 +00:00
Vladimir Sedach 9420d088eb mu4e: Added new mu4e-split-view mode: single-window
Single-window mode is meant to minimize mu4e window operations (opening,
killing, resizing, etc) and buffer changes, while still retaining the
view and headers buffers. In addition, it replaces mu4e main view with a
minibuffer prompt containing the same information.
2017-05-31 20:52:59 -07:00
djcb 34d5c61930 mu4e: try a little harder to get contacts
Some people reported problems with completing contacts. It's unclear
what's going on there. Maybe this helps.
2017-05-06 13:12:38 +03:00
djcb 87ed69ee03 mu4e: auto-delete after 30 secs instead of 10
Don't auto-delete files too soon (before they can be used), even on
slower systems.
2017-04-02 16:39:21 +03:00
djcb 7729948d74 mu4e: utils: whitespace cleanups 2017-03-18 10:10:46 +02:00
Ian Kelling c6d297b402 mu4e: improve `mu4e-get-maildirs' docstring 2017-02-28 04:15:27 -08:00
djcb 600955eebc mu4e: rename msg->message in mu4e-message-changed-hook 2017-01-15 15:41:16 +02:00
Dirk-Jan C. Binnema f49e808160 Merge pull request #993 from dzop/master
mu4e: Use re-search-forward to find message signatures
2016-12-28 13:40:56 +02:00
Nathaniel Nicandro 9c884ee498 Use re-search-forward to find message signatures 2016-12-27 12:27:39 -06:00
djcb b6985e13cb mu4e: killing instead of interrupting update process
Rename mu4e-interrupt-update-mail into mu4e-kill-update-mail, and it
kill rather than update the process.

Add backward-compat alias.
2016-12-27 16:52:20 +02:00
djcb d6337ade1c mu4e: index: only clear echo area when asked to
In `mu4e-hide-index-message`-mode, don't clear the echo area.
Fixes #925.
2016-10-29 11:50:33 +03:00
Dirk-Jan C. Binnema 5097dd8e1b Merge pull request #909 from sachdevaprash/master
mu4e: Adding eshell/mu4e-attach allowing attachments from eshell.
2016-09-03 11:27:49 +03:00
Dirk-Jan C. Binnema dd1c0325f9 Merge pull request #912 from j-hao/master
mu4e: add mu4e-msg-changed-hook
2016-09-03 11:25:49 +03:00
Prashant Sachdeva eef00e7263 Removing the dependencies on gnus in eshell/mu4e-attach. 2016-08-28 10:03:02 +09:00
Christophe Troestler dc3bffa186 Compare email addresses case insensitively 2016-08-28 00:30:29 +02:00
Jun Hao 35c6d4ab8b mu4e: add mu4e-msg-changed-hook 2016-08-25 10:03:35 +08:00
Remco van 't Veer 9e6bfb9075 Fix kill ring clobbering by get mail filter
The kill ring fills up with lines like:

  C: 0/1  B: 28/29  M: +0/0 *0/0 #0/0  S: +2/2 *1/1 #0/0

when using mbsync or another tool using carriage return for progress.
2016-08-02 09:00:46 +03:00
djcb f7be5ef2ff mu4e: make bookmarks a defstruct
Make the structures use for mu4e-bookmarks a defstruct, and update its
usage throughout the codebase. This makes it a bit easier to read and
extend.

Ensure that the old-style bookmarks are automatically converted.
2016-07-31 11:20:59 +03:00
djcb eb7888cdb1 mu4e: support mu indexing performance options
Add two variables mu4e-index-cleanup and mu4e-index-lazy-check, which
correspond to mu index option --lazy-check and --nocleanup.

Extend the mu server protocol a bit to handle this.

The defaults keep things behaving as they done before.
2016-07-23 21:33:10 +03:00
djcb 1945ab3bce mu4e: handle foo> citation style
Handle the citation style where the cited part is prefixed with
eg. "foo> " instead of the normal ">".

Also improve the default color scheme a bit.
2016-07-10 21:45:52 +03:00
Remco van 't Veer b203226a06 Handle mbsync output in mu4e-update buffer
The mbsync command uses carriage return characters to go to the
beginning of the line.
2016-07-08 14:12:30 +02:00
djcb ed16684f45 mu4e: cosmetics 2016-06-08 19:25:52 +03:00
djcb bd0fd4b8d8 mu4e: ensure filename is valid for removing it later
lexical-let the filename to be removed later, so it's still valid.
2016-05-16 09:22:11 +03:00
Jun Hao d16957dc97 mu4e: handle attached image when write msg body to html 2016-05-07 09:07:11 +08:00
Jun Hao 0bd19fc40c mu4e: add mu4e-index-update-in-background
Give users choice to decide if they want to run automatic
mu4e-index-update in background or not
2016-03-06 22:03:37 +08:00
djcb ace2f2ad2c mu4e: clean up creating html files
Clean up the creation of html files a bit, and automatically clean them
up after a short while, so we don't clutter /tmp.

Refactor the html-generating actions, so we don't repeat ourselves too
much.
2016-02-20 11:21:24 +02:00
djcb 961dba6d3e mu4e: by default, don't ignore any address
If set to nil, mu4e-compose-complete-ignore-address-regexp shouldn't
match anything.
2016-02-18 19:28:21 +02:00
djcb 91b622dc16 mu4e: fix logic in mu4e~process-contact 2016-02-17 22:49:03 +02:00
djcb 81c7786402 mu4e: make mu4e~read-char-choice case-insensitive
Make mu4e~read-char-choice case insensitive if there is no exact
match. Small convenience.
2016-02-17 20:01:18 +02:00
djcb 76dd849d06 mu4e: allow mu4e-compose-complete-ignore-address-regexp nil
Though it shouldn't, some users have
mu4e-compose-complete-ignore-address-regexp at nil, which gives errors
with the new contacts code. Be a bit more tolerant.
2016-02-17 19:50:13 +02:00
Yuri D'Elia 6337151918 mu4e: also quote the context label in the modeline 2016-02-16 08:28:59 +02:00
djcb 967b3cb727 mu4e: update copyright years 2016-01-09 21:28:03 +02:00
djcb 144e2a8f1b mu4e: Contact completion - better sorting / display
Improve the contact-sorting algorithm, and make it better cooperate with
completion-at-point functions.

Also deal better with broken rewritten contacts, and document how
rewriting should done (docstrings and reference doc).
2016-01-09 21:27:52 +02:00
djcb 785d888b42 mu4e: don't change context when already running
This is for the case where mu4e-compose trigger mu4e~start, as found by
thierryvolpiatto.
2016-01-03 15:53:58 +02:00
djcb 5e13d31450 mu4e: tweak the contact sorting
Fall back to freq / tstamp when both contacts are personal.
2016-01-03 15:53:07 +02:00
djcb a085c881ef mu4e: don't change context at startup when there is one
Since people often go start/stop mu4e, we shouldn't try to pick a
default context if one is already set.
2015-12-30 17:39:59 +02:00
djcb 9da7fbb3de mu4e: cosmetics 2015-12-30 15:35:26 +02:00
djcb 02620af4c2 mu/mu4e: improve in contacts completion
mu: cleanup server side; make sure not to loose 'personal' flag when
    seeing same contact in non-personal context
mu4e: tweak the sorting algorithm a bit to take the personal flag into
    account
2015-12-30 15:33:27 +02:00
djcb f645a12075 mu4e: improve sorting of contacts for completion
set up the extra machinery for making sure emacs does not try to re-sort
our already-sorted contacts.... Also try to improve the sorting strategy
itself.
2015-12-29 18:53:57 +02:00
djcb 7dff782c58 mu4e: let-bind context vars in mu4e-get-*-folder
When we determine the drafts/refile/trash/sent folder, see if we can
find a context matching the particular message. If we find one, let-bind
the vars for that context before determining the folder.

This allows e.g for moving message to context-specific folder, rather
than the one for the current context - useful when dealing with headers
buffers with message belonging to different contexts.
2015-12-29 18:47:12 +02:00
djcb 6fa9556aa8 mu4e: improve mu4e-contact-rewrite-function
Allow mu4e-contact-rewrite-function to return nil to remove a
contact. Improve documentation.
2015-12-26 13:26:26 +02:00
djcb ed1c7edba3 mu4e: some more context tweaking
Fix some typo, change default for startup to pick-first.
2015-12-24 16:03:55 +02:00
djcb 113c024632 mu4e: implement context-policies
Allow setting a policy about what context to choose when starting mu4e
and composing a message. Basically:

When you have defined contexts and you start mu4e it decides which
context to use based on the variable `mu4e-context-policy';
similarly, when you compose a new message, the context is determined
using `mu4e-compose-context-policy'.

These policies can be one of the following:
- a symbol always-ask: unconditionally ask the user what context to pick

The other choices only apply if none of the context matches (i.e., if
none of the contexts' match-functions returns t:

- symbol ask: ask the user
- a symbol pick-first: pick the first context
- nil: don't change the context
2015-12-23 22:01:51 +02:00
djcb 27e9251d24 mu4e: add mu4e-bookmark-define
mu4e-bookmark-define allows for defining a bookmark; it will be added to
mu4e-bookmarks, replacing any bookmarks with the same key.
2015-12-22 18:03:53 +02:00
djcb 41677dfa0b mu4e: cosmetic 2015-12-21 22:24:16 +02:00
djcb 1a0ad61e4d mu4e: by default, don't cache maildirs
Since the environment (and settings) can change, default to
re-calculating the maildirs when we need them. When you have so many
maildirs that this is slow, you can set mu4e-cache-maildir-list to
t (but be sure to read the docstring).
2015-12-19 13:59:18 +02:00
djcb a1d0071dd0 mu4e: contexts: auto select one at startup, document
When contexts have been defined, automatically select one at startup --
either the first whose match-function returns non-nil, or simply the
first one.

Document this, too.
2015-12-15 18:20:31 +02:00
djcb 2262e185af mu4e: allow for clearing some cached values
This helpful for various 'change account' actions
2015-12-04 23:20:27 +02:00
Hinrik Örn Sigurðsson 77529b105e Allow specifying list shortnames with regexes
This way mu4e will intelligently shorten mailing list names which
contain dots:

    (setq mu4e-mailing-list-patterns
          '("\\([a-z0-9.]+\\)\.lists\.company\.com"))
2015-11-14 00:04:26 +00:00
djcb ada193c8fd Don't raise 'Update process is already running' error
Only issue a message. Refactor a bit.

This is for the use-case where the time to update is longer than the
period between updates -- e.g. you return from suspension/hibernation
and an old update process is still running.
2015-10-13 07:05:55 +03:00
djcb 041a79fdb5 mu4e: add NEWS(.org) as a main menu item 2015-06-09 21:08:02 +03:00
djcb 823d80f075 mu4e: allow lisp expressions for bookmarks
based on an idea by davidcsterratt
2014-12-01 23:29:40 +02:00
djcb 664431bf8c mu4e: improve mail-retrieval error handling
Add two new customization variables:
  mu4e-index-update-error-continue
  mu4e-index-update-error-warning

With these, we can configure what happens when the mail-retrieval
program finishes with a non-zero exit code.

Make the default to warn but continue; it seems quite some users got
bitten by the old behavior of not updating after an error (which may
only be a pseudo-error). offlineimap/mbsync do not document their exit
codes very well, unlike fetchmail.

Also update manual for this.
2014-11-30 11:33:31 +02:00
djcb efb40abaa1 Guard against nil in mu4e~guess-maildir (Fixes #472)
Add a guard so we don't error out if string-match evaluates to nil
2014-09-23 00:36:31 +03:00
djcb 8b775ab238 * mu4e: update the contact-rewriting code a bit:
- make the default nil rather than a dummy (identity) function, for
    speed
  - don't use 'canonical' but the 'rewrite' which is a bit more general
2014-04-06 17:51:12 +01:00
joost d2915b7bb9 fixes #383 2014-03-28 10:24:43 +01:00
Thierry Volpiatto ee2e9d11f3 * mu4e/mu4e-utils.el (mu4e~fontify-cited): remove unsused let var. 2014-03-02 21:04:21 +01:00
Thierry Volpiatto 3835c2e45e * mu4e/mu4e-utils.el (mu4e~fontify-cited): Use string-width.
* mu4e/mu4e-vars.el (mu4e-cited-regexp): Improve it.
2014-03-02 20:58:49 +01:00
Thierry Volpiatto 1e8f97b961 * mu4e/mu4e-utils.el (mu4e~fontify-cited): Simplify.
* mu4e/mu4e-vars.el (mu4e-cited-regexp): Simplify regex and use a group to match the >*.
2014-03-02 08:19:33 +01:00
Thierry Volpiatto 815961acbb * mu4e/mu4e-utils.el (mu4e~fontify-cited): Fix regexp matching cited lines. 2014-03-02 06:16:58 +01:00
sabof e2c8bff298 Moved citation regexps to a variable 2014-02-05 20:24:05 +00:00
sabof d4bcf629c2 Use window-deletable-p 2014-02-03 05:30:29 +00:00
djcb a4646ca502 * mu4e-utils: fix mu4e~temp-window 2014-01-12 12:57:05 +02:00
Dirk-Jan C. Binnema 980f786ae3 Merge pull request #305 from tmalsburg/master
* mu4e: update window stays inside mu4e boundaries
2013-11-16 06:26:41 -08:00
djcb 86aafa7fe0 * mu4e: don't error out if no empty lines are found 2013-10-21 23:17:35 +03:00
Titus von der Malsburg 447a15e9bf mu4e: update window stays inside mu4e boundaries 2013-10-21 11:04:52 +02:00
djcb 9c8101d949 * mu4e: centralize some of the fontification code; cleanup signature support 2013-10-20 15:41:47 +03:00