Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: fix colouring in prompt completion
- X-seq: zsh-workers 46036
- From: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- To: Zsh workers <zsh-workers@xxxxxxx>
- Subject: PATCH: fix colouring in prompt completion
- Date: Wed, 10 Jun 2020 01:59:55 +0200
- Authentication-results: amavisd4.gkg.net (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.co.uk
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <5590-1591747195.005165.ref@UC92.OfOa.hbm2>
The completion sorting option changes mean that we're adding -o nosort
-J group instead of -V which breaks extracting the group from $expl.
Also, using ${(%)...} avoids the fork with $(print -P ...) though I'm
not certain the quoting of braces is good with all option combinations.
Oliver
diff --git a/Completion/Zsh/Type/_ps1234 b/Completion/Zsh/Type/_ps1234
index cf1982219..0ea2cdda9 100644
--- a/Completion/Zsh/Type/_ps1234
+++ b/Completion/Zsh/Type/_ps1234
@@ -38,7 +38,7 @@ if compset -P '%[FK]'; then
)
_description -V ansi-colors expl 'ansi color'
- grp="$expl[expl[(i)-V]+1]"
+ grp="$expl[expl[(i)-J]+1]"
print -v ccol -f "($grp)=%s=%s" ${(kv)ansi}
_comp_colors+=( $ccol )
compadd "$expl[@]" $suf $pre -k ansi && ret=0
@@ -48,10 +48,10 @@ if compset -P '%[FK]'; then
(( cols = $terminfo[colors] - 1 ))
(( cols = cols > 255 ? 255 : cols ))
_description -V terminal-colors expl 'terminal color'
- grp="$expl[expl[(i)-V]+1]"
+ grp="$expl[expl[(i)-J]+1]"
compadd "$expl[@]" $suf $pre {0..$cols}
for c in {0..$cols}; do
- _comp_colors+=( "($grp)=${c}=${${$(print -P "%F{$c}")#?\[}%m}" )
+ _comp_colors+=( "($grp)=${c}=${${${(%):-%F{$c\}}#?\[}%m}" )
done
else
_message -e terminal-colors "number"
Messages sorted by:
Reverse Date,
Date,
Thread,
Author