notmuch/emacs
Mark Walters 941e172724 emacs: show: mark tags changed since buffer loaded
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.
2014-03-24 19:48:04 -03:00
..
.gitignore emacs: update .gitignore 2013-06-02 20:44:26 -03:00
coolj.el emacs: Add more functions to clean up text/plain parts 2010-04-26 10:05:46 -07:00
make-deps.el emacs: Compute build dependencies to fix byte compile issues 2013-05-23 08:06:12 -03:00
Makefile fix sum moar typos [build scripts, Makefiles] 2011-06-23 15:44:59 -07:00
Makefile.local emacs: Avoid rebuilding .eldeps even when there's nothing to do 2014-02-21 21:07:23 -04:00
notmuch-address.el emacs/notmuch-address.el: add notmuch-address-selection-function 2013-05-13 21:05:29 -03:00
notmuch-crypto.el emacs: show: make buttons select window 2013-02-18 20:13:19 -04:00
notmuch-hello.el emacs: remove newlines from input to notmuch count --batch 2014-02-25 20:53:19 -04:00
notmuch-lib.el emacs: Combine notmuch-combine-face-text-property{, -string} 2014-03-24 19:42:33 -03:00
notmuch-logo.png emacs: Add notmuch-hello.el, a friendly frontend to notmuch 2010-04-23 12:50:18 -07:00
notmuch-maildir-fcc.el emacs: derive correct timestamp in FCC unique name 2012-06-22 07:39:21 -03:00
notmuch-message.el emacs: replace (funcall 'foo ...) with (foo ...) 2013-06-02 11:37:22 -03:00
notmuch-mua.el emacs: Simplify and fix `notmuch-mua-prompt-for-sender' 2014-03-04 19:59:35 -04:00
notmuch-parser.el emacs: Streaming S-expression parser 2013-06-01 08:56:25 -03:00
notmuch-print.el emacs: Put notmuch-print-mechanism in custom group notmuch-show 2012-04-24 23:25:51 -03:00
notmuch-query.el emacs: dropped rest of now-unused JSON functionality 2013-07-20 09:13:48 -03:00
notmuch-show.el emacs: show: mark tags changed since buffer loaded 2014-03-24 19:48:04 -03:00
notmuch-tag.el emacs: show: mark tags changed since buffer loaded 2014-03-24 19:48:04 -03:00
notmuch-tree.el emacs: show: mark tags changed since buffer loaded 2014-03-24 19:48:04 -03:00
notmuch-wash.el emacs: Retain text properties when toggling buttons 2013-05-31 22:00:44 -03:00
notmuch.el emacs: show: mark tags changed since buffer loaded 2014-03-24 19:48:04 -03:00