The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.