Subject: RE: bug#15839: 24.3.50; `isearch-allow-scroll': be able to scroll point off screen temporarily

From: Drew Adams <[email-masked]>
Date: Sun, 10 Nov 2013 08:52:00 -0800 (PST)

> > That restriction is general for Emacs, and it generally makes
> > sense.
> 
> It makes sense, but it would also be desirable to make it
> customizable.

I agree.

> > It does not necessarily make sense during Isearch, however.  Why?
> 
> To some extent I can see that it is slightly different in the
> Isearch context.  I'm not sure if it is sufficiently different to
> justify changing the default in Isearch, but I'm not necessarily
> opposed to it either.

No need to change the default.  `isearch-allow-scroll' should default
to nil (less confusing, probably).  The only change for it would be
to provide a special value, e.g., `unlimited', which would not impose
a limit on how much you can scroll.

(Scrolling beyond the current limit when the value is `unlimited'
should lazy-highlight whatever is shown, and resuming search should
resume from the search hit current before scrolling.  IOW, scrolling
should not change which search hit is current.)

> IOW, I agree with both feature requests.

Great.

> > 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.
> 
> Yes, that's a bug.

I don't see that all the time, BTW.  I don't have a recipe to repro it.

The more important bugs are these:

a. Scrolling backwards is not limited currently (it should be
unlimited only when the option value is `unlimited', i.e., after the
requested enhancement).

b. Forward scrolling after backward scrolling throws everything off
currently: the highlighting that should apply only to the current
search hit (face `isearch') is applied to the entire window (buffer?).

Bug (b) is the most serious, but I'm guessing that (b) and (a) are
due to the same code problem.