Re: Re: [EXPERIMENTAL PATCH] Extending Isearch-repeat-forward/backward t
gideon . stupp
Re: Re: [EXPERIMENTAL PATCH] Extending Isearch-repeat-forward/backward to support a prefix argument
Sat, 28 Jan 2012 12:31:14 +0000
So it seems that the support for negative arguments will be best effort anyway. Ok, I will make sure the counting is done right. Also I believe that when C-- C-1 isearch-forward is pressed the user expects to stay in isearch-forward and not switch to isearch-backward so I will add another call to isearch-forward just to change the direction. Not pretty but should do the job.
On , Juri Linkov <address@hidden> wrote: > > 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. >