зеркало из https://github.com/github/ruby.git
40 строки
1.2 KiB
Bash
40 строки
1.2 KiB
Bash
# -*- 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
|