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 23847 invoked from network); 29 Mar 2021 20:01:07 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 29 Mar 2021 20:01:07 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1617048067; b=yTw7HqieCa/HDXeehQ84MAgeFjNoGkXeJRq/sFGmMLANNFTR6I8pTFH5IOih/PIeWJ4DO+7kdv VtFYYlMce4ecqd8uhqJsHDBFWxEgIO0pnZ90FB1kqOEr6QzFv0jozc6mEkX/q5TRtHqG1+Dprk E0C3qWOKIfKL64V1/QOgE13hYJLVqeacTeW72bZA3b5vu2GrixslvHCQkDTCJSvmhfDQb+xgQb WPrWIR1Jjax1GdYVNo8iJQE3ehSQzkKzWILOtiqyu3au/jBLwzDiKp1Wm8PH9ZRiiowP7jBbxm 8et2MIHw/+HOG1n5qo/myTY5qyTXPUDEf/HtQHURAbirKw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lf1-f46.google.com) smtp.remote-ip=209.85.167.46; 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=1617048067; bh=a29/dlaXNDUybTwoM5Mo+NbK8I0u+P3Ct/IBYUzHGEc=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=uAaxl8mUS1+NbPxy/tTvPMQkXZR4H57Sn0ily22PEdg69lP8LcI4rjAcnOli1tbQBpQQzjzxq9 7zP/JiKezwt4ZsNXmKTp4H4EyTNCBP37iWAEyhWHnaAH+cyWNidBDyuR/QopIx0qmm5/E8865Z OjnW7oWg/KisE7YoDftvAxlw5AWDy5zL4jISSZvFKoozeoVleizkVAJ7sNKDwKvLyKKQibDvzF X7gELPxNWFeP61oRScdPjtjot2QnmV/hSKc7P5W5uaS+JQ/6aRlGMAZjvgw3zGDlUkfUInOZIV xArfcIEM+4OTF73XooDH8jPeVOZS1IZnJlM4Hl2s4SA4aA==; 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:Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=cF2VEtOqpm9wzJhqFQLbMIBSKGCny49zHlIow7aGaLg=; b=RjaXMtkBR2lmgbG/TPQDxF9LLT a9gKTjMWRJpKBJqO/md6ycX3HvRuICDndKObtatODpqWhUHL0AgjDXse0wrxNvTIldGo6PN4EN2Ak QyY0uE6aJaM/BKaqrkYD+ov7LlSJjyDFtStGqRJcibFz/0k2ThIx4PnkbVOr/uy9kW5Si3PahvSxs c0pybY7+J7hPZvQo/BifC/rnACwR9rHJ8JhhrePvBuFtInZ9t0l+/U4NFPUun4sUkxAxQSgyNlGBG jHdnrylw0N6VAx/AWxd4x4CForHQ8LGx/WqQE66csJTaMuMnlLkuciZbZtK1QsBet01xX1vohzQdr eC+stHag==; Received: from authenticated user by zero.zsh.org with local id 1lQy4R-000Heb-4Q; Mon, 29 Mar 2021 20:01:07 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lf1-f46.google.com) smtp.remote-ip=209.85.167.46; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lf1-f46.google.com ([209.85.167.46]:35431) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lQy48-000HV6-Vs; Mon, 29 Mar 2021 20:00:50 +0000 Received: by mail-lf1-f46.google.com with SMTP id 75so20309566lfa.2 for ; Mon, 29 Mar 2021 13:00:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=cF2VEtOqpm9wzJhqFQLbMIBSKGCny49zHlIow7aGaLg=; b=l8DJlYvo7Eqdxe/LbCjWKZzMKcwjKwZbP6RYVENxPVKsBI1rXu09U8C+TFtCc8iD3h Tu7VEbfVWxOK/RNist7MwSqRnQPFR4t08P3G9YRetLmRvwMHCWfE01OfuBMpDsi+jzwn Q1EmOIK+kOyc7nHtpjZxBMclLqdwafEK4vDY5DiEh8x/09n1ivS5ggcVQgB9GTV8QJwr ClTdAjUOzkAt0RWqPJK1xCZfMAF4iOmRObjj5n93lkxqfJJXwyz/c9Ty/wC+WiAXrgl+ N1OOv/oIe4E9c39NuaXOmloCTHQnF9fzsutW4CmvIDPpfa17/X+aYXhwMicVomTD6VZi 6uSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=cF2VEtOqpm9wzJhqFQLbMIBSKGCny49zHlIow7aGaLg=; b=UndGtubxQ91yP+dbnnORekeAA/npxe1Nl7Wc0cbCTcjPCWeXSyVUwHm1foY8QAx7Ke 0zqm1RCK0FlA0D+ZzBQo6zpVvePBuvKj7YHTep0ftHJcjMSK5YMUmOh6kHR5dbN7CPYL 6THVny38Zi1bohSoo9fi88nD0ZXtbHx9PZwevMHczCjpsvQaOBmlnJrf3ycTPzfoNTfL vMVGpIR6cHArYhmn02082nqSTMxxw7wf+qtFf8Sl48DUiziaPqA5tAtXOU1nkSwdTIw3 u96Kg8mQLjO0KigV9Q0KgY87aLF6KnjDg92VM7/+PFUTL2RIpVqiWhS70rPQM/8sjEsk d61Q== X-Gm-Message-State: AOAM5310AdElg24fyO4X7UCWXInkKmqe7fYnSMqeKDUF0IxZi4sU6cAC eF0hgDBrgK9UZgSgkAEXAG+mayqPBjkEmOBQ9mPDKdICR0prEg== X-Google-Smtp-Source: ABdhPJxV0prtlMvl2dj/57tx/O6bNTCM65E4IjOe4v92gHXQAVfXbbNphaI42l8G2NcM51xB0bJmgILJSKlANEY7lw0= X-Received: by 2002:a19:a40c:: with SMTP id q12mr16977502lfc.319.1617048048144; Mon, 29 Mar 2021 13:00:48 -0700 (PDT) MIME-Version: 1.0 References: <20210329073913.GP18178@tarpaulin.shahaf.local2> <20210329171120.GA6044@tarpaulin.shahaf.local2> <20210329181452.GB6044@tarpaulin.shahaf.local2> In-Reply-To: <20210329181452.GB6044@tarpaulin.shahaf.local2> From: Marlon Richert Date: Mon, 29 Mar 2021 23:00:12 +0300 Message-ID: Subject: Re: Feature Patch: Use completion to view parameter values To: Daniel Shahaf Cc: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 48333 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: Archived-At: On Mon, Mar 29, 2021 at 9:14 PM Daniel Shahaf wrot= e: > And in Marlon's patch with the ${(t)=E2=80=A6*special*} exclusion bypasse= d: > . > % zstyle \* extra-verbose yes > % AUTOFOO=3D42 > % echo $AUTO > 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)=E2=80=A6} is wholly unnecessary, since _parameter already uses $parameters anyway. So, here's a new patch that uses $parameters instead of ${(tP)=E2=80=A6}: commit 5ef8fcaabe243c8c4e04de92e1f971543470ce87 Author: Marlon Richert Date: Mon Mar 29 22:56:34 2021 +0300 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/_paramet= ers 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=3D(-g \*) zparseopts -D -K -E g:=3Dpattern @@ -32,8 +37,19 @@ 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]}}%%:*}" +_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=3D-- + zformat -a disp " $sep " \ + ${matches[@]:/(#m)*/"${MATCH}:${${parameters[$MATCH]:#*special*}:+${(P= kv@q+)MATCH}}"} + disp=3D( "${disp[@]:/(#m)*/$MATCH[1,COLUMNS]}" ) + dopt=3D( -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=E2=80=99t break _sequence >line: {tst 1,}{} >DESCRIPTION:{desc} >NO:{2} @@ -237,6 +237,28 @@ F:regression test workers/31611 >FI:{file1} >FI:{file2} + comptesteval "bar=3D({$'\\0'..$'\\C-?'}); baz=3D\$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=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"