* lib/optparse.rb (OptionParser::Officious): separate completion

options from --help.  [ruby-dev:42690]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-12-07 13:31:11 +00:00
Родитель ff1fb42734
Коммит 11ef87461a
5 изменённых файлов: 26 добавлений и 15 удалений

Просмотреть файл

@ -1,4 +1,7 @@
Tue Dec 7 22:29:45 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> Tue Dec 7 22:31:08 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/optparse.rb (OptionParser::Officious): separate completion
options from --help. [ruby-dev:42690]
* lib/optparse.rb (OptionParser::Completion#candidate), * lib/optparse.rb (OptionParser::Completion#candidate),
(OptionParser::Switch#compsys): remove unused variables. (OptionParser::Switch#compsys): remove unused variables.

Просмотреть файл

@ -777,22 +777,30 @@ XXX
# --help # --help
# Shows option summary. # Shows option summary.
# #
# --help=complete=WORD Officious['help'] = proc do |parser|
Switch::NoArgument.new do |arg|
puts parser.help
exit
end
end
# --*-completion-for-bash=WORD
# Shows candidates for command line completion. # Shows candidates for command line completion.
# #
# --help=zshcomplete[=NAME:FILE] Officious['*-completion-bash'] = proc do |parser|
Switch::RequiredArgument.new do |arg|
puts parser.candidate(arg)
exit
end
end
#
# --*-completion-zsh[=NAME:FILE]
# Creates zsh completion file. # Creates zsh completion file.
# #
Officious['help'] = proc do |parser| Officious['*-completion-zsh'] = proc do |parser|
Switch::OptionalArgument.new do |arg| Switch::OptionalArgument.new do |arg|
case arg parser.compsys(STDOUT, arg)
when /\Acomplete=(.*)/
puts parser.candidate($1)
when /\Azshcomplete(?:=(.+))?/
parser.compsys(STDOUT, $1)
else
puts parser.help
end
exit exit
end end
end end

Просмотреть файл

@ -11,7 +11,7 @@
# rb_optparse command_using_optparse_2 # rb_optparse command_using_optparse_2
_rb_optparse() { _rb_optparse() {
COMPREPLY=($("${COMP_WORDS[0]}" --help=complete="${COMP_WORDS[COMP_CWORD]}")) COMPREPLY=($("${COMP_WORDS[0]}" "--*-completion-bash=${COMP_WORDS[COMP_CWORD]}"))
return 0 return 0
} }

Просмотреть файл

@ -16,7 +16,7 @@ generate-complete-function/ruby/optparse ()
{ {
local cmpl="_${1:t}" local cmpl="_${1:t}"
mkdir -p "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}" mkdir -p "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}"
$1 --help=zshcomplete="${1:t}" > "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}/$cmpl" $1 "--*-completion-zsh=${1:t}" > "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}/$cmpl"
if [[ $(type -w "$cmpl") == "${cmpl}: function" ]]; then if [[ $(type -w "$cmpl") == "${cmpl}: function" ]]; then
unfunction "$cmpl" unfunction "$cmpl"
autoload -U "$cmpl" autoload -U "$cmpl"

Просмотреть файл

@ -18,7 +18,7 @@ ARGV.options do
opts.on_tail("common options:") opts.on_tail("common options:")
# no argument, shows at tail # no argument, shows at tail
opts.on_tail("--usage", "show this message") {puts opts; exit} opts.on_tail("--help", "show this message") {puts opts; exit}
# mandatory argument # mandatory argument
opts.on("-r", "--require=LIBRARY", String, opts.on("-r", "--require=LIBRARY", String,