aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJohannes Wienke2015-05-17 01:12:12 +0200
committerMike McQuaid2015-06-02 10:09:10 +0100
commitde43ac75032e7a1170b0def6500dffb48dba9bf7 (patch)
treecdf4721e8e136770d8707fcb3872c12f54e32b5f /Library
parent517ced731cbf4047fb3d205df9d9ccbf1d3549b9 (diff)
downloadbrew-de43ac75032e7a1170b0def6500dffb48dba9bf7.tar.bz2
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>
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/caveats.rb9
-rw-r--r--Library/Homebrew/formula.rb10
-rw-r--r--Library/Homebrew/keg.rb1
3 files changed, 18 insertions, 2 deletions
diff --git a/Library/Homebrew/caveats.rb b/Library/Homebrew/caveats.rb
index 99a31c4b8..1df2e2644 100644
--- a/Library/Homebrew/caveats.rb
+++ b/Library/Homebrew/caveats.rb
@@ -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?
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 5e7a0d445..93671ecb4 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -414,13 +414,19 @@ class Formula
# installed.
# This is symlinked into `HOMEBREW_PREFIX` after installation or with
# `brew link` for formulae that are not keg-only.
- def bash_completion; prefix+'etc/bash_completion.d' end
+ def bash_completion; prefix+'etc/bash_completion.d' end
# The directory where the formula's ZSH 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 zsh_completion; share+'zsh/site-functions' end
+ 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
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index 3caf218de..525bd0478 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -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