From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 5088 invoked from network); 12 Apr 2021 20:23:17 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 12 Apr 2021 20:23:17 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1618258997; b=pjATuep9Me6htOBUSaSNfFyWcdI3TfrS+tdkkX1x7X40tOR16X5Nt0vdUi2BYJAr0oot4bNmb+ uO4bqn8WkymfxQggkBwhLw3yqbxPgIxDQus8T9Vwk3kGDhiXdXNzXOVtFj0rr9XQtXZd6ZSqMD h07B7ZugKl3OafxV9IhmDLjADOrOUBVR2T1QPPV5v47owSpJSOTWRomzPNCPN/QPGDUdDgaYpV xH0SfjgAiT39JM3dVO4ZTzTyyVQQPp5lPdwOFWWYhaC+3kRwgUeeT0J4ViapeTkCZIRZbXJ/PW TJtl729IOjZkF3jLxDe4sgfaKF4XigvZG2CHhzpKE8QmZw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f173.google.com) smtp.remote-ip=209.85.208.173; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1618258997; bh=BucjKKnjSkAWzIEgsnhq2lIYcnAN8wu7m0Jm3pwrXgg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:References:To:Cc:In-Reply-To:Date:Subject:MIME-Version: Content-Type:Message-ID:From:DKIM-Signature:DKIM-Signature; b=EvJ5oWsZYBAl+PJF6o4SV+jJ2uSGU23Ef5WBO2x6jZALnNFaAaNdysrM5doPY809T5k3NUTZGd L63fgj1/1PY2oTkbo4RwqH8BsJCsHIHZRKtI3BZndeH4NbEqOqQhKbaUfLKZbDeXOgE9oIcggi nZYi2DwRv7m6QGYGKIq75KSH8qO8NjES5QFEpAr0mJSDEHaa2jsZh0HngcrFac5+qOMCQj6UlB QM/t+fQVHZQ/eoz17qAsks6LesPltBW1xzUYXVSvX/pzFnf+SKDDM8cqX5Lm7X8C2+mb+Ii1DQ IRrZhdCw2oTi0CROmIc4UnpL8i577i9zLPMLuiAnK0rw8A==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:References:To:Cc:In-Reply-To:Date: Subject:Mime-Version:Content-Type:Message-Id:From:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=+lCV+2jpxaPhnR4R8OB/tuBAETSde4Ku6tauC54jh8Q=; b=OkkuO7hteBK3LjPFK4/dvV0XaL 15g0F/c3PYotJnB0K4Ixbmp+D5x+UzosyzRKiLCAlHZm8t+xS8WWxnX3bTC6Y3EosrL5Xt+SCee9m LDvyGt++nveJzki+UnWoJs/Nc4LOKEr9uUuH+wlqzjqXwkcI3hAM5my6/9OVq7zMX+Y3jKf8RZmZp AI95ConB3DD7zBKU6LQzaXIY44VmcydWqJcm1IcrzgYyO48PRbrNnnCogPOpl3oXwaBMIUoy+1hx3 5wWDurHl2buzYMRN7oBJLdDVOS4BMmmESMGuz9vM5yKCdTr39Jzdr0hLnGcb/ZlryJxWSdkbkpMPH HPA652iw==; Received: from authenticated user by zero.zsh.org with local id 1lW35Z-000JPd-C9; Mon, 12 Apr 2021 20:23:17 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f173.google.com) smtp.remote-ip=209.85.208.173; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lj1-f173.google.com ([209.85.208.173]:37751) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lW35G-000JCh-Sz; Mon, 12 Apr 2021 20:23:00 +0000 Received: by mail-lj1-f173.google.com with SMTP id r20so16906748ljk.4; Mon, 12 Apr 2021 13:22:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=+lCV+2jpxaPhnR4R8OB/tuBAETSde4Ku6tauC54jh8Q=; b=cZV2ETb81vFG7GqKJZHLj7FmAxaOnF9xxkAkCnvCnAHgwpCK3DXk7dsfgsffVLyBop IhbNrKcrGkDMDgCKTiNwIq//fYhorsdND/PX5/SQm/83FIKQFbSO00JVrpNhlOff9u6h PabUfWcLEVwiw8I0B48ddDruq3PxOErmX/Tv138I48ma6rrd8LH4QmAvW3+iFuN+o+qE ER5ZlfGm53mfC/+3Mj1frA9iRBF4kfjK2SrIG8NH4oZ2RRtYsyn7FlqOYdXwHBsid+bv 3fpAcIGiEd0EOSWB27sMevXYMh7NE3reKLcnyekVxrxG7PNHJ0Jm96hs4Z5u0KDjqCKa N6ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=+lCV+2jpxaPhnR4R8OB/tuBAETSde4Ku6tauC54jh8Q=; b=VzUONDITLkDEOW1nEK8Y3lkG/xrRkCbSNbFdXqXLvG1rrusmO3JfNWU4IC5wT1z+Xy Kgssw+psDmYCPXx0uXM5zD+PW23Z/6ce1/5NnaoZuNYoCkq2NEgjjGkgpXAb3YEIXsnX KRpKNjFsGDLm6beR6aM7jsEnoADzcrCZlErr5eR9/IOxRxruKMB2YPa58AlRJMaLXZI5 ORWiWieKAwjmsmFnC21g8LEwDyVFdvOozdWhTPlfR6oqgsSjZqARVMskmuPZf5IU1SyW +Exk3l3aaZs0Hi4EzplSHiVp193tJGoNFOXEhOZM+A1mYjS3PRwJJkz+WARtMR9iLms8 DcMg== X-Gm-Message-State: AOAM531R9rMs4uYZPpiSbmRkRNAt+x5gE1v/7lxAiG2nGauHfM8I61jy jf6nshmCK0QDHQT/9qIE0wdp0uAqcqThiA== X-Google-Smtp-Source: ABdhPJzjp81c265x5chXSX1WPPqyFM+gfYk2LdpmpNBiTj3qSNFL8m+pD7Lc9qWLUXIi5fd0FeQuzA== X-Received: by 2002:a2e:5808:: with SMTP id m8mr13509406ljb.354.1618258977968; Mon, 12 Apr 2021 13:22:57 -0700 (PDT) Received: from [192.168.1.15] (hag-tkubng22-50df3e-132.dhcp.inet.fi. [80.223.62.132]) by smtp.gmail.com with ESMTPSA id x13sm3096549ljj.4.2021.04.12.13.22.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Apr 2021 13:22:57 -0700 (PDT) From: Marlon Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_46EE7774-ACFB-4E96-AC35-D29861F6BFB6" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: Feature Patch: Use completion to view parameter values Date: Mon, 12 Apr 2021 23:22:55 +0300 In-Reply-To: <18618-1617324651.844569@tLsN.0hLE.FeTt> Cc: Zsh hackers list To: Oliver Kiddle References: <20210329073913.GP18178@tarpaulin.shahaf.local2> <20210329171120.GA6044@tarpaulin.shahaf.local2> <20210329181452.GB6044@tarpaulin.shahaf.local2> <18618-1617324651.844569@tLsN.0hLE.FeTt> X-Mailer: Apple Mail (2.3654.60.0.2.21) X-Seq: 48513 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: --Apple-Mail=_46EE7774-ACFB-4E96-AC35-D29861F6BFB6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On 2 Apr 2021, at 03:50, Oliver Kiddle wrote: >=20 > Following is a review of the patch: Attached is a new version of the patch that hopefully addresses the = concerns you raised. Please review. > And, thanks. This looks useful. Great, I=E2=80=99m happy to hear that. :) =E2=80=94Marlon --Apple-Mail=_46EE7774-ACFB-4E96-AC35-D29861F6BFB6 Content-Disposition: attachment; filename=0001-Let-extra-verbose-completion-show-parameter-values.txt Content-Type: text/plain; x-unix-mode=0644; name="0001-Let-extra-verbose-completion-show-parameter-values.txt" Content-Transfer-Encoding: quoted-printable =46rom ddc538f39966abecca8938464e8b9cee82c56a43 Mon Sep 17 00:00:00 2001 From: Marlon Richert Date: Mon, 12 Apr 2021 23:17:23 +0300 Subject: [PATCH] Let extra-verbose completion show parameter values --- Completion/Zsh/Type/_parameters | 44 ++++++++++++++++++++++----------- Test/Y01completion.ztst | 29 +++++++++++++++++++++- 2 files changed, 58 insertions(+), 15 deletions(-) diff --git a/Completion/Zsh/Type/_parameters = b/Completion/Zsh/Type/_parameters index 207e5cf78..00c181e11 100644 --- a/Completion/Zsh/Type/_parameters +++ b/Completion/Zsh/Type/_parameters @@ -6,18 +6,39 @@ # If you specify a -g option with a pattern, the pattern will be used = to # restrict the type of parameters matched. =20 -local expl pattern fakes faked tmp i pfilt - if compset -P '*:'; then _history_modifiers p return fi =20 -pattern=3D(-g \*) +local MATCH i pfilt +local -i MBEGIN MEND nm=3D$compstate[nmatches] +local -a expl pattern=3D(-g \*) normal described verbose faked fakes = tmp + +zstyle -t ":completion:${curcontext}:parameters" prefix-needed && + [[ $PREFIX !=3D [_.]* ]] && + pfilt=3D'[^_.]' +_description parameters expl parameter zparseopts -D -K -E g:=3Dpattern =20 -fakes=3D() -faked=3D() +if zstyle -t ":completion:${curcontext}:parameters" extra-verbose; then + described=3D( + = "${(@M)${(@k)parameters[(R)$~pattern[2]~*(hideval|local|special)*]}:#$~pfi= lt*}" + ) + compadd "$@" "$expl[@]" -D described -a - described + if (( $#described )); then + verbose=3D( + = ${described[@]:/(#m)*/"${MATCH}:${(@q+)${(Pkv@q+)MATCH}//\\/\\\\}"} ) + _describe -t parameters parameter verbose "$@" "$expl[@]" + fi + + normal=3D( + = "${(@M)${(@k)parameters[(R)$~pattern[2]~^(*(hideval|special)*)~*local*]}:#= $~pfilt*}" + ) +else + normal=3D( = "${(@M)${(@k)parameters[(R)$~pattern[2]~*local*]}:#$~pfilt*}" ) +fi + if zstyle -a ":completion:${curcontext}:" fake-parameters tmp; then for i in "$tmp[@]"; do if [[ "$i" =3D *:* ]]; then @@ -27,13 +48,8 @@ if zstyle -a ":completion:${curcontext}:" = fake-parameters tmp; then fi done fi +compadd "$@" "$expl[@]" - "$normal[@]" "${(@)fakes:|described}" \ + "${(@)${(@)${(@M)faked:#${~pattern[2]}}%%:*}:|described}" =20 -zstyle -t ":completion:${curcontext}:parameters" prefix-needed && \ - [[ $PREFIX !=3D [_.]* ]] && \ - pfilt=3D'[^_.]' - -_wanted parameters expl parameter \ - compadd "$@" -Q - \ - = "${(@M)${(@k)parameters[(R)${pattern[2]}~*local*]}:#${~pfilt}*}" \ - "$fakes[@]" \ - "${(@)${(@M)faked:#${~pattern[2]}}%%:*}" +(( compstate[nmatches] > nm )) +return 0 diff --git a/Test/Y01completion.ztst b/Test/Y01completion.ztst index 858fa7220..2c6d25d9a 100644 --- a/Test/Y01completion.ztst +++ b/Test/Y01completion.ztst @@ -240,7 +240,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 does not break _sequence >line: {tst 1,}{} >DESCRIPTION:{desc} >NO:{2} @@ -255,6 +255,33 @@ F:regression test workers/31611 >FI:{file1} >FI:{file2} =20 + comptesteval "bar=3D({$'\\0'..$'\\C-?'}); baz=3D\$bar" + comptesteval 'zstyle ":completion:*:parameters" extra-verbose yes' + comptesteval 'zstyle ":completion:*" fake-parameters bar baz:array' + 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} +>NO:{baz -- '^@ ^A ^B ^C ^D ^E ^F ^G ^H \t \n ^K ^L ^M ^N ^O ^P ^Q ^R = ^S ^T ^U ^} + + comptesteval "path=3D( $ZTST_srcdir:A )" + comptesteval 'typeset -H paths=3DHIDDEN' + comptest $': $path\t' +0:extra-verbose doesn't show special or hidden parameter values +>line: {: $path}{} +>DESCRIPTION:{parameter} +>NO:{path} +>NO:{paths} + + 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=3D( {a..z} ); compadd -ld disp = $disp[@]; comppostfuncs=3D( _pst ) }' comptesteval '_pst() { local disp=3D( = "$compstate[insert]" ); compadd -Qld disp $disp }' comptesteval "zstyle ':completion:*' menu select=3Dlong-list" --=20 2.31.0 --Apple-Mail=_46EE7774-ACFB-4E96-AC35-D29861F6BFB6--