Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 9B56D431FC3 for ; Wed, 23 Oct 2013 08:44:17 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.7 X-Spam-Level: X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id umz0wQgEyWBk for ; Wed, 23 Oct 2013 08:44:11 -0700 (PDT) Received: from dmz-mailsec-scanner-3.mit.edu (dmz-mailsec-scanner-3.mit.edu [18.9.25.14]) by olra.theworths.org (Postfix) with ESMTP id 4EC1F431FBC for ; Wed, 23 Oct 2013 08:44:11 -0700 (PDT) X-AuditID: 1209190e-b7f828e0000009cf-65-5267eec966ff Received: from mailhub-auth-4.mit.edu ( [18.7.62.39]) by dmz-mailsec-scanner-3.mit.edu (Symantec Messaging Gateway) with SMTP id 8A.03.02511.9CEE7625; Wed, 23 Oct 2013 11:44:09 -0400 (EDT) Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id r9NFi7ar031949; Wed, 23 Oct 2013 11:44:08 -0400 Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91]) (authenticated bits=0) (User authenticated as amdragon@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id r9NFi59a000497 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 23 Oct 2013 11:44:06 -0400 Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80) (envelope-from ) id 1VZ0bM-0005UO-Ub; Wed, 23 Oct 2013 11:44:05 -0400 Date: Wed, 23 Oct 2013 11:44:04 -0400 From: Austin Clements To: Mark Walters Subject: Re: [PATCH 0/8] Improve tag change completion Message-ID: <20131023154404.GE20337@mit.edu> References: <1382471457-26056-1-git-send-email-amdragon@mit.edu> <87mwm1x9pi.fsf@qmul.ac.uk> <20131023001952.GD20337@mit.edu> <87fvrsxqc4.fsf@qmul.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87fvrsxqc4.fsf@qmul.ac.uk> User-Agent: Mutt/1.5.21 (2010-09-15) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmleLIzCtJLcpLzFFi42IRYrdT1z35Lj3I4FMrh8XquTwW12/OZHZg 8tg56y67x7NVt5gDmKK4bFJSczLLUov07RK4Mt7dvcZY8Fyh4vWRtYwNjA8kuxg5OSQETCR2 9PWxQthiEhfurWfrYuTiEBLYxyjx5FQfE4SzkVFizt0tjBDOaSaJ+VeOsEA4SxglehbOZATp ZxFQlfj+4AHYLDYBDYlt+5eDxUUEdCRuH1rADmIzC0hLfPvdzARiCwuYSUx82A9WzwtUM/fO N7C4kMB8RonHX20h4oISJ2c+YYHo1ZK48e8lUA0H2Jzl/zhAwpxAq3a/7wEbLyqgIjHl5Da2 CYxCs5B0z0LSPQuhewEj8ypG2ZTcKt3cxMyc4tRk3eLkxLy81CJdY73czBK91JTSTYygsOaU 5NvB+PWg0iFGAQ5GJR5ei/a0ICHWxLLiytxDjJIcTEqivIVv04OE+JLyUyozEosz4otKc1KL DzFKcDArifDuuAuU401JrKxKLcqHSUlzsCiJ897ksA8SEkhPLEnNTk0tSC2CycpwcChJ8L5/ A9QoWJSanlqRlplTgpBm4uAEGc4DNLwGZDFvcUFibnFmOkT+FKOilDjvZ5BmAZBERmkeXC8s 7bxiFAd6RZjXBJiEhHiAKQuu+xXQYCagwVOWpIEMLklESEk1MMb+93E6VcEj4P9X6fq1WW81 pMTkq7jqGlrjrdtWHL/131VZWiPBx2VLlOE60WKPE1Vbt8r8u/jt0yM2n2lBO26U9ApPFHJe 3Oah7Pn+g3q2xG/7rss+n/afPXqoeuu9qNXHpXn4JZd2VbNpxD7O/W+//OzeSA/RA0HPJ4VN Y5R/FHHR+9UuLSWW4oxEQy3mouJEAHxS9rkWAwAA Cc: notmuch@notmuchmail.org X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Oct 2013 15:44:17 -0000 Quoth Mark Walters on Oct 23 at 10:56 am: > > Hi > > On Wed, 23 Oct 2013, Austin Clements wrote: > > Quoth Mark Walters on Oct 22 at 10:43 pm: > >> This looks good to me +1. It makes the code clearer and nicer to read as > >> well as giving a better user experience, and it is makes fixing the long > >> standing tagging races simpler. > >> > >> I have a couple of docstring comments: > >> > >> In patch 2 perhaps notmuch-tag-completions could have a docstring. > > > > Added. I noticed that I had failed to update the call from > > `notmuch-select-tag-with-completion', so I fixed that, too. I don't > > understand why we take lists of search terms in random places and > > never use more than one element, but I suppose this series doesn't > > make that any worse. > > As far as I can see, at the end of the series, notmuch-tag-completions > is only called with no argument: i.e., it's always just finding the list > of all tags. This is because notmuch-select-tag-with-completion is only > called once from "notmuch-search-filter-by-tag" with no search-terms > argument. So it might be nice to just remove the search-terms > completely. (The only downside is we might break user lisp.) That's true. Though it doesn't significantly complicate the code and it's hard to say if we may need this for something else in the future, so I'd just as soon leave it until we have a more compelling reason to remove it (e.g., if we add tag list caching or something). > Best wishes > > Mark > > > >> In Patch 4 I think the docstring for notmuch-search-tag is outdated: it > >> is "Change tags for the currently selected thread or region." but > >> beg and end can now be specified by the caller. > > > > I've left the first sentence as it is, since it's good interactive > > documentation and a typical way to describe functions even if they > > take a region as arguments (see, for example, `kill-region'). But > > I've elaborated the rest of the docstring to be clearer about this. > > > >> and one actual comment: > >> > >> in patch 3 (for show) delete-dups is called before the list is passed to > >> notmuch-read-tag-changes whereas it is not for search or pick. > >> Obviously this is not actually a problem but it might be worth being > >> consistent. > > > > Ah, whoops. I'd done this before I decided to handle duplicates in > > `notmuch-read-tag-changes'. Since it's redundant, I've removed it. > > > >> But that was all I found. All tests pass and everything I try behaves > >> exactly as expected. > >> > >> Best wishes > >> > >> Mark > >> > >> > >> On Tue, 22 Oct 2013, Austin Clements wrote: > >> > This series improves tag change completion in various ways for > >> > commands like +, -, and *. > >> > > >> > From a user perspective, this provides command-specific prompts like > >> > "Tag message" and "Tag all" instead of the generic "Tag" prompt, and > >> > bases tag removal completions on the tags that are in the buffer, > >> > rather than the current tags in the database, providing a more > >> > predicable experience. > >> > > >> > From an implementation perspective, this new tag removal completion > >> > behavior improves efficiency and eliminates a road block to fixing the > >> > tagging race bug (which otherwise results in massive queries just to > >> > compute removal completions). The new code is also more "Elispy" and > >> > predictable because all tag change prompting now occurs at the > >> > interactive entry points, rather than buried under several layers of > >> > non-interactive calls. > >> > > >> > This is a spiritual successor to > >> > id:1354263691-19715-1-git-send-email-markwalters1009@gmail.com, though > >> > it takes a very different approach. This is also a prerequisite to > >> > the tag race fix in > >> > id:1381185201-25197-1-git-send-email-amdragon@mit.edu and I plan to > >> > send an updated version of that series when this one is accepted. > >> > > >> > Patches 1, 5, and 6 could be pushed on their own. They fix bugs or > >> > sort of bugs that get in the way of the rest of the series.