<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/emacs/notmuch.el, branch 0.18</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.18</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.18'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2014-04-11T13:26:30Z</updated>
<entry>
<title>emacs: hello: use the saved-search helper functions</title>
<updated>2014-04-11T13:26:30Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2014-04-06T05:44:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=5e26d14536398210869a920f8e7bb84fd2ace6aa'/>
<id>urn:sha1:5e26d14536398210869a920f8e7bb84fd2ace6aa</id>
<content type='text'>
This uses the helper functions: the saved searches format has not
changed yet but backwards compatibility means everything still works.
</content>
</entry>
<entry>
<title>emacs: add notmuch-version.el.tmpl and create notmuch-version.el from it</title>
<updated>2014-04-11T02:25:36Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2014-03-19T20:37:10Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=cab1415a94f09c529ca7323904c5a159c996cbe0'/>
<id>urn:sha1:cab1415a94f09c529ca7323904c5a159c996cbe0</id>
<content type='text'>
The notmuch cli program and emacs lisp versions may differ (especially
in remote usage). It helps to resolve problems if we can determine
the versions of notmuch cli and notmuch emacs mua separately.

The build process now creates notmuch-version.el from template file
by filling the version info to notmuch-emacs-version variable.
</content>
</entry>
<entry>
<title>emacs: add defcustom notmuch-init-file and load it if exists</title>
<updated>2014-03-30T14:02:28Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2014-03-29T08:07:59Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=31fc76b782c5ebc38ec4a6d5f4fea12fe141f460'/>
<id>urn:sha1:31fc76b782c5ebc38ec4a6d5f4fea12fe141f460</id>
<content type='text'>
So that users can easily organize their notmuch-specific configurations
to separate file and they don't have to have notmuch configurations in
*every* emacs installation they launch, especially if those need to
'(require notmuch) to make the configurations possible.
</content>
</entry>
<entry>
<title>emacs: instruct user to autoload notmuch instead of require'ing it</title>
<updated>2014-03-30T14:02:08Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2014-03-29T08:07:58Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=7341b78abaa2db79271ea0e8a82120661448e251'/>
<id>urn:sha1:7341b78abaa2db79271ea0e8a82120661448e251</id>
<content type='text'>
When (require 'notmuch) is added to ~/.emacs notmuch is loaded to every
instance of emacs although it may not be used in majority of
those instances.

When (autoload 'notmuch "notmuch" ...) is added to ~/.emacs notmuch
is loaded (only) when user invokes the notmuch function.

User may want to add other entrypoints to notmuch by adding more
autoloads -- the autoload instruction given should offer them clue how
to do so.
</content>
</entry>
<entry>
<title>emacs: search: use orig-tags in search</title>
<updated>2014-03-24T22:48:40Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2014-03-22T11:51:11Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=af8c8c2b46c3c03d3fff01d5206b3c8b176a29b8'/>
<id>urn:sha1:af8c8c2b46c3c03d3fff01d5206b3c8b176a29b8</id>
<content type='text'>
This uses the recent functionality to show the tag changes in the
search buffer. Currently this is only used to show changes the search
buffer makes itself: i.e., it does not make display any changes
reflecting tagging done by other notmuch-buffers.
</content>
</entry>
<entry>
<title>emacs: show: mark tags changed since buffer loaded</title>
<updated>2014-03-24T22:48:04Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2014-03-22T11:51:09Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=941e172724188eb0f65bc05035a0a6871a70ba72'/>
<id>urn:sha1:941e172724188eb0f65bc05035a0a6871a70ba72</id>
<content type='text'>
This allows (and requires) the original-tags to be passed along with
the current-tags to be passed to notmuch-tag-format-tags. This allows
the tag formatting to show added and deleted tags.By default a removed
tag is displayed with strike-through in red (if strike-through is not
available, eg on a terminal, inverse video is used instead) and an
added tag is displayed underlined in green.

If the caller does not wish to use the new feature it can pass
current-tags for both arguments and, at this point, we do exactly that
in the three callers of this function.

Note, we cannot tidily allow original-tags to be optional because we would
need to distinguish nil meaning "we are not specifying original-tags"
from nil meaning there were no original-tags (an empty list).

We use this in subsequent patches to make it clear when a message was
unread when you first loaded a show buffer (previously the unread tag
could be removed before a user realised that it had been unread).

The code adds into the existing tag formatting code. The user can
specify exactly how a tag should be displayed normally, when deleted,
or when added.

Since the formatting code matches regexps a user can match all deleted
tags with a ".*" in notmuch-tag-deleted-formats.  For example setting
notmuch-tag-deleted-formats to '((".*" nil)) tells notmuch not to show
deleted tags at all.

All the variables are customizable; however, more complicated cases
like changing the face depending on the type of display will require
custom lisp.

Currently this overrides notmuch-tag-deleted-formats for the tests
setting it to '((".*" nil)) so that they get removed from the display
and, thus, all tests still pass.
</content>
</entry>
<entry>
<title>Make keys of notmuch-tag-formats regexps and use caching</title>
<updated>2014-03-24T22:43:00Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2014-03-22T11:51:06Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=7023466ece21b43a62dc0a2502e84bea78b1501c'/>
<id>urn:sha1:7023466ece21b43a62dc0a2502e84bea78b1501c</id>
<content type='text'>
This modifies `notmuch-tag-format-tag' to treat the keys of
`notmuch-tag-formats' as (anchored) regexps, rather than literal
strings.  This is clearly more flexible, as it allows for prefix
matching, defining a fallback format, etc.  This may cause compatibility
problems if people have customized `notmuch-tag-formats' to match tags
that contain regexp specials, but this seems unlikely.

Regular expression matching has quite a performance hit over string
lookup, so this also introduces a simple cache from exact tags to
formatted strings.  The number of unique tags is likely to be quite
small, so this cache should have a high hit rate.  In addition to
eliminating the regexp lookup in the common case, this cache stores
fully formatted tags, eliminating the repeated evaluation of potentially
expensive, user-specified formatting code.  This makes regexp lookup at
least as fast as assoc for unformatted tags (e.g., inbox) and *faster*
than the current code for formatted tags (e.g., unread):

                    inbox (usec)   unread (usec)
    assoc:              0.4            2.8
    regexp:             3.2            7.2
    regexp+caching:     0.4            0.4

(Though even at 7.2 usec, tag formatting is not our top bottleneck.)

This cache must be explicitly cleared to keep it coherent, so this adds
the appropriate clearing calls.
</content>
</entry>
<entry>
<title>emacs: Combine notmuch-combine-face-text-property{, -string}</title>
<updated>2014-03-24T22:42:33Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2014-03-22T11:51:05Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=dfab8e5e49d90c415f9585a02a2b0d6f72b4083a'/>
<id>urn:sha1:dfab8e5e49d90c415f9585a02a2b0d6f72b4083a</id>
<content type='text'>
This combines our two face combining functions into one, easy to use
function with a much shorter name: `notmuch-apply-face'.  This
function takes the full set of arguments that
`notmuch-combine-face-text-property' took, but takes them in a more
convenient order and provides smarter defaults that make the function
easy to use on both strings and buffers.
</content>
</entry>
<entry>
<title>emacs: add path: prefix to query completion</title>
<updated>2014-03-23T10:49:50Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2014-03-19T16:53:06Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=14d3251b9c08c947b16af58097a072a187109658'/>
<id>urn:sha1:14d3251b9c08c947b16af58097a072a187109658</id>
<content type='text'>
Complete to the new path: prefix.
</content>
</entry>
<entry>
<title>emacs: add '?' to some prefix keymaps to describe its bindings</title>
<updated>2013-12-09T19:52:54Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2013-11-14T09:49:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6d6006bea95c5ea292ba08490a906eb76481c9fc'/>
<id>urn:sha1:6d6006bea95c5ea292ba08490a906eb76481c9fc</id>
<content type='text'>
Added function notmuch-subkeymap-help to describe keybindings of a
subkeymap (eg after . or c in notmuch-search and notmuch-show).
</content>
</entry>
</feed>
