unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Tomi Ollila <tomi.ollila@iki.fi>
To: Mark Walters <markwalters1009@gmail.com>, notmuch@notmuchmail.org
Subject: Re: [PATCH 2/6] Introduce unthreaded mode
Date: Thu, 27 Feb 2020 21:58:26 +0200	[thread overview]
Message-ID: <m2h7zbera5.fsf@guru.guru-group.fi> (raw)
In-Reply-To: <20200227171652.18187-3-markwalters1009@gmail.com>

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@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch

  reply	other threads:[~2020-02-27 19:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 17:16 [PATCH 0/6] Add an unthreaded mode Mark Walters
2020-02-27 17:16 ` [PATCH 1/6] notmuch-show.c: add an option for messages to be returned unthreaded Mark Walters
2020-02-27 19:56   ` Tomi Ollila
2020-02-27 17:16 ` [PATCH 2/6] Introduce unthreaded mode Mark Walters
2020-02-27 19:58   ` Tomi Ollila [this message]
2020-02-27 17:16 ` [PATCH 3/6] Unthreaded mode: allow different result format Mark Walters
2020-02-27 20:02   ` Tomi Ollila
2020-02-27 17:16 ` [PATCH 4/6] Unthreaded mode: allow user to choose different `show out' than tree Mark Walters
2020-02-27 20:03   ` Tomi Ollila
2020-02-27 17:16 ` [PATCH 5/6] Add a U binding to switch to unthreaded from other views Mark Walters
2020-02-27 20:05   ` Tomi Ollila
2020-02-27 17:16 ` [PATCH 6/6] notmuch-hello/jump: allow saved searches to specify unthreaded mode Mark Walters
2020-02-27 20:10   ` Tomi Ollila
2020-03-20  2:01 ` [PATCH 0/6] Add an " David Bremner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2h7zbera5.fsf@guru.guru-group.fi \
    --to=tomi.ollila@iki.fi \
    --cc=markwalters1009@gmail.com \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).