The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

MooseX::App::Plugin::ZshCompletion - zsh completion for your MooseX::App applications

SYNOPSIS

In your base class:

package MyApp;
use MooseX::App qw/ ZshCompletion /;

In your .zshrc:

fpath=('/path/to/completion-dir' $fpath)

In your shell

zsh% myapp zsh_completion > /path/to/completion-dir/_myapp
zsh% chmod u+x /path/to/completion-dir/_myapp
zsh% exec zsh

DESCRIPTION

This plugin generates a zsh completion definition for your application.

Completion works for subcommands, parameters and options. If an option or parameter is declared as an enum with Moose::Meta::TypeConstraint you will get a completion for the enum values.

Option completions will show its descriptions also.

The default completion type for parameters is _files

In the examples directory you find moosex-app-zsh.

% moosex-app-zsh <TAB>
bash_completion  fetch_mail    help          lala          zsh_completion

% moosex-app-zsh fetch_mail server.example -<TAB>
--dir                     -- Output 'dir'
--max                     -- Maximum number of emails to fetch
--servertype              -- Mailserver type: IMAP or POP3
--usage       --help  -h  -- Prints this usage information.
--user                    -- User
--verbose                 -- be verbose

% moosex-app-zsh fetch_mail server.example --servertype <TAB>
IMAP  POP3

METHODS

plugin_metaroles

SEE ALSO

MooseX::App::Plugin::BashCompletion

LICENSE

COPYRIGHT AND LICENSE

Copyright (C) 2015 by Tina Mueller

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file.