33 lines
737 B
Plaintext
33 lines
737 B
Plaintext
|
#compdef ghcup
|
||
|
|
||
|
local request
|
||
|
local completions
|
||
|
local word
|
||
|
local index=$((CURRENT - 1))
|
||
|
|
||
|
request=(--bash-completion-enriched --bash-completion-index $index)
|
||
|
for arg in ${words[@]}; do
|
||
|
request=(${request[@]} --bash-completion-word $arg)
|
||
|
done
|
||
|
|
||
|
IFS=$'\n' completions=($( ghcup "${request[@]}" ))
|
||
|
|
||
|
for word in $completions; do
|
||
|
local -a parts
|
||
|
|
||
|
# Split the line at a tab if there is one.
|
||
|
IFS=$'\t' parts=($( echo $word ))
|
||
|
|
||
|
if [[ -n $parts[2] ]]; then
|
||
|
if [[ $word[1] == "-" ]]; then
|
||
|
local desc=("$parts[1] ($parts[2])")
|
||
|
compadd -d desc -- $parts[1]
|
||
|
else
|
||
|
local desc=($(print -f "%-019s -- %s" $parts[1] $parts[2]))
|
||
|
compadd -l -d desc -- $parts[1]
|
||
|
fi
|
||
|
else
|
||
|
compadd -f -- $word
|
||
|
fi
|
||
|
done
|