Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: feature request: special completion of glob patterns
- X-seq: zsh-workers 12574
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: Re: feature request: special completion of glob patterns
- Date: Wed, 9 Aug 2000 10:00:29 +0200 (MET DST)
- In-reply-to: "Bart Schaefer"'s message of Tue, 8 Aug 2000 13:41:52 -0700
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Bart Schaefer wrote:
> On Aug 8, 5:25pm, Adam Spiers wrote:
> >
> > Ideally, I would like the following completion behaviour (assuming
> > baz.txt is the only file in foo1/bar):
> >
> > $ diff -u foo[12]/bar/b<TAB>
> > $ diff -u foo[12]/bar/baz.txt
>
> This is very similar to the keep-prefix style, and I believe there was
> some discussion in that thread of handling something like this. You may
> even be able to figure out a way to do it by looking for keep-prefix in
> the _expand completer.
Adam may also have a look at the completion-after-braces thread. I
want to move enough of the basic completion code into shell code to be
able to implement completion after `a{b,c}d' there. That would
probably also allow us to do that with globbing. I don't have any real
ideas how to do that yet, though, and it will come after 4.0.
> Trying out a couple of things has led me to find the following oddities:
>
> zsh% x='foo[12]'
> zsh% diff -u ${~x}/b<TAB>
> zsh% diff -u ${~x}/foo/bar
> ^
> cursor here
>
> It's behaving as if $~x expanded to ".". This is with the _expand completer
> and the keep-prefix style set to true.
I couldn't exactly reproduce this, but I see the problem (with files
foo{1,2}/bar):
% x='foo[12]' y='${~x}/b'
% echo ${(e)y}
zsh: no matches found: foo[12]/b
% echo ${~x}/b
zsh: no matches found: foo[12]/b
These are the two types of parameter expansions used by _expand.
I've no idea how to fix that. Maybe add a `*' at the cursor position
or at the end or both end (as in _match/globcomplete). Or something.
> The other is that the _expand completer seems to trigger menu-completion
> even when I have explicitly turned it off. I removed all references to
> "menu" or "select" from my styles, I'm using the complete-word widget, and
> I have automenu turned off, yet after `zsh/S*<TAB>' I still end up with a
> menu completion cycling through zsh/Src, zsh/StartupFiles, and zsh/S*
> (because I have the original style set). I expected it just to list the
> completions and feep.
>
> I realize, looking back through the history of _expand, that it has always
> been this way, and I simply never noticed because I usually have automenu
> set. Nevertheless it seems to me that there ought to be some way to turn
> it off.
I didn't do that mainly because chances are even worse than for _match
that the resulting words have a common prefix. However, we could use
the insert-unambiguous style there, too (and if it is true and
$compstate[unambiguous] is long enough, don't add the original and
maybe don't add the all-expansions string).
Bye
Sven
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author