zsh-users
 help / color / mirror / code / Atom feed
From: "Bart Schaefer" <schaefer@candle.brasslantern.com>
To: Zsh Users <zsh-users@sunsite.auc.dk>
Subject: Re: --help trough _use_lo , but how with -h style?
Date: Wed, 28 Jun 2000 15:56:02 +0000	[thread overview]
Message-ID: <1000628155602.ZM31348@candle.brasslantern.com> (raw)
In-Reply-To: <20000628150234.A32686@linux-ws.kg-hittfeld.local>

On Jun 28,  3:02pm, Matthias Kopfermann wrote:
} Subject: --help trough _use_lo , but how with -h style?
}
} Hi again,
} After I got the information about the use of `compdef _use_lo x y z' to
} have x y and z commands completed I asked myself:
} How can i do it with these `-h' commands. e.g. mutt only wants 
} -x flags.

If I understand you correctly, you mean that there are at least several
commands that you use that generate help output when given `-h', and you
would like the completion system to treat `command -<TAB>' as a reason
to execute `command -h' and then parse the resulting output.

The first thing you should do (which perhaps you have) is make sure that
there aren't already completion functions for those commands.  After you
have run `compinit', you can see which commands already have completions
this way:

    print -l ${(ok)_comps} | less

(substitute your favorite pager).  The first several lines will look like
`-something-' where `something' is the name of one of the special contexts
that the completion system understands; the rest are command names.

} [...] i have a function that does it with -h commands ,
} too,  but it would be much nicer, if there was such a function in
} plain-zsh already. Thats why i ask.

If the -h output is really as consistently formatted as GNU --help (which
isn't very, I guess) then send your function off to zsh-workers and it'll
probably get included in the next release.

On Jun 28,  3:12pm, Sven Wischnowsky wrote:
} Subject: Re: --help trough _use_lo , but how with -h style?
}
} Hm, if you have a function to generate the option names you can easily 
} use that. I guess the function puts the options into the $reply array
} (I'll assume the strings generated include the `-'), so you can do:
} 
}   _use_so() { # ;-)
}     if [[ $PREFIX = -* ]]; then
}       ... # call perl-function-thingy
}       compadd -a reply
}     else
}       _default
}     fi
}   }
} 
} To make this nicer, change the `compadd'-line to:
} 
}   local expl
}   _wanted options expl option compadd -a reply

And to make it even nicer, _use_so should respect the `command' style for
the `options' tag and employ _call to invoke the function-thingy, which
is why I suggest that he send us the function to play with.

On Jun 28,  5:22pm, Andrej Borsenkow wrote:
} Subject: RE: --help trough _use_lo , but how with -h style?
}
} [...]  What you want is a function that
} would parse general output of arbitrary command and generate useful
} completion out of this. I doubt that it ever be possible.

I don't think he's asking for quite that much.
 
} Please, note, that as far as I can tell --help parsing is used only in
} three completion functions currently - _configure, _tar and _gdb. Of
} these three I  believe that _tar and _gdb use it only for historical
} reasons - the single command where this makes sense is _configure.

Hmm, you're right, I missed that _arguments has to be given both an option
of `--' as well as a string-to-be-completed of `--' before it will invoke
`command --help'.  That would make _use_so useful even for GNU commands
that have no other default completion, assuming you could set the command
style so as to choose whether to pass -h or --help.

} Note, that parsing of help text has many drawbacks. You cannot supply
} description;

Not strictly true; if you really could parse the help text, the parser
could add the help text itself as the descriptions.  I'm skeptical that
this is possible in general, but it might be possible for some specific
commands.

} you cannot define mutualy excluding options; you cannot
} define mutually dependent options or option sets. I.e. _arguments is
} much better suited - with the additional cost of writing separate
} function for every command.

Which is exactly what he wants to avoid, I suspect.  We haven't yet
achieved the goal that writing a completion function is not daunting to
the average user.

-- 
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   


      reply	other threads:[~2000-06-28 15:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-06-28 13:02 Matthias Kopfermann
2000-06-28 13:12 ` Sven Wischnowsky
2000-06-28 13:22 ` Andrej Borsenkow
2000-06-28 15:56   ` Bart Schaefer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1000628155602.ZM31348@candle.brasslantern.com \
    --to=schaefer@candle.brasslantern.com \
    --cc=zsh-users@sunsite.auc.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).