[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [EXPERIMENTAL PATCH] Extending Isearch-repeat-forward/backward to su

From: Juri Linkov
Subject: Re: [EXPERIMENTAL PATCH] Extending Isearch-repeat-forward/backward to support a prefix argument following suggesion by Juri Linkov
Date: Fri, 27 Jan 2012 14:07:22 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (x86_64-pc-linux-gnu)

> Thank you for your comments Juri.  Do you have a thought on how to
> implement this functionality as a package the way Stefan asked for?

Adding a new count argument to `isearch-repeat-forward' is a pretty
unobtrusive change and is standard Emacs practice.  But if you want
to do fancy stuff with hint display then you could add a hook to
`isearch-lazy-highlight-update' and implement fancy features in a separate
package whose functionality is added by the hook.

> Negative arguments in particular seem to be challenging. Right now I
> implemented negative argument navigation by calling isearch-repeat with the
> opposite functionality but that has all kinds of odd effects.
> For example the search message changes, C-- C-1 isearch-forward does
> not go back one matched string but rather just switches to
> isearch-backward and so on.

Then you need to take into account this situation and to add 1 to the
counter when isearch-forward switches to isearch-backward with C-- C-1.

> I did implement visual hints for the negative arguments because that
> would require changing the way lazy highlight works significantly
> (lazy-highlight loop wraps around back to the first line and at that
> point you can't know the negative argument for the current match).

There are other problems with negative arguments: sometimes backward
regexp search finds more matches than forward regexp search.
For instance, trying to search a regexp like "a+" forward on a string
like "aaa" finds all occurrences of "aaa" as one match, but backward
regexp search matches every "a" individually.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]