tab-completion: added support for tab completion
This commit is contained in:
@@ -3,6 +3,7 @@ require_relative './end'
|
||||
require_relative './trash'
|
||||
require_relative './rebase'
|
||||
require_relative './merge_to'
|
||||
require_relative './tab'
|
||||
require_relative './branch'
|
||||
|
||||
module Feature
|
||||
@@ -17,6 +18,7 @@ module Feature
|
||||
when "trash" then Feature::Trash.new(argv)
|
||||
when "rebase" then Feature::Rebase.new(argv)
|
||||
when "merge" then Feature::MergeTo.new(argv)
|
||||
when "tab" then Feature::Tab.new(argv)
|
||||
else Feature::Branch.new(argv)
|
||||
end
|
||||
end
|
||||
@@ -32,6 +34,11 @@ module Feature
|
||||
def execute
|
||||
subcommand.execute
|
||||
end
|
||||
|
||||
def self.tab_completion
|
||||
[:start, :end, :trash, :rebase, :merge].map(&:to_s).sort
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
32
lib/feature/tab.rb
Normal file
32
lib/feature/tab.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
require_relative './base'
|
||||
|
||||
module Feature
|
||||
|
||||
class Tab < Feature::Base
|
||||
def valid?
|
||||
argv.size > 0
|
||||
end
|
||||
|
||||
def help
|
||||
puts
|
||||
puts "USAGE: feature tab [pattern]"
|
||||
puts
|
||||
exit
|
||||
end
|
||||
|
||||
def execute
|
||||
if argv.size == 1
|
||||
pattern = '.+'
|
||||
else
|
||||
pattern = "^#{argv[1]}"
|
||||
end
|
||||
|
||||
regexp = Regexp.new(pattern)
|
||||
cmds = Feature::Commander.tab_completion
|
||||
cmds = cmds.select { |x| regexp.match(x) }
|
||||
|
||||
puts cmds.join("\n")
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user