X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch.el;h=6eef4af13341733da81ad4c603c5546c4c9aae8a;hb=b6565c1c54e35563843e7ddece601680170bb84a;hp=01a929973bd4499ec9697e90c4e3b378bd55b63f;hpb=fb4a0967cab7df737d5d53199a48a0e79c429b61;p=notmuch diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 01a92997..6eef4af1 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -90,11 +90,11 @@ ("tags" . "(%s)")) "Search result formatting. -Supported fields are: date, count, authors, subject, tags. -For example: - (setq notmuch-search-result-format - \\='((\"authors\" . \"%-40s\") - (\"subject\" . \"%s\"))) +List of pairs of (field . format-string). Supported field +strings are: \"date\", \"count\", \"authors\", \"subject\", +\"tags\". It is also supported to pass a function in place of a +field name. In this case the function is passed the thread +object (plist) and format string. Line breaks are permitted in format strings (though this is currently experimental). Note that a line break at the end of an @@ -102,7 +102,16 @@ currently experimental). Note that a line break at the end of an place it instead at the beginning of the following field. To enter a line break when setting this variable with setq, use \\n. To enter a line break in customize, press \\[quoted-insert] C-j." - :type '(alist :key-type string :value-type string) + :type '(alist + :key-type + (choice + (const :tag "Date" "date") + (const :tag "Count" "count") + (const :tag "Authors" "authors") + (const :tag "Subject" "subject") + (const :tag "Tags" "tags") + function) + :value-type (string :tag "Format")) :group 'notmuch-search) ;; The name of this variable `notmuch-init-file' is consistent with the @@ -181,6 +190,7 @@ there will be called at other points of notmuch execution." (define-key map "c" 'notmuch-search-stash-map) (define-key map "t" 'notmuch-search-filter-by-tag) (define-key map "l" 'notmuch-search-filter) + (define-key map "E" 'notmuch-search-edit-search) (define-key map [mouse-1] 'notmuch-search-show-thread) (define-key map "k" 'notmuch-tag-jump) (define-key map "*" 'notmuch-search-tag-all) @@ -831,6 +841,7 @@ non-authors is found, assume that all of the authors match." overlay) (insert invisible-string) (setq overlay (make-overlay start (point))) + (overlay-put overlay 'evaporate t) (overlay-put overlay 'invisible 'ellipsis) (overlay-put overlay 'isearch-open-invisible #'delete-overlay))) (insert padding)))) @@ -1147,6 +1158,12 @@ search results and that are also tagged with the given TAG." (list (notmuch-select-tag-with-completion "Notmuch search tag: "))) (notmuch-search (concat "tag:" tag))) +(defun notmuch-search-edit-search (query) + "Edit the current search" + (interactive (list (read-from-minibuffer "Edit search: " + notmuch-search-query-string))) + (notmuch-search query notmuch-search-oldest-first)) + ;;;###autoload (defun notmuch () "Run notmuch and display saved searches, known tags, etc."