Re: VIM: search_refresh limits message count to 2 * window.height
authorFranz Fellner <alpine.art.de@gmail.com>
Mon, 13 Oct 2014 08:43:24 +0000 (10:43 +0200)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 18:05:15 +0000 (10:05 -0800)
e3/be52415d7fe65a7b86a97a45cd92b9dafe0863 [new file with mode: 0644]

diff --git a/e3/be52415d7fe65a7b86a97a45cd92b9dafe0863 b/e3/be52415d7fe65a7b86a97a45cd92b9dafe0863
new file mode 100644 (file)
index 0000000..80668c7
--- /dev/null
@@ -0,0 +1,107 @@
+Return-Path: <alpine.art.de@gmail.com>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 54BDF431FAF\r
+       for <notmuch@notmuchmail.org>; Mon, 13 Oct 2014 01:43:23 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.799\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5\r
+       tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
+       FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id vsTxygJx40nf for <notmuch@notmuchmail.org>;\r
+       Mon, 13 Oct 2014 01:43:17 -0700 (PDT)\r
+Received: from mail-la0-f46.google.com (mail-la0-f46.google.com\r
+       [209.85.215.46]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id 8CC7B431FAE\r
+       for <notmuch@notmuchmail.org>; Mon, 13 Oct 2014 01:43:17 -0700 (PDT)\r
+Received: by mail-la0-f46.google.com with SMTP id gi9so6322351lab.33\r
+       for <notmuch@notmuchmail.org>; Mon, 13 Oct 2014 01:43:15 -0700 (PDT)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\r
+       h=date:message-id:from:to:subject:in-reply-to:references:mime-version\r
+       :content-type:content-disposition:content-transfer-encoding;\r
+       bh=c4JI7xXwWJf+uiplxropyl/6+O+d3eBXrsP2GbhhIJ8=;\r
+       b=lWESPXxiz0zMOcYDVlzSY2KnIbhm8+ufs7UClTmlH1hwGObG7SmY+FmVPB9jdpZklW\r
+       29nIXHPnmEn1cGd2z7ViuKMeTC7v4PBp/g9SjB8wmOB2hGTzeAvMdso2/hda5V0uBB67\r
+       H6/QUzYH6V1PT1VEbOLQQFBJjrkPwyr5nhX9cnG5/O+EyQhrUYwajATmthkjtQI3C906\r
+       a+//umJv9mogQ94lPD/txdMjVXHoykKzpJFn311Hf4NZMkVOELZTau3mwvg3PkgnBoeS\r
+       77vCj+kfYBXVxcicLKrCp/g9HOrh8mH76oyVgxkYA8sjfobDLdorJfbxbIphyMJlKLfM\r
+       Bbrg==\r
+X-Received: by 10.112.150.106 with SMTP id uh10mr22347534lbb.11.1413189795615;\r
+       Mon, 13 Oct 2014 01:43:15 -0700 (PDT)\r
+Received: from localhost (p5B00D37C.dip0.t-ipconnect.de. [91.0.211.124])\r
+       by mx.google.com with ESMTPSA id al5sm4377604lbc.6.2014.10.13.01.43.13\r
+       for <notmuch@notmuchmail.org>\r
+       (version=TLSv1.2 cipher=RC4-SHA bits=128/128);\r
+       Mon, 13 Oct 2014 01:43:14 -0700 (PDT)\r
+Date: Mon, 13 Oct 2014 10:43:24 +0200\r
+Message-ID: <20141013104324.GF23373@TP_L520.localdomain>\r
+From: Franz Fellner <alpine.art.de@gmail.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: Re: VIM: search_refresh limits message count to 2 * window.height\r
+In-Reply-To: <20141010175623.GB7504@TP_L520.localdomain>\r
+References: <20141010175623.GB7504@TP_L520.localdomain>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Disposition: inline\r
+Content-Transfer-Encoding: 8bit\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Mon, 13 Oct 2014 08:43:23 -0000\r
+\r
+The issue is that VIM::Buffer.render yield's itself BEFORE it clears\r
+itself.\r
+Two quick solutions:\r
+\r
+1) Simply manually fixup the mess in StagedRender::initialize after\r
+@b.render {do_next } by adding\r
+@last_render = @b.count\r
+\r
+2) First clear the VIM:Buffer before yielding. This exposes one issue in\r
+Vims buffer handling: A newly created buffer has count==0, But after\r
+the first line got added you cannot get count==0 again, so a refresh\r
+currently ends up with an empty line at the beginning.\r
+It is possible to get the empty line at the end by implementing\r
+VIM::Buffer.<<() as append(count()-1, arg)\r
+Of course one has to add one line now directly after creating a new\r
+buffer.\r
+\r
+Solution 1) would be a simple oneliner but IMHO looks a little bit hacky\r
+;)\r
+Solution 2) at first looks ugly because of the empty line at the\r
+end/beginning. But it also adds the opportunity to print additional\r
+information, like description of the columns (date, thread participants,\r
+subject, ...) at the beginning, or something like "end of search list",\r
+"end of thread" at the end of the buffers.\r
+\r
+Please tell me which one you like most and I can send a patch.\r
+\r
+\r
+Regards\r
+Franz\r
+\r
+On Fri, 10 Oct 2014 17:56:23 +0200, Franz Fellner <alpine.art.de@gmail.com> wrote:\r
+> The reason is that StagedRender.is_ready depends on last_render, which\r
+> get's set to VIM::Buffer.count() in StagedRender::do_next.\r
+> I do not (yet) know what exactly happens, but after the first call to\r
+> search refresh last_render never get's less than 2*2*window.height.\r
+> That means once you do search_refresh StagedRender never will be ready -\r
+> is_ready returns false, so s:show_cursor_moved never will advance the\r
+> StagedRender.\r
+> \r
+> I am trying to understand the code, but it's a hard time for me ;)\r