Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: file-patterns problem
- X-seq: zsh-workers 9858
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: Re: file-patterns problem
- Date: Thu, 24 Feb 2000 10:04:19 +0100 (MET)
- In-reply-to: Peter Stephenson's message of Wed, 23 Feb 2000 18:57:16 +0000
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Peter Stephenson wrote:
> I'm sure there are going to be more ramifications of the user guide chapter
> on completion (indeed, I've got a file of remarks which I'll need to
> reprocess), but here's something that arose because Bart didn't like the
> way I'd described file-patterns (thanks to Bart and Sven for some
> corrections etc.). The description now looks like this:
>
> It was explained above for the tag-order style that when a function
> uses pattern matching to generate file completions, such as all *.ps
> files or all *.gz files, the three tags globbed-files,
> all-files and directories are tried. When you set something with
> file-patterns, all three tags are automatically activated. So, for
> example, after
>
> zstyle ':completion:*:*:foo:*:*' file-patterns '*.yo'
>
> the command named `foo' will complete files ending in `.yo', as
> well as directories. For once, you don't have to change the completer to
> do this: `foo' isn't specially handled, so does default completion,
> and that means completing files, so that file-patterns is active
> anyway.
>
> You can now set up your tag-order style to include
> globbed-patterns, which represents the `.yo' files, and
> directories and all-files; suppose you want to make the `.yo'
> files and the directories appear at the same time:
>
> zstyle ':completion:*:*:foo:*:*' tag-order 'directories globbed-files'
>
> Unfortunately this doesn't seem to work --- I don't get the directories,
> even if there aren't any .yo files. I can't see what's going wrong. I can
> add `*(-/)' to the globbed files list, of course, but then they're
> naturally regarded as attached to the globbed-files tag. Maybe I've got
> the wrong end of the stick somewhere.
First of all: if one wants to set a file-pattern explicitly one should
use the tag one wants to set it for. Otherwise it will always be used,
for all possible tags.
Second: one only gets the extra (i.e. normally not tried) tags one
explicitly selects. So:
zstyle ':completion:*:*:foo:*:globbed-files' file-patterns '*.yo'
Makes only the globbed-files and the all-files tags be used. If one
wants directories, one has to say that:
zstyle ':completion:*:*:foo:*:directories' file-patterns '*(-/)'
This is a bit ugly. I /think/ I asked if we should make this different
when I added the file-patterns style, but it may well be that I
forgot. So: should we make the directories tag with its usual pattern
be tried automatically if the user explicitly sets the file-patterns
tag for globbed-files? Or should we do that only if the directories tag,
file-patterns style is given, but allow an empty value to stand for
`the normal pattern'?
Bye
Sven
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author