zsh-workers
 help / color / mirror / code / Atom feed
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





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