From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3710 invoked from network); 11 Aug 2000 06:31:06 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 11 Aug 2000 06:31:06 -0000 Received: (qmail 10628 invoked by alias); 11 Aug 2000 06:30:14 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 12586 Received: (qmail 10620 invoked from network); 11 Aug 2000 06:30:13 -0000 Message-ID: <20000811063009.9319.qmail@web1104.mail.yahoo.com> Date: Thu, 10 Aug 2000 23:30:09 -0700 (PDT) From: Felix Rosencrantz Subject: Completing parameter names that have yet to be set. To: zsh-workers MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Since there is some talk about parameter completion... I've had a custom version of _parameter for some time that I've been meaning to document and submit. The customization was that it could complete parameters that were not yet set. Using a style, the user specifies a list of parameters that they want zsh to know about to complete. For example, with the zsh distribution there is the TESTNUM environment variable, which can be used to specify a subset of the zsh tests when running "make check" . However, most of the time this environment variable is unset. I can't always remember the special variable. So it's nice that zsh completion can. I think it would be useful if the style specification allowed for descriptions of these parameters. The descriptions could be used for parameters that are already set. Though I'm not sure how to do this (with _values?). I've included a copy of what I've got so far. No docs, and currently out-of-date with respect to Oliver's changes. And not fully tested. It works for me, though. I wasn't sure if _alternative could be used here. Also, it doesn't allow for descriptions of the parameters. Also, to be even more complete I guess type information could be provided to be used in conjunction with the -g flag Oliver just added. Anyone is welcome to take this code or idea and add it in. I haven't done much with it in a while. It seems like the ability to tell zsh of words that can't be found by querying the system (e.g. these parameter names, files that don't exist yet, etc. ) would be useful. I was thinking that it would be useful to add some generic code that would (maybe a completer). Maybe using the new cache system. The code would allow the user to specify a set of words to be tossed in with the words that standard completion functions complete. I'm not sure what would be a good solution. This is more meant to provoke some response/thought by the completion gurus. -FR. #autoload # This should be used to complete parameter names if you need some of the # extra options of compadd. It completes only non-local parameters. local expl extraparams unsetparams p existparams zstyle -a ":completion:${curcontext}:" parameter-list extraparams unsetparms=() for p in $extraparams ; do if [[ $+parameters[$p] -ne 1 ]] ; then unsetparams=($unsetparams $p) fi done existparams=(${(qk)parameters[(R)^*local*]}) _alternative \ "parameters:parameters already set:{compadd ${(q)@} - $existparams }" \ "unset-parameters:parameters not already set:{compadd ${(q)@} - $unsetparams}" __________________________________________________ Do You Yahoo!? Kick off your party with Yahoo! Invites. http://invites.yahoo.com/