[PATCH 2/6] Introduce unthreaded mode
Tomi Ollila
tomi.ollila at iki.fi
Thu Feb 27 11:58:26 PST 2020
On Thu, Feb 27 2020, Mark Walters wrote:
> This commit introduces a new 'unthreaded' search mode where each
> matching message is shown on a separate line. It shares almost all of
> its code with tree view. Subsequent commits will allow it to diverge
> slightly in appearance.
Could have just written, "Introdude a new 'unthreaded' ..." but LGTM =D
(at least there is no 'seperate' here >;)
Tomi
> ---
> emacs/notmuch-hello.el | 2 +-
> emacs/notmuch-lib.el | 1 +
> emacs/notmuch-show.el | 2 +-
> emacs/notmuch-tree.el | 28 +++++++++++++++++++++-------
> 4 files changed, 24 insertions(+), 9 deletions(-)
>
> diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
> index aff8beb5..858446df 100644
> --- a/emacs/notmuch-hello.el
> +++ b/emacs/notmuch-hello.el
> @@ -31,7 +31,7 @@
> (declare-function notmuch-search "notmuch" (&optional query oldest-first target-thread target-line continuation))
> (declare-function notmuch-poll "notmuch" ())
> (declare-function notmuch-tree "notmuch-tree"
> - (&optional query query-context target buffer-name open-target))
> + (&optional query query-context target buffer-name open-target unthreaded))
>
> (defun notmuch-saved-search-get (saved-search field)
> "Get FIELD from SAVED-SEARCH.
> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
> index 8acad267..73b165e4 100644
> --- a/emacs/notmuch-lib.el
> +++ b/emacs/notmuch-lib.el
> @@ -154,6 +154,7 @@ For example, if you wanted to remove an \"inbox\" tag and add an
> (define-key map "q" 'notmuch-bury-or-kill-this-buffer)
> (define-key map "s" 'notmuch-search)
> (define-key map "z" 'notmuch-tree)
> + (define-key map "u" 'notmuch-unthreaded)
> (define-key map "m" 'notmuch-mua-new-mail)
> (define-key map "g" 'notmuch-refresh-this-buffer)
> (define-key map "=" 'notmuch-refresh-this-buffer)
> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
> index ef2bf1e0..d4a1389b 100644
> --- a/emacs/notmuch-show.el
> +++ b/emacs/notmuch-show.el
> @@ -48,7 +48,7 @@
> (declare-function notmuch-count-attachments "notmuch" (mm-handle))
> (declare-function notmuch-save-attachments "notmuch" (mm-handle &optional queryp))
> (declare-function notmuch-tree "notmuch-tree"
> - (&optional query query-context target buffer-name open-target))
> + (&optional query query-context target buffer-name open-target unthreaded))
> (declare-function notmuch-tree-get-message-properties "notmuch-tree" nil)
> (declare-function notmuch-read-query "notmuch" (prompt))
> (declare-function notmuch-draft-resume "notmuch-draft" (id))
> diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el
> index c00315e8..80b830dd 100644
> --- a/emacs/notmuch-tree.el
> +++ b/emacs/notmuch-tree.el
> @@ -42,6 +42,11 @@
> ;; the following variable is defined in notmuch.el
> (defvar notmuch-search-query-string)
>
> +;; this variable distinguishes the unthreaded display from the normal tree display
> +(defvar notmuch-tree-unthreaded nil
> + "A buffer local copy of argument unthreaded to the function notmuch-tree")
> +(make-variable-buffer-local 'notmuch-tree-unthreaded)
> +
> (defgroup notmuch-tree nil
> "Showing message and thread structure."
> :group 'notmuch)
> @@ -890,7 +895,7 @@ Complete list of currently available key bindings:
> (notmuch-sexp-parse-partial-list 'notmuch-tree-insert-forest-thread
> results-buf)))))
>
> -(defun notmuch-tree-worker (basic-query &optional query-context target open-target)
> +(defun notmuch-tree-worker (basic-query &optional query-context target open-target unthreaded)
> "Insert the tree view of the search in the current buffer.
>
> This is is a helper function for notmuch-tree. The arguments are
> @@ -898,6 +903,7 @@ the same as for the function notmuch-tree."
> (interactive)
> (notmuch-tree-mode)
> (add-hook 'post-command-hook #'notmuch-tree-command-hook t t)
> + (setq notmuch-tree-unthreaded unthreaded)
> (setq notmuch-tree-basic-query basic-query)
> (setq notmuch-tree-query-context (if (or (string= query-context "")
> (string= query-context "*"))
> @@ -915,7 +921,7 @@ the same as for the function notmuch-tree."
> (let* ((search-args (concat basic-query
> (if query-context (concat " and (" query-context ")"))
> ))
> - (message-arg "--entire-thread"))
> + (message-arg (if unthreaded "--unthreaded" "--entire-thread")))
> (if (equal (car (process-lines notmuch-command "count" search-args)) "0")
> (setq search-args basic-query))
> (notmuch-tag-clear-cache)
> @@ -940,7 +946,7 @@ the same as for the function notmuch-tree."
> ")")
> notmuch-tree-basic-query))
>
> -(defun notmuch-tree (&optional query query-context target buffer-name open-target)
> +(defun notmuch-tree (&optional query query-context target buffer-name open-target unthreaded)
> "Display threads matching QUERY in Tree View.
>
> The arguments are:
> @@ -953,23 +959,31 @@ The arguments are:
> current if it appears in the tree view results.
> BUFFER-NAME: the name of the buffer to display the tree view. If
> it is nil \"*notmuch-tree\" followed by QUERY is used.
> - OPEN-TARGET: If TRUE open the target message in the message pane."
> + OPEN-TARGET: If TRUE open the target message in the message pane.
> + UNTHREADED: If TRUE only show matching messages in an unthreaded view."
> (interactive)
> (if (null query)
> - (setq query (notmuch-read-query "Notmuch tree view search: ")))
> + (setq query (notmuch-read-query (concat "Notmuch "
> + (if unthreaded "unthreaded " "tree ")
> + "view search: "))))
> (let ((buffer (get-buffer-create (generate-new-buffer-name
> (or buffer-name
> - (concat "*notmuch-tree-" query "*")))))
> + (concat "*notmuch-"
> + (if unthreaded "unthreaded-" "tree-")
> + query "*")))))
> (inhibit-read-only t))
>
> (switch-to-buffer buffer))
> ;; Don't track undo information for this buffer
> (set 'buffer-undo-list t)
>
> - (notmuch-tree-worker query query-context target open-target)
> + (notmuch-tree-worker query query-context target open-target unthreaded)
>
> (setq truncate-lines t))
>
> +(defun notmuch-unthreaded (&optional query query-context target buffer-name open-target)
> + (interactive)
> + (notmuch-tree query query-context target buffer-name open-target t))
>
> ;;
>
> --
> 2.11.0
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list