notmuch.el: Display authors in a column separate from subject.

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.
This commit is contained in:
Carl Worth 2009-11-16 11:57:05 -08:00
parent 352e91625b
commit d5068983b8

View file

@ -658,6 +658,9 @@ thread from that buffer can be show when done with this one)."
(notmuch-show-toggle-body-read-visible))))) (notmuch-show-toggle-body-read-visible)))))
))) )))
(defvar notmuch-search-authors-width 40
"Number of columns to use to diplay authors in a notmuch-search buffer.")
(defvar notmuch-search-mode-map (defvar notmuch-search-mode-map
(let ((map (make-sparse-keymap))) (let ((map (make-sparse-keymap)))
(define-key map "a" 'notmuch-search-archive-thread) (define-key map "a" 'notmuch-search-archive-thread)
@ -756,7 +759,17 @@ global search.
(if (re-search-forward "thread:[a-fA-F0-9]*" nil t) (if (re-search-forward "thread:[a-fA-F0-9]*" nil t)
(progn (progn
(forward-char) (forward-char)
(overlay-put (make-overlay beg (point)) 'invisible 'notmuch-search))))) (overlay-put (make-overlay beg (point)) 'invisible 'notmuch-search)
(re-search-forward ".*\\[[0-9]*/[0-9]*\\] \\([^;]*\\)\\(;\\)")
(let* ((authors (buffer-substring (match-beginning 1) (match-end 1)))
(authors-length (length authors)))
;; Drop the semi-colon
(replace-match "" t nil nil 2)
(if (<= authors-length notmuch-search-authors-width)
(replace-match (concat authors (make-string
(- notmuch-search-authors-width
authors-length) ? )) t t nil 1)
(replace-match (concat (substring authors 0 (- notmuch-search-authors-width 3)) "...") t t nil 1)))))))
(defun notmuch-search-markup-thread-ids () (defun notmuch-search-markup-thread-ids ()
(save-excursion (save-excursion