mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
emacs: Separate search line parsing and display
Previously, much of the display of search lines was done in the same function that parsed the CLI's output. Now the parsing function only parses, and notmuch-search-show-result fully inserts the search result in the search buffer.
This commit is contained in:
parent
bbc74d98f5
commit
e4818cc9c5
1 changed files with 17 additions and 16 deletions
|
@ -727,11 +727,19 @@ non-authors is found, assume that all of the authors match."
|
||||||
;; depends on the format of this
|
;; depends on the format of this
|
||||||
(insert (concat "(" (propertize tags 'font-lock-face 'notmuch-tag-face) ")")))))
|
(insert (concat "(" (propertize tags 'font-lock-face 'notmuch-tag-face) ")")))))
|
||||||
|
|
||||||
(defun notmuch-search-show-result (date count authors subject tags)
|
(defun notmuch-search-show-result (thread-id date count authors subject tags)
|
||||||
(dolist (spec notmuch-search-result-format)
|
;; Ignore excluded matches
|
||||||
(notmuch-search-insert-field (car spec) (cdr spec)
|
(unless (eq (aref count 1) ?0)
|
||||||
date count authors subject tags))
|
(let ((beg (point))
|
||||||
(insert "\n"))
|
(tags-str (mapconcat 'identity tags " ")))
|
||||||
|
(dolist (spec notmuch-search-result-format)
|
||||||
|
(notmuch-search-insert-field (car spec) (cdr spec)
|
||||||
|
date count authors subject tags-str))
|
||||||
|
(insert "\n")
|
||||||
|
(notmuch-search-color-line beg (point) tags)
|
||||||
|
(put-text-property beg (point) 'notmuch-search-thread-id thread-id)
|
||||||
|
(put-text-property beg (point) 'notmuch-search-authors authors)
|
||||||
|
(put-text-property beg (point) 'notmuch-search-subject subject))))
|
||||||
|
|
||||||
(defun notmuch-search-process-filter (proc string)
|
(defun notmuch-search-process-filter (proc string)
|
||||||
"Process and filter the output of \"notmuch search\""
|
"Process and filter the output of \"notmuch search\""
|
||||||
|
@ -759,17 +767,10 @@ non-authors is found, assume that all of the authors match."
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
(if (/= (match-beginning 1) line)
|
(if (/= (match-beginning 1) line)
|
||||||
(insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line (match-beginning 1)) "\n")))
|
(insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line (match-beginning 1)) "\n")))
|
||||||
;; We currently just throw away excluded matches.
|
(when (string= thread-id notmuch-search-target-thread)
|
||||||
(unless (eq (aref count 1) ?0)
|
(set 'found-target (point))
|
||||||
(let ((beg (point)))
|
(set 'notmuch-search-target-thread "found"))
|
||||||
(notmuch-search-show-result date count authors subject tags)
|
(notmuch-search-show-result thread-id date count authors subject tag-list)
|
||||||
(notmuch-search-color-line beg (point) tag-list)
|
|
||||||
(put-text-property beg (point) 'notmuch-search-thread-id thread-id)
|
|
||||||
(put-text-property beg (point) 'notmuch-search-authors authors)
|
|
||||||
(put-text-property beg (point) 'notmuch-search-subject subject)
|
|
||||||
(when (string= thread-id notmuch-search-target-thread)
|
|
||||||
(set 'found-target beg)
|
|
||||||
(set 'notmuch-search-target-thread "found"))))
|
|
||||||
(set 'line (match-end 0)))
|
(set 'line (match-end 0)))
|
||||||
(set 'more nil)
|
(set 'more nil)
|
||||||
(while (and (< line (length string)) (= (elt string line) ?\n))
|
(while (and (< line (length string)) (= (elt string line) ?\n))
|
||||||
|
|
Loading…
Reference in a new issue