Add support for fish shell completions
* Library/Homebrew/caveats.rb: add caveats comparable to other shells * Library/Homebrew/formula.rb: define completion directory along the conventions explained in the fish documentation for $fish_complete_path * Library/Homebrew/keg.rb: add fish shell to check function for installed completions Closes Homebrew/homebrew#39828. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
		
							parent
							
								
									517ced731c
								
							
						
					
					
						commit
						de43ac7503
					
				@ -12,6 +12,7 @@ class Caveats
 | 
			
		||||
    caveats << f.keg_only_text if f.keg_only? && f.respond_to?(:keg_only_text)
 | 
			
		||||
    caveats << bash_completion_caveats
 | 
			
		||||
    caveats << zsh_completion_caveats
 | 
			
		||||
    caveats << fish_completion_caveats
 | 
			
		||||
    caveats << plist_caveats
 | 
			
		||||
    caveats << python_caveats
 | 
			
		||||
    caveats << app_caveats
 | 
			
		||||
@ -46,6 +47,14 @@ class Caveats
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def fish_completion_caveats
 | 
			
		||||
    if keg and keg.completion_installed? :fish and which("fish") then <<-EOS.undent
 | 
			
		||||
      fish completion has been installed to:
 | 
			
		||||
        #{HOMEBREW_PREFIX}/share/fish/vendor_completions.d
 | 
			
		||||
      EOS
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def python_caveats
 | 
			
		||||
    return unless keg
 | 
			
		||||
    return unless keg.python_site_packages_installed?
 | 
			
		||||
 | 
			
		||||
@ -422,6 +422,12 @@ class Formula
 | 
			
		||||
  # `brew link` for formulae that are not keg-only.
 | 
			
		||||
  def zsh_completion;  share+'zsh/site-functions'        end
 | 
			
		||||
 | 
			
		||||
  # The directory where the formula's fish completion files should be
 | 
			
		||||
  # installed.
 | 
			
		||||
  # This is symlinked into `HOMEBREW_PREFIX` after installation or with
 | 
			
		||||
  # `brew link` for formulae that are not keg-only.
 | 
			
		||||
  def fish_completion; share+'fish/vendor_completions.d' end
 | 
			
		||||
 | 
			
		||||
  # The directory used for as the prefix for {#etc} and {#var} files on
 | 
			
		||||
  # installation so, despite not being in `HOMEBREW_CELLAR`, they are installed
 | 
			
		||||
  # there after pouring a bottle.
 | 
			
		||||
 | 
			
		||||
@ -222,6 +222,7 @@ class Keg
 | 
			
		||||
    dir = case shell
 | 
			
		||||
          when :bash then path.join("etc", "bash_completion.d")
 | 
			
		||||
          when :zsh  then path.join("share", "zsh", "site-functions")
 | 
			
		||||
          when :fish then path.join("share", "fish", "vendor_completions.d")
 | 
			
		||||
          end
 | 
			
		||||
    dir && dir.directory? && dir.children.any?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user