<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/emacs/notmuch.el, branch 0.11</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.11</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.11'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2011-12-24T19:34:07Z</updated>
<entry>
<title>emacs: fix docstring for `notmuch-search-line-faces'.</title>
<updated>2011-12-24T19:34:07Z</updated>
<author>
<name>Dmitry Kurochkin</name>
<email>dmitry.kurochkin@gmail.com</email>
</author>
<published>2011-12-23T20:40:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c44a0edadca995ddee4b159e9c465d40a32af6e4'/>
<id>urn:sha1:c44a0edadca995ddee4b159e9c465d40a32af6e4</id>
<content type='text'>
Examples in documentation for `notmuch-search-line-faces' had an extra
quote, e.g.:

  '(\"unread\" . '(:foreground \"green\"))

Which resulted in values like:

  (\"unread\" quote (:foreground \"green\"))

And tons of "Invalid face reference: quote" errors in the messages
buffer.
</content>
</entry>
<entry>
<title>Don't quote lambda forms</title>
<updated>2011-12-21T11:27:38Z</updated>
<author>
<name>Aaron Ecay</name>
<email>aaronecay@gmail.com</email>
</author>
<published>2011-12-17T15:47:48Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e3260d025389c2e98dbda58cff1c214497813bc2'/>
<id>urn:sha1:e3260d025389c2e98dbda58cff1c214497813bc2</id>
<content type='text'>
This generates byte-compiler warnings on (at least) current trunk
versions of Emacs.  The quote is not necessary; lambda forms are
self-quoting.
</content>
</entry>
<entry>
<title>emacs: Add `notmuch-jump-to-recent-buffer'.</title>
<updated>2011-12-20T12:10:36Z</updated>
<author>
<name>David Edmondson</name>
<email>dme@dme.org</email>
</author>
<published>2011-12-20T08:01:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4a2a271878ad31992f3121362d7e2dd12da2bf7a'/>
<id>urn:sha1:4a2a271878ad31992f3121362d7e2dd12da2bf7a</id>
<content type='text'>
From a Carl Worth idea: add a function which will select the most
recently used notmuch buffer (search, show or hello). If no recent
buffer is found, run `notmuch'.

It is expected that the user will global bind this command to a key
sequence.
</content>
</entry>
<entry>
<title>emacs: support "notmuch new" as a notmuch-poll-script</title>
<updated>2011-12-15T04:20:11Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2011-12-12T20:50:04Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=ed56fee6e5e8c114378f2d2def5395caab5d66a6'/>
<id>urn:sha1:ed56fee6e5e8c114378f2d2def5395caab5d66a6</id>
<content type='text'>
Support nil value for notmuch-poll-script to run "notmuch new" instead of
an external script, and make this the new default. "notmuch new" is run
using the configured notmuch-command.

This allows taking better advantage of the "notmuch new" hooks from emacs
without intermediate scripts.

Signed-off-by: Jani Nikula &lt;jani@nikula.org&gt;
</content>
</entry>
<entry>
<title>emacs: Use notmuch-command variable in process-lines.</title>
<updated>2011-12-01T01:19:44Z</updated>
<author>
<name>Chris Gray</name>
<email>chrismgray@gmail.com</email>
</author>
<published>2011-11-29T17:58:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9e805b6a5894c4e42deb78ad33523e550d157c75'/>
<id>urn:sha1:9e805b6a5894c4e42deb78ad33523e550d157c75</id>
<content type='text'>
The process-lines function calls the notmuch binary.  The location of
the binary may have been customized by the user, so it is better to
use the customized location rather than allowing the process-lines
function to search the user's PATH for the binary.
</content>
</entry>
<entry>
<title>emacs: Avoid unnecessary markers.</title>
<updated>2011-11-24T12:33:12Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2011-11-21T01:07:02Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9cfafc070a4df4935781a274f039dc63790ed0c2'/>
<id>urn:sha1:9cfafc070a4df4935781a274f039dc63790ed0c2</id>
<content type='text'>
This is just cleanup.  These markers are all immediately resolved to
points by Emacs, so using markers here is just unncessary overhead.
</content>
</entry>
<entry>
<title>emacs: Don't record undo information for search or show buffers.</title>
<updated>2011-11-24T12:31:44Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2011-11-21T01:00:55Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=3a3f6f0ab517109a60c0c1f8c08ae9b003c52a10'/>
<id>urn:sha1:3a3f6f0ab517109a60c0c1f8c08ae9b003c52a10</id>
<content type='text'>
There's no reason to record undo information for read-only,
programmatically-constructed buffers.  The undo list just chews up
memory keeping track of our calls to insert.
</content>
</entry>
<entry>
<title>emacs: Unbind M-RET as display of thread with crypto switch.</title>
<updated>2011-11-13T00:42:25Z</updated>
<author>
<name>Jameson Graef Rollins</name>
<email>jrollins@finestructure.net</email>
</author>
<published>2011-05-29T00:09:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=07022714ebd7e54aaa276d1c6f395fb8347a0710'/>
<id>urn:sha1:07022714ebd7e54aaa276d1c6f395fb8347a0710</id>
<content type='text'>
Use prefix argument instead to set switch.
</content>
</entry>
<entry>
<title>emacs: Use a single buffer invisibility spec to fix quadratic search cost.</title>
<updated>2011-11-12T14:21:03Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2011-11-09T02:55:28Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a2d78fba200d0342d90cf27f2ac3eb9091911275'/>
<id>urn:sha1:a2d78fba200d0342d90cf27f2ac3eb9091911275</id>
<content type='text'>
Buffer redisplay requires traversing the buffer's invisibility spec
for every part of the display that has an 'invisible text or overlay
property.  Previously, the search buffer's invisibility spec list
contained roughly one entry for each search result.  As a result,
redisplay took O(NM) time where N is the number of visible lines and M
is the total number of results.  On a slow computer, this is enough to
make even buffer motion noticeably slow.  Worse, during a search
operation, redisplay is triggered for each search result (even if
there are no visible buffer changes), so search was quadratic
(O(NM^2)) in the number of search results.

This change switches to using a single element buffer invisibility
spec.  To un-hide authors, instead of removing an entry from the
invisibility spec, it simply removes the invisibility overlay from
those authors.

I tested using a query with 6633 results on a 9 year old machine.
Before this patch, Emacs took 70 seconds to fill the search buffer;
toward the end of the search, Emacs consumed 10-20x as much CPU as
notmuch; and moving point in the buffer took about a second.  With
this patch, the same query takes 40 seconds, Emacs consumes ~3x the
CPU of notmuch by the end, and there's no noticeable lag to moving
point.  (There's still some source of non-linearity, because Emacs and
notmuch consume roughly the same amount of CPU early in the search.)
</content>
</entry>
<entry>
<title>Do not query on notmuch-search exit</title>
<updated>2011-11-08T18:25:07Z</updated>
<author>
<name>Michal Sojka</name>
<email>sojkam1@fel.cvut.cz</email>
</author>
<published>2011-08-27T12:38:26Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0234a16b56e9fa126cf07b9f3634f5b47e3fcfa7'/>
<id>urn:sha1:0234a16b56e9fa126cf07b9f3634f5b47e3fcfa7</id>
<content type='text'>
Emacs 23.2 queries by default about killing existing processes. This
is annoying when one wants to interrupt long search with 'q' key.
Disable this behavior for notmuch.
</content>
</entry>
</feed>
