Karen Etheridge > Devel-REPL > Devel::REPL::Plugin::FancyPrompt

Download:
Devel-REPL-1.003026.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  6
Open  16
Stalled  2
View/Report Bugs
Module Version: 1.003026   Source  

NAME ^

Devel::REPL::Plugin::FancyPrompt - facilitate user-defined prompts

VERSION ^

version 1.003026

SYNOPSIS ^

    use Devel::REPL;

    my $repl = Devel::REPL->new;
    $repl->load_plugin('MultiLine::PPI'); # for indent depth
    $repl->load_plugin('Packages');       # for current package
    $repl->load_plugin('FancyPrompt');
    $repl->run;

DESCRIPTION ^

FancyPrompt helps you write your own prompts. The default fancy prompt resembles irb's default prompt. The default fancy_prompt looks like this:

    re.pl(main):001:0> 2 + 2
    4

re.pl is a constant. main is the current package. The first number is how many lines have been read so far. The second number (only if you have a MultiLine plugin) is how deep you are; intuitively, your indent level. This default can be implemented with:

    $_REPL->fancy_prompt(sub {
      my $self = shift;
      sprintf 're.pl(%s):%03d%s> ',
              $self->can('current_package') ? $self->current_package : 'main',
              $self->lines_read,
              $self->can('line_depth') ? ':' . $self->line_depth : '';
    });

current_package is provided by Devel::REPL::Plugin::Packages (which tracks the current package). line_depth is provided by a MultiLine plugin (probably MultiLine::PPI).

You may also set a fancy_continuation_prompt. The default is very similar to fancy_prompt's default (except * instead of >).

SEE ALSO ^

Devel::REPL

AUTHOR ^

Shawn M Moore, <sartak at gmail dot com>

COPYRIGHT AND LICENSE ^

Copyright (C) 2007 by Shawn M Moore

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: