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 26838 invoked from network); 28 Mar 2021 20:54:21 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 28 Mar 2021 20:54:21 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1616964862; b=KlU+mWTxvav9rAsrp5UXGPQoqy8bnO7qA4Ssfro4oyBnvBiLhRehQYFWSm3Sx+6cB84cJlMfF1 cH2X/oG5qHQaPqcTxi+yXd2ATL6xguX1qCHGs2Z/XSMjp45yGDzdfKO0X1mvwK3ej3qtwSrR+i 1U1QA3QoZUIXrgTsZMOUfFPX0n0ZuAQzkbtwUpM8R04c/IhsRlDek1IhRJxTu4QbU4GJm7uq4W NJpJlTZB10cS3JJYsrtSlh9Oor1IJibQKUW+FpYM743De/DRJwiNw3AczFZxqaCRjbmSuCEoMO Swl+s1uAZpMY/0PzWav97QGHcWk9x4y7AZCuqle5tQQ0UA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f178.google.com) smtp.remote-ip=209.85.208.178; 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=1616964862; bh=iqWFsH9tIBo0AhDcfSmh3WcNLyt9Mpw9ePL9jX60oPA=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:DKIM-Signature:DKIM-Signature; b=H1eOnqyAIZiRK7yIn1HcPzWXtqT8lgOnFmwfQs/LTZ3ToyFA4rA84f1j5KetWu93lecRnUq8Kw lZFbTeaT31SN8e3F1NEhE1xrMzA6aaz8OknErFrgX9sbdb2BOgkJTuObStdBLqAhsu8ZbfxmmD NeetD4xRFJBKURwPQObU1ATdozF/lEUy7HIcr+mG8jIaj5hFNBLZWJVx+UYjNaQl7zBa/oGQmA eBQiNewrAJJ8YvE7rYSfn0v8eWWRlQs/nuB0Uv3xTzIjTgLELyONgsenA+wDEXn1kvyaWOzx0G M/Lcuo0NpKbeIB8xGAA9lr2K0eUpUy3vweI82uCQwd/izg==; 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:To:Subject:Message-ID:Date:From:MIME-Version:Reply-To:Cc: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References; bh=pRj8B+2MD4Wr0A5dMTMf2G+kkQFvfs18HBrG/2QN8Yo=; b=cRt6behWyfE9hVlg84zQwAEr5X 64mF5b1ZCBCn1fpGBdMjyEZfqizk40FkaAOl8/wkUiIIfrnfV4QOFixwt53DgcdkK/E5KNtI5z8xl 0RL94hmGdMcfDM/Z6UW35aEsjnPEnxIdmdVjKb6BgL5FwoOk3XfGjuUM7w+V8S8SUSbYLPRwW2rES U1sqWbJdnFZdVKp+MbXf7KReeRTboJrHQpGbwAh1pSFSyG8yNWA9RfMWvuFa1xcYz9EHEEGhksriD W8HE2TNtsQhmpeW7LO2XOiJrNS/61WzhZkcSRwDoq3BnTJTwP1ulrOWkSSHaU2H5JI0cHuUdkJlzG aivwc3tw==; Received: from authenticated user by zero.zsh.org with local id 1lQcQO-000MVV-4k; Sun, 28 Mar 2021 20:54:20 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f178.google.com) smtp.remote-ip=209.85.208.178; 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-f178.google.com ([209.85.208.178]:37458) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lQcQA-000MM0-BH; Sun, 28 Mar 2021 20:54:06 +0000 Received: by mail-lj1-f178.google.com with SMTP id r20so13687415ljk.4 for ; Sun, 28 Mar 2021 13:54:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=pRj8B+2MD4Wr0A5dMTMf2G+kkQFvfs18HBrG/2QN8Yo=; b=T79Puh2np27xZgRai6XB6aCaCTWF9GNdNRpHrj9q56rKMF1gKZWAWR0BE4SD/V2+Uy K0NYYi9Y4VHnwcwvw/RMebr6XYi+nYwW7QXFLe7y0vJRGQBazt4H4hPsS8ZZH9Rm8PYw JFTHg+hBVtioSjMoQSUDSPh/FTEm1aTIj0x4+UP+YalkaO6rp062FsS5M/l5THtdRDwy R19ZYffzfvGjO5YRF+6eH4fza0afLmD07TYBZ5NnAEULswvNmaFNHwbDxaqK0mSNaWUK VU70uiHPNJg7h/nga8qtrzfWCmHSJC5Nd11pptOL5vc9cxxDdjjUF/RDBYIl3iE6lrIz M9ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=pRj8B+2MD4Wr0A5dMTMf2G+kkQFvfs18HBrG/2QN8Yo=; b=Mc8Pk3T+yMtksAw+aPGvFNxYDoOu1am2Mljv6fHxf2gsMT1ZEfGCMg4kiBH8NwJeXa OnG6UidTi73MPl1IdLcKffBODVTc7zEmagrndenPZ+fdL+535i8PkGZBjqMfq6R8SsNQ OOUqqXeFHKO7Q9VPotLQ2T+8efd3UUZmgKHsX0OV8H/KPoJBRTw4jP+E4KUsZV/VxzJf w6ggWQmVIwo2Z6yXFNE5G781o/yFmuSC0Kkm+hho52zndx2QHdN62ghpetidNWHPTe8E RzeOWc9goT/rKSBqBcXakLSOU/kwPYihGoMq194kQOXdmnPegFsmE3JyoRpjVUjNW8+s rnpA== X-Gm-Message-State: AOAM5318GLygwgyHvt9Bk8NNgC84SkAUL8o0QIiSwoz9D0N8jfsi0ATp GiaEIqWl4BG8bgEx2zlRogYXPo4VmeehmYb3EwQLAIcs3Qpnpw== X-Google-Smtp-Source: ABdhPJwZ9XgpooNQShUC+yzFWY98U+cgfvzhLTcLGt1qJDGGiToOriviPsjIpE5VDIWFGw3UpXdwWXMR4zIvt8p9Zzs= X-Received: by 2002:a2e:b053:: with SMTP id d19mr15808657ljl.82.1616964845204; Sun, 28 Mar 2021 13:54:05 -0700 (PDT) MIME-Version: 1.0 From: Marlon Richert Date: Sun, 28 Mar 2021 23:53:29 +0300 Message-ID: Subject: Feature Patch: Use completion to view parameter values To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 48293 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: diff --git a/Completion/Zsh/Type/_parameters b/Completion/Zsh/Type/_paramet= ers index 207e5cf78..84f078126 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,18 @@ 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}:${(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..e1bbab92e 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,23 @@ 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 } + + 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"