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
 |