class Pione::Util::ZshCompletion

Public Class Methods

new() click to toggle source
# File lib/pione/util/completion.rb, line 73
def initialize
  @completion_command = "compdef"
  @completion_exec = "compdef"
  @name2 = "${words[2]}"
  @name3 = "${words[3]}"
end

Public Instance Methods

fun_options(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 84
def fun_options(cmd)
  arguments(cmd)
end
fun_subcommands(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 80
def fun_subcommands(cmd)
  describe(cmd)
end

Private Instance Methods

arguments(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 94
def arguments(cmd)
  "_arguments -s -S %s '*:file:_files' && return 0;" % make_options(cmd)
end
describe(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 90
def describe(cmd)
  "list=(%s) _describe -t common-commands 'common commands' list;" % make_subcommands(cmd)
end
make_options(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 102
def make_options(cmd)
  items = cmd.option_definition.table.values
  items.sort{|a, b| a.long <=> b.long}.map do |item|
    name = item.long.gsub("[", "\\[").gsub("]", "\\]")
    "\"%s[%s]\"" % [name, item.desc]
  end.join(" ")
end
make_subcommands(cmd) click to toggle source
# File lib/pione/util/completion.rb, line 98
def make_subcommands(cmd)
  cmd.subcommand.map{|key, val| '%s:"%s"' % [key, val.desc]}.join(" ")
end