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

RE: Q about new completion (how to create several match sets)



>
> > In current form _configure completes both --with-option
> > and --without-option in one shot. It means, that I always
> get at least
> > two matches and (in my settings) cursor is placed after
> --with so I have
> > to use additional keystroke to jump to the end of line.
>
> Hm, this is ugly, but should it be enough to keep from
> supplying match
> specs?
>

No. In this case I obviously do want to use match specs )to be able to
complete --w-f-b-c).

>
> Sure:
>
>   zstyle ':completion:*:*:configure:*' tag-order \
>       'options:-with:with\ options options:-other:other\ options' \
>       'options:-without:without\ options'
>   zstyle ':completion:*:options-with' ignored-patterns '^--with-*'
>   zstyle ':completion:*:options-without' ignored-patterns
> '^--without-*'
>   zstyle ':completion:*:options-other' ignored-patterns
> '--with(|out)-*'
>
> (Hmmmmm, tag labels. ;-)
>
> This says to first complete options two times, once using the tag
> `options-with' and once using the tag `options-other'. The
> ignored-patterns for these tags then make sure that you don't get the
> `--without-*' options. The second value of the tag-order
> style says to
> complete options using the tag `options-without' and there the
> ignored-patterns says that only the `--without-*' options are to be
> completed.
>

No, that's weird. I was able to make it running exactly once - and I
have a feeling, this was after cvs update/make/make install in one
window, sourcing styles in another one and trying there (that is, with
*old* zsh+functions). What I get currently, is

bor@itsrm2% cd samba-2.0.7/source
bor@itsrm2% ./configure --wi-swTAB
bor@itsrm2% cd samba-2.0.7/source
bor@itsrm2% ./configure --with-<CURSOR HERE>swatdir
Completing with options
--with-swatdir
Completing other options
--with-swatdir      --without-swatdir

with styles

bor@itsrm2% zstyle -L
zstyle ':completion:*' completer _oldlist _complete _match
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' ignore-parents parent pwd
zstyle ':completion:*' insert-unambiguous true
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt 'Showing %l'
zstyle ':completion:*' match-original both
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'r:|[._-]=*
r:|=*' 'r:|[._-]=** r:|=**'
zstyle ':completion:*' menu 'select=0'
zstyle ':completion:*' original true
zstyle ':completion:*' verbose true
zstyle ':completion:*' old-list _match
zstyle ':completion:*:*:configure:*' tag-order 'options:-with:with\
options options:-other:other\ options' 'options:-without:without\
options'
zstyle ':completion:*:options-with' ignored-patterns '^--with-*'
zstyle ':completion:*:options-without' ignored-patterns '^--without-*'
zstyle ':completion:*:options-other' ignored-patterns '^--with(|out)-*'

(I added ``^'' to the last pattern - assuming, it is beginning-of-word
anchor)

+ setopt nolistambiguous in .zshrc

>
> I'm not completely sure that I know what you mean by `select
> either of
> them', but of course completing after `--without-' will take the
> matches from the second set because in the first one nothing matches,
> and then there is _next_tags, bound to ^Xn to go to the next set of
> tags in the tag-order style.
>

Yes, that was it.

-andrej



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