Subject: 24.3.50; `isearch-allow-scroll': be able to scroll point off screen temporarily
From: Drew Adams <[email-masked]>
To: [email-masked]
Date: Fri, 8 Nov 2013 15:02:42 -0800 (PST)
List-Id: <debbugs-submit.debbugs.gnu.org>

1. Non-nil `isearch-allow-scroll' lets you use a scroll command
(e.g. `C-v') without exiting Isearch.  Unfortunately, this is coupled
with the hard-coded behavior that you cannot scroll far enough in either
direction that point would be moved off screen.

That restriction is general for Emacs, and it generally makes sense.
It does not necessarily make sense during Isearch, however.  Why?

Because the search position is one thing, and it is not lost.  What you
might want to look at temporarily is another thing.

It's a bit like using `C-SPC' in a buffer, scrolling up a couple of
screenfuls to look at something, and then using `C-u C-SPC' to return.
But in Isearch there is no need for `C-SPC' or `C-u C-SPC': the search
position is recorded.  Search resumes from that same position, no
matter how far away one might have scrolled.

The enhancement request is to let users choose whether non-nil
`isearch-allow-scroll' should limit you to scrolling only enough to keep
point in the window or should not limit you.  This could be done by
recognizing different non-nil values.

2. What's more, the lazy highlighting of search hits is even more
limited currently.  When you scroll to the current limit, there can be
lots of search hits that are not highlighted.

One of the reasons for scrolling is to see what search hits lie beyond
the currently shown text.  This is already partly defeated, in that
even when you scroll some of the hits are not highlighted.  This seems
more like a bug, but if the enhancement of #1 is done then it should
(it needs to) take care of #2 as well: Whatever text is shown should
have all of its search hits highlighted with lazy highlighting.

In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-10-19 on LEG570
Bzr revision: 114715 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking 'CFLAGS=-O0 -g3' CPPFLAGS=-DGLYPH_DEBUG=1'