|
NAMEBash::Completion::Plugin - base class for Bash::Completion pluginsVERSIONversion 0.008SYNOPSIS## Example plugin for xpto command package Bash::Completion::Plugin::XPTO; use strict; use warnings; use parent 'Bash::Completion::Plugin'; use Bash::Completion::Utils qw( command_in_path ); sub should_activate { return [grep { command_in_path(_) } ('xpto')]; } ## Optionally, for full control of the generated bash code sub generate_bash_setup { return q{complete -C 'bash-complete complete XPTO' xpto}; } ## Use plugin arguments sub generate_bash_setup { return q{complete -C 'bash-complete complete XPTO arg1 arg2 arg3' xpto}; } ## $plugin->args will have ['arg1', 'arg2', 'arg3'] sub complete { my ($self, $r) = @_; my @options = ('-h', '--help'); $r->candidates(prefix_match($r->word, @options)); } 1; DESCRIPTIONWARNING: the most important class for Plugin writers is the Request class. Please note that the Request class interface is Alpha-quality software, and I will update it before 1.0. A base class for Bash::Completion plugins that provides the default implementations for the required plugin methods. See the "SYNOPSIS" for an example of a plugin. ATTRIBUTESargsAn list reference with plugin arguments.METHODSnewA basic plugin constructor. Accepts a list of key/values. Accepted keys:
should_activateThe method "should_activate()" is used by the automatic setup of completion rules in the .bashrc. It should return a reference to a list of commands that the plugin is can complete.If this method returns a reference to an empty list (the default), the plugin will not be used. A common implementation of this method is to check the PATH for the command we want to provide completion, and return the com only if that command is found. The Bash::Completion::Utils library has a "command_in_path()" that can be pretty useful here. For example: sub should_activate { return [grep { command_in_path($_) } qw( perldoc pod )]; } generate_bash_setupThis method receives the list of commands that where found by "should_activate" and must return a list of options to use when creating the bash "complete" command.For example, if a plugin returns "[qw( nospace default )]", the following bash code is generated: complete -C 'bash-complete complete PluginName' -o nospace -o default command By default this method returns a reference to an empty list. Alternatively, and for complete control, you can return a string with the entire bash code to activate the plugin. completeThe plugin completion logic. The class Bash::Completion will call this method with a Bash::Completion::Request object, and your code should use the Request "candidates()" method to set the possible completions.The Bash::Completion::Utils library has two functions, "match_perl_module()" and "prefix_math()" that can be pretty useful here. AUTHORPedro Melo <melo@cpan.org>COPYRIGHT AND LICENSEThis software is Copyright (c) 2011 by Pedro Melo.This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)
Visit the GSP FreeBSD Man Page Interface. |