From: "Jun T." <takimoto-j@kba.biglobe.ne.jp>
To: zsh-workers@zsh.org
Subject: [PATCH] complete two or more options for zsh
Date: Sun, 20 Sep 2015 04:27:31 +0900 [thread overview]
Message-ID: <B1BC25E1-B272-4FDB-93F2-2CC0887ABC7B@kba.biglobe.ne.jp> (raw)
% zsh -<TAB>
This offers zsh's options, but the following does not work:
% zsh -v -<TAB>
Here, -v can be any other option.
The reason seems to be that all the optspecs generated by
_argument -- '*:' (_sh: line 24)
look like
-v[equivalent to --verbose]: --aliases: etc.
i.e., a ':' is appended to their ends (so the option requires
an argument).
This ':' is added by
cache+=( "${(@)^tmp}${descr}" ) (_arguments: line 282)
where $descr is equal to ':', which comes from the helpspec '*:'
passed to _arguments.
Not specifying a helpspec at all seems to fix the problem.
Or using '*' or '*: : ' as a helpspec seems to work as well.
BTW, the description of _arguments in zshcompsys manpage says:
The special
case of `*:' means both message and action are empty, which has
the effect of causing options having no description in the help
output to be ordered in listings ahead of options that have a
description.
But even with '*:' options without description are listed after
those with description (and it has a side effect that ':' is appended
to the generated optspecs). Are there any ways to control the order
of listing?
diff --git a/Completion/Unix/Command/_sh b/Completion/Unix/Command/_sh
index 21ebfc3..1b51122 100644
--- a/Completion/Unix/Command/_sh
+++ b/Completion/Unix/Command/_sh
@@ -24,6 +24,6 @@ fi
local ret=$?
-[[ $service == zsh ]] && _arguments -S -s -- '*:' && ret=0
+[[ $service == zsh ]] && _arguments -S -s -- && ret=0
return ret
next reply other threads:[~2015-09-19 19:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-19 19:27 Jun T. [this message]
2015-09-23 5:39 ` Bart Schaefer
2015-09-25 16:04 ` Jun T.
2015-09-25 17:03 ` Bart Schaefer
2015-09-30 16:03 ` Jun T.
2015-09-30 16:19 ` Bart Schaefer
2015-10-01 10:41 ` Jun T.
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=B1BC25E1-B272-4FDB-93F2-2CC0887ABC7B@kba.biglobe.ne.jp \
--to=takimoto-j@kba.biglobe.ne.jp \
--cc=zsh-workers@zsh.org \
/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).