Commit Graph

4240 Commits

Author SHA1 Message Date
djcb aa07c4a27c update commands for new query parser 2017-10-25 23:50:17 +03:00
djcb 5e9cafea59 integrate new query parser 2017-10-25 23:50:17 +03:00
djcb b75f9f508b lib: implement new query parser
mu's query parser is the piece of software that turns your queries
into something the Xapian database can understand. So, if you query
"maildir:/inbox and subject:bla" this must be translated into a
Xapian::Query object which will retrieve the sought after messages.

Since mu's beginning, almost a decade ago, this parser was based on
Xapian's default Xapian::QueryParser. It works okay, but wasn't really
designed for the mu use-case, and had a bit of trouble with anything
that's not A..Z (think: spaces, special characters, unicode etc.).

Over the years, mu added quite a bit of pre-processing trickery to
deal with that. Still, there were corner cases and bugs that were
practically unfixable.

The solution to all of this is to have a custom query processor that
replaces Xapian's, and write it from the ground up to deal with the
special characters etc. I wrote one, as part of my "future, post-1.0
mu" reseach project, and I have now backported it to the mu 0.9.19.

From a technical perspective, this is a major cleanup, and allows us
to get rid of much of the fragile preprocessing both for indexing and
querying. From and end-user perspective this (hopefully) means that
many of the little parsing issues are gone, and it opens the way for
some new features.

From an end-user perspective:
- better support for special characters.
- regexp search! yes, you can now search for regular expressions, e.g.
      subject:/h.ll?o/
  will find subjects with hallo, hello, halo,  philosophy, ...

  As you can imagine, this can be a _heavy_ operation on the database,
  and might take quite a bit longer than a normal query; but it can be
  quite useful.
2017-10-24 22:55:35 +03:00
djcb b53366313b toys: fix compiler warnings 2017-10-24 09:17:27 +03:00
djcb 77b8f034e9 cosmetic 2017-09-17 14:02:14 +03:00
djcb cb0025b352 mu4e: unbreak abbrevs in compose mode
Fixes issue #1119.
2017-09-02 15:56:29 +03:00
djcb 2811370d7e mu4e: fix some compiler warnings in mu4e-view 2017-09-02 15:37:35 +03:00
djcb b8eba8f1fc mu4e: add some details about the "Verified:" header 2017-08-27 20:23:33 +03:00
djcb 95d68b4741 mu4e: add action mu4e-action-copy-message-file-path
Allow for copying the file path of the current message; useful for
developers.
2017-08-27 17:35:23 +03:00
djcb 3a8748c549 mu4e: display signers in signature header
Display the signers in the signature headers, so users can easily very
that a verified signed message was indeed signed by the expected sender.

We can't check using 'From:' automatically as that gives too many false
negatives.
2017-08-27 17:33:37 +03:00
djcb 97cb519788 cosmetic 2017-08-27 17:33:21 +03:00
djcb 6eceb5eee3 mu: include signers in signature report
Include the names/email address of signer in the reports, so we can use
them in mu4e.
2017-08-27 17:32:23 +03:00
djcb e09419f85b mu4e: special-case empty hostnames
Fixes #1108
2017-08-27 15:44:23 +03:00
djcb ceb7f0a8b4 mu4e: fix some typos
Hat-tip: Kelly Dean.
2017-08-13 10:09:03 +03:00
Dirk-Jan C. Binnema b9ddc8b708 Merge pull request #1109 from galaunay/Add-update-info-in-modeline
mu4e: Optionally, add info on update status in the modeline
2017-08-11 00:02:36 +03:00
djcb 0cfc23650b mu4e: cosmetics
fix whitespace
2017-08-10 23:32:10 +03:00
galaunay 513eb65388 Add info on update status in modeline 2017-07-19 13:01:30 +02:00
djcb 4014e3d210 mu: cosmetics 2017-07-02 10:46:08 +03:00
djcb 81294eb17b mu4e: allow sorting by list-id
Added support for sorting by mailing-list; note that this ultimately is
a sort by the 'list-id', so the items will be in that alphabetical
order, which is not necessarily the same as the order of the friendly
names.
2017-07-02 10:46:08 +03:00
Sean 'Shaleh' Perry 588d227171 Simplify logic of mu_str_remove_ctrl_in_place. Add tests. 2017-06-24 13:26:10 +02:00
Vladimir Sedach 6017ac46ce mu4e: Update single-window mode
Update mu4e~headers-quit-buffer and mu4e~main-menu.

mu4e~headers-quit-buffer in single-window mode now kills current buffer
instead of quitting mu4e.

mu4e~main-menu is updated to redisplay the main menu on context switch
or unknown keybinding, display errors in commands better, and to handle
C-g and ESC keys.

Thanks to Joost Kremers for the suggestions.
2017-06-24 12:54:21 +02:00
djcb afb47e7ef6 mu4e: small doc fix 2017-06-24 12:39:12 +02:00
djcb 99423234b8 mu: fix some compiler warnings 2017-06-24 12:20:16 +02:00
djcb cde35be271 Revert "Merge pull request #1099 from stsquad/fix-header-history"
This reverts commit ba75ef4b87, reversing
changes made to e735e70fa4.
2017-06-18 11:25:53 +03:00
Dirk-Jan C. Binnema 72db436a63 Merge pull request #1046 from jwhitbeck/master
mu4e: fix sending emails with no body
2017-06-17 12:10:24 +03:00
Dirk-Jan C. Binnema ff2f8fa37d Merge pull request #1094 from wataash/remove-realdelete
mu4e: remove `realdelete' option of OfflineIMAP
2017-06-17 12:08:37 +03:00
Dirk-Jan C. Binnema ba75ef4b87 Merge pull request #1099 from stsquad/fix-header-history
mu4e: don't loose search history when editing search
2017-06-17 12:05:51 +03:00
djcb e735e70fa4 mu4e: add untrash to mu4e-view
The untrash function was not defined; let's add it.
2017-06-17 12:00:20 +03:00
Alex Bennée 9d06d72d6e mu4e: don't loose search history when editing search
Even though the user may be editing this expression there is no reason
to not have the mu4e~headers-search-hist present for the prompt. Emacs
will only replace it with system wide history which would likely
contain irrelevant history for the action.
2017-06-16 14:17:28 +01:00
Wataru Ashihara 625ee4f5f9 mu4e: remove `realdelete' option of OfflineIMAP
offlineimap/Changelog.md says Gmail `realdelete' option is considered
harmful and was removed on OfflineIMAP v6.5.2.1 (2012-04-04).
2017-06-10 15:47:48 +09: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 bbdee4e765 mu4e: cosmetics (mu4e-main) 2017-05-06 13:12:38 +03:00
djcb 6bde2618ab mu4e: make mu4e-context-current interactive
So it will output the name of the current context when used in an
interactive context.
2017-05-06 13:12:38 +03:00
djcb 465e069a3d gmime-test: dump (unencode) body, too.
Useful for testing.
2017-05-06 13:12:38 +03:00
Dirk-Jan C. Binnema fc6bfca175 Merge pull request #1071 from akoehn/master
mu4e: advance after mark can now be disabled
2017-05-06 12:02:22 +03:00
Arne Köhn 47a046c662 advance after mark can now be disabled
The variable mu4e-headers-advance-after-mark can be set to nil if you
want to disable moving to the next mail after marking.
2017-04-25 16:40:41 +02:00
djcb 22e11fc112 mu4e-vars.el: cosmetics
whitespace cleanup and some typo fixes; fixes issue #1065.
2017-04-10 20:05:31 +03:00
djcb abe732111a mu4e: cosmetics 2017-04-09 11:33:21 +03:00
djcb 855a8a5c5e mu: properly escape include file-names (forward)
We weren't properly escaping filenames when returning them for
forwarding. Let's do so now.
2017-04-09 11:31:39 +03:00
djcb 98b998b86d mu4e: remove mu4e~compose-browse-url-mail
Instead, rely on the common browse-url-mail, which does the right thing
after
  (setq mail-user-agent 'mu4e-user-agent)
2017-04-08 15:25:38 +03:00
djcb 895a78ba7b mu4e: handle cc in mu4e~compose-browse-url-mail
Handle Cc fields in mu4e~compose-browse-url-mail, as per issue #1025.
2017-04-08 14:55:24 +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 fb09af4215 mu4e: compose/format-flowed: don't enable fringe indicators
We were enabling the fringe indicators by default in
mu4e-compose-format-flowed; let's not do that and leave it to the
user (they can use add-hook etc.)
2017-04-02 16:27:53 +03:00
Dirk-Jan C. Binnema 15056a6f87 Merge pull request #1056 from ronaldevers/patch-1
mu4e: Fix typo in mu4e-sent-messages-behavior docs
2017-03-29 22:32:47 +03:00
Ronald Evers 6ce126ca69 Fix typo in mu4e-sent-messages-behavior docs 2017-03-26 21:49:36 +02:00
djcb 21b637f291 mu4e: minor cleanup in mu4e-compose 2017-03-18 10:24:51 +02:00
djcb 42cd4f89d2 mu4e: mention max-specpdl-size setting
Mention the max-specpdl-size setting, to avoid the
  Variable binding depth exceeds max-specpdl-size
error some people were seeing.
2017-03-18 10:22:46 +02:00
djcb 7729948d74 mu4e: utils: whitespace cleanups 2017-03-18 10:10:46 +02:00
djcb c115d75a50 mu4e: handle marks outside headers-view
Ensure we the marks get counted correctly outside the headers view. This
avoids mu4e trying to refresh the headers buffer when we're reading a
message.
2017-03-18 10:09:10 +02:00