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 |