zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@sunsite.dk
Subject: Re: Help with completion of option arguments
Date: Sat, 09 Jul 2005 07:02:47 +0000	[thread overview]
Message-ID: <1050709070248.ZM17162@candle.brasslantern.com> (raw)
In-Reply-To: <e3b7bac0507080006434477d5@mail.gmail.com>

On Jul 8, 12:06am, Travis Spencer wrote:
} Subject: Help with completion of option arguments
}
} I have a command for which I'm trying to write a completion widget. 
} 
} _arguments -C \
}     "-A-[this is a test]:test:((a\:'test sub-message'))"
}     "-B-[notify (e-mail) admins]:notify:((
}           b\:'suppress interactive query (for use in crontab)'))"

This wouldn't work as written, because you left off the backslash on
the second line, and because -A is an *option of* _arguments, so it
is necessary to use
    _arguments -C : "-A-..."
in order to get "-A-..." to be treated as an *argument* of _arguments.

I mention this to point out that it's almost always better to show the
real example you're working with, rather than attempt to make up an
equivalent one.  The exception would be when you're showing a minimal
test case for a bug, but then you should have tried the example to be
sure it demonstrates what you intend it to.

By the way, does your call to _arguments use the ->state mechanism at
any point?  If not, you don't need the -C in there.

} The command has options that take arguments that must follow the
} option without any white space.  For example, the command takes
} options such as these: `-A', `-Aa', `-B', and `-Bb'.
} 
} But the problem is, with only a single argument like this, after
} typing `-A' or `-B', the sole completion `a' and `b' are run rather
} than outputting the descriptions.

I interpret this to mean that you're trying to use the completion as a
sort of interactive help lookup ("I don't remember what -A does, please
tell me").  If that's what you want, don't press TAB to complete further;
rather, type ctrl-d (or whatever you have bound to list-choices) to show
the possible alternatives.

However, the literal answer to your question ...

} Is there some way to get _arguments to output the messages `test
} sub-message' and `suppress interactive query (for use in crontab)'
} when `-A' or `-B' have been input rather than completing them
} directly?

... is, insert an empty string element into the double-parens like this:

_arguments : \
    "-A-[this is a test]:test:(('' a\:'test sub-message'))" \
    "-B-[notify (e-mail) admins]:notify:((''
	b\:'suppress interactive query (for use in crontab)'))"


  reply	other threads:[~2005-07-09  7:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-08  7:06 Travis Spencer
2005-07-09  7:02 ` Bart Schaefer [this message]
2005-07-09  8:42   ` Travis Spencer
2005-07-09 17:21     ` Bart Schaefer

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=1050709070248.ZM17162@candle.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=zsh-users@sunsite.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).