aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.el
Commit message (Collapse)AuthorAge
* notmuch.el: Quote arguments to protect from shell interpretation.Gravatar Carl Worth2009-11-24
| | | | | | We want to allow the user to be able to use search expressions with parentheses and semi-colons, etc. and we definitely don't want the shell interpreting those!
* notmuch.el: Exceute "notmuch search" asynchronously.Gravatar Carl Worth2009-11-24
| | | | | | | | | | | Previously, our emacs interface was waiting for the "notmuch search" to complete before it would display anything. Now, we execute the process asyncrhonously and filter results as they come in. This takes advantage of the recent work to make "notmuch search" results stream out steadily. The result is that some search results will be available nearly instantly and the user can navigate and view those while additional results continue loading.
* Remove the global expand body keymappingGravatar Alexander Botero-Lowry2009-11-24
| | | | With local buttons done now, we don't need this anymore.
* Make bodies locally toggleableGravatar Alexander Botero-Lowry2009-11-24
| | | | | | | | | | | | Having actually implemented this, I realized that my initial approach of providing a function to configure a button was wrong. Instead I've replaced that with button types. This then makes it possible to provide the fully expanded view when all threads in a message are unread. It also has the potential to allow global-expansion functions if that is desireable
* make a nice function for generating invisibility toggle buttonsGravatar Alexander Botero-Lowry2009-11-24
| | | | | | I realized I was replicating this code over and over again, so this way if I change my mind about something I only have to do it on one place.
* cleanup a lot of left-overs from the global invisGravatar Alexander Botero-Lowry2009-11-24
| | | | | Basically I'd left in a lot of the key-bindings and all the invisiblity spec variables so just rid the world of those
* make headers locally expandable/collapsableGravatar Alexander Botero-Lowry2009-11-24
| | | | | | | This is the same as with citations and signatures. I used an ellipsis here for the invisible region, which I think make it more obvious that there are extra headers. MH-e used this for extra long To/CC headers.
* notmuch.el: Add TAB and M-TAB buttons to move between buttons.Gravatar Carl Worth2009-11-23
| | | | | Thanks to Alexander Botero-Lowry for pointing out the interesting functions to use here. This functionality was really easy to add.
* Add notmuch-folder mode to provide an overview of search matchesGravatar Keith Packard2009-11-23
| | | | | | | | | | | Folder mode takes a (user-configurable) list of search patterns and produces a list of those patterns and the count of messages that they match. When an entry in this list is selected, a search window with the defined search is opened. The set of folders is defined as a list, each element contains the name of the folder and the query string to count. Signed-off-by: Keith Packard <keithp@keithp.com>
* Make mouse-1 click in search view show threadGravatar Keith Packard2009-11-23
| | | | | | | | Selecting text in the search view isn't all that useful, so instead, make mouse-1 clicks actually show the thread you click on. It's almost like direct manipulation or something. Signed-off-by: Keith Packard <keithp@keithp.com>
* Insert signature into repliesGravatar Keith Packard2009-11-23
| | | | | | | | | When you compose a new message, message mode carefully inserts your mail signature at the bottom of the message; as notmuch constructs the reply all by itself, this doesn't happen then. Use the message mode function 'message-insert-signature' to add that to reply buffers. Signed-off-by: Keith Packard <keithp@keithp.com>
* Quote file names passed to the shellGravatar Jed Brown2009-11-23
| | | | | Prior to this, notmuch-show-pipe-message could not handle file names with spaces and similar.
* switch to button-1, which seems to interact poorly with text-selection by mouseGravatar Alexander Botero-Lowry2009-11-22
|
* instead of trying to cause a redisplay, actually do a redisplayGravatar Alexander Botero-Lowry2009-11-22
|
* put a newline after the headersGravatar Alexander Botero-Lowry2009-11-22
|
* make header names bold in show-modeGravatar Alexander Botero-Lowry2009-11-22
|
* Make expanding/collapsing signatures and citations local to themGravatar Alexander Botero-Lowry2009-11-22
| | | | | This is the first step towards localizing all the expand/collapse operations in the show buffer
* buttonize signatures as wellGravatar Alexander Botero-Lowry2009-11-22
|
* Buttonize citation expander.Gravatar Alexander Botero-Lowry2009-11-22
| | | | Currently the button has no action or special handling at all.
* Fix invalid face reference.Gravatar Kan-Ru Chen2009-11-22
| | | | | | | To avoid the "Invalid face reference: cons [18 times]" kind of message goes on and on in the *Messages*. Signed-off-by: Kan-Ru Chen <kanru@kanru.info>
* INSTALL/notmuch.el: More details on how to install/run notmuch.elGravatar Carl Worth2009-11-21
| | | | | Hopefully this will save some people some head-scratching trying to figure out how to use it.
* notmuch.el: Don't use end-of-buffer which is inappropriate from programsGravatar Carl Worth2009-11-21
| | | | | | The documentation is quite clear about this case. With this, we can now byte compile without warnings.
* notmuch.el: Fix stale reference to non-existing variable.Gravatar Carl Worth2009-11-21
| | | | | We changed from "query" to "thread-id" a while ago, and broke this error message at the time. Fix it now.
* notmuch.el: Add many missing defvar calls.Gravatar Carl Worth2009-11-21
| | | | | Without these, emacs was complaining about "assignment to free variable", (though only when byte compiling, which is why we didn't notice earlier).
* Allow to redefine notmuch binary name and path in elisp modeGravatar Mikhail Gusarov2009-11-20
| | | | Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
* notmuch.el: Don't use literal control characters in strings.Gravatar Carl Worth2009-11-20
| | | | | | | Avoding these is nicer to users, text editors, and our poor little notmuch.el code itself that would get confused when seeing a copy of itself in email. (Of course, we should still fix that bug, but this workaround is good nonetheless.)
* notmuch: Add search mode hookGravatar Aneesh Kumar K.V2009-11-19
| | | | | | | | This patch add notmuch-search-hook that gets run when we after displaying search results Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc:Keith Packard <keithp@keithp.com>
* notmuch.el: Add a reply binding ('r') to search mode to reply to a whole thread.Gravatar Carl Worth2009-11-19
| | | | | | This is basically right, (I get a message buffer with all the mails quoted), but somehow notmuch reply is reversing the messages. That's a nuisance.
* We use the message mail system for new mail, let emacs know.Gravatar Keith Packard2009-11-18
| | | | | | | This makes things like the goto-address system bring up the right message composition window. Signed-off-by: Keith Packard <keithp@keithp.com>
* Create a default notmuch-show-hook that highlights URLs and uses word-wrapGravatar Keith Packard2009-11-18
| | | | | | | | | I created the notmuch-show-hook precisely so I could add these two options, but I suspect most people will want them, so I just made them the default. If you don't want them, you can use remove-hook to get rid of this. Signed-off-by: Keith Packard <keithp@keithp.com>
* Set truncate-lines variable for search buffers.Gravatar Keith Packard2009-11-18
| | | | | | This keeps them from wrapping. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add notmuch-show-hook to allow customization of show windowsGravatar Keith Packard2009-11-18
| | | | | | | | | I wanted to enable got-address-mode and visual-line-mode in my show windows to make messages easier to read and URLs easier to follow. This hook allows the user to run arbitrary code each time a message is shown. Signed-off-by: Keith Packard <keithp@keithp.com>
* Make '?" bring up a list of bindings.Gravatar Carl Worth2009-11-18
| | | | | Just using describe-mode for now, (though something more specialized would be better).
* TypsosGravatar Ingmar Vanhassel2009-11-18
|
* notmuch search: Change default search order to be newest messages first.Gravatar Carl Worth2009-11-17
| | | | | | | | | | | | | | | | | This is what most people want for a _search_ command. It's often different for actually reading mail in an inbox, (where it makes more sense to have results displayed in chronological order), but in such a case, ther user is likely using an interface that can simply pass the --sort=oldest-first option to "notmuch search". Here we're also change the sort enum from NOTMUCH_SORT_DATE and NOTMUCH_SORT_DATE_REVERSE to NOTMUCH_SORT_OLDEST_FIRST and NOTMUCH_SORT_NEWEST_FIRST. Similarly we replace the --reverse option to "notmuch search" with two options: --sort=oldest-first and --sort=newest-first. Finally, these changes are all tracked in the emacs interface, (which has no change in its behavior).
* Use 'forward-line' instead of 'next-line' while walking search displayGravatar Keith Packard2009-11-16
| | | | | | | | The documentation for 'next-line' suggests that 'forward-line' is a better choice for non-interactive usage. That appears to be the case here; using next-line caused emacs to spin forever for me. Signed-off-by: Keith Packard <keithp@keithp.com>
* notmuch.el: Consider an entire line of underscores as a signature separator.Gravatar Carl Worth2009-11-16
| | | | | | | This is the default separator used by mailman, so there's a lot of clutter in thread displays without this. Also, we not provide a nice variable to the user (notmuch-show-signature-regexp) for configuring this.
* notmuch.el: Insert a newline if the last line of a part is missing one.Gravatar Carl Worth2009-11-16
| | | | | | | | | | | | | I think there's a GMime bug that we're getting parts decoded without a final newline (the encoded parts seem to have them just fine). We can workaround the bug easily enough by finding a part-closing delimiter that is not at the beginning of a line, and if so, just insert a newline. Without this, the one-line-summary of the next message would continue on the same line as the last line of the previous message, (and this would often happen for mailing-list messages where mailman would add an extra part for its signature block).
* notmuch.el: Display authors in a column separate from subject.Gravatar Carl Worth2009-11-16
| | | | | | | | | | | | | | | This makes it much easier to actually read the subject lines. The user can set notmuch-search-authors-width to control the width of the column. Two possible ideas for improving this support further: 1. Make the excess authors invisible instead of removing them from the buffer, (which means that isearch could still find them). 2. Have the user variable control a percentage of the window width rather than being a fixed number of columns.
* notmuch.el: Indent messages to show nested structure of thread.Gravatar Carl Worth2009-11-16
| | | | | | | | | | | | | Now that we're actually adding text to the buffer for the indentation, our old aproach of using positions to record regions to manipulate is now longer correct. Fortunately, it's easy to switch from positions to markers which are robust, (just call point-marker instead of point and all relevant functions accept markers as well as points). I also finally fixed the bug where the text "[6 line signature]" we display was causing the one-line-summary of the next message to be on its same line rather than at the beginning of the next line where it belongs.
* notmuch.el: Add support for viewing MIME-encoded parts (with 'v').Gravatar Carl Worth2009-11-14
| | | | | | | Currently just supports viewing all MIME parts in the message. There's not yet support for selecting and viewing individual parts, but that should be easy to add from here, (now that we've found mm-display-parts to do all the heavy lifting).
* notmuch.el: Add an 'm' binding to start composing a new mail.Gravatar Carl Worth2009-11-13
| | | | Available from either the "search" or the "show" view.
* notmuch.el: Use require instead of load to get the cl functions.Gravatar Carl Worth2009-11-13
| | | | | Not only is "load" probably the wrong thing, but loading cl-seq befoe cl can cause complaints anyway.
* notmuch.el: Add a binding ('o') and command to toggle current search order.Gravatar Carl Worth2009-11-12
| | | | | This ended up being a bit easier than I thought. Just flip the controlling variable and then run `notmuch-search-refresh-view'.
* notmuch.el: Hook up support for different search orders.Gravatar Carl Worth2009-11-12
| | | | | | | | | | | | | This gives us two different default search orders: The inbox view that comes up from "M-x notmuch" is sorted in chronological order (oldest threads first). A new global search "M-x notmuch-search" will instead be in reverse chronological order (newest threads first). Any filtered searches retain the sort order of the search being filtered. There's not yet any interface for changing the sort order of a search after it is constructed.
* notmuch.el: Remove functions to show/hide thread IDs.Gravatar Carl Worth2009-11-12
| | | | | | I wrote these originally jsut for debugging. They've never been hooked up to any keybinding and the existing "M-x visible-mode" does what's needed anyway.
* notmuch.el: Switch to using "notmuch reply" rather than message-reply.Gravatar Carl Worth2009-11-11
| | | | | | This way we get to take advantage of the configuration of the user's email addresses in notmuch, (rather than expecting the user to configure all of their email addresses in message mode as well).
* notmuch.el: Add a binding ('r') to reply to the current message.Gravatar Carl Worth2009-11-10
| | | | | | | We were just starting to get "notmuch reply" into shape in order to provide the needed functionality here, but then I realized that the message-reply function built into emacs is already more functional, (at least for the case of replying to a single message).
* notmuch.el: Simplify get-message-idGravatar Carl Worth2009-11-10
| | | | | We were stripping off the "id:" portion of the identifier, only to put it back on again in all cases. Stop this madness.
* notmuch.el: Don't advance line in search buffer before showing thread.Gravatar Carl Worth2009-11-09
| | | | | | | | | | | | Previously, when selecting a thread to view from the search buffer, we would advance the point by one line before showing the thread, (so that it would be ready to show the next thread once the user was done with the current thread). This was annoying when the user temporarily exited the thread view, (because the "wrong" thread was then selected in the search view). We get a more consistent experience by waiting to advance until the user has finished viewing one thread and is ready to view the next.