aboutsummaryrefslogtreecommitdiffstats
path: root/misc/rb_optparse.zsh
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-11-19 12:07:09 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-11-19 12:07:09 +0000
commit91c0ff4f7d28856645b72d09f58dbabfa5e862ad (patch)
tree3df4b21c3dd67b8969019c7dd190bddc142cb11a /misc/rb_optparse.zsh
parent67f3280cfe75391f97bb342da10186fa190373b2 (diff)
downloadruby-91c0ff4f7d28856645b72d09f58dbabfa5e862ad.tar.gz
* lib/optparse.rb: shell completion support for zsh. based on
<http://d.hatena.ne.jp/rubikitch/20071002/zshcomplete> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'misc/rb_optparse.zsh')
-rw-r--r--misc/rb_optparse.zsh30
1 files changed, 30 insertions, 0 deletions
diff --git a/misc/rb_optparse.zsh b/misc/rb_optparse.zsh
new file mode 100644
index 0000000000..2aff063744
--- /dev/null
+++ b/misc/rb_optparse.zsh
@@ -0,0 +1,30 @@
+#!/bin/zsh
+# Completion for zsh:
+# (based on <http://d.hatena.ne.jp/rubikitch/20071002/zshcomplete>)
+#
+# (1) install this file,
+#
+# (2) load the script, and
+# . ~/.zsh.d/rb_optparse.zsh
+#
+# (3) geneate completion files once.
+# generate-complete-function/ruby/optparse COMMAND1
+# generate-complete-function/ruby/optparse COMMAND2
+#
+
+generate-complete-function/ruby/optparse ()
+{
+ local cmpl="_${1:t}"
+ mkdir -p "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}"
+ $1 --help=zshcomplete="${1:t}" > "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}/$comp"
+ if [[ $(type -w "$cmpl") == "${cmpl}: function" ]]; then
+ unfunction "$cmpl"
+ autoload -U "$cmpl}"
+ else
+ compinit "$cmpl"
+ fi
+}
+
+for cmd in "$@"; do
+ generate-complete-function/ruby/optparse "$cmd"
+done