| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
Next all it needs to do is kill the buffer and show the next thread.
|
|
|
|
|
|
|
|
|
| |
Currently this will either advance by screenfuls, or to the next
message if it's already within a screenful, and will mark each message
read as it is left.
It doesn't yet complete the magic by archiving the messages nor by
advancing to the next thread in the search.
|
|
|
|
|
| |
Previously, unhinding a read message would still show all the citations
in that message without an explicit command to make them visible. Fix.
|
|
|
|
|
|
|
|
| |
Now, if the user has manually moved point to somewhere within a
message, executing the previous-message command onece will rewind
point only to the beginning of the current message. Previously this
would go back to the previous message, (which the user can now do
easily and naturally by simply executing the command one more time).
|
|
|
|
|
|
|
|
|
| |
Before this just brought the current line to the top of the
window. Now it actually moves to the beginning of the current message.
This is built on a much more solid foundation now with a function to
move to the summary-line of the current message, and then moving from
there.
|
|
|
|
|
|
| |
These now provide a summary of the most useful features/bindings
as well as a complete printout of the relevant mode maps to show
all available keybindings.
|
|
|
|
|
|
|
| |
This is the command in notmuch-search mode and it's cer convenient
for it to advance to the next line there. (It would be even more
convenient if it didn't also take forever, but as mentioned before
that's an issue we'll need to fix in Xapian.)
|
|
|
|
|
| |
This is a convenience function to avoid having to type "tag:" with
the (f)ilter command.
|
|
|
|
|
|
|
| |
We turn on the scroll-preserve-screen-position option which seems
like what's desired here, (though that's not what I normally use
when editing files---but I think scrolling through a list of email
threads is different).
|
|
|
|
|
|
|
|
|
|
| |
I had put these in here since I had originally planned to copy
liberally from the body of the implementation of 'compile in order
to get process output into a buffer. But once I found call-process
in the documentation of emacs, that was all I needed.
And all the code I've written since has been entirely my own with
just the help of emacs documentation.
|
|
|
|
|
|
| |
I'm definitely more comfortable with the add-to-invisibility-spec
now than I was when I first wrote these functions, (which weren't
working at all).
|
|
|
|
|
|
|
| |
This is our first race-free implementation of archive-thread! It
acts only on the messages explcitly contained in the buffer, not
on an entire thread ID, so it's safe in the face of new messages
have been delivered for this thread since the view was made.
|
|
|
|
|
|
|
| |
This optimization wouldn't be necessary if we had a nice fast "notmuch
tag" command. But since it's currently fairly slow, (see Xapian defect
250: http://trac.xapian.org/ticket/250), we're willing to take some
extra care to avoid calling "notmuch tag" unnecessarily.
|
|
|
|
|
|
|
|
| |
I previously had a hack that special-cased the "unread" tag and
printed it on the same line as the message ID. But now that we are
printing all tags at the end of the one-line summary we don't need
this anymore. Get rid of it, and just read "unread" from the list of
tags just like any other tag.
|
|
|
|
|
|
|
| |
This is in notmuch-show mode rather than in notmuch-search mode,
(where we had + and - working already). This gives the same visual
feedback as in notmuch-search-mode, (the tags are manipulated first in
the database and then the list of tags in the buffer is updated).
|
|
|
|
|
| |
This is in the one-line summary so should always be visible even
in our emacs client that's so eager to make things invisible.
|
|
|
|
|
| |
Otherwise, try to keep point in the same place, (such as when the
current thread has been archived away).
|
|
|
|
|
| |
This will allow for updates when a separate process (say, a notmuch-
show buffer), has archived messages.
|
|
|
|
|
| |
Of course, technically, we're removing the "unread" tag, but you
get the idea. :-)
|
|
|
|
|
| |
The user can make these visible again by pressing 'c' or 's',
(though we'd like to move to direct manipulation instead soon).
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also hide all markers.
From here, all we really need for legibility is the following:
* Hide away citations and signatures
* Call out the one-line summary some way, (larger font size?)
* Add nesting for replies
|
|
|
|
| |
The display of the header can be toggled with the 'h' key.
|
|
|
|
|
|
|
|
|
|
| |
We were previously using things like "%message{" which were not
guaranteed to never appear in an email message. Using a control
character (^L or '\f' instead of '%') gives us better assurance that
our delimiter doesn't show up in an original email message.
This still isn't entirely safe since we're decoding encoded text in
the body of the email message so almost all bets are off really.
|
|
|
|
|
| |
This is much more convenient for reading the messages, and happens
to match the behavior of sup.
|
|
|
|
|
|
| |
Almost starting to get usable now. Still need to make it mark messages
as they are read, (by removing the unread tag), and selectively hiding
the full header.
|
|
|
|
|
| |
I mentioned the read-only directory optimization to Keith, and he
liked it but wanted to be able to configure it to be fully automated.
|
|
|
|
|
| |
Also, take care to remove a final blank line to avoid the point
going beyond the last thread in the buffer.
|
|
|
|
|
| |
There are conceptually three different projects here, so it helps
to keep the tasks for each separated.
|
|
|
|
| |
Also add 'q' and 'x' keybindings to kill the current buffer.
|
|
|
|
|
| |
Most all of the returned strings will now fill most of a 12-character
string, (depending on the length of the month).
|
|
|
|
|
|
| |
The notmuch.c main program now uses GMime directly rather than using
these functions, and I'd rather not export any functions unless we
have good evidence that the functions are necessary.
|
|
|
|
| |
One more baby step toward something that's pleasant to use.
|
|
|
|
|
| |
There's no undo still, but at least you can see what you are doing
now.
|
|
|
|
|
|
|
| |
We had originally copied this function in at a time when notmuch
wasn't actually depending on the GMime library. Now that it does,
we might as well call the function that exists there rather
than having a private copy of it.
|
|
|
|
|
|
| |
Additionally, print a part number for each MIME part so that the
client could (conceivably) ask for the contents of a specific
part by part number.
|
|
|
|
|
| |
Use GMime function to decode message-header values according to
RFC 2047.
|
|
|
|
|
| |
This can allow for the client to hide undesired MIME parts
such as text/html.
|
|
|
|
| |
We now actually get text content rather than blocks of BASE64, etc.
|
|
|
|
|
| |
These are the things that are actively preventing me from being able
to use notmuch as an email-reading client.
|
|
|
|
|
| |
The README file was already referring to this, so we actually add it
now.
|
|
|
|
|
|
|
|
|
|
|
| |
This is *not* based on autoconf. In fact, this doesn't actually
configure anything, (one can compile notmuch directly with just
"make" without running configure if the dependencies are all
satisfied).
The only thing that this configure script does is to check for the
presence of the various dependencies and provide some guidance to
the user if they are not all available.
|
|
|
|
|
| |
I was about to refer to these names in some documentation, so I
wanted a slightly better name for them.
|
|
|
|
| |
This is part of getting notmuch ready for a more public announcement.
|
|
|
|
|
| |
By pulling content out of notmuch help, and also the messages
printed by "notmuch setup".
|
|
|
|
|
|
|
| |
I had noticed several times earlier that having a talloc context
passed in would make things more convenient. I'm not exercising
that convenience yet, but the context is there now, (and there's
one fewer item on our TODO list).
|
|
|
|
| |
Shorter naming without being any less clear. A definite win.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inbox tag)
These have keybindings of '+', '-', and 'a'. The bug they have so
far is lack of visual feedback for their effect, and lack of undo.
(Also the fact that adding or removing a single tag for a thread
takes way too long--but that's as a Xapian issue as discussed here:
replace_document should make minimal changes to database file
http://trac.xapian.org/ticket/250
)
|
|
|
|
|
| |
The shorter output is much nicer for something that might end up
in an emacs mini-buffer, for example.
|
|
|
|
| |
Just looks a little neater that way.
|
|
|
|
|
| |
It's remarkable how little code we need for a very functional GUI
here. I think we're doing something right.
|