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

Re: Test failures in artih and arguments

On Jan 25,  9:58am, Sven Wischnowsky wrote:
} Felix Rosencrantz wrote:
} > ***************
} > *** 1,4 ****
} > ! line: {tst -}{}
} > ! MESSAGE:{arg}
} > ! DESCRIPTION:{option}
} > ! NO:{-x}
} > --- 1 ----
} > ! line: {tst -x }{}
} > Test ./Y03arguments.ztst failed: output differs from expected as shown 
} Grrrr... that's a result of the fake style patch. Previously, with a
} function containing:
}   _argument '-x' ':arg:'
} doing
}   foo -<TAB>
} didn't insert anything and displayed be message `arg'.

This isn't quite right -- here's 4.0.4:

schaefer[507] zsh -f
aztec% autoload -U compinit
aztec% compinit -D
aztec% compdef _foo foo
aztec% _foo() { _arguments -x :arg: }
aztec% foo -<TAB>
aztec% foo -x 

The comptest code sets the `format' style for the `completion:*:messages'
and `completion:*:descriptions' contexts.  Only with one of those styles
set is the `x' NOT inserted; without those styles, it's inserted.

It seems to me that the display formatting should not affect what the
possible matches are.  Was this really intended to depend on the `format'

} So we now have the problem that in exactly the same case something we
} certainly want to have with faked matches conflicts with the behaviour
} we wanted there previously (or even now, without faked matches).
} I'm not sure how to solve this.

The problem really is that `-<something>' is a valid match, for any
arbitrary value of <something>, but of course we can only write code to
add or list matches that we know about in advance, not those that can be
fabricated interactively.

So it seems to me that we need a wildcard indicator of some kind, so
that _arguments can add the match `-<wild>'.  This would allow the `-'
to be treated as a prefix of the two matches `-x' and `-<wild>'.  The
list and menu code would then have to special case any match that has
<wild> in it, omitting it from listings but displaying the description
for it (if there is one).

However, I don't have any good suggestions on how to chose <wild> such
that it is guaranteed not to conflict with any possible real match.

Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   

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