Devel::REPL::Plugin::FancyPrompt.3pm

Langue: en

Version: 2008-05-31 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

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

SYNOPSIS

     #!/usr/bin/perl 
 
     use lib './lib';
     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 (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.