From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.auc.dk
Subject: Re: PATCH: Completion/Cvs/
Date: Wed, 1 Sep 1999 11:25:47 +0200 (MET DST) [thread overview]
Message-ID: <199909010925.LAA32701@beta.informatik.hu-berlin.de> (raw)
In-Reply-To: Tanaka Akira's message of 01 Sep 1999 00:03:57 +0900
Tanaka Akira wrote:
> Also, I found a problem about _arguments.
>
> Z(2):akr@is27e1u11% ./Src/zsh -f
> is27e1u11% bindkey -e; fpath=($PWD/Completion/*(/)); autoload -U compinit; compinit -D; compdef _tst tst
> is27e1u11% compconf group_matches=yes
> is27e1u11% compconf message_format='%d'
> is27e1u11% compconf description_format='%d'
>
> is27e1u11% cvs login -e<TAB>
> ->
> is27e1u11% cvs login -evi
>
> is27e1u11% _tst () { _arguments '-e+:editor:(vi)' '*::mesg:false' }
> is27e1u11% tst a -e<TAB>
> ->
> is27e1u11% tst a -evi
>
> Becase _tst use '*::...', "vi" should not be completed.
I'm not so sure about this, so no patch for this now, but some
comments and questions.
In this example I think I would like to have it complete `vi' if the
cursor is directly after the `-e' (same word), because the `*::...'
should only take affect on whole words, i.e. in this case the word
after the `-e...'.
With that, this is just a special case of a more general problem with
completion after a `-e+:...' option. Currently we use the description
for the first option-argument to complete the next word after the `-e'
only if there really is nothing after the `-e' in the same word (so
that `foo -e <TAB>' completes the option-argument and `foo -ebar <TAB>'
completes normal arguments). But what if the empty string is a valid
option-argument? I think `-e+::...' should give us that (that's what
the patch below does).
So, is this ok? By changing your example to `-e::...' it would give
you what you want, I think (you could also use `-e-:...', btw). What
I'm really asking is if everyone thinks that the behavior with this
patch is what everyone would expect.
Or maybe I'm overlooking something here -- the patch is independent of
the way the `rest'-arguments are described.
Bye
Sven
diff -u oc/Base/_arguments Completion/Base/_arguments
--- oc/Base/_arguments Wed Sep 1 10:52:58 1999
+++ Completion/Base/_arguments Wed Sep 1 11:20:39 1999
@@ -464,9 +464,9 @@
# option, we skip over the first description only if there
# is something after the option name on the line.
- if [[ ( -z "$sopts" && "$ws[1]" != "$tmp[1]" ) ||
- ( -n "$sopts" && ( ( $tmp[1] = [-+]? && "$ws[1]" != "${tmp[1][1]}"${~soptseq}"${tmp[1][2]}" ) ||
- ( $tmp[1] != [-+]? && "$ws[1]" != "$tmp[1]" ) ) ) ]]; then
+ if [[ ( -z "$sopts" && ( "$def" = :* || "$ws[1]" != "$tmp[1]" ) ) ||
+ ( -n "$sopts" && ( ( $tmp[1] = [-+]? && ( "$def" = :* || "$ws[1]" != "${tmp[1][1]}"${~soptseq}"${tmp[1][2]}" ) ) ||
+ ( $tmp[1] != [-+]? && ( "$def" = :* || "$ws[1]" != "$tmp[1]" ) ) ) ) ]]; then
if [[ "$def" = [^*]*[^\\]:*[^\\]:* ]]; then
def="${def#?*[^\\]:*[^\\]:}"
optbeg="$beg"
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
next reply other threads:[~1999-09-01 9:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-09-01 9:25 Sven Wischnowsky [this message]
1999-09-01 10:35 ` Tanaka Akira
-- strict thread matches above, loose matches on Subject: below --
1999-09-01 12:23 Sven Wischnowsky
1999-09-01 11:03 Sven Wischnowsky
1999-09-01 12:01 ` Tanaka Akira
1999-08-31 15:03 Tanaka Akira
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=199909010925.LAA32701@beta.informatik.hu-berlin.de \
--to=wischnow@informatik.hu-berlin.de \
--cc=zsh-workers@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).