1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-09-27 22:40:20 +02:00

46195: use showrgb command to get colours if it is available

This commit is contained in:
Oliver Kiddle 2020-07-08 17:40:42 +02:00
parent a0a27473fe
commit 389c853b4a
2 changed files with 11 additions and 5 deletions

View File

@ -1,5 +1,8 @@
2020-07-08 Oliver Kiddle <okiddle@yahoo.co.uk>
* 46195: Completion/X/Type/_x_color: use showrgb command to get
colours if it is available
* github #50: SATOH Fumiyasu: Completion/Unix/Type/_ssh_hosts:
Complete hosts in "Match" directive

View File

@ -10,25 +10,28 @@
local expl
if (( ! $+_color_cache )); then
if (( ! $+_cache_x_colors )); then
typeset -ga _cache_x_colors
local file
# Cache of color names doesn't exist yet, create it.
zstyle -s ":completion:${curcontext}:colors" path file
if [[ -n "$file" ]]; then
_color_cache=( "${(@)${(@f)$(< $file)}[2,-1]##* }" )
_cache_x_colors=( "${(@)${(@f)$(< $file)}[2,-1]##* }" )
elif (( $+commands[showrgb] )); then
_cache_x_colors=( "${(@)${(@)${(@f)$(_call_program colors showrgb)}[2,-1]##* }:#* *}" )
else
file=( /usr/{lib,{{X11R6,openwin},local{,/X11{,R6}}}/lib}/X11/rgb.txt(N) )
(( $#file )) &&
_color_cache=( "${(@)${(@)${(@f)$(< $file[1])}[2,-1]##* }:#* *}" )
_cache_x_colors=( "${(@)${(@)${(@f)$(< $file[1])}[2,-1]##* }:#* *}" )
fi
# Stupid default value.
(( $#_color_cache )) || _color_cache=(white black gray red blue green)
(( $#_cache_x_colors )) || _cache_x_colors=(white black gray red blue green)
fi
_wanted colors expl 'color specification' compadd "$@" -M \
'm:{a-z}={A-Z} m:-=\ r:[^ A-Z0-9]||[ A-Z0-9]=* r:|=*' -a - _color_cache
'm:{a-z}={A-Z} m:-=\ r:[^ A-Z0-9]||[ A-Z0-9]=* r:|=*' -a - _cache_x_colors