zsh-workers
 help / color / mirror / code / Atom feed
From: "Daniel Shahaf" <d.s@daniel.shahaf.name>
To: "Marlon Richert" <marlon.richert@gmail.com>
Cc: "Zsh hackers list" <zsh-workers@zsh.org>
Subject: Re: Feature Patch: Use completion to view parameter values
Date: Mon, 29 Mar 2021 20:05:38 +0000	[thread overview]
Message-ID: <d5542e9e-a91e-4e22-af96-235d518347ff@www.fastmail.com> (raw)
In-Reply-To: <CAHLkEDtFJbs0gUT-CD-FNBhqP6CiHqiNxbfmbhAJHLYqC+kO=w@mail.gmail.com>

Marlon Richert wrote on Mon, 29 Mar 2021 20:00 +00:00:
> On Mon, Mar 29, 2021 at 9:14 PM Daniel Shahaf <d.s@daniel.shahaf.name> wrote:
> > And in Marlon's patch with the ${(t)…*special*} exclusion bypassed:
> > .
> >     % zstyle \* extra-verbose yes
> >     % AUTOFOO=42
> >     % echo $AUTO<TAB><TAB>
> >     AUTOFOO       -- 42  AUTOINCREMENT -- 2
> >     AUTOFOO       -- 42  AUTOINCREMENT -- 4
> >
> > Yes, it does actually increment the variable twice, probably because the
> > _parameters patch uses both ${(t)${(P)}} and then ${(P)}, and the former
> > does an increment too:
> > .
> >     % echo $AUTOINCREMENT ${(tP)AUTOINCREMENT} $AUTOINCREMENT
> >     0 array-special 2
> >     %
> 
> Hm, that made me realize that using ${(tP)…} is wholly unnecessary,
> since _parameter already uses $parameters anyway. So, here's a new
> patch that uses $parameters instead of ${(tP)…}:
> 

Yes, using $parameters[AUTOINCREMENT] doesn't increment it.

> commit 5ef8fcaabe243c8c4e04de92e1f971543470ce87
> Author: Marlon Richert <marlon.richert@gmail.com>
> Date:   Mon Mar 29 22:56:34 2021 +0300
> 

It's better to post git-format-patch(1) output than git-show(1) output
because the former can be fed to git-am(1) but the latter can't.
(Unless that has changed since I last look?  It's rather like today's xkcd…)

Also, your previous patch was hard wrapped, so it couldn't easily be
applied.  It's best to send patches as an attachment named *.txt (unless
you look up your MUA-specific way of saying "Don't munge whitespace in
the body in any way").

Cheers,

Daniel

>     Let `zstyle extra-verbose` show parameter values
> 
>     When completing parameters and
>     `zstyle -t ":completion:${curcontext}:parameters" extra-verbose`,
>     display values of non-special parameters as descriptions.
> 
> diff --git a/Completion/Zsh/Type/_parameters b/Completion/Zsh/Type/_parameters
> index 207e5cf78..b32e049f7 100644
> --- a/Completion/Zsh/Type/_parameters
> +++ b/Completion/Zsh/Type/_parameters
> @@ -6,13 +6,18 @@
>  # If you specify a -g option with a pattern, the pattern will be used to
>  # restrict the type of parameters matched.
> 
> -local expl pattern fakes faked tmp i pfilt
> +local MATCH MBEGIN MEND \
> +  disp dopt expl fakes faked i matches pattern pfilt sep tmp
> 
>  if compset -P '*:'; then
>    _history_modifiers p
>    return
>  fi
> 
> +_tags parameters
> +( _tags && _requested parameters ) ||
> +  return
> +
>  pattern=(-g \*)
>  zparseopts -D -K -E g:=pattern
> 
> @@ -32,8 +37,19 @@ zstyle -t ":completion:${curcontext}:parameters"
> prefix-needed && \
>   [[ $PREFIX != [_.]* ]] && \
>   pfilt='[^_.]'
> 
> -_wanted parameters expl parameter \
> -    compadd "$@" -Q - \
> -        
> "${(@M)${(@k)parameters[(R)${pattern[2]}~*local*]}:#${~pfilt}*}" \
> -        "$fakes[@]" \
> -        "${(@)${(@M)faked:#${~pattern[2]}}%%:*}"
> +_description parameters expl parameter
> +compadd "$expl[@]" -O matches - \
> +  "${(@M)${(@k)parameters[(R)${pattern[2]}~*local*]}:#${~pfilt}*}" \
> +  "$fakes[@]" \
> +  "${(@)${(@M)faked:#${~pattern[2]}}%%:*}"
> +
> +if zstyle -t ":completion:${curcontext}:parameters" extra-verbose; then
> +  zstyle -s ":completion:${curcontext}:parameters" list-separator sep 
> ||
> +    sep=--
> +  zformat -a disp " $sep " \
> +    
> ${matches[@]:/(#m)*/"${MATCH}:${${parameters[$MATCH]:#*special*}:+${(Pkv@q+)MATCH}}"}
> +  disp=( "${disp[@]:/(#m)*/$MATCH[1,COLUMNS]}" )
> +  dopt=( -d disp )
> +fi
> +
> +compadd "$expl[@]" $dopt -Q -a matches
> diff --git a/Test/Y01completion.ztst b/Test/Y01completion.ztst
> index 571f3cf16..e5901b8e5 100644
> --- a/Test/Y01completion.ztst
> +++ b/Test/Y01completion.ztst
> @@ -222,7 +222,7 @@ F:regression test workers/31611
>    comptesteval "zstyle ':completion:*:tst:*' ignored-patterns 2"
>    comptest $'tst 1,\t'
>    comptesteval "zstyle -d ':completion:*:tst:*' ignored-patterns"
> -0:-F doesn't break _sequence
> +0:-F doesn’t break _sequence
>  >line: {tst 1,}{}
>  >DESCRIPTION:{desc}
>  >NO:{2}
> @@ -237,6 +237,28 @@ F:regression test workers/31611
>  >FI:{file1}
>  >FI:{file2}
> 
> +  comptesteval "bar=({$'\\0'..$'\\C-?'}); baz=\$bar"
> +  comptesteval 'zstyle ":completion:*:parameters" extra-verbose yes'
> +  comptest $': $ba\t'
> +0:extra-verbose shows parameter values
> +>line: {: $ba}{}
> +>DESCRIPTION:{parameter}
> +>NO:{bar -- '^@' '^A' '^B' '^C' '^D' '^E' '^F' '^G' '^H' '\t' '\n'
> '^K' '^L' '^M' '^N}
> +>NO:{baz -- '^@ ^A ^B ^C ^D ^E ^F ^G ^H \t \n ^K ^L ^M ^N ^O ^P ^Q ^R
> ^S ^T ^U ^V ^W }
> +
> +  comptest $': $path\C-D'
> +0:extra-verbose does not show special parameter values
> +>DESCRIPTION:{parameter}
> +>NO:{path}
> +
> +  comptesteval 'zstyle -d ":completion:*:parameters" extra-verbose'
> +  comptest $': $ba\t'
> +0:parameter values not shown without extra-verbose
> +>line: {: $ba}{}
> +>DESCRIPTION:{parameter}
> +>NO:{bar}
> +>NO:{baz}
> +
>    comptesteval '_tst() { local disp=( {a..z} ); compadd -ld disp
> $disp[@]; comppostfuncs=( _pst ) }'
>    comptesteval '_pst() { local disp=(
> "<INSERT>$compstate[insert]</INSERT>" ); compadd -Qld disp $disp }'
>    comptesteval "zstyle ':completion:*' menu select=long-list"
>


  reply	other threads:[~2021-03-29 20:06 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-28 20:53 Marlon Richert
2021-03-29  7:39 ` Daniel Shahaf
2021-03-29 11:55   ` Marlon Richert
2021-03-29 17:11     ` Daniel Shahaf
2021-03-29 17:20       ` Bart Schaefer
2021-03-29 18:14         ` Daniel Shahaf
2021-03-29 20:00           ` Marlon Richert
2021-03-29 20:05             ` Daniel Shahaf [this message]
2021-03-29 20:35               ` Marlon Richert
2021-04-01  4:28                 ` Marlon Richert
2021-04-01 18:40                   ` Daniel Shahaf
2021-04-02  0:50                 ` Oliver Kiddle
2021-04-10 20:20                   ` Lawrence Velázquez
2021-04-11 20:06                     ` Marlon Richert
2021-04-11 21:24                     ` Patch bumping (was Re: Feature Patch: Use completion to view parameter values) Bart Schaefer
2021-04-12  8:18                       ` Marlon
2021-04-13 12:32                         ` Daniel Shahaf
2021-04-13 18:08                           ` Lawrence Velázquez
2021-04-15  9:39                             ` [META] Tone of voice / Writing style in patch reviews (was Re: Patch bumping) Marlon
2021-04-15 10:33                               ` zeurkous
2021-04-13 13:35                         ` Patch bumping (was Re: Feature Patch: Use completion to view parameter values) Daniel Shahaf
2021-04-13 21:31                           ` Lawrence Velázquez
2021-04-13 21:50                             ` Bart Schaefer
2021-04-14 12:52                             ` Daniel Shahaf
2021-04-13  2:47                       ` Lawrence Velázquez
2021-04-12 20:22                   ` Feature Patch: Use completion to view parameter values Marlon
2021-04-12 21:49                     ` Bart Schaefer
2021-04-13  4:50                       ` Marlon Richert
2021-03-30  5:41           ` Mikael Magnusson
2021-03-31 22:55             ` Daniel Shahaf
2021-03-31 23:03               ` Daniel Shahaf
2021-03-29 20:10         ` Peter Stephenson
2021-03-29 11:48 ` Mikael Magnusson
2021-03-29 12:06   ` Marlon Richert
2021-03-29 12:07     ` Marlon Richert

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=d5542e9e-a91e-4e22-af96-235d518347ff@www.fastmail.com \
    --to=d.s@daniel.shahaf.name \
    --cc=marlon.richert@gmail.com \
    --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).