summaryrefslogtreecommitdiff
path: root/misc/rb_optparse.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'misc/rb_optparse.zsh')
-rw-r--r--misc/rb_optparse.zsh39
1 files changed, 39 insertions, 0 deletions
diff --git a/misc/rb_optparse.zsh b/misc/rb_optparse.zsh
new file mode 100644
index 0000000000..258d4f856c
--- /dev/null
+++ b/misc/rb_optparse.zsh
@@ -0,0 +1,39 @@
+# -*- zsh -*-
+#
+# Completion for zsh:
+# (based on <http://d.hatena.ne.jp/rubikitch/20071002/zshcomplete>)
+#
+# (1) install this file.
+# mkdir -p ~/.zsh.d
+# cp rb_optparse.zsh ~/.zsh.d/rb_optparse.zsh
+#
+# (2) load the script, and add a directory to fpath before compinit.
+# echo '. ~/.zsh.d/rb_optparse.zsh' >> "${ZDOTDIR:-~}/.zshrc"
+# echo 'fpath=(~/.zsh.d/Completion $fpath)' >> "${ZDOTDIR:-~}/.zshrc"
+# echo 'autoload -U compinit; compinit' >> "${ZDOTDIR:-~}/.zshrc"
+#
+# (3) restart zsh.
+#
+# (4) generate 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 "--*-completion-zsh=${1:t}" >! "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}/$cmpl"
+ if [[ $(type -w "$cmpl") == "${cmpl}: function" ]]; then
+ unfunction "$cmpl"
+ autoload -U "$cmpl"
+ else
+ compinit "$cmpl"
+ fi
+}
+
+compdef _command generate-complete-function/ruby/optparse
+
+for cmd in "$@"; do
+ generate-complete-function/ruby/optparse "$cmd"
+done