From: Alan Mackenzie <acm@muc.de>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: 17453@debbugs.gnu.org
Subject: bug#17453: Isearch doesn't work properly with Follow Mode.
Date: Sun, 11 May 2014 12:58:42 +0000 [thread overview]
Message-ID: <20140511125842.GA11781@acm.acm> (raw)
In-Reply-To: <jwva9aqbcl9.fsf-monnier+emacsbugs@gnu.org>
Hello, Stefan.
On Fri, May 09, 2014 at 10:40:07PM -0400, Stefan Monnier wrote:
> I must say I really dislike this hard-coding of follow-mode support in
> isearch.el. Isearch should not know so much about follow-mode and
> follow-mode should not know so much about Isearch either.
Follow Mode knows nothing of Isearch. The problem the other way round is
in Lisp files that themselves play with redisplay (including calling
`sit-for') and `set-window-start', and so on. Between these invocations
and the actual redisplay, Follow Mode must get a chance to make its
adjustments.
> IOW we should try harder to come up with more general hooks.
For what?
Given that Follow Mode uses a list of windows where most elisp programs
(including Isearch up till now) are expecting to deal with a single
window, there is quite a large clash, possibly unbridgeable with any
reasonable amount of effort. Some sort of abstraction that smoothes over
the difference between the window and the window list is difficult to
conceive of - Follow Mode itself is such an abstraction.
Maybe a useful hook here would be `redisplay-hook' where Follow Mode
could do its stuff more effectively than on `post-command-hook'.
The extreme solution would be to enhance the display code to handle
multiple column windows, rendering Follow Mode redundant. I don't think
anybody with the expertise has the time for this.
> > @@ -2207,10 +2239,12 @@
> > together with as much of the search string as will fit; the symbol
> > `above' if we need to scroll the text downwards; the symbol `below',
> > if upwards."
> > - (let ((w-start (window-start))
> > - (w-end (window-end nil t))
> > - (w-L1 (save-excursion (move-to-window-line 1) (point)))
> > - (w-L-1 (save-excursion (move-to-window-line -1) (point)))
> > + (let ((w-start (isearch-windows-start))
> > + (w-end (isearch-windows-end nil t))
> > + (w-L1 (with-selected-window (car isearch-windows)
> > + (save-excursion (move-to-window-line 1) (point))))
> > + (w-L-1 (with-selected-window (car (last isearch-windows))
> > + (save-excursion (move-to-window-line -1) (point))))
> This isearch-string-out-of-window+isearch-back-into-window business, for
> example should be generalized to a function along the lines of
> "bring-region-into-sight". It's not useful only for isearch.
This seems to be a different bug to the one I reported, and orthogonal to
it.
> E.g. ediff-next-hunk would also benefit from it.
Not necessarily. isearch-back-into-window, in addition to doing
"bring-region-into-sight" ensures that it's the isearch-point end of it
which is visible when it is too big for the window. This may be
problematic for other uses, like in ediff.
> And of course, it should come with a bring-region-into-sight-function
> hook (which does not default to nil but to the default implementation),
> which follow-mode can then override.
Yes.
Question is, what about the main bug? The patch I wrote fixes a real
bug, and works (modulo any remaining bugs). Do you have any concrete
suggestions as to how to improve the fix?
> Stefan
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2014-05-11 12:58 UTC|newest]
Thread overview: 96+ 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 [this message]
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
2015-10-29 23:23 ` Alan Mackenzie
2015-10-31 22:35 ` John Wiegley
2015-10-31 23:25 ` Alan Mackenzie
2015-10-31 23:25 ` Alan Mackenzie
2015-10-31 23:41 ` John Wiegley
2015-11-01 11:59 ` Alan Mackenzie
2015-11-01 11:59 ` Alan Mackenzie
2015-10-31 23:41 ` John Wiegley
2015-11-01 0:17 ` Drew Adams
2015-11-01 0:17 ` Drew Adams
2015-10-31 22:35 ` John Wiegley
2015-10-31 23:13 ` Artur Malabarba
2015-10-31 23:13 ` Artur Malabarba
2015-10-31 23:32 ` Alan Mackenzie
2015-11-01 12:20 ` Artur Malabarba
2015-11-01 12:20 ` Artur Malabarba
2015-11-01 12:23 ` Artur Malabarba
2015-11-01 13:52 ` Alan Mackenzie
2015-11-01 16:50 ` Eli Zaretskii
2015-11-01 18:27 ` Alan Mackenzie
2015-11-01 19:46 ` Artur Malabarba
2015-11-01 20:15 ` Alan Mackenzie
2015-11-01 21:37 ` Artur Malabarba
2015-11-01 20:42 ` Artur Malabarba
2015-11-01 20:54 ` Eli Zaretskii
2015-11-01 22:19 ` Alan Mackenzie
2015-11-01 12:23 ` Artur Malabarba
2015-10-31 23:32 ` Alan Mackenzie
2015-10-31 23:35 ` Juri Linkov
2015-10-31 23:35 ` Juri Linkov
2015-10-31 23:56 ` Alan Mackenzie
2015-10-31 23:56 ` Alan Mackenzie
2015-11-02 0:14 ` Juri Linkov
2015-11-02 3:35 ` Eli Zaretskii
2015-11-02 3:35 ` Eli Zaretskii
2015-11-02 9:28 ` Alan Mackenzie
2015-11-02 11:53 ` Artur Malabarba
2015-11-02 11:53 ` Artur Malabarba
2015-11-02 12:14 ` Artur Malabarba
2015-11-02 12:14 ` Artur Malabarba
2015-11-02 12:39 ` Alan Mackenzie
2015-11-02 12:39 ` Alan Mackenzie
2015-11-02 12:35 ` Alan Mackenzie
2015-11-02 12:35 ` Alan Mackenzie
2015-11-02 13:10 ` Artur Malabarba
2015-11-02 14:18 ` Artur Malabarba
2015-11-02 15:44 ` Alan Mackenzie
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
2015-11-03 12:31 ` Alan Mackenzie
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-03 12:31 ` Alan Mackenzie
2015-11-02 23:22 ` Juri Linkov
2015-11-02 15:44 ` Alan Mackenzie
2015-11-02 23:28 ` Juri Linkov
2015-11-02 23:28 ` Juri Linkov
2015-11-02 14:18 ` Artur Malabarba
2015-11-02 13:10 ` Artur Malabarba
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
2015-11-02 23:33 ` Juri Linkov
2015-11-02 0:14 ` Juri Linkov
[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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140511125842.GA11781@acm.acm \
--to=acm@muc.de \
--cc=17453@debbugs.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.