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 3737 invoked from network); 29 Mar 2021 12:07:22 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 29 Mar 2021 12:07:22 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1617019642; b=hXH7ZME7hEn/wE5ofeUJBL6iavDIUgKKRF2tqesTTX3JxOFO/Cx0TQEUED9xV1RDn32fHwzngh +78cd8FeEEhAoDdHq9VH/sOIDd7U3DAPPjWb87Rh6L4fOWP/fOYGtNtSKxmxVkGejXDwwALNcV 2vH2+w/Blk6XN7KV85IOlKUEZJQZBO96OxMGgQaxLAsjKv8NKbDYEnIJFuivT71iHLrk+JaQVH WGv+OVKDpVq67wJDYBS2tclg2TT+0lTJvP4JKtLIniHrFZI6HT5+6cKX00OONVagPvhVqkbOga lYY2n7APC2ZaFP+FfSjfaimT1pI0nVadWYGqPtlL4IVOTw==; 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=1617019642; bh=SPTrJcjEwxHu6U9/kQeZvK/vGdtFmuKzg9sVR5X+faE=; 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=JeDJzdZ/jDjOxgYs0zb1PwC+OU2imteb1mSnBnRQEKreqVFGYuy4V5vtGR+XEvdXMspFrk1O6z KmWSaYWXmk0/I9vXT3V6jWRersqiEy5Er6dL3KudE9VDMlaB+aC8z5R8moLlsy145aVepkl73l g2So6ojq1bHn2R37VMg/wWQrsjaDI/zkmR9yHYpy49lEHq2RBOUKMD3d+FE1R0LoiGtCoHI5oJ pMrTVcuJERZo0s8RqWoZK5W7V8vZ6bGJkRpssZ8bneoH6TvN4vrS9iTPixPHKxQ2cWunyqqjXX UvItavyTMS7bUnWLzVdq5xof55mnguIoiJG+QjdYOlxnMw==; 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=PT5/3Uc6PZ8FKuLKcy/W/E8SE0bc+S0A2JkM9s9RkCg=; b=NUEmNqwrN2UgzYAsEIpuhVJRri W+7ma1aMo3Eht5uyfstt5JIhzUv3EB7MUE7JyAXyJkeAVRX/wo3k6pXR2iIv33XuGSbKtBXApoM6f tjJZfwZ6Q73GvzNwq/yaFgoKRDTo2XxFFcwGP6mY3woGosSXzEYJnbPTVYxpaLodrZ6AILEOCVvFZ zTpN50kmCoyGRwNFxS/xdhVy0GVwiFkpfVwUw9TnBhcSqrCkExc+dMDls1LeY847VLlleahuPGBGx KB6+HmFmwCH7hktd9/jNiOSdrcbMn24QS9kfgr+hWRmIoc16vFPZ8+lIlw9vZqEyVQ6VwtIMbGWlV T/p5N9ww==; Received: from authenticated user by zero.zsh.org with local id 1lQqfx-0002Wk-OX; Mon, 29 Mar 2021 12:07:21 +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]:47045) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lQqff-0002OG-FN; Mon, 29 Mar 2021 12:07:05 +0000 Received: by mail-lf1-f46.google.com with SMTP id 12so7664468lfq.13 for ; Mon, 29 Mar 2021 05:07:03 -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=PT5/3Uc6PZ8FKuLKcy/W/E8SE0bc+S0A2JkM9s9RkCg=; b=nPHXMWFCe9wYJrjmz9HODcOSFUWxTTFMYDFhOn7njG+MUNecx4mFWLusEtPDqrsc99 /4ZmOSfYOGD8enTZKzQe/uqSN8b3FUdJlCSS1lSi097ldhQA/ThHv77ZFErjjrjK0ehF fqj6ILiuB+8tmThwZAw6UdHwovMyWtMc92wT8mBQkWdFYFhaxJFR1zjjFX+Ph1oZnuDC JBaDa/TLzFzBAVfzQF9Oce0kSOcZ3cyu0zrg8i21nQjFF5sxbPY/mDWG/48EMrk+OHsD JswKE4hgCYjB2vZkxJIBRq9ff/7yt3GrMz2D66jFe5TKloM32hHH5kOX9feTjVSa9j9/ qhsA== 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=PT5/3Uc6PZ8FKuLKcy/W/E8SE0bc+S0A2JkM9s9RkCg=; b=mwNq6eWGFHvunpM99qGOQRexAhzk/XQ0p7LW/PDI1osVNbIqc8gB8rRFec3BKk2v6V O8jbqWW86nFTxgHs2H5R6Nj80CEF6NIoAA9OVAxyVTxc3jvInz52eBr5t8MnJP9tY6Zo RsuYdccN2rBcYfaoTJghYPQMjYMKwrepPoMMB/uHiTdc205u6xDqo0AKs0i0NiRQ/DKw Ua2xQzJAA+crGTiFtMG2OsHJot1leQStK84naFT/9HCO8GUvgBpb2XVNwhLmwWVV+Gti aCUSbztIlL6C6ZkTFQv3EPjE7NWArHhfzLvN4rj8kMBjUA2Mlt0McowaQqzBtzvrnJG9 OUcw== X-Gm-Message-State: AOAM5311Chfo6wAM3bCBamM4u6apRgYd8YlMXqkoTnZJ72BS2zgkVIet YoTg+Vmd6N3iaZGGc/GrWQU30PrxuvW4IR2H7zoEjhWXEqjX3g== X-Google-Smtp-Source: ABdhPJxua33dwRQZnZr8++34PLKtXxx1BEMsnMW1v/88PjhYjxCOFBe+yH7HNeZpvi9zplilrNFjjJgzDcaXgPdCLvQ= X-Received: by 2002:ac2:51ac:: with SMTP id f12mr15767182lfk.605.1617019622937; Mon, 29 Mar 2021 05:07:02 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Marlon Richert Date: Mon, 29 Mar 2021 15:06:26 +0300 Message-ID: Subject: Re: Feature Patch: Use completion to view parameter values To: Mikael Magnusson Cc: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 48317 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 2:48 PM Mikael Magnusson wrote: > > On 3/28/21, Marlon Richert wrote: > > diff --git a/Completion/Zsh/Type/_parameters > > I may only be speaking for myself here, but please always include a > commit message in patches. Trying to reverse engineer your intent from > the patch body and then reviewing it to see how the patch differs from > that intent is somewhat impossible (and "Use completion to view > parameter values" is pretty vague). > > I'm assuming this is some sort of RFC since you didn't include any > documentation patch, so then it is even more helpful to have some > description of what you're trying to do. Good point I hadn't thought of that. Something like this? commit 74c79f74718df7babc1dcf82bad307de6249f7bb Author: Marlon Richert Date: Mon Mar 29 15:04:49 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..4cc8171b0 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}:${${(t)${(P)MATCH}:#*special*}:+${(Pkv@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"