tab-completion: added support for tab completion
This commit is contained in:
@@ -3,6 +3,7 @@ require_relative './end'
|
|||||||
require_relative './trash'
|
require_relative './trash'
|
||||||
require_relative './rebase'
|
require_relative './rebase'
|
||||||
require_relative './merge_to'
|
require_relative './merge_to'
|
||||||
|
require_relative './tab'
|
||||||
require_relative './branch'
|
require_relative './branch'
|
||||||
|
|
||||||
module Feature
|
module Feature
|
||||||
@@ -17,6 +18,7 @@ module Feature
|
|||||||
when "trash" then Feature::Trash.new(argv)
|
when "trash" then Feature::Trash.new(argv)
|
||||||
when "rebase" then Feature::Rebase.new(argv)
|
when "rebase" then Feature::Rebase.new(argv)
|
||||||
when "merge" then Feature::MergeTo.new(argv)
|
when "merge" then Feature::MergeTo.new(argv)
|
||||||
|
when "tab" then Feature::Tab.new(argv)
|
||||||
else Feature::Branch.new(argv)
|
else Feature::Branch.new(argv)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -32,6 +34,11 @@ module Feature
|
|||||||
def execute
|
def execute
|
||||||
subcommand.execute
|
subcommand.execute
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.tab_completion
|
||||||
|
[:start, :end, :trash, :rebase, :merge].map(&:to_s).sort
|
||||||
|
end
|
||||||
|
|
||||||
end
|
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