Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: still confused about completion and matching

E. Jay Berkenbilt wrote:

> ...
> The most recent change to _match seems to cause it to revert to menu
> completion in many cases.  If I just completely remove lines 56 and 57
> (dealing with unambiguous_cursor) then all my test cases work just the
> way I want them to. 

To Bart and Andrej: the lines Jay is referring to are:

+    [[ $compstate[unambiguous_cursor] -gt $#compstate[unambiguous] ]] &&
+        ins=yes compstate[insert]="$ocsi" compstate[pattern_insert]="$ocspi"

These are new and don't have anything to do with the
insert-unambiguous style.

> The only thing I lose is earlier expansion in
> some cases, but the result doesn't change the behavior or the amount
> of typing required. 

And this is exactly what they were supposed to achieve. Inserting the
right expansions a bit earlier. The test is a bit weird, I admit, but
worked for the cases I tested, but probably not for other cases, so I
have don't have any problems whatsoever with removing them (or later
trying to come up with a better test.

> ...
> Would the
> next step be committing these changes and waiting for fallout? :-)

I'd like to ask what the other people around here think about
it. Without setting one of the new styles, the patch should only have
one visible effect: allowing to complete paths with multiple pattern-
containing components.

Should we give it a try? Has anyone else tried it yet? (Andrej? I
/think/ you once asked for this multi-component-pattern completion.)

Andrej Borsenkow wrote:

> > insert-unambiguous
> >      This is used by the _match and _approximate completer functions,
> >      where the possible completions may not have a common prefix so
> >      that menu completion is often the most useful may of choosing
> >      completions.  If the style is set to `true', the completer will
> >      start menu completion only if no unambiguous string could be
> >      generated that is at least as long as the original string typed by
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >      the user.
>         ^^^^^^^^^^
> That is the problem. It means, that if you have long pattern that results in
> short match, menu completion is started.
> I was never happy about it as well. But I switched to menu selection some time
> ago :-)

Any suggestions about making this more clever or the results more
intuitive are welcome ;-)

As I sais in one of the previous mails, I wasn't completely happy with 
that condition myself. The problem is that we certainly don't want to
insert the unambiguous string unconditionally even if insert-unambig
is set, because that string might often be empty.


Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx

Messages sorted by: Reverse Date, Date, Thread, Author