Module: Thor::Completion::Bash
- Defined in:
- lib/thor/completion/bash.rb,
lib/thor/completion/bash/subcmd.rb,
lib/thor/completion/bash/request.rb,
lib/thor/completion/bash/thor_mixin.rb,
lib/thor/completion/bash/command_mixin.rb,
lib/thor/completion/bash/argument_mixin.rb
Overview
Experimental support for Bash completions.
To enable, require this module and add the following to your entry-point Thor subclass:
include Thor::Completion::Bash
You should now have a bash-complete subcommand present. You can test this out with
YOUR_EXE bash-complete help
where YOUR_EXE is replaced with your executable name.
You should see output like
Commands:
locd bash-complete complete -- CUR PREV CWORD SPLIT WORDS... # (...)
locd bash-complete help [COMMAND] # (...)
locd bash-complete setup # (...)
Then, to hook your executable into Bash’s compelte builtin:
source <(YOUR_EXE bash-complete setup)
where, again, YOUR_EXE is replaced with your executable name.
Defined Under Namespace
Modules: ArgumentMixin, CommandMixin, ThorMixin Classes: Request, Subcmd
Class Method Summary collapse
-
.included(base) ⇒ nil
Hook to setup Bash complete on including Thor subclass.
Class Method Details
.included(base) ⇒ nil
Hook to setup Bash complete on including Thor subclass.
-
Mixes CommandMixin into Thor::Command.
-
Creates a new subclass of Subcmd boun0d to
baseand adds that asbash-completetobasevia Thor.subcommand.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/thor/completion/bash.rb', line 70 def self.included base unless Thor.include? ThorMixin Thor.send :include, ThorMixin end unless Thor::Command.include? CommandMixin Thor::Command.send :include, CommandMixin end unless Thor::Argument.include? ArgumentMixin Thor::Argument.send :include, ArgumentMixin end subcmd_class = Class.new Subcmd do def self.target @target end end subcmd_class.instance_variable_set :@target, base # Install {Subcmd} as a subcommand base.send :subcommand, 'bash-complete', subcmd_class, desc: "Support for Bash command completion." nil end |