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

From: Juri Linkov <[email-masked]>
Date: Mon, 10 Dec 2018 02:21:51 +0200

>> > This isearch-yank-on-move -> 'shift thing is a difficult matter.
>> > I'm not sure any more if it's a good idea.  It's confusing if I get
>> > a different behavior depending on the current major mode.  As a user
>> > I would rather expect that the rule would be that Isearch would test
>> > any shift binding to see what the binding without shift is doing,
>> > and invoke that if it is a moving command.
>>
>> This is what this-command-keys-shift-translated was intended to do
>> together with ^ in interactive spec.
>
> I don't follow.  If a shifted key, like shift-left, is bound, there is
> no shift translation happening.  So your code doesn't kick in because
> your condition isn't met, instead of calling the binding of the
> unshifted key (left in my example).

The problem is that some commands that are called with shift-key
are unsuitable for isearch, e.g. S-M-< (beginning-of-buffer)
should not put all text from the beginning of the buffer
to the search string.

It seems we can't detect such commands automatically,
so one way to support a command is to put a property
with the patch that I sent recently, e.g.

(put 'backward-char 'isearch-move 'enabled)
(put 'forward-char 'isearch-move 'enabled)