From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7397 invoked by alias); 9 Jul 2015 23:09:05 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 35756 Received: (qmail 4595 invoked from network); 9 Jul 2015 23:09:02 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1436482936; bh=i07gONNpml3+VI348E74EdxgxucFyXmdPxEZzBf6vMc=; h=In-reply-to:From:References:To:Subject:Date:From:Subject; b=ZQvJFn1z+3M0/3YV3QLYsntaAWtxaMn7u7RI09U67PAxmZXHK1tqipnJpdMZV4q+rASyNX+2IOPhr5JrDSOMRau5CdGRfqM4O6JNRNehSDma7+/CerPp0aThbsydyxoDlmv5N2NQy2tu5sV6WhphcUJKOrsD+cqrTwJ7OGM7MC5tS6w5ioNfdhYmE/tLe4m0Q1jWQdHC39eRUW8QfuIZ7f+wuK4L9d3YhOjM3DlMuiuQQdYTHRKaxp6DtWhjoOLeGfnC306r+GtBHdTmRG5Rl4wH530DooFEg0ddsjizDzTv2CyFiIswPSDItvydy3uHzpDqtKFwd3l0xz2kPBu8Qw== X-Yahoo-Newman-Id: 988727.88104.bm@smtp106.mail.ir2.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: m6SMAnsVM1mohkXCNpLrRHgyQnpFR0pKRlbdwdcqFd55S2X 8o1K36oMN3btVii3xuz6yhzfFs5TjEXYMVVJgkRBZYlOyZrGJLa6L6zINusv r.mFx0Cet9LtzcLjvRc0lwtXIAkRzbpQbJUurBX9m5cz1aNdclluc7tWGjfY HH3huDoGB0cVmDAPXQV.UERMxApHO4ckYIxMKPdl075GV.AOZdGnJ_iI9fSX q4DPFh.A4wy0Z52k8QyPSpPQxyV1kvTGQXZVNlfRialWhEfVSYbV4lbuofGt J.4p2R1WkZiFE8e4GULOrgMwEoBLenwp29c8SJtH_ZFxQ4NKlWLcc_XxM.EX lMaVjfjXswJz_0FdtF5nZzWnb8fXj9C0UWUpgRXAp1rOaoGyrksGfbJsBQsa 2oCb8EOgbfIELhuPP2NjjtjOmYMXZvfm1ZGr90B340TEfZQSViM6ubzh.iwM 3_HAM5iUvBSybMqAiUmfsmGSPCrgzy6wDcrENEgNLtr8hFn0FKWL.OAA0Y2U gVgNYbS3bwtDtahX9T18L_Lq2mE9wBw-- X-Yahoo-SMTP: opAkk_CswBAce_kJ3nIPlH80cJI- In-reply-to: <24602.1436455211@thecus.kiddle.eu> From: Oliver Kiddle References: <1436143012-9243-1-git-send-email-mikachu@gmail.com> <4740.1436181110@thecus.kiddle.eu> <97E3F4A3-6951-4848-8711-B8BD609BA79D@kba.biglobe.ne.jp> <21764.1436444277@thecus.kiddle.eu> <24602.1436455211@thecus.kiddle.eu> To: zsh workers Subject: Re: PATCH: _ps1234, _date_formats: Complete strftime formats for %D{} MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <25964.1436482934.1@thecus.kiddle.eu> Content-Transfer-Encoding: quoted-printable Date: Fri, 10 Jul 2015 01:02:14 +0200 Message-ID: <25965.1436482934@thecus.kiddle.eu> We normally leave configuration of colours for complist to the users but in the case of the completion of terminal colours, I think the following is useful. It is also one situation where we don't need to worry about the user's colour preferences or even whether a particular colour is visible over their background. Any thoughts? I think the description of "ANSI" is only applicable to the first 8 (or 16 colours), right? This hasn't allowed for custom configuration of the lc and rc in _comp_colors. Anyone know if there is a particular layout of rows/columns that should be used so the colours line up logically? Should we use set the background colour instead when completing within %K{...}? (it seemed uglier to me). Oliver diff --git a/Completion/Zsh/Type/_ps1234 b/Completion/Zsh/Type/_ps1234 index f182a16..de4ecb2 100644 --- a/Completion/Zsh/Type/_ps1234 +++ b/Completion/Zsh/Type/_ps1234 @@ -1,7 +1,8 @@ #compdef -value-,PROMPT,-default- -value-,PROMPT2,-default- -value-,PROMP= T3,-default- -value-,PROMPT4,-default- -value-,RPROMPT,-default- -value-,R= PROMPT2,-default- -value-,PS1,-default- -value-,PS2,-default- -value-,PS3,= -default- -value-,PS4,-default- -value-,RPS1,-default- -value-,RPS2,-defau= lt- -value-,SPROMPT,-default- = local -a specs -local expl bs suf pre changed=3D1 ret=3D1 +local expl grp cols bs suf pre changed=3D1 ret=3D1 +local -A ansi = [[ -z $compstate[quote] ]] && bs=3D'\' = @@ -22,24 +23,37 @@ done = if compset -P '%[FK]'; then # this should use -P but that somehow causes single quotes to be stripp= ed - compset -P '(\\|){' || pre=3D( -p "$bs{" ) - compset -S '(\\|)}*' || suf=3D( -S $bs\} ) - specs=3D( - black - red - green - yellow - blue - magenta - cyan - white - default + compset -P '(\\|){' || pre=3D( -p '{' ) + compset -S '(\\|)}*' || suf=3D( -S "$bs}" ) + ansi=3D( + black 30 + red 31 + green 32 + yellow 33 + blue 34 + magenta 35 + cyan 36 + white 37 + default 39 ) - _wanted ansi-colors expl 'ansi color' compadd $suf $pre -a specs && ret= =3D0 - if (( $#suf )) && compset -P "<->"; then + + _description -V ansi-colors expl 'ansi color' + grp=3D"$expl[expl[(i)-V]+1]" + _comp_colors+=3D( ${(ps.\0.)"$(printf "($grp)=3D%s=3D%s\0" ${(kv)ansi})= "} ) + compadd "$expl[@]" $suf $pre -k ansi && ret=3D0 + if (( $#suf )) && compset -P "(<->|%v)"; then _wanted ansi-colors expl 'closing brace' compadd -S '' \} && ret=3D0 + elif (( $+terminfo[colors] )); then + (( cols =3D $terminfo[colors] - 1 )) + (( cols =3D cols > 255 ? 255 : cols )) + _description -V terminal-colors expl 'terminal color' + grp=3D"$expl[expl[(i)-V]+1]" + compadd "$expl[@]" $suf $pre {0..$cols} + for c in {0..$cols}; do + _comp_colors+=3D( "($grp)=3D${c}=3D${${$(print -P "%F{$c}")#?\[}%m}= " ) + done else - _message -e terminal-colors "number between 0 and $(( $terminfo[color= s] - 1 ))" + _message -e terminal-colors "number" fi fi =