Commit Graph

163 Commits

Author SHA1 Message Date
Jun Hao 59dfcb5ac5 mu4e: add mu4e-msg-changed-hook to mu4e-index-updated-hook globally 2016-12-11 21:22:44 +08:00
djcb 01fe899c37 mu4e: better error for non-supported header fields
Some fields (eg. :attachments and :user-agent) require a full message
and are not supported in headers-mode. Document this and give a clearer
error message when they are added to `mu4e-headers-fields'.

Fixes issue #933.
2016-11-05 12:42:28 +02:00
Dirk-Jan C. Binnema b981a7804f Merge pull request #934 from antoine-levitt/master
mu4e: Don't erase global-mode-string with context label, but add to it
2016-11-05 10:52:35 +02:00
djcb 739013d031 mu4e: allow maildir as sort-field 2016-10-26 22:36:40 +03:00
Antoine Levitt bc13cfda35 dont erase global-mode-string with context label, but add to it 2016-10-26 08:20:25 +02: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
djcb ae7f649a4a mu4e: avoid error return to same message
This avoids a runtime error. Fix by holtzermann17 for Issue #910.
2016-08-27 18:58:55 +03:00
Jun Hao 35c6d4ab8b mu4e: add mu4e-msg-changed-hook 2016-08-25 10:03:35 +08:00
djcb 49bc9605d8 mu4e: add mu4e-headers-hide-predicate
Add `mu4e-headers-hide-predicate', a function that allows for hiding
messages from the display. This can be used e.g. to hide trashed
messages.
2016-07-31 13:07:27 +03:00
djcb ed16684f45 mu4e: cosmetics 2016-06-08 19:25:52 +03:00
djcb e977309de5 mu4e: don't try to open non-existent messages
When processing header updates, don't try to open a message that doesn't
exist. Fixes issue #825.
2016-06-08 19:22:41 +03:00
djcb 3a7429456c mu4e: parenthesize narrowing term
When narrowing search results, parenthesize the narrowing term, so terms
with AND/OR etc. don't lead to surprising results.

Fixes #846.
2016-05-09 23:14:36 +03:00
Dirk-Jan C. Binnema 455a0731c0 Merge pull request #820 from tmalsburg/master
Mu4e: Added missing menu items.
2016-04-26 20:13:07 +03:00
djcb 1edeee4764 mu4e: fix typo -> mu4e~headers-msgid-target 2016-03-24 20:26:39 +02:00
Titus von der Malsburg 88df34cd96 Mu4e: Added missing menu items. 2016-03-22 23:33:07 -07:00
djcb 15f857afcc mu4e: try to jump to same message after re-search
After a re-search, perhaps after toggling threading etc., try to move
point to the same message it was before
2016-03-16 01:11:11 +02:00
djcb 1505da640d mu4e: add check for add-face-text-property
add-face-text-property was only introduced in emacs 24.4, so check
before use in mu4e-headers as do in mu4e-view.

Fixes issue #811.
2016-03-09 08:02:57 +02:00
djcb 7ac4921902 mu4e: improve mu4e-view-message-with-message-id
Now, when going to a message with certain message-id, do open a headers
buffer as well. This way, message opened this behave just like an other
message, and can be delete, flagged etc.

As a bonus, you get the whole message thread for a given
message (depending on settings)

mu4e-view-message-with-message-id now does a search and
mu4e-headers-search allow for some extra actions to open a specific
message in a hook function.
2016-02-23 23:19:54 +02:00
djcb 392880233f mu4e: rename to mu4e-headers-search-hook
The old name mu4e-headers-search-pre-hook was unnecessarily long.
2016-02-19 07:39:52 +02:00
Ævar Arnfjörð Bjarmason 14af0d28c8 mu4e-headers: Add hook executed when we're opening bookmarks (again)
This was merged in as part of pull request #718 but changed to a more
general facility in 7716e00.

It's fantastic that we have the more general hook facility for any
search, but the primary use-case I had for the bookmark hook can't be
satisfied by the more general mu4e-headers-search-pre-hook.

The reason I added this hook was to emulate the folders I used in
Icedove as mu4e bookmarks. E.g. some folders are threaded, others are
not. By default mu4e only allows you to set this globally via options
like mu4e-headers-show-threads.

So I have a mu4e-headers-search-bookmark-hook which is basically a long
line of cond statements like:

    ((string-equal expr "NOT flag:trashed AND date:365d..now AND (flag:flagged)")
        (setq mu4e-headers-show-threads nil)
        (setq mu4e-headers-include-related nil)
        (setq mu4e-headers-skip-duplicates t)
        (setq mu4e-headers-results-limit 500))

For this to work properly it's critical that the hook doesn't execute on
any search, but *only* those where we enter it via the bookmark.

As an example, I have a "b+" search which finds messages I've flagged,
most of my searches have related & threading turned on, but for that
search I only want to show the specific messages I've flagged, so the
hook turns both of those settings off before executing the search.

But I might still want to change my mind and look at the related
messages as threads by pressing P and then W. This works with the
mu4e-headers-search-bookmark-hook because it only executes when we get
the search via a bookmark.

But it doesn't work with the mu4e-headers-search-pre-hook because when I
toggle the setting my settings hook (which matches the search executed
by the bookmark) will just turn it back off again.

Perhaps there's some clever way to know if we're getting to the
mu4e-headers-search-pre-hook via the bookmark that I've missed. But if
there isn't I need a hook that works like this.
2016-02-18 21:37:21 +01:00
djcb 7716e005bf mu4e: add mu4e-headers-search-pre-hook
Just before executing a search, a hook-function
`mu4e-headers-search-pre-hook` is invoked, which receives the search
expression as its parameter.
2016-02-18 20:59:02 +02:00
djcb eca427d3a2 Merge commit '4f83ab0f9430f0af1e6d3adbfc9a9591dddb8867' into avar/avar/mu4e-headers-search-bookmark-hook 2016-02-18 20:24:29 +02:00
djcb faf453d538 mu4e: resend: add to view/headers menu
Add `mu4e-compose-resend` to the menus in the headers and view
modes. Don't add a shortcut, as it's a fairly rarely needed feature, and
might be confusing if invoked accidentally.
2016-02-16 08:29:06 +02:00
Yuri D'Elia 6337151918 mu4e: also quote the context label in the modeline 2016-02-16 08:28:59 +02:00
Yuri D'Elia ac0b1b755a mu4e: escape % in queries when updating the mode-string 2016-02-14 20:00:43 +01:00
djcb 14cbca7595 mu4e: remove 'z' shortcut for quitting headers view
Make consistent - 'q' is for quitting, not 'z', both in message, headers
view. Single-letter keybindings are precious, so let's avoid duplicates.
2016-02-06 12:48:14 +02:00
djcb 7b84236bdb mu4e: be tolerant of errors in `mu4e~headers-remove-handler'
Works around issue #789
2016-02-05 08:03:29 +02:00
djcb 967b3cb727 mu4e: update copyright years 2016-01-09 21:28:03 +02:00
djcb 972678b6be mu4e: when delete the currently view msg, kill the view
When we delete the message that is currently being viewed, destroy the
view as well.
2015-12-21 22:24:16 +02:00
djcb a14b3f0e62 Replace some 'fancy' characters
They showed up as hexboxes when using the Liberation font.
2015-12-16 21:31:17 +02:00
Clément Pit--Claudel e19658c9aa Initial implementation of customizable headers 2015-12-15 07:57:51 -05:00
Dirk-Jan C. Binnema 5f73b48609 Merge pull request #730 from cpitclaudel/fix-spurious-space
mu4e: Refactor mu4e~headers-header-handler
2015-12-15 09:43:42 +02:00
djcb ddcd2f39b5 mu4e: more support for fancy-chars
Re-simplify `mu4e-use-fancy-chars` to a boolean again; add some extra
mark-chars (big character, so they are easily visible). Document it.
2015-12-15 09:07:17 +02:00
Clément Pit--Claudel 9f104b217b Refactor mu4e~headers-header-handler
Generate the whole line in one call to mapconcat instead of appending to
the string, and remove the spurious final space.
2015-12-15 00:08:34 -05:00
djcb 2d443a953c mu4e: don't use `purecopy`, it's useless
Don't use `purecopy`, it's useless outside emacs itself, as pointed out
by cpitclaudel. Fixes issue #729.
2015-12-15 07:02:24 +02:00
djcb f621003658 mu4e: context: integrate with the views
Show the current context in headers, view and main mode; add
keybindings.
2015-12-13 17:46:02 +02:00
Ævar Arnfjörð Bjarmason 4f83ab0f94 mu4e-headers: Add hook executed when we're opening bookmarks
I'm using this for a rather nasty hack. When I open different bookmarks
in the mu4e-main view I want to set options for them, currently just
tweaking:

    * mu4e-headers-show-threads
    * mu4e-headers-include-related
    * mu4e-headers-skip-duplicates
    * mu4e-headers-results-limit

This is because some of my searches are *really* expensive when I
include related threads (huge batches of cron-generated E-Mails), but
some aren't. I couldn't find another way to do this. Using
mu4e-headers-mode-hook doesn't work, because we don't have access to the
search (just a variable showing the last search).

Also maybe we should be passing the actual key chord for the bookmark
here. I don't care since I look up the search string that'll be executed
and go from there, but maybe that interface would make more sense.

But whatever, this works for me, and solves a real use-case.
2015-12-09 01:51:29 +01:00
Martin Yrjölä d37385030f mu4e: Fetch markpair in interactive declaration
This makes it possible to bind mark shortcuts in view-mode for certain
markpairs.
2015-11-29 16:42:30 +02:00
Ævar Arnfjörð Bjarmason 4cffcfa440 mu4e-{view,headers}: Refactor a (lamba) kbd-bound function into a named function
Because this was a lambda C-h m would just show "??" instead of the
function name, and the documentation would be really confusing since it
showed the deparsed lambda function instead of the function name being
called.

Fix this by refactoring both the view & headers [ and ] functions into
named functions, and make their shared logic new internal
mu4u~{headers,view}-* functions.
2015-11-22 22:32:05 +01:00
djcb cec825eec1 mu4e: fix for split-view
Commit 5708a173fa fixes some behavior for non-split-view, but
inadvertently changed the behavior for split-view as well.

Fix this.
2015-11-21 13:26:56 +02:00
Dirk-Jan C. Binnema 5708a173fa Merge pull request #691 from tmalsburg/master
mu4e: Moving in headers should only change view if mu4e-split-view is non-nil.
2015-11-19 12:48:27 +02:00
Dima Kogan 781f0782f5 mu4e: added action to show the current thread only
Add an action for view and headers buffer to show only the messages in
the current thread.
2015-11-12 12:57:26 +02:00
Titus von der Malsburg bf1325f7c4 mu4e: Moving in headers should only change view if mu4e-split-view is non-nil. 2015-11-11 11:41:14 -08:00
Bar Shirtcliff 22b7022798 mu4e: allow cc, bcc, mailing-list in mu4e-headers-mark-pattern
Based on patch by cinayakoshka, allow for matching more fields
2015-11-02 09:05:42 +02:00
djcb 0956c096de mu4e: don't be too eager to open view
When there's no view yet, don't automatically open one when moving.
2015-10-13 16:16:10 +03:00
djcb a7d611c902 Fix moving when not in split-view mode
Don't insist on having a window (which caused an error), and don't
refuse to move in that case.
2015-10-13 07:39:24 +03:00
Jonas Bernoulli a924985803 Fix issues reported by the byte-compiler. 2015-10-09 01:02:58 +02:00
Daniele Pizzolli db65c824d0 Fix typo from higl.* to highl.* 2015-09-22 10:10:47 +02:00
djcb 90293f6d98 mu4e: show sort arrows for fields / derived fields
We weren't showing the sort-arrows in all cases; we need to get
calculate the current sortfield, compare that to the current sortfield.
2015-09-19 12:11:17 +03:00
Florian Lindner 9780f076f1 Make usage of fancy chars configurable. 2015-09-10 12:32:49 +02:00