unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Stefan Monnier <monnier@iro.umontreal.ca>,
	17453@debbugs.gnu.org, emacs-devel@gnu.org
Subject: bug#17453: Isearch doesn't work properly with Follow Mode.
Date: Sat, 31 Oct 2015 23:25:38 +0000	[thread overview]
Message-ID: <20151031232538.GC1853__29756.0467770838$1446333862$gmane$org@acm.fritz.box> (raw)
In-Reply-To: <m2mvuyk6ol.fsf@Vulcan.attlocal.net>

Hello, John.

On Sat, Oct 31, 2015 at 03:35:22PM -0700, John Wiegley wrote:
> >>>>> Alan Mackenzie <acm@muc.de> writes:

> > The new functions are window*-start, window*-end, set-window*-start,
> > recenter*, pos-visible-in-window*-p, move-to-window*-line, and sit*-for.

> > window*-start returns the window-start of the _first_ window in the group,
> > window*-end returns the window-end of the _last_ window in the group, and so
> > on, all these functions doing the Right Thing for a group of windows.
> > sit*-for exists, because Follow Mode needs a chance to resynchronise its
> > windows before redisplay happens.

> What is the reason for having separate functions such as window*-start,
> instead of just taking the car of a list of windows?  I may be missing some
> context here, but this sounds like special-casing general behavior, and I'm
> wondering why it's necessary...

The prime use case is in isearch.  At the moment isearch doesn't work
well when Follow Mode is active (try it!).

My first attempt at amending isearch for this involved manipulating
Follow Mode's list of windows directly inside isearch.el.  The result
was too close a coupling between isearch and Follow Mode, and was also
rather ragged.  Stefan rejected this patch, asking for a more abstract
solution.

What I am proposing now is a solution where any library which needs to
manipulate things like window positions will be trivially upgradable to
working with Follow Mode, merely by replacing `window-start' by
`window*-start', etc.

The fact that the "group" of windows is represented by a list is an
implementation detail to be encapsulated within follow.el.  In the
(fairly distant) future, this might perhaps be superseded by code in
redisplay.  Perhaps.

> John

-- 
Alan Mackenzie (Nuremberg, Germany).





  parent reply	other threads:[~2015-10-31 23:25 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-09 22:44 bug#17453: Isearch doesn't work properly with Follow Mode Alan Mackenzie
2014-05-10  2:40 ` Stefan Monnier
2014-05-11 12:58   ` Alan Mackenzie
2014-05-11 16:09     ` Stefan Monnier
2014-05-11 18:18       ` Alan Mackenzie
2014-05-11 19:05         ` Stefan Monnier
2014-05-11 20:40           ` Alan Mackenzie
2014-05-11 21:46             ` Stefan Monnier
2015-10-29 23:23   ` Alan Mackenzie
     [not found]   ` <20151029232302.GB3812@acm.fritz.box>
2015-10-31 22:35     ` John Wiegley
2015-10-31 23:13     ` Artur Malabarba
     [not found]     ` <CAAdUY-+6C96Zbx2-Pib8_PNomOtcn4m9pw0Gvh=5TmMeGweo5Q@mail.gmail.com>
2015-10-31 23:32       ` Alan Mackenzie
     [not found]       ` <20151031233225.GD1853@acm.fritz.box>
2015-11-01 12:20         ` Artur Malabarba
     [not found]         ` <CAAdUY-K9ocC6MmNzh8DSH3FKRZyn_FQQEixVct31KYiev7w76g@mail.gmail.com>
2015-11-01 12:23           ` Artur Malabarba
2015-10-31 23:35     ` Juri Linkov
     [not found]     ` <87h9l6627a.fsf@mail.linkov.net>
2015-10-31 23:56       ` Alan Mackenzie
     [not found]       ` <20151031235651.GE1853@acm.fritz.box>
2015-11-02  0:14         ` Juri Linkov
     [not found]         ` <87bnbddzpk.fsf@mail.linkov.net>
2015-11-02  3:35           ` Eli Zaretskii
2015-11-02  9:28           ` Alan Mackenzie
2015-11-02 11:53             ` Artur Malabarba
     [not found]             ` <CAAdUY-+ALAi6HVyfgKFmKV9=voox1LB_xnrhtS2dW76Zvkr2cA@mail.gmail.com>
2015-11-02 12:14               ` Artur Malabarba
2015-11-02 12:35               ` Alan Mackenzie
     [not found]               ` <CAAdUY-KFnoDp62taRXkVBQ1iT7BkGoVwR86dwUaKW2rnYRe8QQ@mail.gmail.com>
2015-11-02 12:39                 ` Alan Mackenzie
     [not found]               ` <20151102123512.GB11804@acm.fritz.box>
2015-11-02 13:10                 ` Artur Malabarba
     [not found]                 ` <CAAdUY-JLE5v0f_fYRQ71-5MD5_L-5C-2H9q06Jd8fDijpi_91A@mail.gmail.com>
2015-11-02 14:18                   ` Artur Malabarba
     [not found]                   ` <CAAdUY-KbLvSEWayRu6CrMn-2bLTHd_m0nzzX4v7CXnWdo7P4sA@mail.gmail.com>
2015-11-02 15:44                     ` Alan Mackenzie
     [not found]                     ` <20151102154445.GD11804@acm.fritz.box>
2015-11-02 16:26                       ` Artur Malabarba
2015-11-02 16:35                         ` Drew Adams
2015-11-02 19:18                           ` Artur Malabarba
2015-11-02 19:28                             ` Drew Adams
2015-11-02 23:45                               ` Juri Linkov
2015-11-02 22:09                         ` Alan Mackenzie
2015-11-02 23:00                           ` Artur Malabarba
2015-11-03  9:18                             ` Alan Mackenzie
2015-11-02 17:45                       ` Eli Zaretskii
2015-11-02 23:22                       ` Juri Linkov
     [not found]                       ` <87h9l46l7o.fsf@mail.linkov.net>
2015-11-03 12:31                         ` Alan Mackenzie
     [not found]                         ` <20151103123116.GD2258@acm.fritz.box>
2015-11-03 15:49                           ` Eli Zaretskii
2015-11-03 16:18                             ` Artur Malabarba
2015-11-03 22:11                               ` Alan Mackenzie
2015-11-04  0:28                                 ` Juri Linkov
2015-11-04  9:01                                   ` Alan Mackenzie
2015-11-04 10:17                                     ` Artur Malabarba
2015-11-05 12:38                                       ` Alan Mackenzie
2015-11-05 17:13                                         ` Artur Malabarba
2015-11-07 12:59                                   ` Alan Mackenzie
2015-11-07 13:38                                     ` Eli Zaretskii
2015-11-08 10:32                                       ` Alan Mackenzie
2015-11-03 16:39                             ` Alan Mackenzie
2015-11-02 23:28                     ` Juri Linkov
2015-11-02 15:46                 ` Eli Zaretskii
2015-11-02 16:09                   ` Alan Mackenzie
2015-11-02 17:49                     ` Eli Zaretskii
2015-11-02 20:35                       ` John Wiegley
2015-11-03  8:35                       ` Alan Mackenzie
     [not found]                 ` <<831tc8xv39.fsf@gnu.org>
2015-11-02 16:05                   ` Drew Adams
2015-11-02 23:33             ` Juri Linkov
     [not found]     ` <m2mvuyk6ol.fsf@Vulcan.attlocal.net>
2015-10-31 23:25       ` Alan Mackenzie [this message]
     [not found]       ` <20151031232538.GC1853@acm.fritz.box>
2015-10-31 23:41         ` John Wiegley
     [not found]         ` <m24mh67gj6.fsf@Vulcan.attlocal.net>
2015-11-01 11:59           ` Alan Mackenzie
2015-11-01  0:17       ` Drew Adams
     [not found] ` <handler.17453.B.139967578531952.ack@debbugs.gnu.org>
2015-12-20 12:59   ` bug#17453: Acknowledgement (Isearch doesn't work properly with Follow Mode.) Alan Mackenzie

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://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to='20151031232538.GC1853__29756.0467770838$1446333862$gmane$org@acm.fritz.box' \
    --to=acm@muc.de \
    --cc=17453@debbugs.gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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://git.savannah.gnu.org/cgit/emacs.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).