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
							 |